
0. 들어가며
이번 글에서는 "KSPO 공공데이터 활용 경진대회"에서 우수상을 수상하게 된 경험을 정리해보려고 합니다!!!
공모 기간이 8월 1일부터 진행하여 12월 7일까지였는데, SSAFY 마지막 프로젝트 일정을 마무리한 뒤부터 대략적으로 11월 20일부터 기획 및 개발을 시작했습니다. 그동안 쌓은 실력으로 일단 도전하자는 마음을 가지고, 팀을 결성했습니다.
사실 처음 이 경진대회를 알게 됐을 때만 해도 “공공데이터를 써서 뭘 만들 수 있을까?”라는 생각이 먼저 들었고, 기획부터 개발까지의 기간이 짧았던 만큼 수상까지 이어질 거라고는 크게 기대하지 않았습니다. 하지만 결과적으로는 아이디어를 구체화하고, 실제 서비스 형태로 구현해보는 과정 자체가 굉장히 의미 있었던 경험이었고, 그 과정에서 배운 것도 정말 많았습니다.
짧은 기간동안 진행된 만큼 개발 과정에서 얼마나 농도 깊은 고민을 했는지, 그리고 결과적으로 무엇을 얻었는지를 중심으로 가볍게 정리해보려고 합니다 :>
1. 개발 과정
1.1 주제 선정 – “데이터를 어떻게 쓰는 게 의미 있을까?”
KSPO 공공데이터는 생각보다 종류가 다양했습니다. 체육 시설 정보, 생활 스포츠 참여 현황, 종목별 데이터 등 여러 데이터가 있었지만, 단순히 “보여주기용”으로 끝나는 서비스는 만들고 싶지 않았습니다. 그래서 팀원들끼리 다음과 같은 질문을 가장 많이 나눴습니다.
“이 데이터를 쓰면, 사용자에게 어떤 실질적인 도움이 될까?”
그 결과, 원래는 유료 데이터였지만 공모전 기간 동안 일시적으로 무료로 개방된 "공공체육시설 프로그램 정보"데이터를 활용하여 사용자의 성별·연령·위치·관심 종목 등을 기반으로 맞춤형 운동 프로그램을 "추천"해주는 서비스로 방향을 잡았습니다.

즉, 공공데이터를 ‘정보 제공’이 아니라 개인화 추천의 용도로 활용하는 데 초점을 맞췄습니다.
1.2 데이터 가공 – 공공데이터는 그대로 쓰기 어렵다
시간을 지체할 수 없어, 데이터 선정과 기획은 생각보다 빠르게 이루어졌습니다. 이제 기획된 내용을 토대로 개발을 진행해야 하는데, 개발이 본격적으로 시작되기 전에 가장 먼저 부딪힌 벽은 역시 "데이터 전처리"였습니다. 선택한 공공데이터가 기존에는 유료 데이터였던만큼 잘 정제되어 있을 것이라고 생각했는데, 생각보다 자유분방한 데이터 형태를 가지고 있었습니다. 예를 들면,
- 데이터 포맷이 제각각이었다.
- 값이 비어 있는 컬럼이 상당히 많았다.
- <br>과 같은 이상한 데이터 값이 많았다.
그래서 단순히 “API 호출 → 화면 출력” 구조가 아니라, 데이터를 먼저 우리가 기획한 서비스에 맞게 전처리하는 과정에 시간을 많이 쏟았습니다.

전처리 과정을 진행하면서 정말 다양한 운동종목이 있다는 것을 알게 되었습니다. 나름 운동을 좋아해서 여러 운동에 대해서 들어봤는데, 완전 처음 들어보는 운동종목도 있더라구요. 역삼 멀티캠퍼스에서 같이 있어서 전처리 관련한 회의도 바로바로 진행할 수 있어서 좋았습니다. 회의를 통해서 전처리를 어떻게 진행해야 할지 가닥을 잡은 다음에는 각자 전처리 역할을 분배해서 작업을 진행했습니다.
csv 파일의 행이 정말 많았기 때문에 손으로 일일이 할 수 없어서 파이썬 pandas 라이브러리를 활용해서 데이터를 정제했습니다.

저는 운동 프로그램의 대상을 정제하는 역할을 맡았는데요. 프로그램 대상에 대한 종류를 Set 자료구조로 담은 결과가 549가지 나왔습니다. 물론 공백도 존재했습니다... 저 데이터들을 토대로 ["유아", "청소년", "성인"]으로 분류하는 작업을 진행했습니다. pandas를 활용하지 않았더라면 시간이 정말 오래 걸렸을 것 같습니다. csv 데이터 활용 및 분석은 "파이썬"입니다!
제가 분류한 작업 결과와 팀원분들이 작업해 준 결과를 합쳐서 PostgreSQL 데이터베이스에 마이그레이션 하는 작업까지 맡아서 진행했습니다.

생성형 AI의 도움을 받아 연관 관계로 데이터 중복을 없앨 수 있도록 칼럼을 재구성해서 데이터를 분리했습니다. DataGrip IDE를 활용해서 csv import를 통해서 EC2 서버의 DB와 Local DB에 정제한 데이터를 삽입했습니다. 결과적으로 다음과 같은 테이블 구조를 가지게 되었습니다.

