0. 온라인 코딩 테스트 시스템 만들기 - 시작하며
과거 재직 했던 회사에서 난 온라인 코딩 테스트 솔루션 개발팀의 팀장을 지낸 경험이 있다. 지금 생각했을때 열정과 생각은 많았으나 팀 운영과 사업적인 부분에서 경험이 부족하지 않았나 생각 된다. 좋은 회사에서 만족스러운 환경이었지만 이런 저런 스트레스와 문제로 퇴사를 하였지만 아직도 종종 그 제품에서 이런 부분을 개선 했으면 어땠을까 저런 부분을 개발 했으면 어땠을까 하고 생각을 하곤 한다. 그래서 시간도 꽤 지났고 솔루션에 대한 기억이 가물가물 해지기 시작한 지금 지금의 개발 실력도 점검해보고 나만의 스타일로 온라인 기반의 코딩 테스트 솔루션을 개발 해 보고자 한다. 물론 과거 다루었던 제품은 오랜 시간 개발되어 수많은 기능과 고성능의 성능을 제공하기에 그 많큼은 아니지만 기본적은 프로세스를 정리해보고 이 글이 올라가는 블로그와 같이 천천히 하나씩 개선 해보고자 한다.
Repository
Github repo | ||
---|---|---|
1 | https://github.com/BallboyDev/online-coding-test-back | Backend Repo |
2 | Frontend Repo | |
3 | https://github.com/BallboyDev/online-coding-test-storage | storage Repo |
테마
- 프로젝트 명 : onCote
- 우선은 Front 보다는 Backend와 Infra 중심의 개발
- 기본적인 구조 확립과 작동 중심의 개발을 위한 로컬 환경에서의 우선 개발
- 언어 선택, 코드 작성, 실행, 결과 출력의 기본 기능 중심의 개발
- 문제 해결이나 실행 결과 정.오답 체크 기능 제외 (추후 추가 기능으로 개발 예정)
설계
- 기본 기능의 중심의 개발 후 기능 및 세부 디자인 및 테마 기획
- Frontend
- 1차로 최소한의 기능 위주의 디자인을 위한 html + css 개발
- 2차로 Frontend 프레임워크는 svelte 또는 React 고민중
- Backend
- Nest.js(or express) + mongo(or Mariadb) + Docker
기능
기본 기능
- 언어 선택
- C(C++), JAVA, JS, Python, SQL
- 코드 작성
- 언어 하이라이팅 기능
- 실행
- 언어별 Docker container 실행 환경 구축
- 결과 출력
- 실행 결과
- 코드 실행 성능 결과
추가 기능
- 더욱 다양한 언어 지원
- 언어별 버전 선택
- 특정 라이브러리 설치 및 실행 환경 설정 기능
- 문제 선택 및 리스트
- 문제별 정.오답 체크
- 운영자, 응시자 회원가입/로그인 기능
- 시스템 운영을 위한 백오피스 기능 개발
- 완성된 전 시스템 하나의 솔루션 패키지로 묶어 공유 서비스로 제공 가능하도록 세팅
- 장기적으로 수익 창출?