154 lines
5.9 KiB
Markdown
154 lines
5.9 KiB
Markdown
# MSA 템플릿 (교육용)
|
|
|
|

|
|

|
|

|
|

|
|

|
|

|
|

|
|
|
|
'클라우드 네이티브 기반 행정·공공 서비스 확산 지원(2021)' 사업의 일환으로 제작된 MSA(Microservices Architecture) 템플릿의 교육 소스코드이다.
|
|
|
|
## 디렉토리 구조
|
|
|
|
```
|
|
├─backend
|
|
│ ├─apigateway
|
|
│ ├─board-service
|
|
│ ├─config
|
|
│ ├─discovery
|
|
│ ├─module-common
|
|
│ ├─portal-service
|
|
│ ├─reserve-check-service
|
|
│ ├─reserve-item-service
|
|
│ ├─reserve-request-service
|
|
│ └─user-service
|
|
├─config
|
|
├─docker-compose
|
|
│ ├─app
|
|
│ │ ├─mesh
|
|
│ │ └─service
|
|
│ ├─elk
|
|
│ │ ├─kibana
|
|
│ │ │ └─config
|
|
│ │ └─logstash
|
|
│ │ ├─config
|
|
│ │ └─pipeline
|
|
│ ├─mysql
|
|
│ │ └─init
|
|
│ └─opensearch
|
|
│ └─logstash
|
|
│ ├─config
|
|
│ └─pipeline
|
|
├─frontend
|
|
│ ├─admin
|
|
│ │ ├─public
|
|
│ │ │ ├─images
|
|
│ │ │ └─locales
|
|
│ │ ├─server
|
|
│ │ ├─src
|
|
│ │ │ ├─@types
|
|
│ │ │ ├─components
|
|
│ │ │ ├─constants
|
|
│ │ │ ├─hooks
|
|
│ │ │ ├─libs
|
|
│ │ │ ├─pages
|
|
│ │ │ ├─service
|
|
│ │ │ ├─stores
|
|
│ │ │ ├─styles
|
|
│ │ │ └─utils
|
|
│ │ └─test
|
|
│ ├─portal
|
|
│ │ ├─public
|
|
│ │ │ ├─locales
|
|
│ │ │ └─styles
|
|
│ │ ├─src
|
|
│ │ │ ├─@types
|
|
│ │ │ ├─components
|
|
│ │ │ ├─constants
|
|
│ │ │ ├─hooks
|
|
│ │ │ ├─libs
|
|
│ │ │ │ └─Storage
|
|
│ │ │ ├─pages
|
|
│ │ │ ├─service
|
|
│ │ │ ├─stores
|
|
│ │ │ ├─styles
|
|
│ │ │ └─utils
|
|
│ │ └─test
|
|
│ └─practice-image
|
|
└─k8s
|
|
├─applications
|
|
│ ├─backend
|
|
│ │ ├─apigateway
|
|
│ │ │ └─ingress
|
|
│ │ ├─board-service
|
|
│ │ ├─config
|
|
│ │ ├─discovery
|
|
│ │ │ └─ingress
|
|
│ │ ├─portal-service
|
|
│ │ ├─reserve-check-service
|
|
│ │ ├─reserve-item-service
|
|
│ │ ├─reserve-request-service
|
|
│ │ └─user-service
|
|
│ └─frontend
|
|
│ ├─admin
|
|
│ │ └─ingress
|
|
│ └─portal
|
|
│ └─ingress
|
|
└─environments
|
|
├─configmaps
|
|
├─databases
|
|
│ └─mysql
|
|
│ └─init
|
|
├─jenkins
|
|
├─logging
|
|
│ └─elk
|
|
│ ├─elasticsearch
|
|
│ ├─kibana
|
|
│ │ └─ingress
|
|
│ └─logstash
|
|
├─nfs
|
|
├─rabbitmq
|
|
│ └─ingress
|
|
├─storage
|
|
├─vagrant
|
|
└─zipkin
|
|
└─ingress
|
|
```
|
|
|
|
## 백앤드 구동 방법
|
|
|
|
- 개발환경 Eclipse IDE 를 실행한다.
|
|
- Eclipse IDE 메뉴에서 File>Import… 를 클릭한다.
|
|
- Import 창이 열리면 Gradle>Existing Gradle Project 를 선택하고 Next 버튼을 클릭한다.
|
|
- Import Gradle Project 창이 열리면 Next 버튼을 클릭한다.
|
|
- Project root directory 에서 ${home}/workspace.edu/egovframe-msa-edu/backend/config를 선택하고 Finish 버튼을 클릭한다.
|
|
- 위의 과정을 반복하여 아래의 프로젝트를 import 한다. (소규모는 1~6, 대규모는 1~9)
|
|
|
|
1. config
|
|
2. discovery
|
|
3. apigateway
|
|
4. user-service
|
|
5. portal-service
|
|
6. board-service
|
|
7. reserve-check-service
|
|
8. reserve-item-service
|
|
9. reserve-request-service
|
|
|
|
- 모든 프로젝트를 import 하고 Project Explorer 를 확인하면 board-service, portal-service, user-service 프로젝트에 오류 표시가 출력된다. querydsl 로 generate 되는 클래스들을 build path 에 추가해야 한다.
|
|
- Window>Show View>Other 을 클릭해서 열린 창에서 Gradle>Gradle Tasks 를 선택하고 Open 버튼을 클릭하면 Gradle Tasks 탭이 열린다.
|
|
- Gradle Tasks 오른쪽 윗부분의 View Menu 버튼을 클릭해서 Show All Tasks 를 체크한다.
|
|
- Gradle Tasks 에서 portal-service>other>compileQuerydsl 을 더블클릭 또는 우클릭 후 Run Gradle Tasks 를 클릭하면 build 가 시작된다.
|
|
- Project Explorer 에서 board-service, portal-service, user-service 를 선택하고 F5 또는 우클릭 후 Refresh 를 클릭해서 프로젝트를 새로고침한다.
|
|
- Project Explorer 에서 board-service, portal-service, user-service 를 우클릭하고 Properties 를 클릭한다.
|
|
- Properties 창이 열리면 왼쪽 메뉴에서 Java Build Path를 선택하고 오른쪽 Source 탭에서 Add Folder… 버튼을 클릭한다.
|
|
- Source Folder Selection 창이 열리면 build>generated>querydsl 을 체크하고 OK 버튼을 클릭한다.
|
|
- Properties 창에서 Apply and Close 버튼을 클릭하면 창이 닫히면서 프로젝트를 다시 빌드하고 오류 표시는 사라진다.
|
|
|
|
(ELK 설정, Config 설정, OAuth 2.0 설정, API 호출 및 JUnit 테스트 관련해서는 02.MSA템플릿\_백엔드구성및실습.pdf 파일을 참조한다.)
|
|
|
|
## 프론트앤드 구동 방법
|
|
|
|
03.MSA템플릿\_프론트엔드구성및실습.pdf 파일을 참조한다.
|