이 과정에서 공공데이터를 잘 활용한다는 것은 존재하는 데이터를 그대로 쓰는 것이 아니라, 해석하고, 기획된 서비스에 맞춰 정제하고, 다시 설계하는 일이라는 것을 깨달았습니다. 또한, 기존 데이터를 토대로 이렇게 ERD를 구성하는 과정이 상당히 재미있었습니다. 그럼 이제 ERD까지 구성했으니 ERD에 맞는 애플리케이션에서도 Entity를 설계해야겠죠? 본격적인 개발이 시작되었습니다.
1.3 서비스 구현 – ‘공모전용’이 아닌 ‘실제 서비스’처럼
공모전이라고 해서 결과물만 그럴듯하게 만드는 건 최대한 지양하는 것이 저희 팀의 목표였습니다. 그저 공모전용으로만 개발하면 재미가 없을 것 같아서 실제로 한 번쯤은 써보고 싶은 서비스를 만들고 싶었습니다. 궁극적으로 KSPO 측에 저희 서비스가 녹아들어 갔으면 하는 바람도 있었습니다.
그래서 개발하면서 계속 신경 쓴 부분은 다음과 같습니다.
- 실제 사용 흐름(UX)이 자연스러운지
- 사용자 입장에서 “이 기능을 왜 써야 하는지”가 명확한지
특히, 추천 결과를 보여줄 때도 LLM에 던져줄 프롬프트를 정교하게 작성하여 최대한 모든 상황을 고려한 운동 종목 및 응답 Json 값을 잘 반환할 수 있도록 짜는데 심혈을 기울였습니다. 개발이 어느 정도 진행된 이후에는 다 같이 디스코드로 모여 QA를 진행하며 지속적으로 더 나은 서비스 구현을 위해서 소통을 진행했습니다.

팀장 역할을 맡은 만큼 짧은 기간 동안 진행되는 이 프로젝트를 잘 컨트롤했어야 했습니다. SSAFY 진행도 비대면으로 변경되어 직접 오프라인으로 만날 수 있는 기회는 없었습니다. 프로젝트 이외에도 각자의 일이 있기 때문에 오프라인으로 만났을 때보다 일정을 조율하기는 쉽지 않았습니다. Jira를 사용하지는 않았지만, 회의에서 나온 주제들을 어느 정도 해결했다 싶으면 스프린트를 끝냈다고 생각하여 다시금 회의 날짜를 잡고, 회의 내용을 토대로 업무를 분담했습니다.

문제가 발생하면 디스코드를 활용해서 즉각적으로 문제를 해결해 나갔습니다. 프로젝트 경험이 어느 정도 있음에도 불구하고, 새로운 문제가 발생하는 것도 신기하고, 그것들을 트러블 슈팅하는 과정에서 큰 재미를 느끼는 것 같습니다. 이렇게 UI/UX 부분과 백엔드 로직, 그리고 AI 영역까지 오류 없이 동작하는 것까지 테스트하여 탄생한 서비스가 바로!
FitFinder: 나에게 딱 맞는 운동 프로그램과 AI 주간 루틴을 제공하는 웹서비스


개인적으로 프론트엔드 개발자분이 디자인과 로고를 잘 뽑아주신 것 같다는 생각이 듭니다. 이런 디자인 감각을 가지고 있는 게 정말 부럽습니다... 저한텐 없거덩요.
이렇게 개발한 내용을 토대로
- 활용사례 보고서
- 증빙자료
- 개진정보 수집 및 이용 동의서
위 3가지 자료를 준비해서 제출 날인 12월 7일 오후 11시경 팀원들과 마무리 점검을 하고 제출했습니다. 모두 열심히 해준 덕분에 기획부터 개발 기간 동안 정말 밀도 있는 시간을 보낸 것 같아 뿌듯했습니다. 거의 새벽 3~4시쯤 자고, 8시에 일어나서 개발하고,,, 과정을 일주일 넘게 진행한 것 같습니다. (12월 15일이 AWS SAA 자격증 시험인 건 함정...)
2. 공모전 결과 및 시상식
2.1 공모전 결과
SAA 시험을 준비하느냐고 솔직히 결과 발표날짜도 까먹고 있었습니다. 프로젝트를 UI/UX적으로 신경을 많이 썼기도 했지만, 짧은 기간의 기획 & 개발을 했다는 점에서 마음을 어느 정도 내려놓고 있었습니다. 그 이유는 이 공모전이 8월 1일부터 진행된 터라, 정말 퀄리티 부분 또는 다양한 데이터를 활용한 서비스들이 많이 나올 것 같았거든요.
캘린더에 경진대회 결과 날짜를 저장해 둔 터라 12시쯤 결과 발표일이란 것을 알게 되었고, 15시 30분쯤(?) 어떤 프로그램이 수상했나 궁금해서 들어가 봤습니다. 결과가 나와있었고, 따로 문자나 메일이 오지 않았던 터라 기대하지 않고 결과를 확인했습니다.

