탑 다운 방식
문제점
과거에 뭣도 모르고 개발한 코드가 레거시 하다고 생각하고 리팩토링을 진행했습니다.
폴더 구조를 탑 다운 방식으로 생기는 문제가 발생했습니다.

위의 사진을 봤을 때, ArIcon ArIcon이 cms, user로 구분되어서 중복되어서 사용되고 있습니다.
개발을 진행할 때, 구조를 cms와 user로 api를 구분 지어야 하니까 폴더 구조를 나눠서 생각하자고 진했습니다. 이제 개발의 짬(?) 좀 차고 이 코드를 다시 와서 보니 잘못된 생각을 가지고 있다고 생각이 들었고, 중복된 구간을 해결하고자 프로젝트 구조를 다시 구성하려고 합니다.
변경점
아키텍처 변경 (탑 다운 → 클린 + 레이어드)
리팩토링 한 폴더 구조입니다.
presentation 은 Client와 가까운 코드들로 Controller, Facade가 위치하게 될 것입니다.
application 은 실제 로직에서 사용하는 코드들로 Service, Repository 인터페이스가 위치할 것입니다.
infrastructure 은 외부에서 주입되는 코드들로 데이터베이스 주입(JPA)과 Redis 주입 등이 여기에 들어갈 것입니다.
이렇게 Repository와 JPA Repository로 구분하며 구성한 이유는 그 후에 들어오실 분이 Mybatis 사용에 익숙하시면, Mybatis로 JPA가 익숙하면 JPA로 로직으로 실제 로직(Service)에 영향이 없게 하기 위해서 구성했습니다.

느낀 점
어렴풋이 개발 설계가 중요하다는 것을 느꼈지만, 이렇게까지 뼈저리게 느끼게 될 줄은 몰랐습니다. 역시나 사람은 경험해 보고 나서야 안다고 한다더니 제 이야기였습니다... 개발하기 전에 공부를 더 많이 했더라면 이런 실수는 범하지 않았을 것이라고 느꼈습니다. 다음에는 더욱 많은 아키텍처를 경험해 보고 상황에 따라 어떤 아키텍처가 적절한지 고민해 보고 개발을 진행하려고 합니다.
'Project > 회사프로젝트' 카테고리의 다른 글
| Android AGP 버전 업그레이드 (0) | 2026.03.25 |
|---|---|
| 프로젝트 리팩토링: Swagger 보안 (0) | 2024.12.02 |