2025-12-08

1일 1아티클

요즘IT

ORM과 SQL

차이점

  1. ORM
    • 객체/도메인 중심 추상화
    • 반복 SQL 감소, 개발 속도 향상
    • 내부 쿼리를 프레임워크가 생성
    • 책임 주체 : 도구 + 내부를 이해하는 개발자
  2. SQL
    • 데이터/쿼리 중심 사고
    • 인덱스/조인/트랜잭션 직접 설계
    • 디버깅과 성능 시각화
    • 책임 주체 : 개발자

실무에서의 ORM 문제점

  1. N+1 문제
  2. ORM이 생성한 조인과 조건의 잘못으로 인덱스를 활용하지 못하는 실행 계획
  3. 캐시, 페이징, 통계 쿼리 등 ORM 추상화에 애매하게 걸리는 영역
  4. 특정 DBMS 기능(힌트, 부분 인덱스, 분석 함수, etc.)을 쓰기 어려운 답답함

현실적 운영 원칙

  1. 평범한 CRUD + 단순 조회 : ORM을 통한 개발 속도 향상
  2. 복잡한 통계, 대량 데이터 집계, 성능 주요 구간 : 직접 SQL 작성
  3. 문제 발생 : ORM이 만든 SQL 열람, 실행 계획 분석이 가능한 개발자의 역할

실무의 현 구조는, ORM 위에 서 있는 SQL 형태

단계별 학습 제안

  1. ORM + 기본 SQL
    • ORM이 찍는 실제 SQL 로그 확인
    • SQLD 수준의 내용 커버
  2. 실무형 SQL
    • 복잡한 검색 조건, 통계, 페이징, 다중 조인은 직접 SQL로 작성
    • ORM이 애매하게 처리하는 쿼리는 네이티브 SQL 또는 View, Stored Procedure 등으로 분리
  3. SQL 레퍼런스로 성장
    • 서비스 특성에 맞는 인덱스 전략, 파티셔닝 전략, 쿼리 튜닝 패턴 정리
    • ORM 설정(지연 로딩, 즉시 로딩, 배치 사이즈, etc.)을 SQL 실행 결과 기준으로 조정
    • SQLP 수준의 내용

로드맵의 핵심 : SQL 기반 위에 ORM 활용 능력 쌓기

오늘 배운 것

  1. JWT

내일 할 일

  1. JWT (con.)

참고자료

results matching ""

    No results matching ""