08. 마무리!
·
Web/코테 준비용 서비스 만들기
동작 모습 위와같이 Github Oauth 로그인, 코드 저장 및 관리, 코드 실행, 최적화 등의 기능이 잘 동작하는 것을 확인할 수 있다.관련 정보서비스 URL : https://cotebox.site COTE BOX cotebox.siteGitHub : https://github.com/maewakka?tab=repositories후기순전히 코테를 좀 더 쉽게 준비하려고 만든 서비스이고 아마 나 혼자서 사용하게 될 것 같지만,조금이라도 MSA 형태로 구성해보고 OpenAI를 사용한 서비스를 만들어 봤다는 것에 의의를 두고 있다!
07. API Gateway 서버 제작 (2)
·
Web/코테 준비용 서비스 만들기
API-Gateway 서비스 상세 내용1. UserServiceUserService는 사용자 인증과 관련된 로직을 담당하는 서비스다. Github OAuth를 통해 사용자 로그인을 처리하고, 인증된 사용자 정보를 관리한다.authenticateUserGithub OAuth를 통해 로그인한 사용자의 정보를 데이터베이스에 저장하거나 조회하고, 세션에 저장한다.OAuthUserService에서 Github에서 받은 사용자 정보를 GithubOAuthAttributeDto로 매핑하여 필요한 정보를 추출하고, UserRepository로 사용자 정보가 이미 존재하는지 확인한다. 새 사용자일 경우 데이터를 저장하고, 기존 사용자는 세션 정보만 갱신한다.getUserInfo사용자 ID를 기준으로 데이터베이스에서 사용..
06. API Gateway 서버 제작 (1)
·
Web/코테 준비용 서비스 만들기
API Gateway 서버 구조도 위 구조는 Controller를 중심으로 각 구성 요소가 연결되는 방식이다. 각 구성 요소는 다음과 같은 역할을 수행한다.Controller: 전형적인 REST API 서버의 컨트롤러 역할을 하며, 클라이언트의 요청을 받아 처리한다. 클라이언트 요청을 적절한 서비스로 전달하여 결과를 반환한다.Spring Security: 인증 및 권한 관리를 담당하는 보안 계층이다. Session을 통해 사용자 세션을 관리하며, 인증된 사용자만 API를 사용할 수 있도록 제한한다.Session: 사용자 인증 상태를 유지하는 세션 관리 시스템이다. 사용자가 로그인한 후 생성되며, Spring Security를 통해 접근이 관리된다.User Service: 사용자 정보 관리와 인증을 담당하..
05. AI API 서버 제작
·
Web/코테 준비용 서비스 만들기
AI API 서버 구조도   위 구조는 app.py를 중심으로 각 구성 요소가 연결되는 방식이다. 각 구성 요소는 다음과 같은 역할을 수행한다.app.py: 전형적인 REST API 서버의 컨트롤러 역할을 하며, 클라이언트의 코드 최적화 요청을 받아 처리한다. 클라이언트에서 전달된 코드를 Optimizator 서비스로 전달하여 최적화된 코드를 받아 반환한다.Optimizator: 코드 최적화 로직의 핵심 서비스 계층이다. OpenAI API와 통신하여 코드 리팩터링을 요청하고, 최적화된 코드를 응답받아 클라이언트에 제공한다.OpenAI API: AI 모델을 활용하여 코드 최적화 요청을 처리하는 외부 서비스이다. Optimizator는 프롬프트를 통해 최적화 요청을 전송하며, OpenAI의 응답을 통해 최..
04. 코드 API 서버 제작
·
Web/코테 준비용 서비스 만들기
Code-API 서비스 전체 구조 위 구조는 CodeController를 중심으로 각 구성 요소가 연결되는 방식이다. 각 구성 요소는 다음과 같은 역할을 수행한다.CodeController: 전형적인 REST API 서버의 컨트롤러 역할을 하며, 클라이언트 요청을 받아 처리한다. 클라이언트에서 전달된 코드 실행 요청을 CodeService로 전달하고, 결과를 반환한다.CodeService: 코드 실행 로직의 핵심 서비스 계층이다. 요청받은 언어에 맞게 Runner 인터페이스의 구현체를 선택하고, 적절한 컴파일러 또는 인터프리터를 호출하여 코드를 실행하도록 한다.Runner: 각 언어의 코드 실행을 위한 인터페이스로, 언어별로 다른 실행 방식을 처리할 수 있도록 한다.JavaRunnerImpl / Pyth..
03. 스크래핑 API 서버 제작
·
Web/코테 준비용 서비스 만들기
Scraping-API 서비스 전체 구조 위 구조는 app.py를 중심으로 각 구성 요소가 연결되는 방식이다. 각 구성 요소는 다음과 같은 역할을 수행한다.app.py: Flask 애플리케이션의 진입점으로, API를 정의하고 스케줄러를 설정해 주기적인 작업을 수행할 수 있도록 한다. 이 파일에서 BaekjoonScraper와 StepService 인스턴스를 생성해 단계별 정보와 문제 정보를 가져오는 API를 제공한다.DB_Connection: MySQL 데이터베이스에 연결 및 커넥션을 관리한다.Step_Service: 단계별 내용 및 문제 내용 등을 스크래핑하고, 이를 매일마다 갱신하는 배치 동작을 수행한다.Problem_Service: 백준 문제의 세부 정보를 스크래핑하여 문제의 제목, 설명, 입력 ..