Published on

2019년을 돌아보며

Authors

2019 년은 저에게 있어서 그 어느 때보다 의미가 있던 해였습니다. 2019 년에 있었던 굵직한 일들을 돌아보고, 그 과정을 성찰하며 2020 년에는 어떤 계획을 세우고 있는지를 말씀드리려고 합니다.

2019 년 회고

2019 년에는 크게 다음과 같은 일들이 있었습니다.

  • 캡스톤 디자인(졸업 작품 전시)
  • 블리자드 푸른등대 기부장학생 역량 강화 프로젝트
  • SW 마에스트로
  • AWS Amathon 참가
  • SW 개발병 최종불합격

캡스톤 디자인(졸업 작품 전시)

2019 년 3 월, 4 학년 1 학기를 시작하면서 캡스톤 디자인 과목을 수강하여 졸업 작품을 만들게 되었습니다. 교수님들께서 큰 주제를 미리 선정하여 들고 오면 학생들이 관심 있는 주제를 신청해서 한 학기 동안 프로젝트를 진행하는 것입니다. 그 당시 블록체인에 관심이 많았던 저는 정보보안 전문가이신 이경현 교수님께서 지도하는 블록체인 프로젝트를 신청하게 되었고, 한껏 부푼 마음을 안고 개강을 맞이하였습니다. 그러나 저는 총 5 명의 학생들과 프로젝트를 진행하게 되었는데, 블록체인에 그다지 관심이 없는 사람들과 함께하게 되어서 모든 개발을 도맡아야 할 상황이 벌어졌습니다. (지금 생각해보면 학점을 잘 주시는 교수님의 프로젝트를 신청했다가 정원 초과로 튕긴(?) 사람들이 모이게 된 것 같습니다) 그렇게 지옥 같은 새 학기가 시작되었습니다.

아..안돼

같이 논문도 스터디하고 밤새 개발도 같이할 열정 있는 친구를 만나고 싶었지만, 그런 분은 팀 내에 없다는 게 슬펐습니다. 아쉽지만 혼자서 삽질하고 그만큼 제 실력으로 남는다는 생각으로 울면서 프로젝트에 임하게 되었습니다. 막상 블록체인으로 프로젝트를 시작하려니 막막했습니다. 교수님께서는 '왜 블록체인을 적용해야 하는가? 중앙화된 시스템으로도 충분히 구현할 수 있지 않은가?'를 연신 말씀하시며 겨우 기획해온 아이디어마다 훈계를 아끼지 않으셨습니다. 지금 생각해보면 그 당시 저는 '특정 기술을 접해보고 싶다'란 생각이 강했는데, 교수님의 조언을 듣고 기술을 다루는 것보다 필요한 곳에 접목하는 것이 더 중요하다는 것을 빨리 깨닫게 된 것 같습니다. 아무튼 긴 기획 끝에 저희는 책, 영화, 게임 등과 같이 번역을 통해 유통되는 창작물들의 번역 과정을 검수하는 dApp 을 만들게 되었습니다. 이 dApp 을 기획하게 된 이유를 최근 사례를 통해 말하자면 다음과 같습니다.

2019 년 겨울에 개봉한 겨울왕국이 오역으로 인해 논란에 휩싸인 적이 있었습니다. 초반 안나의 대사와 엔딩 부분에서 안나가 엘사에게 보낸 편지에 오역이 있다는 지적이 제시됬는데, 초반부 안나가 올라프와 함께 돗자리에 앉아 "새 얼음 장판이 마음에 드니?"라고 물어보는 대사는 원래 "Enjoying your new permafrost?"로 "영구 동결 상태가 마음에 드니?"의 뜻입니다. 올라프가 겨울이 아닌 계절에는 녹아버리는 까닭에 엘사가 올라프 위에 눈구름을 만들어줬는데, 이제는 엘사가 더 강력해진 마법으로 올라프 몸에 영구 동결 마법을 걸었음을 의미하는 것입니다. 이를 '얼음 장판'으로 번역하면서 지적을 받았습니다. 또 결말 부분에서는 엘사가 안나에게 "금요일에 열리는 무도회에 늦지 마"라는 대사가 있었는데, 편지 속 단어인 '제스처 게임'(Gesture charade), 즉 영화 초반에 안나와 함께했던 놀이를 전혀 다른 뜻의 '무도회'로 번역해놨다는 비판도 있었습니다. 이러한 오역으로 인해 번역가를 공개하라는 목소리가 있었는데, 디즈니는 '번역가는 비공개'라는 입장을 나타냈습니다(관련기사).