저희 팀 이름이... 그리고, 우수상입니다... 일단 보자마자 조금 멍 때렸습니다. 그 뒤에야 조금 실감이 나서 팀원분들께 사실을 알렸고, 같이 기뻐하는 시간을 가졌습니다. 기획적으로 차별점이 있었을까? UI/UX 적으로 테스트를 진행했을 때, 다른 팀에 비해 별다른 문제가 없었을까? 여러 가지 생각이 들었습니다. "아, 우리가 고민했던 방향이 완전히 틀리진 않았구나"라는 생각이 들면서 가족들한테도 자랑했습니다 :>
(참고로 조금 늦은 16시쯤 문자와 시상식날 준비해 가야 할 것들에 대한 정보가 담긴 이메일이 도착했습니다.)
현재 와서 다시 뒤돌아봤을 때, 수상 자체도 물론 의미 있었지만, 그보다 더 값졌던 건 다음과 같습니다.
- 공공데이터를 서비스 관점에서 해석해 본 경험을 해봤다는 것
- 팀장으로서 지속적인 소통과 문제 해결 과정을 함께 했다는 것
- 짧은 기간에도 물음표 없이 아이디어 → 설계 → 구현 → 결과까지 한 사이클을 완주했다는 것
이제 12월 22일 월요일인 시상식을 준비해야 합니다. (SAA 시험 결과가 궁금하시다면 >SAA 후기<)
2.2 시상식 🏆
12월 22일 월요일 시상식 날짜가 다가왔습니다. 14시 즉, 오후 2시까지 하나은행 올림픽출장소 지점으로 가야 했습니다. 준비물은 다음과 같았습니다.
- 5분 이내의 서비스 PT 발표
- 라이브 시연
팀원들과 PPT 장표와 발표 시간도 디스코드를 통해서 같이 보고, 체크하면서 지속적인 개선을 이어나갔습니다. 발표일로부터 시상식 날짜까지 기간이 넉넉하게 있어서 준비하는 데에는 큰 어려움은 없었습니다.
시상팀들이 모여서 회관 건물 14층으로 이동했습니다.




음료수와 수첩이 준비되어 있었고, 팀장 자리에는 개발한 서비스와 상금과 관련된 결재서류가 놓여있었습니다. 앞에 큰 화면에 시상식이라는 내용의 화면을 보니 정말 가슴 뭉클했습니다.
간단한 인사말 및 공모전에 대한 설명을 해주셨고, 상장 수여식을 진행했습니다. 수상팀과 관계자분들과 같이 찍은 단체 사진은 아래 네이버 뉴스에서 확인하실 수 있습니다.
https://m.sports.naver.com/general/article/015/0005228062
체육공단, 2025년 공공데이터 활용 경진대회 시상식 개최
체육공단, 2025년 공공데이터 활용 경진대회 시상식 개최 입력2025.12.23. 오전 10:24 기사원문 공감 좋아요0슬퍼요0화나요0팬이에요0후속기사 원해요0 텍스트 음성 변환 서비스 본문 듣기를 종료하였
m.sports.naver.com
수여식을 끝내고, 대상부터 순서대로 PT 발표를 진행했습니다.

발표와 라이브 시연까지 문제없이 수행했습니다. 다른 팀들 서비스도 봤는데, 정말 아이디어가 독창적이었고, 데이터를 여러 개 사용해서 정말 멋진 서비스를 만드신 분들도 있었습니다. 시연이 모두 끝난 뒤에는 각자 개인 사진촬영이 있었습니다. 이런 건 빠질 수 없죠 ㅎㅎㅎ 저도 개인 촬영과 팀원들과도 사진을 찍었습니다. 그 이후에는 방이동으로 이동해서 별미곱창을 맛있게 먹으며 팀원들과 즐거운 시간을 보냈습니다 :>


3. 정리하며
짧은 기간에도 기획 내용들을 서비스에 녹여낼 수 있는 실력도 중요하지만, 이번 경진대회를 통해 가장 크게 느낀 점은 하나입니다.
기술보다 중요한 건 문제를 바라보는 관점과, 데이터를 해석하는 시선
공공데이터는 누구나 접근할 수 있지만, 그걸 어떤 문제와 연결시키느냐, 그리고 어떤 사용자 경험으로 풀어내느냐에 따라 결과는 완전히 달라진다고 느꼈습니다. 즉, 문제를 명확하게 발견한 뒤에야, 비로소 기술은 그 문제를 해결하기 위한 수단으로 의미를 갖게 된다는 것입니다.
만약 공공데이터 활용 경진대회를 고민하고 있다면, “공모전용 서비스”보다는 “실제로 써볼 수 있는 서비스”를 만든다는 마음으로 접근해 보는 걸 추천드립니다. 결과를 떠나서 개인적으로도 굉장히 만족스러운 경험이었고, 앞으로도 이런 데이터 기반 공모전에 계속 도전해보고 싶습니다. 2026년에도 좋은 결과들이 있기를 소망하며 글을 마치도록 하겠습니다 :> 읽어주셔서 감사합니다 !!
