2022 군장병 공개SW 온라인 해커톤 참여 후기

Team ACOC: Project Connectogram

2022 군장병 공개SW 온라인 해커톤 참여 후기
이미지 출처 - 정보통신산업진흥원 국문 홍보 브로슈어

들어가며

이미지 출처 - OSAM 해커톤 메인 페이지 (클릭 시 이동)

2022년 군 복무 기간 중, 과학기술정보통신부와 국방부에서 주최하고 정보통신산업진흥원에서 주관하는 군장병 공개SW 온라인 해커톤에 참여한 경험을 다룹니다.

해커톤 개최 소식을 듣다

8월 당시 카카오×구름 SW·AI 역량강화 특강을 수강 중이었습니다. 구글에 SW 역량강화라고 검색해 보았더니, 생각지도 못하게 아래와 같은 소식을 발견했습니다.

군장병 공개SW 역량강화교육 - 공개SW 포털
사업소개 부족한 공개SW 인력을 양성하고 4차 산업혁명시대에 대응할 수 있는 선제적이며 창의적인 젊은 예비개발자 양성 軍복무 기간 동안 공개SW 개발 기술을 학습하고 체험할 수 ...

오랜만에 만나 보는 해커톤 소식이 너무 반가워 생활관에서 함께 참여할 사람을 바로 찾기 시작했습니다. 두 명이 참가를 결정했고, 근무지에서는 백엔드 분야에 익숙하신 간부 한 분께서 합류하셨습니다.

다만 사전에 팀을 구성하더라도 구성원이 참가자 선발 과정에서 성적이 200명 내에 들지 못하면 소용이 없으니, 주로 변별이 될 만한 코딩 경진대회와 개발 계획서 작성에 집중하기로 했습니다. 저희는 WEB 분야로 출전했습니다.

참가자 선발

이미지 출처 - 국방오픈소스아카데미

참고로 인강 형태로 주어지는 사전 교육을 모두 이수하지 않으면 평가 제외 처리됩니다. 이론평가 점수가 가장 높지만 난이도가 낮아 주로 코딩 테스트에서 변별이 이루어 지는 것으로 보입니다.

이론평가

사전 교육 내용을 바탕으로 이론 시험을 봅니다. JavaScript와 React 기본 개념을 어느 정도 알고 있다면 무난하게 넘어갈 수 있습니다. 저는 당시 93점으로 마무리했습니다.

코딩 테스트 with 코딩경진대회

조금만 더 빨랐더라면 3번까지는 100점 했을텐데 아쉽습니다

프로그래머스 플랫폼에서 코딩 테스트를 봅니다. 해당 시험의 결과는 코딩경진대회 성적으로 들어가며 상위 6명은 상품을 받습니다.

문제 관련해서는 자세히 적을 수 없어 간략하게만 말씀드리자면, 총 4문제가 출제되며 1번은 짧은 시간 내에 해결 가능합니다. 2번부터 구현이 좀 들어가며 3번부터는 고민을 많이 해야 합니다. 3번 문제는 solved.ac 기준 실버2~골드5 정도 되어 보였습니다.

코테에 약해 걱정했으나 어찌어찌 2번까지는 100점, 3번 문제는 예외처리 일부를 못 해서 68점을 받았습니다. 시간이 없어 4번은 손도 못 댔는데, 리더보드 상위권을 보니 여유롭게 해결하신 분들이 많습니다. 역시 PS는 더 열심히 공부해야겠습니다... 그래도 이 점수로 웬만해서는 떨어지지 않을 거라고 생각했고, 다행히 문제 없이 선발됐습니다.

개발 계획서

마치 소프트웨어 마에스트로에 지원할 때 하고 싶은 프로젝트를 쓰듯, 여기에도 비슷하게 하고 싶은 프로젝트를 적습니다. 주제는 선발된 이후에도 변경할 수 있습니다. 팀을 미리 구성해서 지원했다면 내용은 비슷해서 상관 없으나 역할이 잘 드러나도록 작성해야 합니다. 당시에 생각나는 적당한 주제를 풀어 적었는데, 정작 대회 시작하고 나서는 다른 주제로 프로젝트를 진행하게 됐습니다.

팀 빌딩

사전에 구성한 팀이 있으면 팀장이 될 사람의 프로젝트에 바로 참여합니다. 사실 혼자 참여한 경우가 드물어 대부분 이 때 주제 논의가 끝나면 바로 개발에 들어갑니다. 멘토가 한 분 매칭되는데 저희 팀은 마이크로소프트에서 근무하시는 멘토님께서 오셨습니다. 주말에 정기외출 나가서 전화로 연락 드렸던 기억이 납니다.

주제 선정을 위한 고민이 꽤 길었습니다.
다수가 공감할 수 있도록 보편적인 주제를 선정하면 아이디어가 너무 겹치고 이목을 끌기 어려워 보였습니다. 반대로, 이목을 끌고 독창적인 주제를 위해 전문적인 분야로 들어가기 시작하면 다수의 공감을 얻어내기 어려울 것 같아 생각이 깊어졌습니다. 게다가 전 회차 수상작들을 보니, 군사 안보 관련 주제가 군인 상장 타율이 높았습니다. 종합적으로, 팀원들 근무지가 육군 사이버작전센터이기도 하니 사이버 보안 분야를 선정하면 어떨까 하는 생각이 들었습니다. 곧 이쪽 방면으로 생각해 보기 시작했습니다만 보안 분야에서 그럴듯한 주제를 선정하는 것도 쉽지는 않았습니다.

