Skip to content

Backend

Lee Eun Seob edited this page May 14, 2024 · 2 revisions

Backend Wiki

1. 아키텍처

아키텍처

1. 아키텍처 개요

  • 웹서버: Nginx(LoadBalance), Spring Boot(WAS), Flask(Chatbot)
  • 데이터베이스: MySQL, Redis
  • 클라우드 서비스: AWS EC2, AWS RDS
  • CICD: GitHub Action, Docker + Blue-Green Deploy

2. 아키텍처 상세설명

  • Spring WAS 서버

웹 서비스 구성에 최적화된 Spring MVC의 특성

Spring Security를 통한 요청 인가/인증 처리

JWT를 사용한 유저 토큰 관리, Redis에 리프레시 토큰 저장

Swagger를 이용한 API 자동 문서화 + Notion 수동 문서화

  • 클라우드 배포

AWS EC2에 Spring 서버 및 로컬 Redis 호스팅

AWS RDS로 MySQL DBMS 사용

S3에 스태틱 리소스 저장

  • CICD

GitHub Action을 통한 CICD 진행

Docker를 통한 이미지 빌드 및 컨테이너 배포

Nginx 로드밸런서와 Docker-Compose를 사용한 블루그린 배포

2. 주요 서버 기능

인증

  1. 회원가입: 메일 인증(xxx@gachon.ac.kr) 필요, 서버에서 인증번호 메일 발송
  2. 로그인 관리: 유저네임/패스워드를 통한 로그인, JWT와 Security를 활용한 유저 관리
  3. 로그아웃: 리프레시 토큰 값을 "logout"으로 변경 및 액세스 토큰 무효화

채팅

  1. 요청을 받으면 Flask 서버로 API 재요청, Chatbot 서비스에서 질문에 대한 응답을 가져와 클라이언트에 반환

유저

  1. 언어 설정 (한국어, 영어)
  2. 문의 기능, 서버에 문의 API 요청 시 관리자 이메일로 문의 내용 발송
  3. 프로필 수정 가능(이메일, 패스워드, 닉네임)

Clone this wiki locally