HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
남득윤 학습 저장소
/
만들면서 배우는 클린 아키텍쳐
만들면서 배우는 클린 아키텍쳐
/
3️⃣
03장 - 코드 구성하기
3️⃣

03장 - 코드 구성하기

 
책의 예제인 BuckPal 예제의 송금하기 유스케이스 대신
현재 진행중인 Aircnc 프로젝트의 숙소등록 유스케이스로 살펴보겠습니다.

계층으로 구성하기

aircnc - domain - Room - RoomPhoto - RoomRepository - RoomService - RoomPhotoService - persistence - RoomRepositoryImpl - web - RoomController
 

기능으로 구성하기

aircnc - room - Room - RoomPhoto - RoomRepository - RoomRegisterService - RoomPhotoUploadService - RoomRepositoryImpl - RoomController
 

아키텍처적으로 표현력 있는 패키지 구조

aircnc - room - adapter - in - web - RoomController - out - persistence - RoomPersistenceAdapter - JpaRoomRepository - s3 - RoomPhotoPersistenceAdapter - RoomPhotoS3Client - domain - Room - RoomPhoto - application - RoomRegisterService - RoomPhotoUploadService - port - in - RoomRegisterUseCase - RoomPhotoUploadUseCase - out - CreateRoomPort //영속성 계층을 위한 포트와 네이밍이 인상적이다 - ImageUploadPort
 이게 맞나?
이게 맞나?