/Code-Odyssey

✨ 알고리즘 스터디를 보조하기 위한 서비스, Code Odyssey ✨

Primary LanguageTypeScript

✨ 당신의 편안한 알고리즘 순항을 위해. Code Odyssey!

image

🌙 Code Odyssey 사용하기

❓ Code Odyssey?

  • Code Odyssey알고리즘 스터디의 불편함을 해소 하기 위해 만들었어요.
  • 분리 되어있던 [스터디 찾기 - 문제 선정 - 문제 풀이 - 풀이 공유] 이 모든 걸 한 번에!
  • 스터디 커뮤니티 환경을 제공해요!
  • Code Odyssey에서 알고리즘을 정복해보세요!

🖐 우리의 동료!

image image image image image image
FrontEnd BackEnd/Infra FrontEnd FrontEnd BackEnd BackEnd
김수린 김한주 김범수 이유빈 이도훈 이주현

🧐 좀 더 구체적으로?

  1. 📑나의 통계를 한 눈에! 12가지 유형 (DP, 그래프, DFS/BFS 등) 중 자신의 강점과 약점을 파악할 수 있어요! 내가 조금 약한 유형은 스프린트에서 유형을 선택해 열심히 문제를 풀면서 보완하는 건 어떨까요?
  2. 백준, SWEA 여러 플랫폼에 분산되어 있는 문제들😫! 코드 오디세이가 통합시켜 놓았어요. 또한 내가 공략하고 싶은 유형들과 난이도를 자유롭게 선택해 문제를 풀 수 있어요.
  3. 스터디를 할 때 문제 고르는 데 시간을 많이 빼앗기지 않으셨나요? 저희는 여러분의 고민을 해결하기 위해 문제 자동 추천 기능을 넣었어요😮!
  4. 나의 성실함을 확인하기 위한 개인 스프린트 관리 기능 제공! 일요일에 마음이 흔들려도 북두칠성으로 동기부여를 시켜드립니다. 문제를 풀고 스프린트를 채우며 얻는 별자리✨와 함께 능률 up!
  5. 다른 동료들과 함께 하고 싶다면? 간편하게 길드 생성과 길드 가입이 가능해요! 또한 스프린트가 끝나면 길드 탈퇴를 하고 다른 길드를 찾아 떠날 수 있어요🏹.
  6. 길드원들이 편리하게 코드 리뷰를 할 수 있도록 코드 동시 편집이 가능한 IDE, 화상채팅, 텍스트 채팅창이 제공됩니다!
  7. 하얀색 배경이 눈이 아픈 분들을 위해 다크 모드🌙도 제공되요.
  8. 스프린트 회고를 통한 코드리뷰 기능 제공📘!
  9. 코딩할 때 노래를 들으면서 하는 게 능률이 더 오르시나요? 노래봇 기능을 넣어 노래를 들으면서 문제를 풀 수 있어요. 집중이 잘 되는 환경은 저희가 만들어놨으니 여러분들은 🔥빡세게 코딩🔥만 해주시면 돼요 :)
  10. 변수명을 뭘로 정해야 할지 모르겠다고요😵? 영어 변수명이 어려운 분들은 변수명 추천 기능을 이용해보세요. Camel Case, Snake Case, Pascal Case 모두 지원해드립니다 (취향 존중). (ex. 도훈의 라마단 기간 -> DohunsRamadanPeriod)
  11. 알고리즘 문제를 풀다 반례를 찾아 다니지는 않으셨나요? 다른 사람들이 등록해놓은 반례를 1초만에 확인해보고 내 코드에 테스트해보세요.
  12. Code Odyssey의 크롬 익스텐션을 이용해서 코드를 제출하면, 나의 코드가 저장되고 나중에 내 코드를 확인할 수 있어요. [크롬 익스텐션 다운받기]

👀 기능 엿보기

  1. Login
  2. MyPage
  3. Guild
  4. IDE

💻 뚝딱뚝딱 개발 기록

