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번 조회 |