노트

[클라우딩 어플리케이션 엔지니어링 TIL] - DAY 2 본문

TIL

[클라우딩 어플리케이션 엔지니어링 TIL] - DAY 2

blackmilktea 2024. 4. 16. 18:20

ORM(Object-Relational Mapper)

관계형 데이터베이스(RDB)의 테이블과 객체지향 프로그램의 클래스 사이를 자동으로 연결해 주는 것

ORM을 이용하면 SQL 문장이 아닌 클래스의 메서드를 이용해 데이터베이스 접근, 조작가능

ex) USER라는 테이블에 매핑된 클래스의 객체가 user 일 때,
USER 테이블의 데이터를 조회하는 방법
SQL: SELECT * FROM USER
-> user.findAll()

장점

  • 반복적이고 복잡한 쿼리를 대신 직관적인 코드로 데이터 조작이 가능해 코드 가독성 증가
  • 코드의 재사용성, 유지보수가능성, 리팩토링 용이성 향상
  • 대부분의 ORM이 특정 DB에 종속적이지 않아 DBMS 교체 작업도 어렵지 않음.

단점

  • 객체와 테이블이 서로 완전히 모델링이 일치하기 어렵기 때문에 비효율적인 측면 발생

       불필요한 종류의 테이블 또는 컬럼의 생성, 최적화된 raw SQL 보다 느릴 수 있음.