diff --git a/README.md b/README.md index 81421e2..011414e 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,35 @@ ![image](https://github.com/U-is-Ni-in-Korea/Server-Unitied-Kotlin/assets/45380072/8b8a96e9-4225-493f-b9f2-a02d350351a0) -해당 프로젝트는 SOPT 32th APPJAM 프로젝트입니다. - -### Build -```text -$ ./gradlew clean build -``` -### Run -```text -$ java -jar build/libs/uni-${version}-SNAPSHOT-plain.jar -``` - -### Project Info +해당 프로젝트는 SOPT 32th APPJAM 프로젝트의 kotlin + Spring Boot 적용 및 Architecutre 설계 프로젝트 입니다. +## TOC +1.[Project Info](#Project-Info) +2.[Project Service Info](#Project-Service-Info) + +## Project Info +![image](https://github.com/U-is-Ni-in-Korea/Server-Unitied-Kotlin/assets/45380072/a7b1973b-a112-4a13-88e7-85cf032c7d39) +해당 프로젝트의 각 모듈은 CleanArchitecture 의 규칙을 이용합니다. +> module-infrastructure + +Clean Architecture 의 Interface Adapters 영역으로 실제 Web, UI, DB, ExternalInterface 와 연결되는 부분으로 설계하였습니다.
+Framework 혹은 UI 와 같은 외부적인 요인을 내부 UseCase 에서 사용하는 모델로 변경하거나 혹은 그 반대의 어뎁터 역할로 설계하였습니다. + +> module-usecase + +Clean Architecture 의 UseCase 영역과 동일한 역할을 수행하도록 설계하였습니다.
+비즈니스 시나리오와 같은 수단을 구현하고 이를 수행하는 역할로 설계하였습니다. + +> module-domain + +Clean Architecture 의 Entities 영역과 동일한 역할을 수행하도록 설계하였습니다.
+도메인에 해당하는 로직을 구현하도록 설계하였습니다.
+Kotlin 이외 의존성을 추가하지 않는 것을 목표로 설계하였습니다. + +> 의존 방향 + +infrastructure -> usecase -> domain 의 방향으로 의존할 수 있도록 설계하였습니다.
+내부에 존재하는 모듈은 외부의 의존하지 않으며 외부의 요청에 따라 동작할 수 있도록 DIP 를 적용하여 interface로 명시한 기능만을 수행할 수 있도록 구성하였습니다.
+각 모듈의 변경이 다른 모듈의 변경을 최소화하고 테스트하기 용이하게 만들어 다양한 테스트 코드를 작성하기 위해 이와 같이 구성하게 되었습니다. + +## Project Service Info
Java