본문 바로가기
기초지식

ORM이란 무엇인가?

by 광진구뚝배기 2021. 5. 6.

 

 

"ORM" 그것이 알고싶다.


ORM : Object Relational Mapping

OOP(객체지향프로그래밍)에서 사용하는 객체 개념의 클래스와 RDB(Relation DataBase)에서 사용하는 데이터인 테이블매핑(연결) 해주는 것 이다. 쉽게 말해, 객체-관계 매핑을 의미한다.

SQL구조의 데이터를 OOP적 구조의 형태로 매핑 시키게 되면 데이터를 다루는 방식의 차이에서 불일치가 발생하게 되는데, 이를 해결하기 위해 ORM을 통해 SQL문을 자동으로 실행하여 불일치를 해결한다.

따라서 ORM을 사용한다면 SQL문을 직접 짤 필요없이 데이터베이스를 조작할 수 있게 된다.


ORM의 장단점

장점

  • 객체지향적 코드로 개발자가 더 집중하게 해준다.
    • 데이터 베이스를 SQL문이 아닌 클래스의 메서드를 사용하여 조작하기 때문에, SQL문을 사용하면서 생기는 부수적인 코드들이 거의 사라지게 되어 코드의 가독성이 높아진다.
  • 재사용 및 유지보수
    • ORM은 독립적이므로 객체 재사용이 가능하다.
    • 매핑하는 정보가 명확하므로, ERD(Entity-Relationship Diagram)에 대한 의존도가 줄어든다.

단점

  • 완벽은 없다
    • 잘못 됐을 때 부족한 설계로 일관성이 무너질 수 있어 프로그램의 복잡성이 높아질수록 난이도가 올라간다.
    • 자동으로 SQL문을 작성하므로 의도한바 대로 작성되었는지 확인 할 필요가 있다.

ORM의 프레임워크

Java : Heibernate, EclipseLink 등

Python  : Django, Storm 등

iOS : DatabaseObjects, Core Data 등

 

 

 

참고자료 1 : jins-dev.tistory.com/entry/ORMObject-Relational-Mapping%EC%9D%B4%EB%9E%80-ORM-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84%EC%9D%98-%EA%B0%9C%EB%85%90

참고자료 2 : JBCRGX_2008_v15Dn4_549.pdf

 

반응형

'기초지식' 카테고리의 다른 글

Internet Explorer 11 지원 종료, Edge / Window11 전환 방법  (0) 2022.06.10
형상관리 란?  (0) 2022.01.11
Socket (소켓) 이란?  (0) 2022.01.05
WEB / WAS 란?  (0) 2021.11.30
윈도우 포트 죽이기  (0) 2021.06.30

댓글