반응형
ORM이 뭐지?
- 객체와 관계형 데이터베이스를 연결해주는 기술
- 코드의 객체와 DB의 테이블을 매핑해줌
- Java의 Hibernate, JavaScript의 Sequelize, Python의 SQLAlchemy 등이 대표적
ORM의 장점
- SQL 문법 몰라도 DB 조작 가능
- 객체지향적으로 데이터 다룰 수 있음
- 코드 재사용성 높아짐
- DB 변경시 코드 수정 최소화 (MySQL → PostgreSQL 등)
- SQL 인젝션 같은 보안 위험 줄여줌
ORM의 단점
- 복잡한 쿼리는 직접 SQL 쓰는 게 더 효율적일 때 있음
- 성능 이슈 발생 가능 (N+1 문제 등)
- 학습 곡선 존재
꼭 써야 할까?
- 프로젝트 규모/성격에 따라 다름
- 소규모/중규모 프로젝트: ORM 써서 생산성 높이는 게 이득
- 대규모/고성능 필요한 프로젝트: Raw SQL과 혼용하는 게 좋음
- 회사/팀의 기술 스택 따르는 게 현실적
주니어 개발자 입장에서
- ORM 사용법 배우는 건 투자 가치 있음
- SQL 기본은 알아두는 게 좋음
- 처음엔 ORM으로 시작하고 점점 SQL도 배우는 방향 추천
실무에서는
- 둘 다 섞어 쓰는 경우 많음
- TypeORM, Sequelize는 Raw SQL 쿼리 지원함
- 간단한 CRUD는 ORM, 복잡한 쿼리는 SQL 직접 작성
기술별 ORM 예시
- Node.js
- Sequelize + Express 조합 (REST API 개발)
- TypeORM + NestJS 조합 (엔터프라이즈급 백엔드)
- Prisma + GraphQL 조합 (현대적 API 개발)
- Python
- SQLAlchemy + Flask (웹 애플리케이션)
- Django ORM (Django 프레임워크 내장)
- Tortoise ORM (비동기 앱용)
- Java
- Hibernate + Spring Boot (기업용 애플리케이션)
- JPA (Java Persistence API 표준)
- MyBatis (ORM과 SQL 중간 형태)
- PHP
- Eloquent ORM (Laravel 프레임워크)
- Doctrine (Symfony 프레임워크)
ORM은 생산성 도구! 만능은 아니지만 주니어라면 배워두면 확실히 도움됨.
SQL 기본기도 함께 공부하자. 현업에서는 대부분 ORM과 Raw SQL을 상황에 맞게 혼용한다는 점 기억하기!
728x90
반응형
'코딩:개발일지' 카테고리의 다른 글
Redis는 어떤 상황에서 사용하는 게 좋을까? (0) | 2025.05.27 |
---|---|
JWT vs OAuth2 정리 - 백엔드 개발자가 알아야 할 개념 (1) | 2025.05.25 |
Flutter, Android Studio, Android SDK, cmdline-tools 관계를 Java로 쉽게 이해하기 (0) | 2025.05.14 |
테스트와 품질 보증: 단위 테스트, 통합 테스트, TDD 정리 (0) | 2025.05.08 |
[프로그래머스] 가장 가까운 같은 글자 (Java - Lv.1) (0) | 2023.08.23 |