논란이 된 겨울왕국의 한 장면(출처: 인스티즈)

이와 비슷한 사례로 '어벤져스: 인피니티워'도 오역으로 인한 논란이 있었습니다. 닥터 스트레인지가 타노스에게 타임 스톤을 뺏기고 나서 아이언맨에게 'We're in the end game now'라고 말하는데, 이를 '이제 가망이 없어'라고 번역하면서 논란이 있었습니다. End game 은 체스 용어로 '마지막 단계'를 뜻하는데, 즉 '이제 마지막 단계다'를 '가망이 없다'로 번역하면서 단 한마디로 인해 관객들의 기대감을 사라지게 했습니다. 저희 팀은 이러한 일이 영화 소비자들의 불만을 야기하게 된다는 문제가 존재한다는 것에 출발하여 번역을 통해 유통되는 콘텐츠의 번역 기록을 투명하게 공개하는 dApp 을 기획하였습니다. 기획한 dApp 은 번역에 참여하는 사람들은 투표를 통해 번역들 가운데서 가장 좋은 표현을 선출하고, 해당 번역을 수행한 참여자는 보상으로 플랫폼 내 보상을 지급받는 구조입니다. 개발 스택으로 당시 리눅스 재단의 지원을 받아 빠르게 개발되고 있던 블록체인 프레임워크 Hyperledger 를 활용하였고, fabric 으로 네트워크를 구성한 뒤 composer 로 비즈니스 로직을 작성하여 배포하였습니다. 그렇게 해서 Translation Content Quality Assurance System이 탄생하게 되었습니다.

그렇게 개발을 한 뒤 졸업 논문을 작성하고, 소프트웨어 등록을 거친 뒤 작품을 전시하면서 학교에서의 마지막 프로젝트를 종료하게 되었습니다. 학교에서 지원을 받아 수행한 마지막 프로젝트여서 그랬을까, 조금은 아쉬움이 남았습니다. 지금 생각해보면 해당 프로젝트에서 블록체인을 접목할만한 동기가 충분하진 않았지만, 기획하는 과정에서 블록체인의 기술적 원리와 이를 통해 해결할 수 있는 문제점들이 어떤 것들이 있는지 이해할 수 있었습니다. 그리하여 새로운 기술의 장밋빛 미래만 바라보는 것이 아닌 '진정 블록체인이 필요한 곳이 뭐가 있을까?'라는 진지한 고민을 통해 문제의 본질에 접근하는 방법을 경험할 수 있었습니다. 그러한 값진 경험을 갖고 저의 모교 마지막 프로젝트의 막이 올랐습니다.

부경대 이경현 교수님과 졸업 작품 전시회에서

블리자드 푸른등대 기부장학생 역량 강화 프로젝트

2019 년 기준으로 작년인 2018 년 한국장학재단과 블리자드(Blizzard) 엔터테인먼트에서 지원하는 푸른등대 기부장학생으로 선발되어 한 차례 미국 캘리포니아 어바인에 다녀온 적이 있었습니다. 블리자드 본사를 견학하고 돌아와 각자의 전공역량을 강화하는 목적으로 자율 프로젝트를 진행하게 되었습니다. 그리하여 12 명의 장학생들이 4 명씩 3 팀으로 구성되어 프로젝트를 진행하였습니다. 저희 팀은 디자인, 데이터 사이언스, 게임 기획, 그리고 프로그램 개발 분야에서 역량을 보유한 학생들로 구성되었는데, 각자의 전공을 어느 정도 살릴 수 있는 프로젝트를 기획하기 위해서 한동안 카카오톡상에서 긴 회의가 이뤄졌습니다. 처음에는 블리자드 웹 로그를 분석하는 엄청난(?) 프로젝트를 기획했지만, 본사에서 데이터를 받을 수 없다는 제한이 있어 다른 방법들을 생각해보게 되었습니다.

