02. 서비스를 구상해보자!

2024. 10. 29. 11:06·Web/코테 준비용 서비스 만들기

서비스 설계 방안

  이 서비스는 효율적인 코딩 테스트 준비를 위한 플랫폼으로, 사용자가 작성한 코드를 컴파일하고 실행해 결과를 확인할 수 있는 기능과 코드 관리, 플랫폼 간 문제 스크래핑, AI 기반 코드 최적화 기능을 제공하는 것을 목표로 한다. 서비스는 MSA(Microservices Architecture) 형태로 개발 예정이며, 각 마이크로서비스는 독립적으로 운영되도록 설계하였다.

 

서비스 구성 요소 및 기능

1. 코드 작성 및 컴파일 기능

  사용자가 작성한 코드를 컴파일하고 실행한 후, 결과를 반환하는 기능을 제공한다. 해당 서버에 설치된 각 언어별 컴파일러나 인터프리터를 통해 빠르고 안정적으로 코드 실행 및 결과 반환이 가능하다.

2. 코드 저장 및 관리 기능

  사용자가 작성한 코드를 저장하고 관리할 수 있는 기능을 제공한다. MySQL 데이터베이스에 사용자가 작성한 코드와 관련된 데이터를 안전하게 저장하며, 필요시 언제든지 불러올 수 있도록 한다.

3. GitHub Oauth 인증 기능

  사용자 인증은 GitHub OAuth를 통해 이루어진다. GitHub과 연동하여 OAuth 인증을 수행하며, 인증된 사용자의 세션 정보는 Redis에 저장하여 관리한다. 이를 통해 인증된 사용자만이 서비스의 주요 기능을 사용할 수 있도록 한다. 또한, 추후 GitHub와 관련된 기능들을 사용할 수 있도록 준비한다.

4. 문제 스크래핑 기능

  백준이나 다른 플랫폼에서 문제를 스크래핑해 오는 기능을 구현한다. 스크래핑된 문제 데이터는 MySQL 데이터베이스에 저장된다. 이를 통해 다양한 플랫폼의 문제를 손쉽게 가져와 사용할 수 있다.

5. AI 기반 코드 최적화 지원

  작성된 코드에 대해 AI를 통해 최적화할 수 있는 기능을 제공한다. 코드 최적화 기능을 수행하며, 파이썬을 활용하여 AI 모델을 운영한다. 이를 통해 사용자는 코드의 효율성을 높일 수 있으며, 필요에 따라 최적화된 코드를 추천받을 수 있다.

 

아키텍처 설계 (MSA 기반)

서비스는 MSA 형태로 개발되었다. MSA를 선택한 이유는 다음과 같다:

  • 언어 및 기술의 유연성: 나는 Java 개발자라 Spring을 기반으로 한 백엔드 개발이 편리하지만, 스크래핑이나 AI와 같은 특정 기능들은 파이썬을 사용하는 것이 더 효율적이다. MSA 형태로 개발함으로써 이러한 기능들을 파이썬 기반으로 구현할 수 있다.
  • 서비스 독립성 및 확장성: 스크래핑 기능이나 AI 기반 기능과 같은 부가 기능이 기존 서비스에 영향을 주지 않도록 독립적으로 운영되도록 하여, 새로운 기능 추가 시 기존 서비스의 안정성을 유지할 수 있다.

서비스 구성도

세부 구성도 기반 설명

1. Front-End

  Nginx를 통해 사용자 요청을 프론트엔드 서버로 라우팅한다. 사용자는 웹 브라우저를 통해 Nginx를 통해 API Gateway로 연결된다.

2. Api-Gateway

  모든 요청의 진입점으로, 사용자의 요청을 각 마이크로서비스로 분배한다. GitHub OAuth 인증과 Redis 세션 관리도 이곳에서 이루어진다. 각 API 서버와의 통신은 REST API 방식을 사용하며, `Feign Client`를 통해 구현한다.

3. Code-API

  Spring으로 개발된 코드 관련 기능을 담당하는 마이크로서비스다. 사용자가 작성한 코드를 컴파일 및 실행하여 결과를 반환하며, MySQL 데이터베이스에 코드 정보를 저장하고 관리한다.

4. Scraping-API

  파이썬으로 개발된 스크래핑 마이크로서비스다. 백준 및 기타 플랫폼에서 문제 데이터를 스크래핑하여 MySQL 데이터베이스에 저장한다. API Gateway를 통해 접근할 수 있으며, 주기적으로 데이터 업데이트가 가능하다.

5. AI-API

  파이썬 기반으로 AI 모델을 통해 코드 최적화 기능을 수행하는 마이크로서비스다. 사용자의 코드가 입력되면, AI 모델을 통해 최적화된 코드 추천이나 개선 방안을 제공한다. 이 역시 MySQL 데이터베이스와 연동된다.

저작자표시 비영리 변경금지 (새창열림)

'Web > 코테 준비용 서비스 만들기' 카테고리의 다른 글

06. API Gateway 서버 제작 (1)  (0) 2024.11.10
05. AI API 서버 제작  (0) 2024.11.09
04. 코드 API 서버 제작  (1) 2024.11.08
03. 스크래핑 API 서버 제작  (0) 2024.11.07
01. 코테 준비를 위한 서비스를 만들어보자!  (0) 2024.10.29
'Web/코테 준비용 서비스 만들기' 카테고리의 다른 글
  • 05. AI API 서버 제작
  • 04. 코드 API 서버 제작
  • 03. 스크래핑 API 서버 제작
  • 01. 코테 준비를 위한 서비스를 만들어보자!
뚝딱뚝딱2
뚝딱뚝딱2
  • 뚝딱뚝딱2
    개발도상국
    뚝딱뚝딱2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 공부
        • Java
        • Spring Boot
        • LORA
      • Web
        • 인스타 클론 코딩
        • GPT 응답 API 서버
        • Spring Boot 예외 처리
        • 코테 준비용 서비스 만들기
      • DevOps
        • 쿠버네티스
        • 서버 만들기
      • 코딩테스트
        • 알고리즘
      • 교육
        • 스파르타코딩클럽 - 내일배움단
        • 혼자 공부하는 컴퓨터 구조 운영체제
      • 잡다한것
  • 블로그 메뉴

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    스프링부트
    오블완
    인스타그램
    쿠버네티스
    스프링 부트
    mapstruct
    MSA
    OpenAI API
    클론코딩
    예외
    REST API
    백준
    티스토리챌린지
    클러스터
    리액트
    spring boot
    react
    chat GPT
    Entity
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
뚝딱뚝딱2
02. 서비스를 구상해보자!
상단으로

티스토리툴바