ORM(객체 관계 매핑)
ORM이란?
- ORM은 Object Relational Mapping의 약자로, 객체 관계 매핑이라고도 한다.
- 객체는 객체 지향 프로그래밍(OOP)에서 사용하는 객체를 의미한다.
- 관계는 관계형 데이터베이스를 의미한다.
- 따라서, 객체와 관계형 데이터베이스를 매핑해주는 개념이다.
ORM Idea
- 원래 관계형 DB를 사용하기 위해선 SQL을 사용했어야 했다.
- 따라서, 개발자는 코드 뿐만 아니라 Query까지 작성하고 신경써야하는 불편함이 있었다.
- ORM은 이러한 불편함을 해소했다.
- 이러한 ORM 기술은 자바, 파이썬과 같은 프로그래밍 언어 별로 기술이 구축되어 있다.
- 즉, ORM 기술은 개발자로 하여금 코드만 집중할 수 있게 도와주는 친구다
ORM 장점과 단점
- 장점
- 직관적이고, 로직에 집중할 수 있다.
- 유지보수가 편하다 → SQL 문 따로 만들지 않아도 되니까!
- 재사용성이 높다. → 매핑시킨 객체들은 언제든지 재사용할 수 있다.
- DB에 종속적이지 않다 → 구현 뿐만 아니라 자료형 타입에도 독립적이다. → 쿼리문으로 짜면, 자료 타입 일일이 정의해주고, 그에 따라 구현도 달라지는데 ORM 기술은 자동으로 해줌
- 생산성이 높다 → SQL 짜는 시간 절약하니까!
- 단점
- 사상누각 : 원리도 좋고, 기능도 편리한거는 알겠는데 설계 한 번 잘못하면 최소 성능저하 및 일관성이 무너지는 결과를 초래함 → 그래서 ORM 기술을 깊게 공부하는 것이 중요하다
- 규모가 커질수록 힘을 쓰기 어렵다. → 프로젝트의 규모가 커질수록 직접 SQL을 사용하는 것 보다 구현 난이도가 올라간다.
- 성능 → 직접 쿼리를 짜는 것보다 성능이 떨어진다.
- 문제 대처능력 저하 → 지나친 ORM 의존은 내가 쿼리를 짜야하는 문제가 발생했을 때 대처할 수 없다.
- 장점
결론
- ORM 기술을 잘 사용하는 것은 좋지만, 기본적인 베이스는 SQL이므로, SQL 공부를 철저히 하고 ORM을 공부하는게 정말 필수적이다.
'CS자료 > 데이터베이스' 카테고리의 다른 글
[DB] 샤딩 (0) | 2022.03.19 |
---|---|
[DB] Replication (0) | 2022.03.19 |
[DB] Java JDBC (0) | 2022.03.19 |
[DB] Database and FileSystem (0) | 2022.03.19 |
[DB] Database Pool (0) | 2022.03.19 |