당시 오버워치를 재밌게 플레이했던 저는 우연히 오버워치 공식 홈페이지에 접속하게 되었는데, 홈페이지에서 내 계정의 플레이 통계 정보를 확인할 수 있다는 걸 알게 되었습니다. 오버워치 공식 홈페이지에서는 인게임에서와 마찬가지로 빠른대전 및 경쟁전, 그리고 영웅별 데이터를 확인할 수 있는 대시보드가 존재했는데, 대시보드는 다음과 같은 데이터를 포함하고 있었습니다.

필자의 오버워치 플레이 통계

해당 통계를 보면서 데이터가 너무 많다는 생각이 들었고, 그로 인해 유의미한 정보를 캐치하기 어렵단 생각이 들었습니다. 또 방벽에 준 피해58622인 것은 알겠는데, 이 수치가 내 실력이 좋다는 걸 나타내는지도 모르겠고, 다른 유저보다 높은 수치인지도 모르겠고, 그래서 내가 잘 하고 있는 건지도 모르겠다는 생각이 들었습니다. 적을 쏴야 하는데 방벽만 쏘고 있는 것은 또 아닐지... 그러자 순간 '이걸 좀 더 보기 좋게 만들면 어떨까?'라는 생각이 문득 머릿속을 스쳐 지나갔습니다. '오버워치 통계 정보는 이미 공개되어 있으니 이를 예쁘게 시각화만 해주면 훨씬 좋겠는데?'란 생각과 '공개 유저들의 정보도 다 확인할 수 있으니 유저들과 비교할 수도 있겠는데?'라는 생각을 시작으로 여러 아이디어가 떠오르기 시작했고 얼른 이를 정리하여 팀원들과 함께 나누기 시작했습니다. 오버워치 데이터를 공식 홈페이지에서 끌어와서 분석을 거친 다음 우리 어플리케이션에서 이쁘게 보여주는 웹/앱을 만들자는 저의 의견은 팀원들의 흥미를 끌 수 있었고, 각자의 아이디어로 살을 붙여가며 본격적으로 기획을 시작하게 되었습니다.

그렇게 저희 팀은 오버워치 게임 데이터 분석 플랫폼(Overfetch)를 개발하였습니다. 기존에 존재하는 전적 검색 서비스 OP.GG 의 디자인을 벤치마킹하였고, cheerio 로 오버워치 공식 홈페이지를 크롤링하여 공개 유저들의 데이터를 가져와서 DB 를 구축하였습니다. 또 React 와 Node.js, MongoDB 를 활용하여 반응형 웹앱을 개발해 모바일과 태블릿, 데스크톱 등 다양한 디바이스에서도 유연한 인터페이스를 제공할 수 있도록 하였고, 커뮤니티 설문조사와 그랜드 마스터 지인들의 도움을 받아 영웅별로 개선할 수 있는 사항들을 제공하는 피드백 기능을 개발하였습니다. 마지막으로 D3.js 를 활용하여 데이터를 그 유형에 맞게 원, 막대그래프로 시각화하고 이를 유저별, 티어별로 비교할 수 있도록 하였습니다.

Overfetch 데모 시연 영상

그렇게 Overfetch 를 개발하고 팀별로 프로젝트 결과를 발표하는 최종 발표날, 모두가 한자리에 모여 서로의 프로젝트를 소개하는 자리를 가졌습니다. 솔직히 저희 팀이 정말 준비를 많이 해서 1 등 상을 가져갈 자격이 있다고 생각했었습니다. 다른 두 팀은 각각 오버워치를 주제로 새로운 개념의 보드게임과 오버워치 영웅을 키우는 퀴즈 게임을 만들어 선보였는데, 다른 팀들이 만든 것들을 보니 정말 대단한 사람이 많다는 생각이 들어서 잠시나마 자만했던 제가 부끄러웠습니다. 오버워치를 주제로 보드게임을 만든 팀은 정말 완성도가 매우 높았는데, 블리자드 코리아 직원분들도 감탄하며 칭찬을 아끼지 않았습니다. 저도 그걸 보고 '실제로 나와도 되겠는데?'란 생각이 들 정도였는데, 머리가 나빠서 지금은 그 보드게임의 플레이 방법이 생각나지 않는다는 게 안타깝습니다.

