ORM이란?

wodnr_P·2023년 7월 9일
0

CS 메모지

목록 보기
4/5

ORM?

Object Relational Mapping
객체와 관계형 DB의 데이터를 자동으로 연결해주는 것

  • 객체 모델과 관계형 모델간의 불일치 존재 → 객체간 관계를 바탕으로 SQL 자동 생성하여 불일치 해결
  • Persistant API라고도 할 수 있음. (ex : JPA)

⭐️ 장점

  • 비즈니스 로직에 더 집중할 수 있음
    • SQL 쿼리가 아닌 직관적 코드(메서드)로 데이터 조작가능하기 때문
    • 코드 가독성을 올려줌
    • 절차적 순차적 접근이 아닌, 객체지향적 접근으로 생산성 증가
  • 재사용 및 유지보수 편리성 증가
    • ORM 독립적으로 작성, 해당 객체를 재활용 할 수 있음
    • 매핑 정보 명확, ERD의존도 낮춤
  • DBMS 종속성 줄어듬
    • 대부분 ORM솔루션은 DB에 종속적이지 않음
      → 구현방법 뿐 아니라 많은 솔루션에서 자료형 타입까지 유효
    • Object에 집중하므로, 극단적으로는 DBMS 교체 작업에도 적은 리스크와 시간

📌 단점

  • ORM 으로만 완벽한 서비스를 구현하기 어려움
    • 사용은 편리하지만 설계는 매우 신중해야함
    • 프로그램 복잡성 증가 → 난이도 올라감
    • 잘못 구현된 경우, 속도 저하 및 일관성 무너지는 문제점 발생 가능
    • 일부 자주 사용되는 대형 쿼리는 속도를 위해 별도 튜닝 필요 (SP 사용)
  • 프로시저가 많은 시스템에선 ORM의 객체지향적 장점 활용하기 어려움
    • 다시 객체로 바꿔야하며, 그 과정에서 생산성 저하나 리스크 발생
  • Procedure : 프로시저, 데이터베이스에 대한 일련의 작업을 정리한 절차를 RDBMS에 저장한 것
  • SP : Stored Procedure (저장 프로시저), 일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합
    --> 즉, 특정 로직의 쿼리를 함수로 만들어 놓은 것
profile
발전하는 꿈나무 개발자 / 취준생

0개의 댓글