기술블로그 사냥꾼의 보물찾기

EunJi
CJ 온스타일 기술 블로그
11 min readDec 17, 2023

안녕하세요, CJ 온스타일 상품서비스개발팀 최은지 입니다.

얼마 전 연말을 맞아 2023 DT 워크샵 DT:TIME을 진행했는데요. by.아보카도🥑
DT:TIME 전야제 겸! 기술블로그 오픈을 홍보할 겸! 준비했던 사내 보물찾기 이벤트에 대해 간략히 기술해보려 합니다.

이 글과 함께 보물은 찾아주신 분들께 전달드릴 예정입니다🎁

보물찾기,, 그 서막

CJ온스타일 DT 워크샵 DT:TIME에 대해서는 추후 DevRel 담당자분께서 자세히 설명해주실 예정인데요,

IT담당자들의 23년을 돌아보고 내년을 다짐하는 재충전의 시간☕️

이랍니다. 연말에 회고를 하며 앞으로 DT담당이 나아갈 방향성에 대해 고민해볼 수 있고, 타 팀간 소통할 수 있는 기회를 제공하는 시간이에요.

그 과정 중에 구성원들이 즐겁게 참여할 수 있는 이벤트를 준비하고자 했어요. 백지상태에서 ‘어떤 이벤트를 준비하지?’에 대해 고민했고, DevRel 활동의 사례를 찾아보다가 보물찾기를 준비하게 되었습니다.

그리고, 온스타일 기술블로그가 오픈한 지 얼마 되지 않았는데요. 하늘님의 의견에 따라 사내 구성원들에게도 이벤트를 통해 기술블로그에 대해 홍보하고, 관심을 부탁드리려 했습니다.

온스타일에서 보물을 찾아봅시다.

보물찾기를 진행하기 위해 스터디를 결성하며 팀원들을 모았고, 4명 팀원이 모여 준비를 시작하게 되었습니다. (주니어의 첫 PM 도전기)
기획 : 하늘님 / 개발 : 은지님, 강원구님 과 함께 합니다.

아이디어를 모아 보물찾기를 준비해보아요🤖

백지상태로 보물찾기를 준비하기 위해 모인 팀원들! 그런데 어떻게 진행을 해야하죠.

시작을 하며 스터디를 하나 개설하고, 팀원들간의 아이디어를 모았어요. 어떤 방식과 어떤 컨셉으로 진행할 지에 관해 논의가 필요했습니다.

논의를 통해 제공된 키워드는 다음과 같았어요.

  • 방탈출
  • QR코드
  • 기술블로그

QR코드를 숨겨두고, QR을 찾으면 사이트에 접속하여 보물을 얻을 수 있는데요. 이 과정을 방탈출하는 느낌으로, 기술블로그의 홍보를 담은 사이트에서 진행할 수 있도록 구성해보기로 했습니다.

사이트 내에 저희만이 준비할 수 있는 내용을 담고 싶었어요.

누군가의 아이디어로 시작된 컨셉

추가로 포스터에 들어갈 글을 원구님께서 적어주셔서 컨셉을 명확히 하며, 포스터가 탄생했습니다.

포스터에 포함된 글의 초안은 3가지가 있으니, 궁금하시다면 문의주세요ㅎㅎ

포스터를 보셨다면 보물을 찾아봅시다🎁

글을 본 여러분들은 보물을 찾아다니셔야 합니다. 보물을 찾는 임직원에게는 커다란 상품이 제공됩니다.

해독은 절대 필요없고 알아보기 쉬운 지도 by 하늘

제공된 지도와 함께 QR코드를 찾아 다니시면 됩니다. 흔히 알고계시는 보물지도들 보다는 훨씬 자세하고 친절한 지도랍니다.

숨겨진 QR코드를 찾으셨다면 보물찾기 사이트에 진입할 수 있습니다.

입력해야하는 비밀번호는 사번이었습니다.

QR코드를 스캔하여 사이트에 접속 시, 위와 같은 화면이 나타납니다. 금고의 비밀번호를 입력하는 느낌으로 진행하려 했었는데요. 2023년이니 금고 대신 핸드폰 잠금을 풀어 인증을 진행해봅시다.

정답 기술블로그!

보물을 찾으려면 간단한 퀴즈를 풀어야해요.

온스타일에 없었지만 최근에 새롭게 생겨난 것??

정답 : 기술블로그

