Skip to content
@Mi-Ss-A

Mi-Ss-A

슈퍼앱 금융 챗봇 서비스 WIBEE

: 그룹 데이터를 활용한 MSA 기반 슈퍼앱 서비스 및 클라우드 인프라 구축

image

🚀 MyProject

Build Status License Version

✨ 프로젝트 소개

WIBEE는 금융 챗봇 서비스로, 사용자 정보를 기반으로 금융 관련 챗봇 서비스와, 포트폴리오 서비스를 제공하는 슈퍼앱입니다.

주요기능

💡 지능형 챗봇: AI 기반의 챗봇이 실시간으로 금융 질문에 응답하고, 다양한 금융 상품에 대한 정보를 제공합니다. 사용자 맞춤형 답변으로 금융 이해도를 높이고, 필요한 정보를 신속하게 제공합니다.

맞춤형 추천: 사용자 행동과 선호도를 분석하여, 개인에 최적화된 금융 상품을 추천합니다. 이를 통해 사용자는 자신에게 가장 적합한 투자 및 대출 상품을 쉽게 찾을 수 있습니다.

통합 금융 관리: 다양한 금융 서비스를 통합하여 관리할 수 있는 기능을 제공합니다. 예를 들어, 지출 분석, 예산 설정 및 투자 모니터링 등으로 사용자가 자신의 재정 상태를 쉽게 파악할 수 있게 도와줍니다.

안전하고 신뢰할 수 있는 환경: 데이터 보안 및 개인정보 보호를 최우선으로 하여, 사용자들이 안심하고 서비스를 이용할 수 있도록 합니다.

사용자 친화적인 인터페이스: 직관적인 디자인과 간편한 내비게이션을 통해 모든 연령층의 사용자들이 쉽게 접근할 수 있는 환경을 제공합니다.

🎉 데모

최종 보고서 바로가기

Screen.Recording.2024-12-11.at.10.05.32.AM.1.mov

📚 목차

  1. 프로젝트 소개
  2. 데모
  3. 개발 기간
  4. ERD
  5. 프로젝트 구조
  6. 라이선스
  7. 연락처

📅 개발 기간

2024년 10월 16일 ~ 2024년 12월 10일

📅 개발 일정 (Gantt 차트)

아래는 프로젝트의 각 단계별 일정 및 상태를 나타낸 Gantt 차트입니다.

단계 기간 상태
📘 기획 및 사전 조사 2024-10-16 ~ 2024-10-22 ✅ 완료
🎨 아키텍처 설계 2024-10-23 ~ 2024-10-29 ✅ 완료
📊 필요 데이터 수집 및 전처리 2024-10-30 ~ 2024-11-12 ✅ 완료
🏢 온프레미스 환경 구축 2024-10-30 ~ 2024-11-19 ✅ 완료
☁️ 클라우드 환경 구축 2024-11-06 ~ 2024-11-26 ✅ 완료
🛠️ 서비스 개발 2024-11-13 ~ 2024-12-05 ✅ 완료
🔍 모니터링 구축 2024-11-20 ~ 2024-12-05 ✅ 완료
🚀 테스트 수행 2024-12-06 ~ 2024-12-10 ✅ 완료

시스템 아키텍쳐

image.png

🗄️ ERD (Entity Relationship Diagram)

image.png


🛠️ 기술 스택

🖼️ Language / Framework


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913897/noticon/xbvewg1m3azbpnrzck1k.png Java (17)

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1567008394/noticon/ohybolu4ensol1gzqas1.png JS

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566791609/noticon/nen1y11gazeqhejw7nm1.png Python

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1568959202/noticon/bmsd6jrloxrq4zsmsbnp.png Shell

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1567008187/noticon/m4oad4rbf65fjszx0did.png SpringBoot (3.3.5)

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1623067614/noticon/adl8cg4266exejnzha95.png Flask

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1662808717/noticon/eyjphpljxltwu5jgna2d.png SpringCloud

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566557331/noticon/d5hqar2idkoefh6fjtpu.png React

