[영상후기] [10분 테코톡] 누누, 다즐의 클린 아키텍처


📦 com.example.layeredarchitecture.board
├── controller
│ └── BoardController.java # REST 컨트롤러
├── service
│ └── BoardService.java # 서비스 클래스 (비즈니스 로직)
├── repository
│ └── BoardRepository.java # JPA 리포지토리 인터페이스
└── entity
└── Board.java # 엔티티
└── dto
└── AllBoardResponse.java # 게시글 전체 응답 Dto
└── BoardCreateRequestDto.java # 게시글 작성 요청 Dto
└── BoardDetail.java # 게시글 상세 응답 Dto
└── UpdateBoardRequestDto.java # 게시글 수정 요청 Dto

BoardController 라는 Adapter에서 사용자 요청을 받음Board로 변환BoardService 이라는 Port(Use Case)를 사용해서 사용자 요청 처리BoardServiceImpl 이용BoardServiceImpl 에서 BoardRepository Port 이용하여 DB 접근 및 Board 엔티티 반환BoardRepositoryAdapter 이용SpringDataBoardRepo 주입 (JPA Repository)BoardJpaEntity를 Board로 변경(JPA Entity가 도메인 Entity 의존)BoardController에서 Mapper 이용하여 응답 DTO 변환 및 반환
com.example.hexagonal.board
├── domain # Pure Domain (POJO + Port 인터페이스)
│ ├── Board.java # 순수 도메인 모델
│ ├── BoardService.java # Use Case Port
│ └── BoardRepository.java # Persistence Port
├── application # Use Case 구현체
│ └── BoardServiceImpl.java
└── adapters
├── in
│ └── web
│ ├── controller
│ │ └── BoardController.java
│ ├── dto
│ │ ├── BoardCreateRequestDto.java
│ │ ├── BoardDetailResponseDto.java
│ │ └── AllBoardResponseDto.java
│ └── mapper # DTO <-> 순수 도메인 모델
│ ├── BoardRequestMapper.java
│ └── BoardResponseMapper.java
└── out
└── persistence
├── entity
│ └── BoardEntity.java # JPA Entity
├── SpringDataBoardEntityRepository.java # JPA Repository
└── BoardRepositoryAdapter.java
adptes/in/web) 내에서만 사용adapters/in/web/mapper)에 두어각 아키텍처별로 구현 코드를 PR로 남겨두었고, 상세 설명을 메인 readme에 남겨두었습니다.
깃허브 바로가기 - BoardHexagonal
레이어드 짱짱맨.....