Skip to content

Commit 46ccf86

Browse files
committed
chore(board): merge from board port branch
2 parents 7acbbc8 + 7df3e7e commit 46ccf86

11 files changed

+92
-64
lines changed

README.md

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Introduction.
22

3-
이 샘플 프로젝트는 레이어드 아키텍처를 넘어 확장성과 유연성이 보장되고 MSA 철학에 걸맞은 헥사고날 아키텍처 기반으로 구현되었습니다.
3+
이 샘플 프로젝트는 레이어드 아키텍처를 넘어 확장성과 유연성을 보장하고 DDD 철학에 걸맞는 헥사고날 아키텍처 기반으로 구현되었습니다.
44

5-
기본적인 CRUD 동작과 헥사고날 구조를 파악과 개념을 익힐 수 있도록 하였습니다.
5+
기본적인 CRUD 동작과 헥사고날 아키텍처의 구조를 파악하고 관점을 익힐 수 있도록 하였습니다.
66

77
다음 항목을 포함합니다.
88

@@ -31,9 +31,9 @@ me.nettee
3131

3232
Adapter는 Application 계층에 정의된 port를 구현합니다.
3333

34-
- Driving Adapter는 시스템 외부에서 들어오는 요청을 담당합니다. ( HTTP 요청, 메시지 소비 ) 이후 애플리케이션에 전달합니다.
35-
- Driven Adpater는 시스템이 외부로 나가는 작업을 담당합니다. ( DB CRUD 작업, 외부 API 호출, 메시지 전달)
36-
- Driven Adapter는 Spring Data JPA를 사용합니다.
34+
- Driving Adapter는 시스템 외부에서 들어오는 요청을 담당합니다. (HTTP 요청, 메시지 소비) 이후 애플리케이션에 전달합니다.
35+
- Driven Adpater는 시스템이 외부로 나가는 작업을 담당합니다. (DB CRUD 작업, 외부 API 호출, 메시지 전달)
36+
- 실습에서 Driven Adapter는 RDB Adapter로, Spring Data JPA를 사용합니다.
3737

3838
# Prerequisites
3939

@@ -42,37 +42,63 @@ Adapter는 Application 계층에 정의된 port를 구현합니다.
4242

4343
# Branch Rule
4444

45-
개발자들은 다음과 같은 Branch Rule을 꼭 숙지하고 준수해 주시기 바랍니다.
45+
개발자들은 다음과 같은 Branch Rule을 꼭 숙지하고 준수해 주시기 바랍니다. (간소화된 브랜치 운영)
4646

4747
- **main 브랜치는 읽기 전용 입니다.**
4848
- main 브랜치는 관리자(`@merge-simpson`, `@silberbullet`)만 force push가 가능합니다.
49-
- 모든 변경 사항은 feature 브랜치를 생성 후, main 브랜치로 병합해야 합니다.
49+
- **feature 브랜치**: 모든 변경 사항은 <ins>feature 브랜치</ins>를 생성 후, main 브랜치로 병합해야 합니다.
50+
- `feature/기능명` 양식으로 명명하며, 영문 소문자, 숫자 및 하이픈(케밥 케이스)를 사용합니다. (추가적인 슬래시를 사용하지 않습니다.)
51+
52+
```mermaid
53+
gitGraph
54+
commit
55+
commit
56+
branch feature/board-example
57+
branch feature/board-something
58+
checkout feature/board-example
59+
commit
60+
checkout feature/board-something
61+
commit
62+
commit
63+
checkout feature/board-example
64+
commit
65+
checkout main
66+
merge feature/board-example
67+
checkout main
68+
merge feature/board-something
69+
commit
70+
```
5071
51-
- **병합 전 Pull Request는 필수입니다.**
72+
- **주요 브랜치에 병합 전 Pull Request(PR)는 필수입니다.**
5273
- Pull Request를 생성할 때, 최소 2명의 reviewer를 지정해야 합니다.
5374
- 관리자(@merge-simpson, @silberbullet)는 리뷰 없이 병합이 가능합니다.
54-
- **코드에 대한 모든 논의(conversations)가 해결되지 않은 상태에서는 Pull Request를 병합할 수 없습니다.**
75+
- **코드에 대한 모든 논의(conversations)가 해결(resolved)되지 않은 상태에서는 Pull Request를 병합할 수 없습니다.**
5576
<details>
5677
<summary>conversations 예시 보기</summary>
5778
5879
1. @silberbullet 님이 pull request 생성 후, reviewer를 @merge-simpson 에게 신청하였습니다.
5980
2. @merge-simpson 님은 코드 수정을 위해 comment를 남겼습니다.
60-
3. @silberbullet 님은 해당 코드를 수정하여 push 후 @merge-simpson님이 남긴 comment에 수정사항을 적어놓았습니다.
81+
3. @silberbullet 님은 해당 코드를 수정하여 push 후 @merge-simpson 님이 남긴 comment에 수정사항을 적어 놓았습니다.
6182
4. @merge-simpson "Resolve conversation" 버튼을 클릭하여 피드백이 해결되었음을 표시합니다.
62-
5. 비로서 @silberbullet 님은 코드 병합이 가능합니다.
83+
5. 비로소 @silberbullet 님은 코드 병합이 가능합니다.
6384
6485
</details>
6586
87+
# Commit Message
88+
89+
커밋 메시지의 제1 규칙은 '알아볼 수 있는 메시지 전달'입니다.
90+
커밋 양식의 준수도 좋지만, 양식의 각 바운더리는 차근차근 공감대가 모이는 방향으로 맞추어 봅니다.
6691
67-
# Basic Commit Message Type
92+
## Basic Commit Message Type
6893
69-
기본적인 커밋 메시지의 첫 단어는 작업의 목적을 명확히 하기 위해 타입으로 시작합니다.
94+
커밋 메시지의 첫 단어는 작업의 목적을 명확히 하기 위해 커밋 타입으로 시작합니다.
7095
71-
다음 아래의 타입을 실습으로 사용해보시면 좋습니다.
96+
아래의 타입을 실습으로 사용해 보시면 좋습니다.
7297
73-
- feat: 새로운 기능 추가
74-
- fix: 버그 수정
75-
- docs: 문서 수정 (README.md 등)
76-
- refactor: 코드 리팩토링 (기능 변화 없음)
77-
- test: 테스트 코드 추가 또는 수정
78-
- chore: 빌드 작업, 패키지 매니저 설정, 기타 작업 등
98+
- **feat**: 새로운 기능 추가
99+
- **fix**: 버그 수정
100+
- **docs**: 문서 생성 및 수정 (README.md 등)
101+
- **refactor**: 코드 리팩토링 (기능 변화 없음: 성능 개선, 패키지 이동, 파일·식별자 수정 등)
102+
- **test**: 테스트 코드 추가 또는 수정
103+
- **chore**: 코드의 구조나 동작에 영향을 주지 않는 기타 작업
104+
- **build**: 빌드 관련 작업, 패키지 매니저 설정 등
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package me.nettee.board.application.model;
2+
3+
import me.nettee.board.application.domain.type.BoardStatus;
4+
5+
import java.time.Instant;
6+
7+
public final class BoardQueryModel {
8+
9+
private BoardQueryModel() {
10+
}
11+
12+
public record BoardDetail(
13+
Long id,
14+
String title,
15+
String content,
16+
BoardStatus status,
17+
Instant createdAt,
18+
Instant updatedAt
19+
) {
20+
}
21+
22+
public record BoardSummary(
23+
Long id,
24+
String title,
25+
BoardStatus status,
26+
Instant createdAt,
27+
Instant updatedAt
28+
) {
29+
}
30+
}

