ORM

안정태·2021년 5월 26일
0

Study

목록 보기
28/33

👨‍🦳 영속성(Persistence)

ORM을 이해하기 전에 먼저 영속성 이라는 개념을 이해할 필요가 있다.

프로그램이 종료되어도 사라지지 않는 데이터의 특성

  • 영속성을 가지지 않는 데이터는 메모리에만 존재하기 때문에 프로그램 종료 시, 모두 사라진다.

Object Persistence

영구적인 객체 : 데이터를 파일시스템 혹은 DB를 통해서 영구적으로 저장하여 영속성을 부여

⚙️ ORM

영속성을 이해했다면 쉽게 ORM을 이해할 수 있다.

ORM (Object Relational Mapping, 객체-관계 매핑)
객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 것

객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. 때문에 이 둘 사이에는 일치하지 않는 부분이 존재하는데 이를ORM을 통해서 해결한다.

장점

  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있다.
    ORM을 통해서 굳이 SQL Query를 사용하지 않고 더 직관적인 메소드를 통해서 데이터를 조작할 수 있기 때문에 객체 모델로 프로그래밍하는데 집중할 수 있다. 이 외에도 부수적인 코드가 줄어들고 가독성 또한 좋아진다.

  • 재사용 및 유지보수의 편리성 증가
    ORM은 독립적으로 작성되고 재사용 또한 가능하다. 디자인 패턴을 견고하게 하는데 유리하다.

  • DBMS에 대한 종속성이 줄어든다.
    데이터 구조와 클래스 구조 사이의 간격을 줄여준다. 이는 DBMS를 교체하는 거대한 작업에서 비교적 적은 리스크와 시간이 소요된다.

단점

  • 완전한 ORM 만으로 서비스를 구현하기 어렵다.
    복잡성이 커질 경우 난이도 또한 올라갈 수 있다. 잘 못 구현되면 심할 경우 일관성이 무너진다.

  • 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다.
    이미 프로시저가 많은 시스템에선 다시 객체로 바꿔야하며, 그 과정에서 생산성 저하 혹은 리스크가 많이 발생할 수 있다.

profile
코딩하는 펭귄

0개의 댓글