1등 팀의 작품. 완성도가 매우 높아 인상깊었다.

그렇게 한국장학재단과 블리자드와 좋은 인연을 맺고 2019 년 5 월, 장학생 활동을 마치게 되었습니다. 지금 돌아보면 정말 소중한 순간들이었습니다. 한국 장학재단과 블리자드 사랑합니다 🥰.

한국장학재단, 블리자드, 그리고 함께했던 분들 모두 고맙습니다

SW 마에스트로

학군단과의 이별

2019 년 4 월 19 일 오후 1 시, SW 마에스트로 10 기 연수생으로 최종 선발되었다는 문자를 받았던 그 순간의 감정이 아직도 어렴풋이 기억납니다. 그 당시 저는 부경대학교 해군학군단(ROTC) 후보생 2 년차로써 임관을 준비해야 하는 시기였는데, SW 마에스트로에 합격하게 되어 학군단 일과와 병행할 수 없어 둘 중 하나를 포기해야 하는 상황이라 마냥 좋아할 순 없었습니다. 저의 꿈은 초등학생 때부터 프로그래머가 되는 것이었기에 제 꿈에 한 발짝 더 다가갈 수 있게 되어 기뻤지만, 그러기 위해선 그동안 훌륭한 장교가 되기 위해 지금까지 쏟아온 노력들, 동고동락한 동기들을 추억 속에 묻어둬야만 한다는 것이 서울에 올라가는 그 순간까지 제 마음을 착잡하게 만들었습니다. 늦은 벚꽃이 어느덧 다 지고 봄 내음이 캠퍼스에서 사라져 갈 즈음, 결국 저는 학군단을 그만두고 4 학년 1 학기를 마친 후 휴학하고 상경을 하게 됩니다. 어둑어둑한 아침 일과 시간의 찬 공기, 눈꺼풀이 천근처럼 무거웠던 군사학 수업 시간, 단복을 입고 캠퍼스를 걸었던 모든 순간이 저에겐 여전히 소중합니다. 제 동기들과 선후배님들을 비롯하여 대한민국의 모든 장교후보생들 존경하고 앞으로도 응원하겠습니다.

같이 있기만 해도 즐거웠던 해군학군단 동기들, 후배들. 사진 좀 많이 찍을 걸...

본격적으로 프로젝트 시작

학군단으로 인해 마냥 침울해 있을 수만은 없었습니다. 저는 고등학교 1 학년, 대학교 2 학년 친구들과 함께 팀을 꾸리게 되었는데, 나이와 경험이 가장 많아 PM 역할을 맡게 되었고, PM 으로써 기한 내에 주어진 일정을 모두 소화할 수 있도록 바쁘게 움직여야 했습니다. 약 6 개월이라는 중장기의 프로젝트를 성공적으로 완수하기 위해선, 기획부터 빈틈없이 잘 준비해야 나중에 가서도 시간이 부족하거나 너무 많이 남는 일이 발생하지 않기 때문이었습니다. 또한 평가 요소에 반영되는 '프로젝트 기획의 적절성', '기술의 난이도', '사업화 가능성' 등을 모두 고려하여 기획을 진행해야 했는데, 이를 한 달이라는 짧은 시간 내에 이뤄내야 한다는 것이 정말 힘들었습니다. SW 마에스트로에 합격하기 전부터 생각해온 프로젝트가 있었지만, 팀원들과 흥미가 맞지 않고 기술적 난이도, 비즈니스 모델 부재 등 여러 이유로 인해 허사가 되어서 새로운 프로젝트를 생각해내야 했습니다. 그렇게 팀원들과 밤을 새면서 머리를 맞대고 회의를 하는 일이 잦아지기 시작했습니다.