입력 후 정답을 맞춰야만 보물에 접근할 수 있습니다. 온스타일 기술블로그가 생긴지 얼마 되지 않았는데요. 사내 기술블로그를 개설하여 대내외적으로 저희의 이야기를 공유하기 시작했습니다. 이를 사내 구성원 분들께 홍보하기 위함이었어요.

더 어려운 퀴즈를 준비하거나, 입력시마다 기술블로그와 관련된 다른 퀴즈를 낼까 고민했었는데요. 홍보 및 재미를 위해 넣은 요소이니 너무 어렵게 가지는 않았습니다.

받기 버튼을 눌러주세요.
CJ온스타일 기술블로그를 무사히 접속했군요. 스타벅스 카페라떼 2잔세트를 획득하셨습니다🎁

내가 가진 보물을 업그레이드 하고 싶다면, 받기 버튼을 누르고 싫다면 포기하기를 누릅니다.

발견한 QR코드의 보물을 누군가가 받아갔다면 아무 버튼도 나타나지 않아요.

위의 로고나 Follow버튼을 클릭하면 블로그 링크로 이동시켜주어 보물찾기 참가자분들이 블로그에 접속해볼 수 있도록 하였습니다.

종류는 7개, 전체 71개

보물은 사내 다양한 곳에 숨겨져있고, 상품 또한 다양합니다. 새로운 보물을 찾으면 자신이 가지고 있는 보물과 교환할 수 있기 때문에, 받고 싶은 보물을 찾아 보물을 업그레이드 할 수 있습니다.

보물찾기 D-7

시스템 개발과 관련된 내용은 추후 기술블로그에 올라올 예정이니, 기대해주세요😆
보물 찾기 오픈을 일주일 앞두고 바쁜 나날을 보냈습니다. 사용자들이 접근할 수 있도록 사이트를 배포하며, 미쳐 발견하지 못했던 버그들을 수정했어요.
사내에는 공부를 하고 싶은 개발자를 위해 교육용으로 제공되는 AWS 스터디 계정이 있습니다. 보물찾기 또한 AWS 스터디 계정을 이용하기로 했고, 서버는 Amazon EC2를 이용했습니다.

도메인 변경 및 Https 설정을 위한 SSL인증서 발급, ALB (Application Load Balancer) 설정 등을 추가로 진행했어요. (with. JeonYB)

  • 네트워크 지식이 +1 되었습니다.

배포가 완료되고, https://onepiece.cjenm-study.com/ 로 접속하면 사이트를 확인할 수 있습니다. 지금은 서버가 내려가 있어 접속이 불가능합니다🥲

보물찾기 D-1, 보물 찾기를 진행할 수 있도록 QR 코드를 열심히 붙이러 다녔습니다.

이때 몰래 가져갔으면 1등은 나의 것

71개의 QR코드는 식당, 로비, 야외 등 곳곳에 숨겨두었습니다.

콘센트 안에도 있었다는 후문이..

71개 전부의 위치는 저도 잘 모르기에 전부 소개해드릴 수는 없지만, 보이는 곳 부터 잘 보이지 않는 곳까지 다양하게 숨겨두었습니다.

1등상품 요기요 QR코드

PS. 1등 (배달상품권 5만원권)이 숨겨져 있던 장소는 INFORMATION 데스크 위 였습니다🥳

드디어 보물찾기 OPEN📭

이렇게 보물찾기 준비를 끝낸 후, 오픈 공지를 올렸습니다.

드디어 오픈

오픈 공지 이후, 미리 QR코드를 찾아서 사이트의 URL을 가져오신 분들도 있었는데요. QR코드를 찾아도 12월 6일 12시30분이 되기 전까지 보물에 접근할 수 없도록 막아두었습니다.

오픈전에는 이정도만 접속가능했어요.

보물을 얻을 수는 없지만 URL을 통해 위 페이지에 접속이 가능해요. 그렇기에, 오픈 전부터 주위 개발자 분들께서 사이트를 뜯어보는 광경을 목격할 수 있었습니다. 오픈 30분 전이 되고… 502가 떨어졌습니다🔥 서버를 살려야겠네요.

아닙니다🥲

502 Bad Gateway는 클라이언트(일반적으로 웹 브라우저)가 서버로부터 유효한 응답을 받지 못한 상태 코드입니다. 이것은 서버와 클라이언트 사이에 있는 게이트웨이나 프록시 서버에서 문제가 발생했을 때 흔히 발생합니다.
from. chat gpt

HTTP 상태코드에 따라 요청의 결과를 알 수 있을 텐데요, 정상이라면 200번대 상태 코드를 받을 것 입니다.

