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: 백준 문제의 세부 정보를 스크래핑하여 문제의 제목, 설명, 입력 ..
02. 서비스를 구상해보자!
·
Web/코테 준비용 서비스 만들기
서비스 설계 방안  이 서비스는 효율적인 코딩 테스트 준비를 위한 플랫폼으로, 사용자가 작성한 코드를 컴파일하고 실행해 결과를 확인할 수 있는 기능과 코드 관리, 플랫폼 간 문제 스크래핑, AI 기반 코드 최적화 기능을 제공하는 것을 목표로 한다. 서비스는 MSA(Microservices Architecture) 형태로 개발 예정이며, 각 마이크로서비스는 독립적으로 운영되도록 설계하였다. 서비스 구성 요소 및 기능1. 코드 작성 및 컴파일 기능  사용자가 작성한 코드를 컴파일하고 실행한 후, 결과를 반환하는 기능을 제공한다. 해당 서버에 설치된 각 언어별 컴파일러나 인터프리터를 통해 빠르고 안정적으로 코드 실행 및 결과 반환이 가능하다.2. 코드 저장 및 관리 기능  사용자가 작성한 코드를 저장하고 관리..
01. 코테 준비를 위한 서비스를 만들어보자!
·
Web/코테 준비용 서비스 만들기
서비스 개발 배경  코딩 테스트 준비는 개발자라면 거의 필수인 과정이다. 여러 회사에서 프로그래머스 플랫폼을 통해 코딩 테스트를 진행하므로 자연스럽게 이 플랫폼에 익숙해질 수밖에 없다. 프로그래머스는 회사별, 난이도별로 문제들이 잘 정리되어 있어 준비가 편리한 장점이 있지만, 알고리즘별로 문제가 정리되어 있지 않고 문제 수가 적다는 단점이 있었다.  그렇기 때문에, 문제 수가 많고 다양한 유형의 문제를 제공하는 백준 플랫폼을 사용하여 연습해보려 했으나, 백준은 프로그래머스와 문제 풀이 방식이 달라 불편함이 있었다. 백준 플랫폼의 불편함문제 풀이 환경의 차이: 백준은 프로그래머스처럼 문제를 보면서 바로 코딩하고 실행해볼 수 있는 웹 에디터를 제공하지 않기 때문에, 외부 IDE를 필수로 사용해야 했다.외부 ..
프로젝트 구성
·
Web/인스타 클론 코딩
먼저 기존 모놀리식 구조에서 MSA 형태로 구조를 바꾸어 확장성과 유지보수성을 높여보고자 했습니다.  프로젝트는 총 5가지 서비스로 분리하였고, 각 서비스의 구성 내용 및 역할은 아래와 같습니다. 인증 처리 서버인증 처리 서버는, 서버의 회원가입, 로그인, 세션 등의 인증과 유저 정보 등의 처리를 담당하는 서버 입니다. MySQL을 활용하여 유저 정보를 저장하고, Redis를 사용하여 세션을 관리할 예정입니다. 포스팅 처리 서버게시글에 관련된 포스팅, 댓글, 좋아요 등의 기능을 처리하고 각 사용자에게 최적화된 뉴스피드를 제공하는 역할을 담당하는 서버입니다.MySQL을 활용하여 게시글에 대한 정보들을 저장하고, Redis를 활용하여 뉴스피드 내역을 캐싱하며 포스팅 API 서버는 포스팅 저장을 그리고 뉴스피..