🛠  CI/CD


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566778391/noticon/l0uiouhpeiq31huqu7ft.jpg Jenkins

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1616661231/noticon/vqrqju7rv3iyhswycbf1.png ArgoCD

☁️ Cloud


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566914173/noticon/kos1xkevxtr81zgwvyoe.svg EC2

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1567064876/noticon/sb5llmvfubuceldbkmx8.png S3

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1639910458/noticon/v4qpmkfpuxn9wicdbgsv.png CLI

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1704934702/noticon/mqcjbxqbmvhawhlyagiu.png Site to Site VPN

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1704934702/noticon/mqcjbxqbmvhawhlyagiu.png AWS ACM


🏬 Infra


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1683828904/noticon/lzhn8eoyw0cjlkin0mua.png k8s - 1.28

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913255/noticon/xbroxmdmksvebf3v6v8v.gif Docker

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566798146/noticon/lku5cppzh8r7awwsmmko.png Nginx 1.11.3

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1594969872/noticon/h5f5dlugmnwgbt3dvrzx.png Terraform

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1667528160/noticon/jkteb0zahggo46okznlh.png Istio 1.24.0

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1616661279/noticon/aw5na8k2acxybsshcatp.png Helm 3.16.3

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1700372862/noticon/vduy3ursbmycsrgvd3c4.png Zookeeper

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1599014155/noticon/c5cyndudltka3mddobj5.png Kafka 3.9

https://prod-files-secure.s3.us-west-2.amazonaws.com/75620ae2-9ad6-409a-a317-5ea81d4349ba/e2edd370-582f-4c2e-879f-2589b39c292c/11111.png StrongSwan 5.9.5

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1629971675/noticon/l2d210hcs4hpeme3gob7.png Ansible 2.10.8

💽  Database


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1571879098/noticon/n94bmga5jrpl8kscivbj.png Oracle-xe-11g

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913379/noticon/uiite75rxvkvcki3mr4u.png PostgreSQL

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913679/noticon/xlnsjihvjxllech0hawu.png Redis 7.2.6-alpine

https://prod-files-secure.s3.us-west-2.amazonaws.com/75620ae2-9ad6-409a-a317-5ea81d4349ba/a112a6d2-640b-4d6e-97a0-f8f3e1fed02d/chroma.png 벡터 DB (ES)

💻  Visualization


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1629972087/noticon/uhlx0ddln1ygz7kxhkjw.png Prometheus 2.55.0

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1616658979/noticon/lcugxam6owivokgw1psc.png Grafana 11.3.0

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566914242/noticon/pqfq8nbtltjvxgh5lik3.png Elasticsearch 8.5.1

https://coralogix.com/wp-content/uploads/2020/04/fluentd-guide.png fluentd 1.17.1

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1581749887/noticon/q7kub7xnmcefvs9toxsf.png kibana 8.5.1


🔧 Tools


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913651/noticon/rj9nd1qsykajfusei65f.jpg Slack

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1629972215/noticon/vgvbhxae6jrvqpcnu0vb.png GitHub

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566778642/noticon/kjaaizycfgz017qxvlnu.png Notion

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1681787748/noticon/gnmvks5kewb4rorwqj3k.png Draw.io

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1608448196/noticon/a0fgk99dgqtyrwwmqsbt.png Figma

👨‍💻  개발기법


https://cdn-icons-png.flaticon.com/512/5968/5968705.png MSA

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1613068261/noticon/xl3lhld6ndk1qv0xkyri.png 에자일

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1574740301/noticon/up950fjgyekwqizq6xa6.png TDD

🤖  DataModel (AI)


https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1672321451/noticon/wg8oczvevrvjtbvkiskk.png GPT-3.5 Turbo (생성형 AI)

