- 프레젠테이션 계층 : 플러터
- 어플리케이션 계층: 자바 스프링 부트(jdk 17)
- 데이터 계층: 오라클 데이터베이스(테스트 환경은 h2)
서버는 다음과 같이 3개로 구성된다.
- Security 서버:
- DDoS 및 비정상적인 트래픽을 탐지 및 차단한다.
- 사용자 요청을 검증하고 안전한 데이터를 인증 서버로 전달한다.
- Login 서버:
- JWT(Json Web Token)를 생성하고, 사용자의 로그인 및 인증을 처리한다.
- 인증되지 않은 접근을 차단한다.
- Main 서버:
- 사용자와의 상호작용을 처리하며, 매칭 알고리즘을 실행한다.
- 데이터베이스와 직접 연결되어 피트니스 파트너 정보 및 매칭 데이터를 관리한다.
- 도커 네트워크 생성
docker network create --subnet=172.18.0.0/16 fitness-net
-
- 컨테이너 실행 및 네트워크 설정:
컨테이너 이름 | 포트 매핑 | IP 주소 | 역할 |
---|---|---|---|
fitness-security | 8082:8080 | 172.18.0.4 | 비정상 트래픽 탐지 및 차단 |
fitness-login | 8081:8080 | 172.18.0.3 | 사용자 인증 및 JWT 생성 |
fitness-main | 8080:8080 | 172.18.0.2 | 매칭 알고리즘 및 사용자 상호작용 처리 |
docker run -d --name fitness-security -p 8082:8080 --net fitness-net --ip 172.18.0.4 fitness-security
docker run -d --name fitness-login -p 8081:8080 --net fitness-net --ip 172.18.0.3 fitness-login
docker run -d -p 8080:8080 -v C:/FitnessImage:/app/FitnessImage --name fitness-main --net fitness-net --ip 172.18.0.2 fitness-main
왼쪽 위 보안 서버, 왼쪽 아래 로그인 서버, 오른쪽 메인 서버
- 서버 초기 실행 화면
- 정상적으로 로그인 후 메인 서버 사용
보안 서버에서 다른 서버로 패킷을 전달함
ip를 차단하고 더 이상 다른 서버에 패킷을 전달하지 않는다.
차단된 ip에서 요청이 올 경우 보안 서버에서 패킷을 드랍함