MyBatis에서 Mapper 파일 안에서 CRUD를 나눠서 관리하는 이유
1. 가독성 향상
<!-- INSERT -->
<insert id="insertUser">...</insert>
<!-- SELECT -->
<select id="selectUserById">...</select>
<!-- UPDATE -->
<update id="updateUserEmail">...</update>
<!-- DELETE -->
<delete id="deleteUserById">...</delete>
- 하나의 XML 파일(또는 Java Mapper 인터페이스)에 너무 많은 SQL이 섞여 있으면 유지보수가 어렵습니다.
- 용도별로 분리하면 SQL 이름만 봐도 기능이 명확해짐.
2. 개발/디버깅 편의
- 특정 동작(insert/update 등)에 문제가 생겼을 때 관련 SQL만 빠르게 찾아서 수정 가능.
- 특히 UPDATE는 데이터 정합성에 민감하므로 추적이 쉬워야 함.
3. 의도 분리 (Separation of Concerns)
- 각각의 쿼리가 데이터를 조회하는지, 변경하는지, 생성하는지, 삭제하는지에 따라 목적이 다름.
- 의도별로 구분하면 코드리뷰나 QA에서도 빠르게 목적 파악 가능.