diff --git a/README.md b/README.md index cb697f8f..4c72097f 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ # 우리팀의 강점 - +[자세한 문서화를 했어요.](https://www.notion.so/4b6587fb182447eb93183d6160b5ef0a) [애자일하게 서비스를 개발했어요.](https://www.notion.so/da2fc7e8d99f4f4484bad58ed2e1b233) diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 00000000..4703ecc2 --- /dev/null +++ b/backend/README.md @@ -0,0 +1,56 @@ +# 소나큐브 정적 리포트 +![image](https://user-images.githubusercontent.com/48986787/139186557-14ebc92c-f54c-483c-ab72-f20fb8b5a96d.png) + + +# 멀티모듈 프로젝트 구조 설명 +![image](https://user-images.githubusercontent.com/48986787/139174604-f0ff822f-0087-4d2a-b663-cfe9585171ae.png) +## 모듈별 설명 +### app-cvi-api +```java +- 사용자가 사용할 수 있는 기능을 제공하는 `애플리케이션 모듈`이에요. +- Controller, View의 책임을 가지고 있어요. +- 의존하는 모듈의 비즈니스 흐름 제어를 담당해요. +``` + +### common-cvi +```java +- 공통적으로 사용하는 예외 객체를 제공하는 `공통 모듈`이에요 +- 커스텀 예외, Util성 클래스가 이 모듈에 속해요. +``` + +### cvi-publicdate-parser +```java +- 백신 현황 공공데이터를 제공하는 API 서비스에, Http요청을 보내, 응답 받은 Json값을 매핑하는 모듈이에요. +- 스프링 의존성이 아닌, 자바에서 제공하는 URL Connection을 이용해요. +``` + +### domain-cvi +```java +- 비즈니스 로직을 수행하는 `도메인 모듈`이에요. +- 하나의 인프라스트럭쳐(DBMS)을 가지며 CRUD를 수행해요. +- Model의 책임을 지니고 있어요. +``` + +### domain-cvi-aws-s3-service +```java +- AWS S3에 이미지를 업로드/삭제하는 기능을 제공해요. +- AWS에 직접 연결해야하기 때문에 설정파일(application-aws-s3.yml)의 설정값이 필요해요. +- 우테코 계정의 S3는 우테코 계정 내의 EC2에서만 접근할 수 있기 때문에, local 환경에서 테스트하기 위해서는 개인 AWS 계정의 S3와 그에 따른 설정을 사용해야 해요. + (이에 대한 방법은 문서에 정리해 뒀어요.) +``` + +### domain-cvi-oauth-service +```java +- 소셜 로그인 서비스에 사용자 데이터를 요청하는 모듈이에요. +``` + +### domain-cvi-publicdata-service +```java +- 공공데이터와 관련된 조회와 저장의 비즈니스 흐름을 담당해요. +- 조회에 대하여 캐싱을 사용했어요. +``` + +### domain-cvi-scheduler +```java +- 정해진 시간 마다, 로직을 실행하는 모듈이에요. +``` \ No newline at end of file diff --git a/backend/app-cvi-admin/build.gradle b/backend/app-cvi-admin/build.gradle deleted file mode 100644 index 75d320e1..00000000 --- a/backend/app-cvi-admin/build.gradle +++ /dev/null @@ -1,5 +0,0 @@ -bootJar { enabled = false } -jar { enabled = true } - -dependencies { -} diff --git a/backend/app-cvi-admin/src/main/java/com/cvi/empty.txt b/backend/app-cvi-admin/src/main/java/com/cvi/empty.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/app-cvi-admin/src/main/resources/empty.txt b/backend/app-cvi-admin/src/main/resources/empty.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/app-cvi-admin/src/test/java/com/cvi/empty.txt b/backend/app-cvi-admin/src/test/java/com/cvi/empty.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/app-cvi-admin/src/test/resources/empty.txt b/backend/app-cvi-admin/src/test/resources/empty.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/app-cvi-api/README.md b/backend/app-cvi-api/README.md index cf6042e6..f4495a16 100644 --- a/backend/app-cvi-api/README.md +++ b/backend/app-cvi-api/README.md @@ -5,8 +5,11 @@ - 의존하는 모듈의 비즈니스 흐름 제어를 담당해요. ## 의존 모듈 -- `common-cvi`: 예외 응답 객체를 사용해요. - `domain-cvi`: Model에 CRUD 작업을 위임해요. - `domain-cvi-oauth-service`: 소셜 로그인 요청에 대한 서비스를 위임해요. - `domain-cvi-publicdata-service`: 공공 데이터 요청에 대한 서비스를 위임해요. -- `domain-cvi-scheduler`: 일정 기간마다 수행되어야 하는 작업을 위임해요. \ No newline at end of file +- `domain-cvi-scheduler`: 일정 기간마다 수행되어야 하는 작업을 위임해요. +- `domain-cvi-aws-s3-service`: 게시글의 사진을 저장하는 작업을 위임해요. + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180135-dd2a12dd-23b1-487c-9ac6-5375e698ff6d.png) diff --git a/backend/app-cvi-api/build.gradle b/backend/app-cvi-api/build.gradle index e4735e52..e30a2eac 100644 --- a/backend/app-cvi-api/build.gradle +++ b/backend/app-cvi-api/build.gradle @@ -3,7 +3,6 @@ version = '0.0.1-SNAPSHOT' dependencies { implementation(project(":domain-cvi")) implementation(project(":domain-cvi-oauth-service")) - implementation(project(":domain-cvi-publicdata-service")) implementation(project(":domain-cvi-scheduler")) implementation(project(":domain-cvi-aws-s3-service")) diff --git a/backend/build.gradle b/backend/build.gradle index b92e8e4e..50029b29 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -117,7 +117,7 @@ subprojects { } } -def skipSonarProjects = [project(':app-cvi-admin'), project(':common-cvi'), project(':domain-cvi-aws-s3-service'), project(':domain-cvi-scheduler')] +def skipSonarProjects = [project(':common-cvi'), project(':domain-cvi-aws-s3-service'), project(':domain-cvi-scheduler')] configure(skipSonarProjects) { sonarqube { skipProject = true diff --git a/backend/common-cvi/README.md b/backend/common-cvi/README.md index f397aaec..76b1a2cb 100644 --- a/backend/common-cvi/README.md +++ b/backend/common-cvi/README.md @@ -1,7 +1,11 @@ # common-cvi ## 모듈 설명 -- 공통적으로 사용하는 예외 객체를 제공하는 `독립 모듈`이에요 +- 공통적으로 사용하는 예외 객체를 제공하는 `공통 모듈`이에요 - 커스텀 예외, Util성 클래스가 이 모듈에 속해요. ## 의존 모듈 -- 없음 \ No newline at end of file +- 없음 + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180258-59299b6d-065a-4671-8061-e7dd3ee406df.png) + diff --git a/backend/cvi-publicdata-parser/README.md b/backend/cvi-publicdata-parser/README.md index bcce0896..b74eb89a 100644 --- a/backend/cvi-publicdata-parser/README.md +++ b/backend/cvi-publicdata-parser/README.md @@ -5,3 +5,6 @@ ## 의존 모듈 - 없음 + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180246-a4154206-d3ba-41c1-bafc-74395e0a28f2.png) diff --git a/backend/domain-cvi-aws-s3-service/README.md b/backend/domain-cvi-aws-s3-service/README.md index c4c84338..59e8c142 100644 --- a/backend/domain-cvi-aws-s3-service/README.md +++ b/backend/domain-cvi-aws-s3-service/README.md @@ -3,7 +3,10 @@ - AWS S3에 이미지를 업로드/삭제하는 기능을 제공해요. - AWS에 직접 연결해야하기 때문에 설정파일(application-aws-s3.yml)의 설정값이 필요해요. - 우테코 계정의 S3는 우테코 계정 내의 EC2에서만 접근할 수 있기 때문에, local 환경에서 테스트하기 위해서는 개인 AWS 계정의 S3와 그에 따른 설정을 사용해야 해요. - (이에 대한 방법은 문서에 정리해 두었습니다.) + (이에 대한 방법은 문서에 정리해 뒀어요.) ## 의존 모듈 - 없음 + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180220-01800ced-4b38-4ade-9568-cdaa9711abb1.png) diff --git a/backend/domain-cvi-oauth-service/README.md b/backend/domain-cvi-oauth-service/README.md index 1a8e8f73..cfc1a6c0 100644 --- a/backend/domain-cvi-oauth-service/README.md +++ b/backend/domain-cvi-oauth-service/README.md @@ -4,3 +4,6 @@ ## 의존 모듈 - `domain-cvi`: Model에 CR 작업을 위임해요. + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180146-159e1c97-5973-42e0-a462-86cee1a48d46.png) diff --git a/backend/domain-cvi-publicdata-service/README.md b/backend/domain-cvi-publicdata-service/README.md index 850ac253..32be209c 100644 --- a/backend/domain-cvi-publicdata-service/README.md +++ b/backend/domain-cvi-publicdata-service/README.md @@ -6,3 +6,9 @@ ## 의존 모듈 - `domain-cvi`: Model에 CR 작업을 위임해요. - `cvi-publicdata-parser`: PublicData Api 요청을 위임해요. + +## 외부 제공 모듈 +- `domain-cvi` + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180207-e1f62aae-0de7-4c2f-a243-3eda83bf3882.png) diff --git a/backend/domain-cvi-publicdata-service/build.gradle b/backend/domain-cvi-publicdata-service/build.gradle index 965a2603..57346574 100644 --- a/backend/domain-cvi-publicdata-service/build.gradle +++ b/backend/domain-cvi-publicdata-service/build.gradle @@ -2,7 +2,7 @@ bootJar { enabled = false } jar { enabled = true } dependencies { - implementation(project(":domain-cvi")) + api(project(":domain-cvi")) implementation(project(":cvi-publicdata-parser")) //cache diff --git a/backend/domain-cvi-scheduler/README.md b/backend/domain-cvi-scheduler/README.md index 8e57909a..ece03208 100644 --- a/backend/domain-cvi-scheduler/README.md +++ b/backend/domain-cvi-scheduler/README.md @@ -4,3 +4,9 @@ ## 의존 모듈 - `domain-cvi-publicdata-service`: 공공데이터의 저장 책임을 위임해요. + +## 외부 제공 모듈 +- `domain-cvi-publicdata-service` + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180186-9c605817-6281-4346-a728-63571748197d.png) diff --git a/backend/domain-cvi-scheduler/build.gradle b/backend/domain-cvi-scheduler/build.gradle index fcd44483..93947486 100644 --- a/backend/domain-cvi-scheduler/build.gradle +++ b/backend/domain-cvi-scheduler/build.gradle @@ -2,6 +2,5 @@ bootJar { enabled = false } jar { enabled = true } dependencies { - implementation(project(":domain-cvi-publicdata-service")) - implementation(project(":domain-cvi")) + api(project(":domain-cvi-publicdata-service")) } diff --git a/backend/domain-cvi/README.md b/backend/domain-cvi/README.md index 99b32230..a4b83a95 100644 --- a/backend/domain-cvi/README.md +++ b/backend/domain-cvi/README.md @@ -6,3 +6,9 @@ ## 의존 모듈 - `common-cvi`: 예외 응답 객체를 사용해요. + +## 외부 제공 모듈 +- `common-cvi` + +## 도식화 +![image](https://user-images.githubusercontent.com/48986787/139180231-d74b454e-546d-4b79-a7e7-e80caa02f6cb.png) diff --git a/backend/domain-cvi/build.gradle b/backend/domain-cvi/build.gradle index 7b1f1ff0..fc78a235 100644 --- a/backend/domain-cvi/build.gradle +++ b/backend/domain-cvi/build.gradle @@ -44,5 +44,4 @@ jacocoTestCoverageVerification { // 코드 커버리지 측정항목 시행 ] + Qdomains } } - } diff --git a/backend/settings.gradle b/backend/settings.gradle index 6d664a5b..6fd1fbab 100644 --- a/backend/settings.gradle +++ b/backend/settings.gradle @@ -1,5 +1,4 @@ rootProject.name = 'cvi' -include 'app-cvi-admin' include 'app-cvi-api' include 'cvi-publicdata-parser' include 'common-cvi'