으잉? ORM?
취업준비의 일환으로 며칠전에 알게된 wanted 온보딩 프로그램에 백엔드 인턴 과정을 지원하려고 했다.
게시판을 만들라고해서 냅다 eclipse를 켜고 알던 구조로 프레임워크를 짜고 책과 구글을 참고해 어찌저찌 환경세팅을 했다. 그리고 깃허브에 올려볼까 했는데, 'ORM 사용하여 구현'이 필수 조건이란다.

ORM? 뭘까?
알아보자.
Wiki 피셜
- 객체 관계 매핑(Object-relational mapping)
- 오션 마스터(Ocean Master)
- 오로모어의 ISO 코드 orm
- 로크 데 로스 무차초스 천문대(Observatorio del Roque de los Muchachos)
2,3,4번이 필수조건이라면 제출했을수도 있었을텐데... 당연히 아니었고!
[출처] 위키피디아
ORM은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로 객체 관계 매핑(Object-relational mapping; ORM)이다.
[출처] 망나니개발자tistory
ORM이란 객체(Object)와 DB의 테이블을 Mapping 시켜 RDB 테이블을 객체지향적으로 사용하게 해주는 기술이다. RDB 테이블은 객체지향적 특성(상속, 다형성,레퍼런스) 등이 없어서 Java와 같은 객체지향적 언어로 접근하는 것이 쉽지 않다. 이러한 상황에서 ORM을 사용하면 보다 객체지향적으로 RDB를 사용할 수 있다. Java에서 사용하는 대표적인 ORM으로는 JPA와 그의 구현체 Hibernate가 있다.
그래서 ORM이 뭐냐면 아주 많은 생략과 비약이 있겠지만 JPA와 Hibernate이다!
그리고 편안하고 구면인 이제는 익숙한 Mybatis가 낯설고 초면인 ORM 기법과 대비되는 기법이다.
검색하다보면 RDB, RDBMS라는 단어도 자주 접한다.
들어는 봤는데 뭔지 모르는 검색해본다.
[출처] 개발자를꿈꾸는프로그래머
RDB(Relational Database)란 관계형 데이타 모델에 기초를 둔 데이타베이스다. 관계형 데이타 모델이란 데이타를 구성하는데 필요한 방법 중 하나로 모든 데이타를 2차원의 테이블 형태로 표현해줍니다. 관계형 데이타 모델의 개념은 표현 개체의 외부개념 관례를 적용한 것으로, 데이타 간의 상관관계에서 개체간의 관계를 표현한 것이라고 할 수 있습니다.
RDBMS(Relational Database Management System)는 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어라고 정의할 수 있습니다.
정리하자면 RDB는 데이터베이스라는 개념적인 내용이고, RDBMS는 Oracle, MySQL과 같은 소프트웨어를 말한다.
[ MyBatis VS Hibernate 비교 ]
- 우리나라의 시장은 대부분이 SI 또는 금융이기 때문에 비지니스가 매우 복잡하다. 또한 안정성과 속도를 중요시하기 때문에 직접 작성하는 Mybatis을 사용하는 것이 나을 수 있다.
- 하지만 MyBatis는 쿼리를 직접 작성해야 하기 때문에 Hibernate에 능숙해진다면 생산성을 상당히 높힐 수 있다.
- JPA를 사용하면 통계나 동적 쿼리 같은 복잡한 쿼리를 처리하는 것이 어려우므로 QueryDSL을 함께 이용한다.
- MyBatis와 Hibernate 모두 각각의 특징을 갖고 있기 때문에 상황에 맞는 적합한 ORM을 사용하는 것이 중요하다.
그냥 개인적인 궁금증에 퍼왔다. 망나니개발자님이 쓴 글의 일부이다.
깨달은 점
게으름 피우지말고 더 공부해야겠다는 생각이 든다.