어느 날, 소마 8 기 선배님과 소마센터에서 얘기를 나눌 수 있었습니다. 그분께서는 연수를 받을 당시 딥러닝으로 랜섬웨어 감염 여부를 파악하고, 감염 시 기존 파일 시스템을 복제하여 USB 에 보관하는 기술을 개발해 인증을 받을 수 있었습니다. 그때 딥러닝 모델을 만들기 위해서 선배님께서 밤낮으로 랜섬웨어를 VM 상에서 감염시키고, 백신으로 치료하는 일을 반복했다는 얘기를 들려주셨습니다. 그 얘기를 듣고 웃어넘길 수 있었지만, 선배님께서 '이런 데이터 만드는걸로 프로젝트 해도 괜찮을 것 같은데?'란 말을 듣고 이 얘기를 다시금 생각해보게 되었습니다. 딥러닝에 필요한 데이터를 만들기 위해선 사람이 데이터에 '정답'을 알려주는 라벨링이 수반되어야 하는데, 이는 사람의 인지 능력에 기반하고 의료, 법률과 같은 전문 분야의 데이터를 다루는 경우를 제외하면 일반 사람들도 충분히 이런 작업에 참여할 수 있다고 생각했습니다. 비록 그 당시에 머신러닝, 딥러닝에 대한 이해가 높지 않아서 구체적인 계획을 세울 수는 없었지만, 비슷한 비즈니스로 해외에서는 AWS Mechanical Turk, 국내에서는 크라우드웍스가 성장하고 있는 걸 보고 시장 가능성을 파악한 뒤 이 아이디어를 더 구체화시키고자 멘토링을 들으며 기획을 발전 시켜 나갔습니다.

아이디어를 정리했던 흔적들...

그렇게 경쟁사들과 차별화 할 수 있는 전략을 세우기 위해 생각해본 방법은 다음과 같았습니다. 특정 데이터에 집중하여 반자동 라벨링을 통해 데이터 생산 속도를 높이고, 생산된 데이터를 자동으로 검수 시스템을 생각해보았습니다. 즉, 한 가지 유형의 데이터(이미지 or 음성)를 처리하여 데이터 폭을 좁히는 대신 특정 Task 에서 높은 성능을 자랑하는 모델을 라벨링 과정에서 사용할 수 있는 인터페이스를 제작하는 것입니다. 또한 데이터를 라벨링 하면서 발생하는 이벤트 정보(라벨링 시간 등)를 바탕으로 생산된 데이터의 품질을 예측하는 머신러닝 모델을 제작하는 것입니다. 마지막으로 데이터 라벨링에 참여한 사람들에게는 보상이 지급되고, 데이터를 요청한 사람들은 실시간으로 데이터 생산 현황을 모니터링하는 기능을 제공한다면 고객의 니즈를 충족시키고 기존 사업과 차별화시킬 수 있다고 생각하였습니다. 이 기획을 가지고 첫 번째 심사인 기획 심사를 준비하게 되고, 다행히 한 번 만에 통과하게 되었습니다. 심사 과정에서 조언을 많이 받을 수 있어서 자신감을 가지고 본격적으로 Common Bound 개발에 착수하게 되었습니다.

그리하여 React, Nodejs, PostgreSQL 로 웹을 개발하고 고객을 데이터 생산자(라벨러), 요청자로 구분하여 서로 다른 기능을 제공하도록 하였습니다. 먼저 데이터 생산자들이 이미지에서 특정 부분을 크롭하여 라벨링 할 수 있는 온라인 워크스페이스를 개발하였고, 데이터 생산자들이 직접 데이터에 검수에 참여할 수 있도록 검수 로직을 구현하였습니다. 또 라벨링을 통해 얻은 포인트 내역과 자신이 만든 데이터를 확인할 수 있는 페이지를 개발하였습니다. 다음으로 데이터 요청자들이 필요한 데이터를 명세하여 데이터 생산자들을 모을 수 있도록 하는 프로젝트 제작 페이지를 개발하였습니다. 프로젝트를 개설하면 그 시간 이후로 생산되는 데이터를 바로바로 확인할 수 있는 모니터링 페이지를 제공하였습니다. 또 데이터를 곧바로 CSV, JSON 등의 형태로 다운받아 모델에 적용할 수 있도록 하였습니다.

시연 영상(데이터 요청자)
시연 영상(데이터 생산자)

