본문 바로가기

경진대회

2025 SW개발보안 경진대회, 소개딩 후기(최우수상)

작년 한국인터넷진흥원에서 주관하는 소프트웨어 개발보안 시큐어코딩(소개딩) 경진대회에 참여해 최우수상을 수상했다.

학교 동기분께서 대회정보를 공유해주어 처음 대회를 알게되었고, 이전에 프로젝트를 함께 했었던 동기들에게 연락을 해 최종적으로 프론트 1명과 백엔드 2명으로 총 3인팀으로 대회에 참여했다.

 

처음에는 대회명이 개발보안 시큐어코딩이어서 보안 관련된 프로젝트로 진행해야할 줄 알고 걱정했지만, 대회 설명회를 통해 이 대회는 보안을 고려한 안전한 소프트웨어 개발이 주제임을 알게되었다.

웹 서비스 관련해 여러 프로젝트를 진행했었고, 보안 관련해서도 저번 학기 학부연구생으로 활동하며 보안 관련 논문도 여럿 읽어본 경험이 있어 이번 대회가 좋은 기회라고 생각했다.

 

대회는 예선(8팀)-본선(3팀)-결선(등수결정)으로 진행되었다.

예선

예선은 서류(개발기획서)만으로 트랙별 8팀이 본선에 진출할 기회를 얻게되는 방식이었다.

대회 주최인 행정안전부의 2025년 주요 추진과제 중 하나인 "지방시대"에 초점을 맞춘 아이디어, 청년들의 지방이주를 돕는 서비스로 아이디어를 정했다.

 

개발기획서를 작성하던 중, 큰 문제가 생겼다.

바로 국가정보자원관리원에 화재 사고가 발생해 공공데이터 포탈 접근이 불가능했고, 언제 복구가 될지도 확실하지 않아 공공데이터 포탈이 아닌 다른 데이터 제공처를 찾아보아야했다. 공공데이터를 조사하는데 시간이 조금 소요되기는 했지만, 다행히도 대체 사이트 등을 통해 서비스에 필요한 데이터는 모두 확보가 가능했다..ㅎㅎ

 

개발기획서에는 사용할 기술스택과 개발환경, 보안요소를 위주로 작성했고, 운좋게 본선에 진출하게되었다..!

 

본선

예선 결과발표가 중간고사 기간에 이루어졌고, 2주 뒤에 바로 본선이 있어 개발할 수 있는 기간이 그리 많지는 않았다.

본선 해커톤 진행은 온라인으로 1박 2일간 진행되지만, 사전 개발이 가능했기에 본선 전에 개발 및 배포를 완료하고, 해커톤 당일에는 발표 자료나 문서 작성을 주로 했었다.

 

본선 당일에 현장미션도 공개되었는데, AI의 결과를 신뢰할 수 있도록 근거나 추론 과정을 공개하는 미션이었다.

우리 서비스는 AI가 지역을 추천해주는 기능이 있었고, 다행히도 현장미션 공개 이전에 AI의 추천 근거를 이미 제공하도록 구현해두어 크게 수정할 일은 없었다.

 

해커톤이 종료되고, 소스코드 등을 제출한 뒤 일주일 뒤 서울 코리아나호텔에서 발표평가가 이루어졌다.

 

A트랙 발표 이후 B트랙 발표가 진행되었고, 우리 팀은 비교적 뒤에 발표를 하게 되어 긴장되는 마음으로 다른 팀의 발표를 듣게 되었다. 심사위원으로는 대회 후원기업(토스, 롯데호텔&리조트, 스패로우, KISA 등등...)의 팀장님들께서 직접 오셔서 평가를 해주셨다.

우리 팀 발표를 한 뒤 심사위원분들께서 보안이나 기술적인 질문은 거의 안하시고, 서비스에 대한 질문을 많이 해주셨는데 (실제 해봤을 때 어떤 지역이 추천되는지 등) 처음에는 기술적/보안적인 요소가 부족해서 그런 줄 알고 걱정했었는데 생각해보니, 개발기획서나 서비스 소개서에 이미 작성해놓은 부분들이라서 그랬던 것 같기도 하다.

 

결선에 진출한 뒤 본선평가 시 감점당한 보안 취약점이 있는지 궁금하여 대회측에 문의하게 되었고, 제거하지 못한 보안 취약점이 몇 건 있었다..ㅎ

NPE가 발생 1건과 부적절한 예외처리로 감점이 되었다고 하는데, 완벽하게 대응하지 못했다는 점에서 아쉬움이 있었다.

이번 대회에서 외부 라이브러리나 스프링 배치 등 새로운 기술들을 많이 사용하게 되면서, 발생할 수 있는 예외를 완벽하게 catch하지 않고, 몇 개를 Exception으로 처리했던 부분에서 감점이 되었던 것 같았고, 앞으로는 더 꼼꼼하게 처리해야겠다고 확실히 깨닫게 되었다.