Tiny Star

mybatis 3

[Spring Boot] 대용량 데이터 이관 JPA vs JDBC vs MyBatis 비교

대용량 이관 시 JPA vs JDBC vs MyBatis: 어떤 Writer를 선택할까?대용량 데이터를 처리하다 보면, 성능이 코드 구조보다 우선이 될 때가 많다. 이 글은 실제 테스트를 통해 JPA, JDBC, MyBatis 각각의 Writer 성능을 비교하고, 어떤 상황에 어떤 Writer를 선택하는 게 좋은지 정리한 기록이다. 비교 조건약 10만 건의 BookRating 데이터를 단순 insert동적 매핑이나 조건 분기 없음각 방식으로 동일한 데이터를 동일 조건으로 insert 테스트성능 기준: 실행 시간(ms) 기본 구조 공통적으로 사용하는 Entity는 다음과 같다.@Entity@Data@NoArgsConstructor@AllArgsConstructorpublic class BookRating..

IT 2025.06.27

[대용량 이관] ItemWriter 선택 (JPA vs JDBC vs MyBatis)

파일 형식에 따라 Reader가 달라지기 때문에 이건 차치하고, 어떤 Writer를 써야할지 고민했다.MyBatisBatchItemWriter만 사용해봤는데, 실무에서 이걸 사용했던 이유는 테이블명이 기간에 따라 변경되기도 하고, if 문을 활용한 분기처리를 위한 동적매핑이 필요했기 때문이다.현재는 동적 매핑이 필요하지 않고 단순 Insert 처리만 하면 되기 때문에 굳이 이걸로 구현해야할까?란 생각이 들었기에 JdbcBatchItemWriter를 고려하게 됐다. JpaItemWriter는 [Spring Batch ItemWriter 성능 비교]를 보고 속도상 제외했다. 하지만!실제로 속도차이가 많이 나는지 궁금해서 테스트해보기로 했다. 구성공통 설정 (Entity)// BookRating.java@N..

[Spring Boot] MyBatis VS JPA

MyBatis와 JPA는 둘 다 데이터베이스와 연동하는 매퍼 프레임워크이다. MyBatisSQL Mapper 프레임워크개발자가 직접 SQL을 작성하고, 그 결과를 Java 객체와 매핑한다.특징복잡한 쿼리 작성이 쉬움DB 성능 최적화에 유리쿼리의 실행 순서와 내용을 명확히 알 수 있음사용 예) SELECT * FROM users WHERE id = #{id} INSERT INTO users(name, email) VALUES(#{name}, #{email}) UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id} DELETE FROM user..

IT 2025.04.23
top