Skip to content

Commit

Permalink
docs: README.md 파일 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
parksey authored Apr 19, 2024
2 parents fde7b96 + 09897d6 commit 21fb037
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 35 deletions.
52 changes: 31 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,38 +78,38 @@
<br><br>

## 🗂️ 프로젝트 구조
![img.png](img/img.png)

해당 구조는 우아한 기술 블로그에서 권용근님의 [멀티 모듈 설계 이야기](https://techblog.woowahan.com/2637/)를 참고 하였습니다.
- [module-application](https://github.com/prgrms-be-devcourse/BE-04-JTOON/tree/develop/module-application)
- [module-core](https://github.com/prgrms-be-devcourse/BE-04-JTOON/tree/develop/module-core)
- [module-domain](https://github.com/prgrms-be-devcourse/BE-04-JTOON/tree/develop/module-domain)
- [module-internal](https://github.com/prgrms-be-devcourse/BE-04-JTOON/tree/develop/module-internal)
- [jtoon-core](./jtoon-core)
- [jtoon-db](./jtoon-db)
- [jtoon-internal](./jtoon-internal)
- [jtoon-support](./jtoon-support)
- [jtoon-system](./jtoon-system)

```.
├─ ...
├─ module-application
│   └── app-api
├─ jtoon-core
│   └── core-api
│   └── src.main.java.shop.jtoon
│         ├── global
│         ├── member
│         ├── payment
│         ├── security
│         └── webtoon
│   └── core-domain
│   └── src.main.java.shop.jtoon
│         ├── global
│         ├── config
│         ├── login
│         ├── member
│         ├── payment
│         ├── util
│         └── webtoon
├── module-core
│   └── src.main.java.shop.jtoon
│   ├── util
│   ├── type
│   └── exception
├── module-domain
│   ├── domain-member
│   ├── domain-payment
│   ├── domain-webtoon
│   ├── domain-jpa
│   └── domain-redis
├── module-internal
├── jtoon-db
│   └── db-redis
|
├── jtoon-internal
│   └── core-web
│   ├── security
│   ├── annotation
Expand All @@ -118,6 +118,16 @@
│   ├── iamport-client
│   ├── s3-client
│   └── smtp-client
|
├── jtoon-support
│   └── logging
│   └── monitoring
|
├── module-system
│   └── src.main.java.shop.jtoon
│   ├── util
│   ├── type
│   └── exception
└── settings.gradle
```
Expand Down
Binary file added img/img.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 18 additions & 9 deletions jtoon-core/README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
# JToon Core

Jtoon 서비스의 해결하고자하는 도메인에 대한 모듈
Jtoon 서비스의 해결하고자하는 도메인과 사용자 요청에 대한 대한 모듈
- core-api
- core-domain

## 계층별 지키고자 하는 조건
(layered 기반)

## 계층별 지키고자 하는 조건
- Presentation Layer : 외부 의존성이 높은 영역, Controller, dto 존재
- Domain Layer(Service) : 해결하고자 하는 문제인 도메인에 집중하고자 하는 layer
- Repository Layer : 상세 구현 로직이 다양한 자원에 접근할 수 있는 기능을 제공하는 레이어

## Include

### 초기
# Include

---

## 1.초기
- `core-api`: 전체 도메인 로직에 대한 모듈만 존재

단점:
1. 모든 기능이 해당 모듈에 몰려있어서 많은 의존성을 가지고 있다.
2. 도메인은 문제를 해결하기 위한 영역이기 때문에 외부의 의존성을 가지는 것이 맞을까?
3. Batch서버를 따로 올린다고 했을 때, Runnable한 API가 2개가 생기게 되는데 이때 동일한 도메인 기능을 서로 다르게 관리하게 된다.

## 2번째 리팩토링
---

## 2. 2번째 리팩토링

### Core API
Presentation 영역, 외부 의존성이 높다.
Expand All @@ -31,8 +37,8 @@ Presentation 영역, 외부 의존성이 높다.
오직 Domain 서비스만 관리하는 모듈

- Domain서 서비스를 문제만 해결하기 위해 spring framework의 의존성을 없애는 것으로 한다.
- spring framework가 자체적으로 변경되든, framework를 변경할때 domain 로직이 변경되는 것이 옳지 않다고 생각
- 단 DB가 존재하기 때문에, JPA는 추가
- spring framework가 자체적으로 변경되든, framework를 변경할때 domain 로직이 변경되는 것이 옳지 않다고 생각
- 다만 RDB 모듈 분리에 따른 트레이드오프를 생각하여 현재는 결합상태

#### 문제
- Bean등록을 어떻게 하면 좋을까?
Expand All @@ -42,4 +48,7 @@ Presentation 영역, 외부 의존성이 높다.
이렇게하면, 여러 개의 Runnable한 서비스가 가능하다

단점:
- 도메인이 DB에 의존적이다. 근데 DB를 변경하는 경우가 많을까? 에 대한 생각을 해볼 필요가 있다.
- 도메인이 DB에 의존적이다. 근데 DB를 변경하는 경우가 많을까? 에 대한 생각을 해볼 필요가 있다.

따라서 현재는 글로벌 캐시 및 event기반 pub/sub용 redis은 db모듈로 따로 뺐지만 RDB의 경우 domain과 결합되어 있다.
rdb를 도메인과 분리하여 외부 의존성을 전부 빼고, 순수 도메인에 집중하게 된다면 Transaction 관리에 대한 문제를 생각해봐야 할 것 같다.
12 changes: 12 additions & 0 deletions jtoon-db/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Jtoon-db
- db의 의존성을 domain모듈에서 완전히 배제하고
- 도메인 모듈이 여러 도메인 모듈로 분리가 됐을 경우 공통된 config를 추가적으로 작성해주는 대신 모듈을 분리하여 사용할 수 있다는 장점으로 사용

## Include
현재는 Redis만 존재한다.

- `core-api` -runtimeOnly-> `jtoon-db`
- `core-domain` <-compileOnly- `jtoon-db`

core-api는 jtoon-db를 runtime시 classpath를 찾으며 실행시 관련 정보를 가져올 수 있게 하였다.
도한, `jtoon-db``core-domain`을 컴파일때 가지게 하면서 db에서 domain에 관련된 정보를 사용할 수 있게 하였다.
4 changes: 2 additions & 2 deletions jtoon-support/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
Jtoon 서포트 모듈

## 분류 이유
`여러 실행가능한 서비스로 확장될 경우(batch서버, api서버 등) 모니터링, 로깅같은 기능은 공통으로 필요하기 때문에 분리`

`MSA전환시 MS로 분리가 되게 되는데 모니터링, 로깅같은 기능은 공통으로 필요하기 때문에 분리`

## 종류

### Logging
로깅 모듈

로그 파일 설정 정보 추가


### Monitoring
Expand Down
4 changes: 1 addition & 3 deletions jtoon-system/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@
프로젝트 전반에 걸쳐 사용하는 공통 시스템

## 종류
- Exception
- Util
-
- Exception, Util, type

0 comments on commit 21fb037

Please sign in to comment.