API Gateway 서버 구조도
위 구조는 Controller를 중심으로 각 구성 요소가 연결되는 방식이다. 각 구성 요소는 다음과 같은 역할을 수행한다.
- Controller: 전형적인 REST API 서버의 컨트롤러 역할을 하며, 클라이언트의 요청을 받아 처리한다. 클라이언트 요청을 적절한 서비스로 전달하여 결과를 반환한다.
- Spring Security: 인증 및 권한 관리를 담당하는 보안 계층이다. Session을 통해 사용자 세션을 관리하며, 인증된 사용자만 API를 사용할 수 있도록 제한한다.
- Session: 사용자 인증 상태를 유지하는 세션 관리 시스템이다. 사용자가 로그인한 후 생성되며, Spring Security를 통해 접근이 관리된다.
- User Service: 사용자 정보 관리와 인증을 담당하는 서비스 계층이다. OAuth를 사용하여 외부 인증을 수행하며, 사용자 데이터를 관리한다.
- AI Service: Open Feign을 이용해 AI API와 통신하여 코드 최적화 등의 AI 기능을 제공하는 서비스 계층이다. AI 모델과의 통신을 통해 클라이언트 요청을 처리한다.
- Code Service: Open Feign을 이용해 코드 실행 API와 통신하는 서비스 계층이다. 다양한 언어의 코드를 실행하기 위해 클라이언트에서 전달된 코드를 컴파일러나 인터프리터를 통해 실행한다.
- Problem Service: Open Feign을 이용해 문제 관리 API와 통신하는 서비스 계층이다. 문제 데이터를 스크래핑하여 클라이언트에게 문제 정보를 제공한다.
- Step Service: Open Feign을 이용해 단계별 문제 API와 통신하는 서비스 계층이다. 문제를 단계별로 분류하고 각 단계에 맞는 문제 목록을 제공한다.
- Open Feign: API Gateway와 각각의 서비스 간 통신을 지원하는 클라이언트로, AI Service, Code Service, Problem Service, Step Service가 외부 서비스와 연동될 때 Open Feign을 통해 통신을 수행한다.
이 구조는 API Gateway가 Open Feign을 활용하여 각각의 마이크로서비스와 통신하도록 설계되어 있으며, 확장성과 유지보수성을 갖춘 통합 서비스 아키텍처를 제공한다.
'Web > 코테 준비용 서비스 만들기' 카테고리의 다른 글
08. 마무리! (1) | 2024.11.16 |
---|---|
07. API Gateway 서버 제작 (2) (1) | 2024.11.11 |
05. AI API 서버 제작 (0) | 2024.11.09 |
04. 코드 API 서버 제작 (1) | 2024.11.08 |
03. 스크래핑 API 서버 제작 (0) | 2024.11.07 |