성장 경험/배운 점 & 회고
[배운 점 & 회고] 7월 14일
Tarake
2025. 7. 14. 21:48
작업 개요
- 프로젝트/업무명 : 안티드론성능평가시스템/백엔드
- 기간 : 2025.03.02 ~
- 주요 기술 스택 : Java, MySQL, Spring Boot
배운 점
- DTO는 기능별로 나누는것이 항상 좋은 방식은 아니다.
- JSON 형태로 하나의 컬럼에 저장되는 데이터 구조에서는, DTO도 해당 저장 포맷과 일관된 구조를 유지하는 것이 중요하다.
- 기능별로 DTO를 나누면 가독성과 유효성 검사에는 도움이 되지만, 최종 저장 구조와 맞지 않으면 오히려 구조가 복잡해질 수 있다.
- 리팩토링 전에 단순히 기능 단위로만 나누지 말고, 데이터의 생성 → 처리 → 저장 흐름을 먼저 파악해야 한다.
회고
이번 리팩토링에서는 "기능 단위로 DTO를 나누는 것이 더 나은 설계일 것"이라는 판단 아래 여러 DTO를 작성했지만, JSO 포맷은 하나로 통합해야 한다는 점을 간과해 결국 다시 원래 구조로 롤백하게 되었습니다.
사실 기능을 잘게 나누는 설계 자체는 나쁘지 않았지만, 핵심 데이터가 어떤 형식으로 저장되고 통합되는지를 충분히 고려하지 못했던 것이 아쉬웠습니다. 구조 개선이라는 명분에만 집중한 나머지, 실질적인 데이터 구조를 간과했다는 점을 돌아보게 되었습니다.
앞으로 설계를 리팩토링할 때 "이게 더 깔끔해 보인다"는 기준보다는, 실제 운영 구조와 데이터 흐름에 맞는지부터 먼저 따져보는 개발자가 되려고 합니다. 기능 분리는 그 다음 문제이며, 전체적인 시스템 구조 안에서 균형을 맞추는 것이 진정한 설계임을 느꼈습니다.