COU
구성·배포 가능한 오픈소스 온라인 저지를 제품·스타트업으로 발전시킨 프로젝트.
3→10명 팀 · 2022 SW인재페스티벌 우수작
프로젝트로 시작해 창업까지 갔습니다
COU는 “Coding Online-judge platform Univ.”의 줄임말로, 2022년 시작한 온라인 저지 웹 사이트이자 종합 서비스 개발 프로젝트입니다.
문제의식은 단순했습니다. 백준 같은 기존 온라인 저지는 중앙에서 운영되는 폐쇄형이라, 각자 목적에 맞게 고치거나 직접 배포해 쓸 수 없었습니다. 그래서 누구나 자기 목적에 맞게 수정하고 손쉽게 배포·운용할 수 있는 온라인 저지를 만들자는 데서 출발했습니다.
처음에는 제가 소규모 인원을 모아 주도한 프로젝트였습니다. 진행하면서 규모가 커지고 인원이 늘었고, 플랫폼이 어느 정도 완성되는 시점에 사업자 등록을 하며 창업으로 이어졌습니다. 3인에서 10인 규모의 팀으로 키우며 PM으로 제품 방향과 팀 운영을 총괄했습니다. 프로젝트에서 서비스로, 다시 스타트업으로, 그리고 그 과정을 정리한 논문까지 이어진 여정이었습니다.
학교 대표로 강원권 SW중심대학 워크샵에서 발표했습니다
2022년 12월, 한국소프트웨어 종합학술대회(KSC2022) 부대 행사로 열린 강원권 SW중심대학 협력 워크샵에서 학교 대표로 COU를 발표했습니다. 누구나 손쉽게 배포·운용할 수 있는 오픈소스 온라인 저지라는 COU의 목표를 소개했습니다.
2022 SW인재페스티벌 우수 작품으로 선정됐습니다
이어 과학기술정보통신부·IITP가 주관하는 2022 SW인재페스티벌에 학교 대표로 참가했습니다. 전국의 SW중심대학이 모이는 무대에서 COU가 우수 작품으로 선정돼, 부스를 운영하며 프로젝트를 시연하고 발표했습니다. 오픈소스 소프트웨어 활용이라는 관점에서 프로젝트의 의의를 소개했습니다.
문제 풀이 경험을 중심에 뒀습니다
핵심 화면은 문제 풀이 인터페이스입니다. 왼쪽에는 문제 설명과 예제 입·출력을, 오른쪽에는 브라우저 안에서 바로 코드를 작성·제출하는 편집기를 두었습니다. 편집기는 여러 언어와 구문 강조·테마 전환을 지원하고, 제출하면 격리된 채점 서버가 코드를 실행해 통과·실패를 판정하며 채점 현황을 확인할 수 있습니다.
작성 중인 코드가 사고로 날아가지 않도록, 체크섬으로 잘못된 저장을 막는 코드 임시저장(자동 저장) 기능을 별도 모듈로 두었고, 코딩 테스트 상황을 위해 비공개 제출도 지원했습니다.
문제·연습·개인화까지 붙였습니다
문제는 카테고리·태그·난이도로 정리하고, 카테고리별 달성률로 학습 진행을 보여줍니다. 랜덤 문제 선택, 검색·난이도 필터를 제공해 단순한 문제 나열이 아니라 학습자에 맞춘 연습 경험을 설계했습니다. 여기에 대회(코딩 테스트), 제출 현황, 커뮤니티(질문·게시글), 알림까지 갖춘 종합 서비스로 구성했습니다.
기술 스택과 배포
백엔드는 Django로 계정·문제·제출·채점·대회·임시저장·이메일 인증·공지·커뮤니티 모듈을 구성하고, 프론트엔드는 Vue로 코드 편집기(CodeMirror)·수식(KaTeX)·차트(ECharts)·다국어(i18n)를 붙였습니다. 데이터는 PostgreSQL과 Redis를 사용했습니다.
채점 서버는 컨테이너 권한을 최소화하고(cap_drop) 읽기 전용·임시 파일시스템으로 격리해, 낯선 사용자의 코드를 안전하게 실행하도록 했습니다. 전체 서비스는 Docker Compose로 묶어 한 번의 명령으로 띄울 수 있게 했으며, 이는 “누구나 자기 환경에서 손쉽게 배포·운용한다”는 초기 목표와도 맞닿아 있습니다.
역할
PM 겸 창업자로서 제품 방향 설정부터 팀 운영, 대외 발표까지 총괄하며 우수작 프로젝트를 실제 서비스로, 다시 스타트업으로 키워냈습니다.