https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1644773815/noticon/gekdpcp7jzd4cpaln8vi.png Text-embedding-ada-002 (임베딩 모델)


🧪 테스트 과정

테스트

image.png

image.png

image.png

산출물

요구사항 정의 산출물

image.png

비즈니스 프로세스 모델 (BPM)

image.png

화면 구성 및 인터페이스 설계

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

📋 1. 인프라 구성 설명 섹션

1️⃣ 개요

☁️ 인프라 구성

이 프로젝트는 온프레미스와 클라우드 환경을 통합하여 서비스의 안정성과 확장성을 보장합니다.

🔑 주요 특징

  • 하이브리드 인프라: 온프레미스 및 클라우드 환경 통합
  • 확장 가능한 배포 환경: Docker 및 Kubernetes 기반의 확장성 지원
  • 실시간 모니터링: Prometheus, Istio기반 Kiali와 Grafana로 시스템 상태 모니터링
  • 자동화된 CI/CD 파이프라인: Jenkins와 Argo CD사용

2️⃣ 인프라 다이어그램

📊 인프라 다이어그램

아래는 프로젝트의 인프라 구성도를 나타냅니다.

image.png

image.png

image.png


3️⃣ 사용된 기술 스택

🛠️ 인프라 기술 스택

  • 클라우드 플랫폼: AWS (Route 53, ACM, S3, NAT Gateway, Internet Gateway)
  • 컨테이너화: Docker, Kubernetes (Istio Gateway, Worker Nodes, K3S)
  • 로드 밸런싱: Network Load Balancer (NLB), HAProxy
  • 배포 파이프라인: Jenkins, ArgoCD
  • 모니터링 및 로깅: Prometheus, Grafana, ELK 스택 (Elasticsearch, Logstash, Kibana)
  • 데이터베이스: PostgreSQL, Oracle DB
  • 보안: StrongSwan, Ansible, AWS Site-to-Site VPN

4️⃣ 배포 환경 구성

1️⃣ 클라우드 환경

  • 네트워크:
    • VPC: 퍼블릭 서브넷(NAT Gateway), 프라이빗 서브넷(Kubernetes 클러스터).
    • Internet Gateway: 외부 트래픽 관리.
    • NAT Gateway: 내부 서비스의 인터넷 접근 지원.
  • DNS 및 트래픽 관리:
    • Gabia DNS: 도메인 관리.
    • AWS Route 53: DNS 라우팅.
    • Network Load Balancer: 트래픽 분산.
  • 애플리케이션 구성:
    • Istio Gateway: 서비스 메쉬 관리.
    • Kubernetes Cluster: 워커 노드 및 자동 스케일링 지원.
  • 데이터 및 백업:
    • S3: 정적 파일 및 백업 저장.
    • RDS (PostgreSQL): 관계형 데이터 저장.
  • 보안:
    • AWS Certificate Manager: SSL 인증서 관리.
    • AWS Site-to-Site VPN: 온프레미스와 AWS 간 보안 연결.

2️⃣ 온프레미스 환경

  • 네트워크 구성:
    • Control Plane (192.168.0.104): Kubernetes 클러스터 중앙 노드.
    • Worker Nodes:
      • VM 192.168.0.105: Elasticsearch, Nginx, Kibana.
      • VM 192.168.0.106: Elasticsearch, Grafana, Prometheus.
  • 데이터베이스:
    • PostgreSQL (192.168.0.215).
    • Oracle DB (192.168.0.202/203).
  • 모니터링:
    • Prometheus & Grafana: 실시간 모니터링.
    • Kibana: 데이터 시각화.
  • 보안 및 자동화:
    • StrongSwan: VPN 게이트웨이.
    • Ansible: 서버 자동화 관리.
  • CI/CD:
    • Jenkins (192.168.0.205): CI/CD 파이프라인 관리.
    • K3S: 경량 Kubernetes 클러스터 관리.
  • 백업 및 복구:
    • 데이터베이스 주간 자동 백업 및 복구 테스트 완료.