하지만 보물찾기 서버의 경우, 클라이언트가 요청을 했지만 서버에서 유효한 응답을 주지 않았고 502 에러를 리턴하게 된 것입니다.

원인은 주로 아래와 같다고 기술합니다.

  1. 서버 다운 또는 접근 불가: 클라이언트가 요청하는 서버가 온라인 상태가 아니거나 접근할 수 없는 상태에 있을 때 발생할 수 있습니다.
  2. 게이트웨이 문제: 클라이언트와 서버 사이에 위치한 프록시 서버나 게이트웨이에서 오류가 발생했을 때 나타날 수 있습니다. 이는 잘못된 구성, 네트워크 문제, 또는 서버 간 통신 문제로 인해 발생할 수 있습니다.
  3. 부하 문제: 서버가 요청을 처리하기에 너무 많은 트래픽을 받아들일 수 없을 때 발생할 수 있습니다. 이는 서버가 과부하 상태에 있을 때 발생할 수 있습니다.

누군가가 서버에 많은 요청을 넣어서 발생한 것 같습니다. 인스턴스를 재시작 해주어 바로 해결할 수 있었어요. 이후, 혹시 모를 상황에 대비하여 오픈 시작 시간에 맞추어 접속할 수 있도록 사양도 높여주고, 이중화도 진행했습니다. (with. JeonYB)

기다렸던 오픈시간! 큰 문제없이 사이트가 오픈되었고 예상보다 빠르게 보물을 찾아주시는 모습을 확인할 수 있었습니다.

데이터가 잘 들어오나??

참여율이 저조할까 싶어 걱정했었는데, 우려와는 다르게 시작한지 약 3 ~ 4시간만에 대부분의 보물은 채굴이 끝나버렸답니다.

관심가지고 참여해주신 모든 분들께 감사드립니다😊

기술블로그 사냥꾼의 보물찾기 결과 발표💌

보물찾기 시간이 끝나고, 데이터를 조회해 결과 발표를 준비했습니다. 그런데 데이터가 맞지않네요.

보물찾기는 한사람당 하나의 보물, 보물 하나당 한사람만 취득이 가능합니다. 하지만, 하나의 보물을 2명이 가져간 상황이 발생했습니다. 저희가 고려하지 못했던 케이스가 있었던 것 같아 수집한 로그를 확인해 보았는데요.

A가 먼저 보물을 찾아간 후, B가 몇시간 뒤 동일한 보물을 가져간 상황입니다. 정상적으로 보물을 찾았다면 이런 케이스가 나오지 않았을텐데요. 어리둥절했던 저희는 시스템에 저희가 고려하지 못했던 취약점이 있었던 것으로 생각되어 A,B 두분 모두에게 동일한 보물을 제공하기로 결정했고, 두 분 모두 포함하여 결과 발표를 준비했습니다.

다른 사람이 찾은 보물 훔치기(feat. 보안성검토의 필요성)
→ 의문은 여기서 해결되었네요 😂

대망의 DT :TIME

결과발표를 진행합니다.

시스템에 대한 소개와 보물찾기 시간 중 있었던 이슈들에 대한 공유, 결과 발표까지 진행하며 보물찾기 이벤트를 마무리 할 수 있었습니다. 보물찾기 중 있었던 재미있는 사연들도 소개하고, 마지막 2개의 보물을 발표자료 내에 숨겨두기도 했었습니다.

최종 결과, 4개의 보물을 제외한 나머지를 전부 찾아주셨습니다🎉

보물찾기 그 이후🚗

기술블로그 홍보 이벤트는 나름?? 성공적이었습니다. DT 구성원이 아닌 사내 임직원 분들 께서도 다수 참여해 주셨고, 기술블로그에도 관심을 가져주셨어요.

사내 결과 공지

꾸준히 사내 개발자분들이 개발과 관련된 이슈들, 문제해결 사례들, 개발 문화 활성화를 위한 시도들에 대해 업로드 해주실 예정이니 한번씩 들어오셔서 읽어주시면 좋을 것 같아요. from. 기술블로그지기님

준비했던 이벤트에 관심가지고 참여해주신 분들께 보물을 전달드리며, 예상보다 할 일이 많아져 너무 고생 많이 해주신 보물찾기 팀원 분들께 감사드리며 글 마무리 하겠습니다.

참고로, 붙였던 QR코드는 수거까지 완료했습니다!

기억을 더듬어 QR은 모두 회수했습니다.

별거 아니지만 짧은 글 읽어주신 분들께 감사드리며, 글 업로드와 함께 보물은 채굴해주신 분들께 전달되었습니다.

--

--