그렇게 최종 발표를 거치고 SW 마에스트로를 수료한 지금 제 프로젝트를 돌아보면, 아쉬웠던 점이 많이 남아 있었습니다. 이미지 데이터에 집중하여 라벨링 인터페이스를 개발하였지만, 기능이 많이 부족했고, 초기에 기획했던 요구사항들을 모두 개발하였지만 고객을 만족시키지는 못했습니다. 또 여러 가지 기술을 다루려고 하다 보니 자잘한 부분들을 놓치기 일쑤였고 각 기능을 완벽하게는 구현하지 못헀습니다(OAuth, 서브넷 구성, 테스트 코드 작성 등). 그래도 이번 소마 프로젝트를 통해서 웹, 머신러닝, 딥러닝에 대한 기술적 이해와 개발 역량을 6 개월 전의 저로선 상상하지 못할 만큼 많이 향상시킬 수 있었고, 특히 인성이 좋은 사람들을 제 곁에 둘 수 있어서 정말 행복했습니다. 무엇보다도 부족한 저를 믿고 잘 따라준 팀원 친구들을 만나게 되어서 정말 감사했습니다. 또 멘토님들과 함께 있을 때면 정말 든든했는데, 멘토님들께선 넘을 수 없는 비즈니스적인 벽을 쉽게 넘을 수 있게 도와주셨고 기술적으로 빠른 성장을 이룰 수 있는 원동력이 되어주셨습니다. 2019 년을 돌아보면 소마 센터에서 함께 울고 웃었던 그 모든 순간이 너무 소중하게 느껴집니다. 앞으로 살아가면서 또 도전해야 할 많은 일이 있겠지만, 그러한 순간 속에서 소마에서 접했던 경험들이 빛을 발하게 될 것이라고 믿어 의심치 않습니다. 소마에서 만난 모든 분께 감사드리고 2020 년 좋은 일만 가득하길 바랍니다.

귀여운 내시키들이랑^^ 고생 많았다 정말

멘토님들 감사헀습니다. 나중엔 제가 밥 사드리겠습니다..^^

AWS Amathon 참가

소마 중간발표가 끝난 8 월 말, 페이스북에서 우연히 타노스가 손가락하트를 그리며 '3000 포트만큼 사랑해'라는 대사를 취하는 사진을 보았습니다. 이게 뭐지? 라는 궁금증에 조금 살펴보니 해커톤을 홍보하는 포스터였습니다. AWS 한국 사용자 모임에서 지원하는 Amathon 2019 라는 해커톤이 열린다는 내용이었는데, 발표도 끝나서 시간적 여유가 생겨 '오랜만에 밤새 코딩해보자!'라는 마음으로 신청하게 되었습니다.

페북에서 본 그 포스터. 참고로 3000번 포트는 리액트 튜토리얼에서 많이 다루는 포트입니다

Amathon 공식 홍보 포스터

해커톤은 GS Tower 에서 8 월 31 일 부터 9 월 1 일 까지 1 박 2 일로 진행되었습니다. 해커톤에 참가 신청할 때 부터 미리 선정된 주제를 보고 관심 있는 주제를 3 지망 까지 적어서 제출해야 했는데, 저는 'GraphQL 을 활용한 실시간 동기화되는 만다라트 차트 만들기'란 주제를 맡게 되었습니다. 1 지망은 아니었지만, 그래도 GraphQL 을 활용해서 작은 프로젝트를 해보고 싶다는 생각을 갖고 있었기 때문에 흔쾌히 해커톤에 참가하였습니다. 만다라트 차트는 일본의 유명한 야구선수인 오타니 쇼헤이가 우리나라와의 경기에서 엄청난 역량을 뽐낸 뒤 일본 방송에서 자신이 만든 만다라트 차트를 공개하면서 유명해지게 된 차트로, 다음과 같이 생겼습니다.

오타니 쇼헤이의 만다라트 차트

