JPA Repository
1. Repository 계층 구조 📌 인터페이스 상속 다이어그램 «interface» Repository<T, ID> │ 마커 인터페이스 — 메서드 없음. Spring이 스캔 대상을 식별하는 용도 │ «interface» CrudRepository<T, ID> │ 기본 CRUD 제공 (save, ...
1. Repository 계층 구조 📌 인터페이스 상속 다이어그램 «interface» Repository<T, ID> │ 마커 인터페이스 — 메서드 없음. Spring이 스캔 대상을 식별하는 용도 │ «interface» CrudRepository<T, ID> │ 기본 CRUD 제공 (save, ...
1. 연관관계 매핑이 필요한 이유 연관관계 매핑을 이해하려면 항상 세 가지 개념을 함께 생각해야 한다. 방향: 단방향(한쪽만 참조), 양방향(서로 참조) 다중성: @OneToOne / @OneToMany / @ManyToOne / @ManyToMany 연관관계 주인: 양방향일 때 FK를 실제로 관리하는 쪽 2. @ManyTo...
1. 영속성 컨텍스트란 JPA를 처음 접하면 “왜 DB에 바로 저장하지 않고 영속성 컨텍스트라는 중간 단계가 있는 걸까?”라는 의문이 생긴다. 예를 들어 한 HTTP 요청 안에서 아래와 같은 일이 벌어진다고 생각해보자. Member member = findById(1L); // SELECT → DB 왕복 1번 member.setNam...
1. @Entity @Entity는 해당 클래스가 JPA가 관리하는 엔티티임을 선언하는 어노테이션이다. 이 어노테이션이 붙어야만 JPA가 이 클래스를 인식하고 DB 테이블과 매핑한다. 📌 반드시 지켜야 할 제약 기본 생성자가 필수다. JPA는 DB에서 조회한 결과를 엔티티 객체로 변환할 때 내부적으로 리플렉션(Reflection)을 사용한다...
1. 개요 성능 튜닝은 단순히 인덱스를 추가하는 것이 아니다. 실행 계획을 읽고 병목을 찾은 뒤, 쿼리 재작성·인덱스 추가·통계 갱신·힌트 적용 등 다양한 방법을 조합해서 해결한다. 이 글은 Oracle, MySQL, PostgreSQL 세 DBMS에서의 실행 계획 분석, 슬로우 쿼리 감지, 그리고 쿼리 작성 시 반드시 지켜야 할 성능 주의사항을 정...
1. 개요 시퀀스와 인덱스는 실무에서 가장 자주 마주치는 DB 객체다. 시퀀스는 DBMS마다 지원 방식이 크게 다르고, 인덱스는 만드는 것보다 “언제 사용되고 언제 무력화되는지”를 아는 것이 훨씬 중요하다. 이 글은 DBMS별 문법 차이와 함께 인덱스가 실제로 동작하는 원리, 그리고 실무에서 자주 하는 실수를 중심으로 정리한다. ...
1. 개요 저장 프로시저와 PL/SQL 함수는 SQL 문과 제어 로직을 DB 서버에 저장해두고 이름으로 호출하는 프로그램 단위다. 비슷해 보이지만 반환값 유무, 호출 위치, 트랜잭션 처리 방식에서 차이가 있다. DBMS마다 선언 방식, 변수 대입 문법, 예외 처리 구조가 크게 달라 혼란이 생기기 쉬운 영역이다. 섹션 ...
1. 개요 서브쿼리, 인라인 뷰, WITH 절(CTE)은 복잡한 쿼리를 단계적으로 분리해서 처리하는 핵심 도구다. 기능은 유사해 보이지만 사용 위치와 목적이 다르고, TOP-N 쿼리나 재귀 CTE처럼 DBMS마다 문법이 크게 달라지는 영역이 있다. 이 글은 그 차이를 코드 예시 중심으로 정리한다. 섹션 내용 ...
1. 개요 JOIN, UNION, ROLLUP, PIVOT은 실무에서 가장 자주 쓰이는 SQL 구문이다. 특히 PIVOT과 FULL OUTER JOIN은 DBMS마다 지원 여부와 문법이 크게 달라 혼란이 생기기 쉽다. 이 글은 Oracle, MySQL, PostgreSQL 세 DBMS의 차이를 코드 예시와 표 중심으로 명확하게 정리한다. ...
1. 개요 Oracle, MySQL, PostgreSQL 세 가지 DBMS에서의 SQL 기초 문법 차이를 정리한다. 같은 기능이라도 DBMS마다 함수명이 다르거나 지원 여부가 다른 경우가 많기 때문에, 실무에서 DBMS를 바꾸거나 함께 다룰 때 혼란이 생기기 쉽다. 이 글은 그 차이를 표와 코드 예시 중심으로 명확하게 정리한다. ...