🧪 DTO ↔ Entity 변환 위치에 따른 성능 비교 실험

📌 실험 목적

Spring Boot 애플리케이션에서 DTO와 Entity 간 변환 책임을 어느 계층에 둘 것인지에 대한 논의가 많다.

이 실험의 목적은 변환 위치에 따라 실제 성능 차이가 존재하는지를 정량적으로 측정하고,

성능 이외에 어떤 요소들이 변환 위치 결정에 영향을 미치는지를 분석하는 것이다.


🧭 실험 환경

Device MacBook Pro M4
CPU M4 Pro 12 core
RAM DDR5X 24GB
OS macOS Sequoia
IDE IntelliJ
Web Framework Spring Boot 3(Java)
API Tool Postman

🧱 실험 설계

🗂️ 테스트 대상

총 4가지 방식으로 DTO ↔ Entity 변환을 수행하는 코드 버전을 구현하여 비교 실험:

버전 설명
v1 DTO/Entity 내부에 변환 메서드 작성 (toDto, toEntity)
v2 서비스 계층에서 변환 수행
v3 컨트롤러 계층에서 변환 수행
v4 전용 매퍼 클래스에서 변환 수행 (정적 메서드 사용)

🧪 실험 단계

단계 설명
A 유저 1000명 생성
B 특정 유저 1명에게 게시글 1000개 생성
C 유저 100명에 대해 게시글 10,000개를 랜덤 분배
D 유저 100명을 대상으로 10,000번 랜덤 조회
E 게시글 1000개를 가진 특정 유저 1명을 10,000번 조회