만다라트 차트를 작성하는 방법은 먼저 가로, 세로 9 칸씩 모두 81 칸의 사각형을 그리고 맨 가운데 사각형에 자기가 이루고자 하는 최종 목표를 적습니다. 그걸 둘러싼 8 칸에는 그 목표를 현실화할 실천 계획을 키워드 중심으로 작성합니다. 그 8 개의 행동 계획을 다시 그 주변으로 확장해 하나의 하위 목표로 삼고 그걸 둘러싼 각각의 8 칸에 그 하위 목표를 달성하기 위한 세부 실천 계획을 나열합니다. 이를 실시간 동기화 할 수 있도록 구현해야 했는데, 당시 Socket.io 로 실시간 채팅 웹앱을 구현해본 게 '실시간' 어플리케이션의 전부였던 저에게 조금은 도전이 되는 주제였습니다. 저희 팀은 소마 동기 연수생 한 분과 현직자 한 분, 그리고 대학생 한 분 총 4 명으로 구성되었는데 저와 소마 동기분께서 프론트를 맡고 다른 분들이 백엔드를 맡아주셨습니다. 제일 먼저 회의를 통해 개략적인 데이터 흐름과 GraphQL 쿼리 포맷을 통일하고, 분야별 끼리 협업을 하고 또 일정 시간 뒤에 회의를 하는 형식으로 해커톤을 진행했습니다. 저는 리액트로 컴포넌트를 짜고 그 안에서의 데이터 플로우를 설계했고, 소마 동기분께선 디자인을 맡아주셨습니다. 해커톤 중에 이런저런 해프닝이 많았지만, 다행히 주어진 시간 안에 실시간 동기화되는 만다라트 차트 개발을 성공적으로 마치게 되었습니다.

완성된 만다라트 차트 웹앱(지금은 S3를 날려서 접속이 안됨..ㅎ)

중간에 제가 GraphQL 쿼리를 못 짜서 다른 사람들이 도와주기도 했고, 오거나이저분들한테 힘들다고 징징거렸던 지경에까지 이르기도 했지만 결국 맡은 일을 다 성공적으로 마칠 수 있었습니다. 해커톤을 진행하면서 계속 간식거리를 제공받고 야식으로 치킨도 먹을 수 있어서 행복했습니다 😋. 개발이 끝나고 시상식이 있었는데, 운이 좋게도 저희 팀이 팀워크 상을 수상하였습니다. 해커톤을 진행하는 내내 잦은 회의를 하고 재미있는 분위기로 개발하는 걸 좋게 봐주신 것 같습니다. 상품으로 인체공학 마우스를 받았고 그 외에 여러 가지 기념품들까지 두둑하게 챙겨서 행사장을 나올 때 두 손을 가득 쥔 채로 발걸음을 옮길 수 있었습니다.

아마톤 행사장과 받은 기념품들. 상장을 들고 찍은 사진이 없어서 아쉽다. 누가 보내주면 좋겠는데ㅜ

Amathon 에서 같이 개발한 팀원들과 오거나이저분들, 그리고 심사위원으로 참석하신 당근마켓과 메가존 클라우드 사원분들 모두 재밌는 분위기 속에서 해커톤을 진행할 수 있도록 도와주셔서 감사했습니다. Amathon 2020 도 가즈아!

SW 개발병 최종불합격

사실 이건 별로 안 다루고 싶었는데, 물어보시는 분들도 많고 제 인생에서도 큰 실패인 것 같아서 돌이켜보려고 합니다. 저는 2019 년 10 월 육군 특기병인 SW 개발병에 지원하여 내년(2020 년) 1 월 입대를 계획하고 있었습니다. 4 학년 1 학기를 하고 휴학한 상태여서 학기가 꼬였으니 2020 년 1 월에 군대를 다녀와 21 년 8 월 경에 전역하고 바로 복학하면 학기가 꼬이지 않겠다는 생각이었습니다. 그렇게 서류를 제출하고 잠시 뒤에 1 차 심사(서류 심사)를 통과했으니 면접으로 보러 오라는 통보를 받았습니다. 당시 세 부대에서 각각 4 명, 2 명, 1 명 총 7 명을 뽑고 있었는데, 저는 1 차 심사 성적이 8 등이었습니다. 제가 지원한 부대는 4 명을 뽑기 때문에 면접에서 더 어필해야 할 필요가 있었습니다. 그리하여 노션에 면접 준비 자료를 열심히 정리하였습니다. 유투브로 기술 면접 영상도 이것저것 둘러보면서 그동안 머릿속에 있던 지식들을 정리해서 말할 수 있는 능력을 길렀습니다.

