본문 바로가기
반응형
SMALL

Mybatis/성능 및 유지보수 팁4

MyBatis Generator 소개 MyBatis Generator(MBG)란?MyBatis Generator는 데이터베이스 테이블 구조를 기반으로Model 클래스Mapper 인터페이스Mapper XML 파일을 자동으로 생성해주는 도구입니다.즉, 반복적이고 귀찮은 작업(DTO, CRUD Mapper 작성)을 대신해주는 자동화 툴이에요.MBG의 주요 기능 기능 설명 모델 클래스 자동 생성테이블 컬럼과 매핑되는 Java 클래스 생성Mapper 인터페이스 생성CRUD 메서드 자동 생성Mapper XML 파일 생성select, insert, update, delete SQL 작성다양한 DB 지원MySQL, Oracle, PostgreSQL 등동적 SQL 일부 지원예: 조건부 검색, Primary Key 조회MBG 기본 사용 흐름Generator .. 2025. 4. 18.
Mapper 관리 전략 (XML vs 주석 기반) 1. XML 기반 Mapper 관리개념SQL을 .xml 파일에 따로 작성Java 인터페이스와 매핑(namespace 일치)예시UserMapper.javapublic interface UserMapper { User findById(int id);} UserMapper.xml SELECT * FROM users WHERE id = #{id} 장점복잡한 SQL (동적 조건, 조인, 페이징 등) 작성이 편함SQL 별도 관리 → 쿼리 수정 시 Java 코드 변경 불필요SQL 재사용 가능 (, )DBA, SQL 최적화 담당자와 협업 용이단점파일 관리 필요 (xml 따로 관리해야 함)간단한 CRUD에도 XML을 따로 만들어야 해서 번거로울 수 있음2. 어노테이션(주석) 기반 Mapper 관리개념SQ.. 2025. 4. 18.
로그 설정 및 SQL 디버깅 1. 로그 목적: 어떤 내용을 보고 싶은가? 로그 내용 보기 위해 필요한 설정 실행된 SQL 문org.mybatis or org.apache.ibatis바인딩된 파라미터JDBC 로그 (spring.datasource)전체 트랜잭션 흐름org.springframework.transaction2. application.yml 설정 예시logging: level: root: INFO org.mybatis: DEBUG org.apache.ibatis: DEBUG org.mybatis.spring.SqlSessionFactoryBean: DEBUG org.springframework.transaction: DEBUG jdbc.sqlonly: DEBUG # log4jdbc 사용.. 2025. 4. 18.
N+1 문제 해결 N+1 문제란?문제 설명1개의 쿼리(N)를 날려서 엔티티 목록을 조회하고,각각의 엔티티마다 추가 쿼리(1)를 반복해서 실행하게 되는 구조예: 사용자 리스트를 조회하고, 각 사용자에 대한 게시글 목록을 다시 조회할 때SELECT * FROM users; -- 1회SELECT * FROM posts WHERE user_id = 1; -- N회SELECT * FROM posts WHERE user_id = 2;...결과적으로 N + 1개의 SQL이 실행되며, 데이터가 많아질수록 성능이 급격히 저하됩니다.해결 방법 1: JOIN + collection 매핑예: 사용자 1:N 게시글 목록 SELECT u.id AS user_id, u.name AS use.. 2025. 4. 17.
LIST