2025-12-08
1일 1아티클
요즘IT
ORM과 SQL
차이점
- ORM
- 객체/도메인 중심 추상화
- 반복 SQL 감소, 개발 속도 향상
- 내부 쿼리를 프레임워크가 생성
- 책임 주체 : 도구 + 내부를 이해하는 개발자
- SQL
- 데이터/쿼리 중심 사고
- 인덱스/조인/트랜잭션 직접 설계
- 디버깅과 성능 시각화
- 책임 주체 : 개발자
실무에서의 ORM 문제점
- N+1 문제
- ORM이 생성한 조인과 조건의 잘못으로 인덱스를 활용하지 못하는 실행 계획
- 캐시, 페이징, 통계 쿼리 등 ORM 추상화에 애매하게 걸리는 영역
- 특정 DBMS 기능(힌트, 부분 인덱스, 분석 함수, etc.)을 쓰기 어려운 답답함
현실적 운영 원칙
- 평범한 CRUD + 단순 조회 : ORM을 통한 개발 속도 향상
- 복잡한 통계, 대량 데이터 집계, 성능 주요 구간 : 직접 SQL 작성
- 문제 발생 : ORM이 만든 SQL 열람, 실행 계획 분석이 가능한 개발자의 역할
실무의 현 구조는, ORM 위에 서 있는 SQL 형태
단계별 학습 제안
- ORM + 기본 SQL
- ORM이 찍는 실제 SQL 로그 확인
- SQLD 수준의 내용 커버
- 실무형 SQL
- 복잡한 검색 조건, 통계, 페이징, 다중 조인은 직접 SQL로 작성
ORM이 애매하게 처리하는 쿼리는네이티브 SQL또는View,Stored Procedure등으로 분리
- SQL 레퍼런스로 성장
- 서비스 특성에 맞는 인덱스 전략, 파티셔닝 전략, 쿼리 튜닝 패턴 정리
- ORM 설정(지연 로딩, 즉시 로딩, 배치 사이즈, etc.)을 SQL 실행 결과 기준으로 조정
- SQLP 수준의 내용
로드맵의 핵심 : SQL 기반 위에 ORM 활용 능력 쌓기
오늘 배운 것
- JWT
내일 할 일
- JWT (con.)