어느덧 다가온 면접 날, 저는 머리를 단정하게 자르고 면접 장소로 이동했습니다. 저를 포함해서 소마 동기분들이 3 명이 있었는데, 아는 사람들을 보니까 반갑기도 했지만 서로 실력자라는 것을 알기에 조금 더 긴장되기도 했습니다. 면접은 총 3 곳을 거쳐서 진행됐는데, 인성 면접장이 있었고 기술 면접장이 2 곳이 있었습니다. 기술 면접장 중 한 곳은 그냥 가치관과 지금껏 해온 프로젝트를 중심으로 질문이 들어왔고, 다른 한 곳은 보안을 중심으로 질문이 들어왔습니다. 기억나는 건 'OSI 7 계층과 TCP/IP 네트워크 레이어를 비교해서 설명하시오'와 'SW 마에스트로가 뭐예요..?'가 있었습니다. 처음 질문은 잘 대답했지만 두 번째 질문에서 조금은 당황했고, SW 마에스트로를 모르시니 내가 별로 어드밴티지를 부여받을 수 없겠다는 생각이 문득 들었습니다. 아니나 다를까, 최종 발표날 저는 지원자 중 7 등을 하면서 최종불합격 판정을 받았습니다. 4 명 안에 들지 못했다는 실패감이 밀려왔고, 2020 년 계획이 사라져 한순간 백수가 돼버린 저는 새해가 밝아와도 제 속의 우울함을 걷어내기가 좀처럼 쉽지 않았습니다.

선발 계획 인원은 7명이었지만, 1지망 정원은 4명으로 7등인 나는 실패의 쓴 맛을 봐야만했다

새해에 백수가 돼버렸으니 새해가 다가오는 것이 마냥 기쁘지가 않았습니다. 그렇지만 계속 슬퍼할 수만은 없으니, 불합격 판정을 받자마자 저는 2020 년 계획을 세우기 시작했습니다. 빠른 98 년생인 저는 내년이 23 살이 되는 해로 24 세까지 입영연기가 가능하기 때문에 '이번에 기왕 실패한 거 군대에 너무 조급해하지 말고 하고 싶었던 것들을 더 해보고 떠나자'라는 마음으로 2020 년에는 무엇을 도전해볼까 생각해보았습니다.

2020 년

평소 공학 석사를 고민하고 있던 저는 본격적으로 연구실을 알아보기 시작했습니다. 아직 관심 연구 분야가 확실하게 정해진 것이 아니기에 컨택을 진행하진 않았지만, 컴퓨터 공학, 네트워크, 인공지능, 데이터 사이언스 분야에서 여러 연구실 홈페이지를 방문하고 논문 초록을 읽어보며 흥미 있는 주제를 고민해보기 시작했습니다. 한 가지 다행인 건 CV 를 작성할 때 연구 실적과 특허, 수상 실적 또는 장학 이력을 작성해야 하는데, 저는 소마를 비롯하여 여러 활동들을 수행한 덕분에 CV 가 텅텅 비는 대참사가 일어나진 않았습니다. 또 다른 길로 해외 인턴을 준비하고 있는데, 정부에서 지원하는 해외 인턴 프로그램을 통해 억지로라도 엉덩이를 불편하게 만들어서 더 성장하고자 합니다. 해외 업체 목록 중에서도 관심 있던 기업이 보이자 도전하고자 하는 마음이 굳혀졌습니다. 영어 성적이 꼭 필요한 것은 아니지만, 업체 직원과 화상으로 영어 인터뷰를 진행해야 하기 때문에 스피킹을 공부하고 있습니다. 다행히 저희 학교에서 운영하는 단기 어학 집중강좌를 들을 수 있어서 평일마다 스피킹 연습을 진행하고 있습니다. 2020 년을 맞이하기 전 급하게 준비한 계획치고는 순조롭게 진행되고 있는 것 같습니다.

그러나 아직 확정된 것은 아무것도 없습니다. 어떤 길이라도 잘 준비해서 다음 포스팅에서는 좋은 소식을 들고 올 수 있도록 하겠습니다. 어느덧 2020 년의 새해가 밝았습니다. 새로운 한 해를 맞이하며 마음가짐도 새롭게 하려고 합니다. 여러분들은 어떤 2020 년을 계획하고 계시는가요? 이전에 도전해 보지 못했던 것들을 시도하는 한 해가 되었으면 좋겠습니다. 또 어디서 무엇을 하시던지 올해 건강하시고 유익한 일로 가득하시길 기원하겠습니다. 감사합니다.