Design and Implementation of Coding Platform Using Open-Source Software
Annual Conference of KIPS (ACK 2022)
작은 팀이 기능을 바꾸고 배포하기 쉬운 코딩 플랫폼을 만들고자 했습니다. 웹 API·화면·채점 서버를 분리하고 Docker Compose로 서비스 구성을 재현하도록 설계했습니다.
- 역할
- 제1저자 · 오픈소스 기반 코딩 플랫폼 설계·구현 연구
- 핵심 결과
- GCP에 배포해 문제 출제·조회·코드 제출·채점 결과 확인 흐름을 구현. 이후 COU 창업으로 확장.
배경
오픈소스 소프트웨어(OSS)는 적은 비용으로 빠르게 서비스를 구축할 수 있어, 대규모 인력이 없는 스타트업·소규모 프로젝트의 주요 대안입니다. 이 논문은 OSS를 조합하고 도커 기반 컴포넌트로 모듈화해, 2차 창작·배포·운용이 모두 쉬운 온라인 코딩 플랫폼을 설계·구현했습니다.
설계와 구현
플랫폼은 PostgreSQL·Redis·JudgeServer·coding-platform 네 모듈을 각각 도커 컨테이너로 구성합니다. JudgeServer는 제출된 코드를 채점해 실행시간·사용 메모리를 돌려주고, coding-platform은 코딩 요청과 결과를 처리하는 웹 컨테이너입니다. PostgreSQL·Redis·JudgeServer는 서로 독립적이고 coding-platform만 이들에 의존하도록 두어, docker-compose 명령 한 줄로 전체 서비스를 세울 수 있게 했습니다.
coding-platform은 Django의 MTV 구조를 쓰되 Template을 Vue.js로 두어 프런트엔드와 백엔드의 의존을 끊었습니다. Django REST Framework로 API를, Django Model로 DB를 다루고 Vue 클라이언트는 axios로 통신하므로, 프런트엔드를 React·Angular로 바꾸거나 백엔드만 따로 수정하는 것이 자유롭습니다.
결과
Google Cloud Platform에 배포해 문제 출제·조회·코드 제출·채점 결과 확인까지 이어지는 서비스를 구현했습니다. API와 서비스 경계를 나눠 화면이나 채점 기능을 수정할 때 전체 서비스를 다시 구성하지 않도록 했습니다.
논문에서 확인한 범위는 모듈 구성과 실제 서비스 동작입니다. Docker 사용만으로 장애 격리나 네이티브 수준의 성능이 검증됐다고 보지는 않았습니다. 이 설계는 이후 COU로 발전한 출발점이 된 학부 시절 제1저자 연구입니다.