그러다 한 명이 사용자의 행위 분석에 초점을 맞춰 보자는 아이디어를 제시했고, 이를 구체화하다 보니 軍 내 통신 시각화를 중점으로 하는 사이버 관제 솔루션을 구상하게 되었습니다. 이름은 연결 정보(Connect)를 시각화하여 전송(telegram)한다는 의미에서 커넥토그램(Connectogram)으로 지었습니다.

개발

저는 팀장을 맡으면서 기획, 디자인, 문서화, 프레젠테이션 자료를 담당했습니다.

간부 한 분을 제외한 팀원들 모두가 CERT라서 교대 근무를 하다 보니, 함께 모여서 개발할 시간이 없었습니다. 그나마 모두가 한 자리에 모일 수 있는 날이 4일에 한 번이었는데, 이 시간조차도 멘토링을 위해 쓰다 보니 결국 한 자리에 모여서 개발할 수는 없었습니다. 우선 모일 수 있는 날까지 작업한 내용을 멘토님께 피드백받고 다시 이를 적용하는 형식으로 1달을 보냈습니다.

우선 전체적인 기획과 디자인에 집중해 보기로 했습니다. 시간을 아끼기 위해 요구사항 정리와 디자인을 동시에 진행했습니다. 입대 전에 참여했던 해커톤에서 UI 디자인을 했던 경험을 살려 Figma로 디자인을 시작했습니다.

우선 위와 같은 디자인으로 개발을 시작했습니다. 웹 공부를 시작한지 얼마 되지 않은 때이기도 하고, Unity 개발할 때 현장실습 가서 협업은 많이 해 봤으니 브랜치 병합 과정에서 발생하는 문제 해결이나 작업 공간 세팅을 하면서 세부 기획 수정과 문서화 작업, 프레젠테이션에 준비에 집중했습니다. 어떤 기능을 넣고 뺄지 고민을 많이 하다 보니 기획 수정이 잦아서 거의 10월 중반이 되어서도 기능 요소 바뀌어 디자인을 새로 하곤 했습니다. 기획 및 디자인 전달을 위해 질릴 정도로 Figma를 써 보았으며 API와 요구사항 정의서 작성도 해 보고, Readme 이쁘게 만들기 위한 노력도 하는 등 짧은 기간이었지만 정말 여러 가지 경험해서 재미있기도 했습니다.
대체로 프론트엔드 개발자가 프로젝트에서 어떤 역할을 수행해야 하는지 알 수 있었습니다. 웹페이지 개발뿐만 아니라

버전 관리는 급한 대로 적당히 했는데, 프론트엔드와 백엔드를 한 레포에 묶어 관리했습니다. 멘토님도 지적한 사항이지만 짧게 하는 작은 프로젝트라 큰 문제는 없었습니다. 물론 최근 개인 프로젝트에서는 따로 관리하는 중입니다.

어찌저찌 기능 개발이 거의 다 됐을때는 프레젠테이션 준비에 본격적으로 착수했습니다. 툭하면 멈추는 사지방 PC로 개인 서버에 데모 페이지 nginx로 도메인 붙여 띄우고 구글 슬라이드 작업하는 게 정말이지 유쾌한 일이었습니다.

가끔 다른 팀 Git 레포도 구경했는데, 훈련 등 일정 문제로 포기한 팀도 보였고, 이미 현업 뛰다 오신 고수분들도 많았습니다. 레포에 올려 놓은 프레젠테이션만 봐도 다르다는 느낌이 들었습니다.

수상, 할 수 있을까요...?

결과 발표

11월 14일 오후 3시, 결과 발표가 있었습니다.

정말 기쁘게도, 저희 ACOC 팀이 육군 참모총장상을 수상하게 되었습니다.
함께해 주신 팀원분들, 멘토님께 모두 감사드립니다, 고생하셨습니다!!

Presentation

TEAM ACOC - Connectogram.pptx
CONNECTOGRAM 軍 사이버 보안의 미래 TEAM ACOC

Connectogram Demo Page

ID: demo
PW: demo

Connectogram
Web site created using create-react-app

Notion Page

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

Git Repository

GitHub - Godbell/WEB_Connectogram_ACOC: 2022 군 장병 역량강화 해커톤 팀 ACOC, 팀장 김종하, 팀원 김경환, 신현규, 박길선
2022 군 장병 역량강화 해커톤 팀 ACOC, 팀장 김종하, 팀원 김경환, 신현규, 박길선 - GitHub - Godbell/WEB_Connectogram_ACOC: 2022 군 장병 역량강화 해커톤 팀 ACOC, 팀장 김종하, 팀원 김경환, 신현규, 박길선

Figma Design Page