src/main/java/me/nettee/board/application/model/BoardReadDetailModel.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/main/java/me/nettee/board/application/model/BoardReadSummaryModel.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/main/java/me/nettee/board/application/port/BoardCommandPort.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.Optional;
44
import me.nettee.board.application.domain.Board;
5+
import me.nettee.board.application.domain.type.BoardStatus;
56

67
public interface BoardCommandPort {
78

@@ -11,5 +12,5 @@ public interface BoardCommandPort {
1112

1213
Board update(Board board);
1314

14-
void delete(Long id);
15+
void updateStatus(Long id, BoardStatus status);
1516
}
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package me.nettee.board.application.port;
22

3-
4-
import java.util.Optional;
5-
import java.util.Set;
63
import me.nettee.board.application.domain.type.BoardStatus;
7-
import me.nettee.board.application.model.BoardReadDetailModel;
8-
import me.nettee.board.application.model.BoardReadSummaryModel;
4+
import me.nettee.board.application.model.BoardQueryModel.BoardDetail;
5+
import me.nettee.board.application.model.BoardQueryModel.BoardSummary;
96
import org.springframework.data.domain.Page;
107
import org.springframework.data.domain.Pageable;
118

9+
import java.util.Optional;
10+
import java.util.Set;
11+
1212
public interface BoardQueryPort {
1313

14-
Optional<BoardReadDetailModel> findById(Long id);
14+
Optional<BoardDetail> findById(Long id);
1515

16-
Page<BoardReadDetailModel> findAll(Pageable pageable);
16+
Page<BoardSummary> findAll(Pageable pageable);
1717

18-
Page<BoardReadSummaryModel> findByStatusesList(Pageable pageable, Set<BoardStatus> statuses);
18+
Page<BoardSummary> findByStatusesList(Pageable pageable, Set<BoardStatus> statuses);
1919
}

src/main/java/me/nettee/board/application/usecase/BoardCreateUseCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@
55
public interface BoardCreateUseCase {
66

77
Board createBoard(Board board);
8-
98
}

src/main/java/me/nettee/board/application/usecase/BoardDeleteUseCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33
public interface BoardDeleteUseCase {
44

55
void deleteBoard(Long id);
6-
76
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package me.nettee.board.application.usecase;
22

3-
import java.util.Set;
43
import me.nettee.board.application.domain.type.BoardStatus;
5-
import me.nettee.board.application.model.BoardReadSummaryModel;
4+
import me.nettee.board.application.model.BoardQueryModel.BoardSummary;
65
import org.springframework.data.domain.Page;
76
import org.springframework.data.domain.Pageable;
87

9-
public interface BoardReadByStatusesUseCase {
8+
import java.util.Set;
109

11-
Page<BoardReadSummaryModel> findByStatuses(Set<BoardStatus> statuses, Pageable pageable);
10+
public interface BoardReadByStatusesUseCase {
1211

12+
Page<BoardSummary> findByStatuses(Set<BoardStatus> statuses, Pageable pageable);
1313
}
1414

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package me.nettee.board.application.usecase;
22

3-
import me.nettee.board.application.model.BoardReadDetailModel;
3+
import me.nettee.board.application.model.BoardQueryModel.BoardDetail;
44

55
public interface BoardReadUseCase {
66

7-
BoardReadDetailModel getBoard(Long id);
8-
7+
BoardDetail getBoard(Long id);
98
}

0 commit comments

Comments
 (0)