해당 프로젝트는 Spring Boot, Spring Data JPA, Spring Cloud를 이용하여 MSA 형식으로 제작되어 기존 공통컴포넌트 23종 + 신규 3종(모바일신분증 3종) 으로 구성되어있다.
프로젝트에서 사용된 환경 프로그램 정보는 다음과 같다.
| 프로그램 명 | 버전 명 |
|---|---|
| Java | 17 (각 모듈 pom.xml 기준) |
| Spring Boot | 3.5.6 |
| Spring Cloud | 2025.0.0 |
| Docker Desktop | 4.39.0 |
| Open Search | 2.15.0 |
| Python | 3.11.5 (Embedding 용 Model export 시 사용) |
egovframe-msa-common-components (멀티 모듈 Maven)
├ ConfigServer … 중앙 설정 (native, classpath:/config)
├ EurekaServer … 서비스 디스커버리
├ GatewayServer … API 게이트웨이 (기본 포트 9000)
├ EgovMain … 포털 메인 레이아웃·메뉴
├ EgovLogin … 로그인·JWT 쿠키 발급 (Redis 사용)
├ EgovLoginPolicy … 로그인 정책(IP 등)
├ EgovAuthor … 권한·롤·그룹
├ EgovBoard … 게시판·협업 (RabbitMQ: 검색 연동 시)
├ EgovCmmnCode … 공통코드
├ EgovQuestionnaire … 설문
├ EgovSearch … OpenSearch·통합검색 (고정 포트 9992)
└ EgovMobileId … 모바일 신분증 SP (고정 포트 9991, 외부 앱 직접 통신)
※ OpenSearch·RabbitMQ용 docker-compose는 EgovSearch/docker-compose/ 에 있음. 검색 설정 디렉터리 EgovSearch-Config는 별도 준비.
EgovLogin: 로그인·JWT 발급EgovLoginPolicy: 로그인정책관리EgovAuthor: 보안 (7종)- 권한관리
- 권한그룹관리
- 그룹관리
- 롤관리
EgovMobileId: 모바일신분증(모바일운전면허증, 국가보훈등록증, 재외국민신원확인증)
EgovBoard: 협업 (7종)- 블로그관리
- 게시판관리
- 커뮤니티관리
- 게시판(방명록)
- 게시판(통합게시판)
- 댓글관리
- 만족도조사
EgovQuestionnaire: 사용자지원(6종)- 설문관리
- 설문조사
- 설문템플릿관리
- 응답자관리
- 질문관리
- 항목관리
EgovCmmnCode: 시스템관리 (3종)- 공통분류코드
- 공통상세코드
- 공통코드
EgovSearch: 시스템/서비스연계 (1종)- OpenSearch 검색엔진
- docker-compose/mysql 실행
docker-compose up -d - EurekaService 실행
- ConfigServer
ConfigServer/src/main/resources/config/application-local.yml- DB, Token 설정 확인
- 샘플 DB : (공통컴포넌트 테이블 정보)
- GatewayServer 실행 (기본 포트 :9000)
- EgovMain 실행 (메인 레이아웃)
- EgovLogin 실행 (로그인 후 인증토큰이 있어야 컴포넌트 사용 가능)
- 필요한 컴포넌트 실행
본 프로젝트에는 KRDS Component Kit 1.0.3 ver을 적용
KRDS의 컴포넌트 일부를 사용하였으며 용도에 따라 패턴 등을 추가하여 사용하고있다.
- CSS (
src/main/resources/static/css/egovframe.css) : layout pattern 등 - JavaScript (
src/main/resources/static/js/egovframework/common.js) : nullCheck, 키보드 접근성 등 - Image (
src/main/resources/static/img/egovframework) : EgovFramework 로고 등
※ 추가로 사용한 리소스의 사용법은 제공하지않으며, 디자인에 관련된 자세한 사항은 KRDS를 확인.
- 헤더(Header)
- 사이드 네비게이션(Side-Navigation)
- 푸터(Footer)
- 콘텐츠 영역 : 공통컴포넌트 프로젝트가 표시되는 영역
- 프로젝트 실행 후 페이지 표시까지 약 5초 소요
- 로그인 컴포넌트가 실행된 경우 기본 첫 화면은 로그인화면 (로그인 인증 후 다른 컴포넌트 이용가능)
- 로그인 Token 관리를 위해 Redis가 구성되어야합니다.
- Redis 구성방법 참조
-
DB에 저장된 USER 정보를 이용해 로그인
-
로그인 실패 시 다른 컴포넌트 페이지 접근 불가 (인증 토큰 부재)
-
Token 발급 확인
- AccessToken과 RefreshToken이 발급된 상태
- AccessToken : 개발자모드(F12) → Application → Storage → Cookies 에서 확인
- RefreshToken : Redis 구성방법 참조을 참조하여 redis-cli를 통해 redis 내부에 저장된 값 확인
- AccessToken과 RefreshToken이 발급된 상태
-
- 서비스가 실행되지 않은 상태에서 접근한 경우 나타나는 에러
- 서비스를 실행 후 5 ~ 10초가 지나도 실행되지 않는 경우 서비스가 에러없이 제대로 실행되었는지 확인 필요