5️⃣ CI/CD 구성

💡 주요 도구

  • Git 저장소: 코드 저장 및 변경 관리
  • Jenkins: CI 단계 - 빌드 및 테스트 자동화
  • Docker 저장소: 컨테이너 이미지 저장
  • ArgoCD: GitOps 방식의 배포 관리
  • Kubernetes 클러스터: 애플리케이션 실행 환경

📋 CI/CD 파이프라인 단계

1️⃣ 코드 푸시

  • 작업자가 Git 저장소에 코드 커밋 및 푸시.
  • 변경 사항이 Jenkins 및 ArgoCD에 전달.

2️⃣ 빌드 및 테스트 (CI)

  • Jenkins에서 다음 작업 수행:
    • 코드 변경 사항 Pull.
    • Docker 이미지 빌드.
    • 단위 테스트 및 통합 테스트 실행.
    • Docker 저장소로 빌드된 이미지 푸시.

3️⃣ 이미지 배포 (CD)

  • ArgoCD가 Git 상태와 Kubernetes 클러스터를 동기화:
    • Docker 저장소에서 최신 이미지 Pull.
    • Kubernetes 클러스터에 새 애플리케이션 배포.

4️⃣ 클러스터 상태 동기화

  • ArgoCD는 클러스터 상태를 모니터링 및 동기화.
  • 배포 실패 시 롤백 및 알림.

📊 CI/CD 구성 다이어그램

image.png


6️⃣ 모니터링 및 로깅

🔍 모니터링 및 로깅

  • 모니터링 도구:
    • Prometheus: 메트릭 수집 및 알림
    • Grafana: 대시보드를 통해 실시간 시각화
  • 로깅 도구:
    • ELK 스택: 로그 분석 및 시각화
  • 알림 시스템:
    • 주요 장애 발생 시 Slack 및 이메일로 알림 전송
    • CPU 사용량, 메모리 부족 등 임계값 초과 시 경고 발송

7️⃣ 인프라 자동화

  • IaC(Infrastructure as Code):
    • Ansible: 서버 구성 관리 및 배포 자동화
  • 자동화 내용:
    • Ansible을 사용해 온프레미스 환경의 서비스 구성 자동화
    • Jenkins 파이프라인으로 빌드, 테스트 및 배포 자동화

Popular repositories Loading

  1. usersvc usersvc Public

    Java

  2. chatbotsvc chatbotsvc Public

    Java

  3. ai-agent ai-agent Public

    Python

  4. portfoliosvc portfoliosvc Public

    Java

  5. missa-front missa-front Public

    missa-front

    JavaScript

  6. manager-repo manager-repo Public

    Java

Repositories

Showing 7 of 7 repositories
  • .github Public
    Mi-Ss-A/.github’s past year of commit activity
    0 0 0 0 Updated Dec 28, 2024
  • missa-front Public

    missa-front

    Mi-Ss-A/missa-front’s past year of commit activity
    JavaScript 0 0 1 0 Updated Dec 11, 2024
  • manager-repo Public
    Mi-Ss-A/manager-repo’s past year of commit activity
    Java 0 0 2 0 Updated Dec 9, 2024
  • ai-agent Public
    Mi-Ss-A/ai-agent’s past year of commit activity
    Python 0 0 3 1 Updated Dec 7, 2024
  • usersvc Public
    Mi-Ss-A/usersvc’s past year of commit activity
    Java 0 0 1 0 Updated Dec 7, 2024
  • portfoliosvc Public
    Mi-Ss-A/portfoliosvc’s past year of commit activity
    Java 0 0 2 0 Updated Dec 2, 2024
  • chatbotsvc Public
    Mi-Ss-A/chatbotsvc’s past year of commit activity
    Java 0 0 2 0 Updated Nov 28, 2024

Top languages

Loading…

Most used topics

Loading…