📅 1. 개발기간 (Period)

  • 2024/01/04 ~ 2024/02/16

🔥 2. 개발 환경 (Environment)

🎯 3. 아키텍처 (Architecture)

image

💡 기능 상세 보기

1. Login

  • Oauth로 간편 로그인
    %EB%A1%9C%EA%B7%B8%EC%9D%B8

2. My Page

  • 내 프로필: 통계 보기 및 개인정보 수정
    %EA%B0%9C%EC%9D%B8%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%82%B4%ED%94%84%EB%A1%9C%ED%95%84

  • 문제 찾기: 문제 검색 및 IDE로 연결
    %EA%B0%9C%EC%9D%B8%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%AC%B8%EC%A0%9C%EA%B2%80%EC%83%89

    %EA%B8%B8%EB%93%9C%EC%B0%BD-%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8%EC%99%84%EB%A3%8C__%EB%A6%AC%EB%B7%B0

  • 스프린트 관리: 원하는 문제 유형 선택으로 편하게 문제 추천 및 지난 스프린트 확인 가능
    %EA%B0%9C%EC%9D%B8%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8

3. Guild

  • 길드 검색: 길드 검색 상세 조회 / 참가 신청 가능
    %EC%84%A0%EC%B0%A9%EC%9E%A5-%EA%B8%B8%EB%93%9C%EA%B2%80%EC%83%89_%EA%B0%80%EC%9E%85%EC%8B%A0%EC%B2%AD

  • 길드 생성 및 조회: 길드 생성 후 관리 가능
    %EC%84~2

  • 길드창

  • 스프린트 생성/시작
    %EA%B8%B8%EB%93%9C%EC%B0%BD-%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8%EC%8B%9C%EC%9E%91

  • 스프린트 완료/회고/리뷰
    %EA%B8%B8%EB%93%9C%EC%B0%BD-%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8%EC%99%84%EB%A3%8C__%EB%A6%AC%EB%B7%B0

  • 길드 채팅
    %EA%B8%B8%EB%93%9C%EC%B0%BD-%EC%B1%84%ED%8C%85

  • 길드 관리
    %EC%84%A0%EC%B0%A9%EC%9E%A5-%EA%B8%B8%EB%93%9C%EA%B2%80%EC%83%89_%EA%B0%80%EC%9E%85%EC%8B%A0%EC%B2%AD

4. IDE

  • 개인 IDE: 개별 채점 서버를 통한 input, output 체크 및 익스텐션 활용 소스코드 제출, 반례 등록, 조회 / 제출 기록 조회
    %EC%A0%9C%EC%B6%9C

  • 변수명 조회
    image

  • 길드 IDE: 화상 채팅 / 공동 ide 작업
    %EA%B8%B8%EB%93%9CIDE

  • 제출: 익스텐션을 활용한 제출

구현시 기여한 부분

문제 추천 시스템

  • 다음 스코어 테이블이 유저와 1:1로 매핑되어있습니다. image

  • 때문에 문제 제출시 제출한 문제유형에 대해 난이도 값이 누적됩니다.

  • erd 관계상 모든 길드원의 유형별 난이도 총합을 구하고 유형별 길드원 제출수를 활용해 유형별 점수 평균을 구합니다.

  • 유형별 점수 평균 중 최소 점수 유형을 추천합니다. 때문에, 길드원이 취약한 유형의 문제를 추천받을 수 있습니다. image

젠킨스, 도커 활용 MSA 배포 시스템 구축

  • 전체 5대의 서버를 젠킨스와 도커를 활용해 ci/cd 환경을 구축하였습니다. image

  • 채점 서버의 보안상, 성능상 문제 때문에 MSA를 적용 및 설계하였습니다. image image

채점서버 성능 개선

  • 독립된 환경및 오토스케일링을 구현하기 위해 aws 람다로 채점서버를 배포하였습니다. image image image

크롬 익스텐션 활용 백준/SWEA 플랫폼에서 제출 자동화 구현

image image image