2022 DevRel Awards: 보물찾기 이벤트 후기

보물찾기 이벤트 회고

김기준
SSG TECH BLOG
5 min readFeb 15, 2023

--

안녕하세요. DEVREL Advocators 로 활동 중인 상품플랫폼팀 김기준 입니다.

작년 12월에 진행했었던 2022 DevRel Awards 의 사전 이벤트 중 하나로 성공적으로 마무리된 보물찾기 이벤트에 대한 후기로 글을 쓰게 되었습니다.
보물찾기 이벤트의 준비과정에 대해 소개해 드리겠습니다.

장소 : 센터필드 어딘가!

이벤트 기획 : QR 코드를 이용한 보물찾기🎁

서로 다른 업무를 하는 3명이 모여, 1달 정도의 기한내에 보물찾기 이벤트를 준비하게 되었습니다. 첫 회의 때 부터 모두 적극적으로 회의에 참여하며 다양한 의견을 나누었습니다. 회의를 통해 일반적인 보물찾기 보다는 IT 기술을 활용하여 참여자들에게 보물을 찾는 즐거움을 드리기 것을 목표로 하였고, QR을 이용한 보물찾기를 기획을 하게 되었습니다.

행사 당일 사무실 곳곳에 숨겨진 QR코드

QR 코드를 이용한 보물찾기
사옥 내에 미리 준비한 QR 코드를 숨겨놓고 참가자가 QR 코드를 발견 후 해당 QR 코드를 읽어 보물의 당첨 여부 제공해주는 방식입니다.

개발에 들어가기 전에 사내 인프라를 사용할 수 없었기에 호스팅 서비스 부터 개발 환경까지 모든 것을 결정해야 했습니다.

먼저, 호스팅 서비스로는 구름 IDE로 결정했습니다. 인기 있는 AWS와 GCP가 우선 고려 대상이였지만 사용 유저 수도 적고 인프라에 대한 다양한 기능은 필요 없었기에 조건부로 무료로 사용할 수 있는 구름 IDE로 진행하기로 결정했습니다. 그리고 개발 환경은 관심 있거나 이번 프로젝트에서 써보고 싶은 기술들을 서로 이야기해보며 Spring Boot와 JPA, MySQL, Thymeleaf, Bootstrap, Vue.js를 사용하는 것으로 결정했습니다.

개발환경
- Java 11, Spring Boot, JPA, Thymeleaf, Gradle
- Bootstrap, Vue.js
- MySQL, H2 Database, Github

보물찾기 서비스 개발

개발을 하려고 보니 기획 때 미처 생각하지 못했던 부분들이 있었습니다.
참가자가 URL을 직접 변경하여 다른 보물을 찾지 않고도 접근한다거나, 한 사람이 다른 사람들의 몫까지 대리 참여하는 등 여러 어뷰징에 대해 방지해야 할 필요가 있었습니다.
그리고 보물찾기를 선착순으로 한다면 이벤트 당일 가장 먼저 출근한 사람이 모든 보물을 가져갈 수도 있기에, 선착순 이벤트에 대한 부분도 다시 한번 고민해야 했습니다.

어뷰징 고민에 대한 해결 방법들
1. URL에 보물에 대한 식별 값으로 UUID를 사용하여 다른 보물에 대한 추측을 어렵게 하기
2. 선착순이 아닌 N번째 참가자 당첨자 처리
3. 보물 오픈 시 사번 입력을 입력 받고 IP를 수집하여 대리 참여 구분

사번을 입력해야만 상자를 열어볼 수 있습니다.

보물찾기 서비스는 SPA(Single Page Application)으로 구현하며, 이벤트 페이지 내에서 참가자 입력을 API로 요청하고 그 결과를 해당 페이지 내에서 보여주도록 구현했습니다. 그리고 가장 중요한 UI 부분은 지원을 위해 참여하신 유진님과 지호님께서 예쁘게 꾸며주셔서 보물찾기 서비스 개발을 완료할 수 있었습니다.

당첨과 꽝 이미지

마무리

보물찾기 서비스 구현을 위해 처음부터 함께 힘써주신 공민정님과 유병용님 그리고 중간에 도움을 요청했을 때 적극적으로 지원해 주신 남지호님, 김유진님, 윤여름님 모두 감사드립니다.
기획에서부터 구현까지 모든 과정을 진행하며 간단한 서비스였지만 서비스에 대한 많은 고민들을 해볼 수 있었습니다.
개인적으로 아쉬웠던 부분은 한정된 시간 내에 개발을 끝냈어야 했기에 주요 기능 외에 추가로 구현하고자 했던 기능들을 일부 포기해야 했었던 부분인 것 같습니다. 다음에 이런 기회가 있다면 좀 더 재미있고 완성도 높은 서비스를 개발해 보고 싶습니다.
긴 글 읽어 주셔서 감사합니다.

--

--