[TIL #1] RDB와 ORM

안떽왕·2023년 3월 18일
0

Today I Learned

목록 보기
1/76

관계형 데이터베이스(RDB: Relational Database)

엑셀 시트처럼 차곡차곡 쌓아가는 데이터베이스 방식, 여러 데이터들이 어디에 어떻게 놓여져있는지 확인하는 것이 매우 중요

RDB의 종류

오라클, My SQL, MS SQL, DB2(IBM) 등이 있다.

  • 오라클: 여러 OS에서 호환성이 좋고, 오프라인에 규모가 큰 서버를 구축해야할 때 좋은 선택
  • My SQL: 오라클이 배포하는 오픈소스 기반 RDB, 무료의 경우 기본 소스를 수정할 때 코드를 공개해야 한다. 소스코드 공개가 필요 없는 라이센스도 판매하는데 다른 RDB에 비해 가격대가 낮은 편, 오라클이 지원하는 서비스라 OS 호환성이 좋은 편
  • MS SQL: 윈도우를 기반으로 제작, 오프라인 서버를 구축할 경우 Linux, Unix기반 서버에 비해 가격 대비 성능이 떨어지는 편, Linux와 Unix 서버에서 호환성이 그리 좋지 못함
  • DB2: 규모가 큰 서비스에 어울림, 오프라인 서버 구축 시 운영체제가 제한되는 편, 통신 및 탐색 속도가 다른 상용 서비스들에 비해 아쉬움

ORM(Object-Relational-Mapping)

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것
객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스는 테이블을 사용한다.

ORM의 장단점

장점

  • SQL문이 아닌 Method를 통해 DB조작 가능, 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음
  • Query를 사용하지 않아 부수적인 코드가 줄어들고 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높임
  • 객체지향적인 코드 작성 가능, 객체지향적 접근만 고려하기에 생산성이 증가

단점

  • 프로젝트의 규모가 크고 복잡하여 설계가 잘못된 경우, 속도 저하 및 일관성을 무너뜨리는 문제점이 생길 수 있음
  • 복잡하고 무거운 Query는 속도를 위해 별도의 튜닝 필요, 결국 SQL문을 써야할 수도 있음
profile
이제 막 개발 배우는 코린이

0개의 댓글