크래프톤 정글/회고

[크래프톤 정글 5기] 팀장으로서 나만무 프로젝트, 그리고 정글을 마무리하며..

양선규 2024. 7. 30. 16:54
728x90
반응형

자랑스런 우리 팀 결과물 POKE CODE

 
https://poke-code.com
 
드디어 나만무 프로젝트가 끝이 났다. 나만무 기간 하루하루가 정말 너무나도 힘들었기에 도중에는 시간이 너무 느리게 가는 느낌이었지만, 막상 발표를 마치고 나니 이게 끝난 것인지, 아직 하고 있는 건지도 모를 정도로 실감이 나지 않았고 벌써 발표 후 이틀이 지나버렸다. 어떤 일이든 겪을 때는 힘들고 고난스럽지만, 끝이 나면 언제 그랬냐는 듯 편해지고 내가 겪은 일들과 얻어낸 성과가 당연한 것이 되어버리는 것 같다. 시간은 항상 매정하게 흐르고, 흘러가는 시간에 내가 무엇을 채워 넣었느냐에 따라서 미래가 결정된다. 하루하루 열심히 채워 넣으면 나도 모르게 높은 곳에 올라있을 것이고 그것이 당연하게 느껴질 것이며, 하루하루 무의미하게 보낸다면 나도 모르게 뒤쳐져 있을 것이고 그것이 당연하게 느껴질 것이다.
 
입소 전 생각했던 정글의 일정표는 정말 말이 안 되는 일정이었다. 주 100시간 풀타임 학습? 그걸 5개월동안 매일매일 한다고? 난 이게 불가능한 일정이라고 생각했지만, 이미 지난 기수 수료생들이라는 "가능하다"는 증거물들이 있었기 때문에 감히 신청할 생각을 할 수 있었다. 매우 힘든 만큼 매우 큰 성과가 예상되었고, 5개월만 눈 딱 감고 버틴다면 개발자로서 모든 것이 부족했던 나에게 [코딩테스트, CS지식, 팀 프로젝트 경험/포트폴리오, 생각 흐름을 개발자다운 논리적인 흐름으로 전환시키기] 이 모든 것들을 가져다 줄 수 있을 것이라 생각했다. 그리고 실제로 지금 이 모든 것들을 얻어내었다.
 
물론 이것들을 완벽하게 100% 얻어낸 것은 아니다. 정확히 말하면, 개발자로서의 초석을 얻었다고 생각한다. 정글에 오기 전 나는 그냥 "일반인" 이었다면, 지금은 "초급 개발자"로 전직한 느낌이다. 그럼에도 불구하고 5개월만에 얻어낸 성과 치고는 말도 안되게 크다.
 
단 하루도 빠짐없이 매일매일 코딩하고, 매일매일 사람들과 어울렸다. I 성향인 나에게 있어서 혼자 있을 시간이 전무하다는 것은 엄청난 고난이었다. 특히 정글 초반엔 더욱 그랬다. 초반 약 1달정도는 정신적으로 너무 힘들어서 산책을 자주 갔다왔다. 일요일은 명시적으로 쉬어도 되는 날이었지만 난 본가에 내려갔을 때 2번 빼고는 하루도 쉬지 않았다. 일요일도 쉬지 않고 공부했던 이유는, 기숙사에 혼자 박혀 있는게 심심했고 불안했다. 또한 매주 주어지는 과제가 일주일 안에 끝내기 매우 버거운 분량이었기 때문에, 끝내야 한다는 의지로 자연스럽게 일요일도 코딩을 하게 된 것도 있다. 즉 나는 5개월동안 단 2일을 제외하고 매일매일 교육관에 출근해서 하루종일 코딩하고, 하루종일 사람들과 어울렸다.
 
사실 이렇게 말하면 I성향인 사람들에겐 매우매우 끔찍하고 고통스러운 환경일 거라고 예측할 거라 생각한다. 그런데 생각보다 그렇진 않다. 모두가 같은 길을 바라보고, 같은 것을 공부하고, 생각 회로도 비슷하기 때문에 크게 엇나가는 사람이 없고 다들 잘 어울린다. 또한, 주 100시간 공부를 오롯이 혼자서 했다면 오히려 더 우울하고 힘들었을 것이다. 동기들이 있었기 때문에 중간중간 재밌는 얘기도 하고 회포도 풀고 하면서 버틸 수 있었던 것 같다. 즉 내가 하고 싶은 말은 상당한 I성향인 나도 정신적으로 버틸 수는 있을 정도니 너무 쫄지 말라는 얘기다. 오히려 시간이 갈 수록 정글이 재미있게 느껴지고, 집에 가는 날을 상상하면 우울하기까지 했다. 나만무가 끝나고 수료를 2일 앞둔 지금도 기분이 우울하고 먹먹하다.
 
3주간의 알고리즘 학습. 이땐 코딩 테스트에 나오는 거의 대부분의 알고리즘 유형을 다 익혔다. 물론 문제를 아주 잘 푸는 것과는 조금 결이 다르지만, 어떤 문제를 만나던 나는 기억을 조금만 복기하면 이해하고 풀 수 있는 상태가 되었다. 사실 3주만에 코딩테스트를 무난히 통과할 정도로 실력이 늘어난다는 것 자체가 말이 안된다. 다만 이 기간으로 인해 난 "시간만 주어진다면 코딩 테스트 정도는 충분히 해낼 수 있다" 라는 믿음이 생기게 되었다.
 
4주간의 C언어 프로젝트 기간. 원래는 RB Tree, malloc Lab, Web server 3주 기간이지만 지난 기수들이 C언어에 바로 뛰어드는 것에 큰 부담을 느꼈기 때문에 정글 5기는 이후에 있을 프레임워크 학습 기간 2주에서 1주를 빼서, 그 1주를 C언어 학습 기간으로 대체하여 진행하였다. C언어 첫 주는 Linked List, Stack, Queue, Binary Tree, BST 등등 기본 자료구조들을 학습했다. C언어, 구조체, 포인터를 제대로 다루는 것은 완전히 처음이었고, 자료구조들은 이름만 들어봤지 실제로 구현해 본 적은 없었기에 솔직히 말해서 첫째 날, 두번째 날에는 엄청난 절망을 느꼈다. 하지만 팀원들의 도움을 받아 첫번째 문제를 해결하고 난 후엔 어떻게 풀어야 하는 것인지 감이 잡혀 일주일동안 마지막 과제였던 BST까지 모든 문제를 해결할 수 있었다. 개인적으로 C언어 첫 주차는 정말 도움이 많이 되었다. 특히 Linked List의 사용방법과 중요성을 많이 이해할 수 있었다. 이 주차가 없었다면 RB Tree, malloc Lab, Web server 3개 주차를 해낼 수 있었을까 싶기도 하다. 난 4주간의 C언어 프로젝트를 거치며 자료구조, 메모리, 네트워크에 관한 전반적인 지식들을 익힐 수 있었고, 직접 구현을 거치며 컴퓨터에서 어떤 식으로 활용되는 것인지를 이해할 수 있었다. 이때 얻은 지식들이 나의 생각회로를 개발자답게 바꿔주는 것에 대하여 가장 큰 공헌을 한 것 같다. 또한 핀토스, 나만무 때 구현을 진행하면서 왜 이걸 이런 식으로 만들었는지, 왜 이렇게 사용하는 지에 대해서 쉽게 이해할 수 있도록 만들어 주었다. 뭔가 표현하기가 어렵다. 그냥 내 생각의 뿌리 자체가 바뀐 느낌이다.
 

POKE CODE 메인 화면

 
5주간의 핀토스 기간. 무엇을 배웠느냐를 설명해 보라면 가장 모호한 게 이 핀토스 기간이 아닐까 싶다. 배우지 않았다는 것이 아니다. 분명히 많이 배웠고 배운 걸 느끼는데 그걸 말로 명확하게 설명하기가 어렵다는 것이다. 스레드, 유저 프로그램, 가상 메모리 3개 주제에 대한 핀토스 프로젝트를 진행했다. 물론 배운 건 많다. thread, process, priority scheduling, donation, 유저 프로그램 인자 전달, Context Swicting, System call, interrupt, Virtual Memory, TLB, Page, file descripter, register 등등 어쨌든 엄~~청나게 많이 배웠다. 배우긴 했는데... 사실 나는 핀토스를 내 힘으로 완전히 구현해내진 못했다. 코드를 계속 보고 머리를 싸맸지만 어떻게 해야 할지 감조차도 오지 않아서 다른 사람의 블로그나 깃허브를 참고하여 구현한 후 그것을 이해하는 방향이 주였다. 그래서.. 핀토스 구간은 "내가 해냈다" 라는 느낌이 전혀 들지 않는다. 혼자 힘으로는 해낼 수 없으니 뭔가 붕 떠있는 느낌도 있었고, 무의미한 느낌마저 들기도 했다. 이론을 공부하는 것과 스스로 구현해내는 것은 다르기에 이런 느낌을 받았던 것 같다. 그래서 2주차 User Program 까지는 마친 후에 블로깅도 하고 정리도 했지만 마지막 Virtual Memory에서는 현타가 좀 와서 정리 글도 올리지 않았다. 일부러 안 올렸다기보다 그냥 뭘 어떻게 정리해야 될지도 모르겠는 수준이어서 그랬다. 혼자 해낸 게 없으니. 이때까지만 해도 이론 몇 개 빼고는 딱히 한 게 없다고 느꼈었다.
 
하지만 아니었다. 나만무 기간이 시작되고 내가 가장 처음 맡은 건, CLI 환경에서 백준에 코드를 제출하여 결과를 받아오는 채점 프로그램인 boj-cli 라는 프로그램이 있었는데 이 프로그램을 우리가 사용할 수 있도록 개선하는 것이었다. 어떤 개선이었냐면 이 프로그램은 유저 세션을 단 한개밖에 저장하지 못해서 다중 제출이 불가능하다는 점이었다. 즉 우리가 이 프로그램을 사용하기 위해선 유저 세션을 동시에 여러 개 저장할 수 있게 만들어서 다수의 유저가 POKE CODE에 접속해서 동시에 제출하고 결과를 받아올 수 있도록 개선하는 것 이었다.
 
그런데 이 프로그램이 생각보다 복잡했다. 지금 기억해내 보자면 최소 수천 줄... 거의 만 줄 가까이 되는 큰 프로그램이었고, 파일도 여러 개로 다 나누어져 있어서 솔직히 말하면 코드를 딱 보자마자 "도저히 모르겠는데..? 이거 할 수 있는건가..?" 라는 절망감부터 들었다. 뭐 일단 무조건 해내야 하는 일이었기 때문에 그냥 무작정 코드를 보기 시작했다. 세션을 저장하는 부분, 세션을 불러와 사용하는 부분이 어디인지부터 찾기 시작했다. 근데 하면 할 수록 핀토스 할 때랑 굉장히 비슷한 느낌이 들었다. 굉장히 큰 코드에서 연관관계를 찾아, 어디를 고치거나 추가하면 되는지를 찾는 과정이 굉장히 유사했다. 그리고 난 이렇게 큰 프로그램을 완벽히 수정해서 다중 세션을 저장하고, 동시에 제출할 수 있도록 개선해냈다. 명령어까지 추가해서 쉽게 사용할 수 있도록 만들었다. 
 
만약 핀토스 경험이 없었다면 절대로 못 했을 거라고 확신한다. 엄청난 크기의 코드 바다에서 나에게 필요한 부분을 찾고, 연관된 부분을 찾아내 전부 수정하는 작업은 핀토스 이전의 나에겐 불가능한 일이었다. 하지만 뭔가 당연하다는 듯, 자연스럽게 답을 찾아가는 나를 발견할 수 있었다. 내가 프로그램을 수정하면서도, "이거 내가 어떻게 하고 있는거지? 이렇게 하는 거 맞나? 이렇게 하면 되는건가?" 싶은 의심마저 들었고 완전히 개선에 성공한 후 든 생각은 "핀토스에서 나는 성장했구나" 를 느꼈다. 이것을 명확하게 뭐라고 설명해야 하는지 나는 잘 모르겠다. 하지만 한가지 확실한 건, 앞으로 어떤 거대한 프로그램을 보든 나는 어떻게든 답을 찾아낼 수 있다는 생각이 든다는 점이다.
 

개인 에디터 화면 + 테스트 케이스 실행

 
1주간의 프레임워크 학습 기간(실력 다지기). 1주일동안 개인적으로 프레임워크를 학습하고 간단한 CRUD 웹 사이트를 완성해서 발표하는 것이 목표였다. 난 Spring을 약간 공부했었기 때문에 Spring을 쓰고 싶었지만, 우리 팀이 Spring을 써본 사람이 아예 없기도 했고 나도 Spring을 잘 쓰는 게 아니었기에, 접근성이 좋은 Nodejs를 선택하여 개발했다. 다만 이땐 핀토스를 거쳐오느라 너무 지쳐 있기도 했고, 나만무를 시작하면 쉴 시간이 없을 것이라 생각했기에 금요일 저녁에 광주 본가로 출발해서 월요일 아침에 정글로 돌아왔다. 그래서 사실상 월,화,수 3일동안 Nodejs로 개발해서 디자인은 아예 버리고 CRUD와 JWT 로그인, 그리고 Mysql을 연동한 아주 간단한 웹사이트 하나만 만들어 발표했다.
 
또한 실력 다지기 기간엔 팀장 선출이 함께 이루어진다. 목요일에 실력 다지기 주차가 시작됨과 동시에 팀장 신청 및 팀장 투표를 받는다. 팀장 투표를 많이 받은 사람이 팀장 후보에 오르고, 직접 팀장을 신청하면 가산점이 주어진다. 팀장 후보로 선출된 사람들은 코치님과 면담을 진행한다. 팀장을 왜 하고 싶은지, 팀원간 불화가 생기면 어떻게 할 것인지, 팀장을 하면 기술적인 것 자체보다 팀장 역할에 집중해야 할 수도 있는데 어떻게 생각하는지 등등.. 나는 면접은 무난하게 진행했던 것 같고, 팀장이 될 수 있었다.
 
이후 팀원을 정하게 되는데, stable marriage 알고리즘에 의해 정해진다. 팀장들은 팀원을 원하는 순위대로 쭉 나열하고, 팀원들은 팀장을 원하는 순위대로 쭉 나열한다. 그렇게 서로의 선호도가 가장 높은 순서대로 각 팀원이 정해진다. 만약 사전에 팀 조율이 완벽하게 이루어져서 오차가 전혀 없다면 그냥 그대로 팀이 정해지게 된다. 그러나 선호도가 각각 다르고 뒤죽박죽 섞여있다면, 코치님들이 개입하여 밸런스에 맞게, 환경에 맞게 약간의 조정을 통해 팀이 정해지게 된다. 추가로, 뒤죽박죽 섞이더라도 서로를 1순위로 지목한 팀원 최소 1명은 확정적으로 데려갈 수 있다. 나는 핀토스 프로젝트가 끝나기 전부터 팀원들을 섭외하러 다녔고, 따라서 함께 할 팀원들을 미리 모두 모아둔 상태였다. 다른 팀들도 비교적 안정적으로 팀원 구성이 되어 있었고, 우리는 모두 합의하여 선호도를 맞춰 제출한 결과 우리가 생각했던 팀원대로 변수 없이 이루어졌다. 코치님들도 굳이 팀을 섞고 싶지는 않다고 하셨다. 원하는 사람끼리 하는게 최고라고 생각하셨고, 만약 누군가 변수를 만들면 그때 개입하는 것 뿐이다.
 

포켓몬 도감

 
대망의 5주간의 나만무 기간. 1주는 기획 기간, 2주는 MVP기간, 나머지 2주는 폴리싱 기간이었다. 기획 기간은 말 그대로 팀원끼리 어떤 프로젝트를 할지 상의해서 기획하여 발표하는 것 이었고, MVP는 프로그램이 최소한 돌아가도록 만드는 기간, 폴리싱 기간은 MVP때 만든 프로그램을 다듬고, 기능을 추가하거나 기술적 챌린지에 도전하고, 또한 발표 준비까지 하는 마무리 기간이다.
 
기획 때는 약간의 의견 충돌이 있었다. 처음엔 사람 얼굴을 이모티콘에 합성하여 캐릭터로 사용하고, 알고리즘 학습 보조 기능을 지원하고, 자신이 푼 백준 문제로 스텟을 증가시켜 다른 사람과 전투하는... 그런 플랫폼을 생각했고 기획하여 발표했지만 반응이 썩 좋지 않았다. 합성 부분에서 퀄리티와 완성도가 낮아 보인다는 문제도 있었고, 게임 요소가 가미되어 있기 때문에 밸런스나 게임 로직 등 여러가지 신경써야 할 부분도 많았다. 즉 리스크는 컸지만 리턴이 매우 불확실했다. 이후 코치님과의 면담에서도 그다지 좋지 않은 피드백을 받았다. 따라서 우리팀은 전부 멘붕에 빠졌고.. 기획을 아예 갈아엎자는 말이 나왔다. 나도 당연히 동의했고 다른 기획을 생각하고 있었다. 그런데 몇시간 후, 새로운 기획을 하는 것보다 기존 발표했던 것을 개선하는 게 나을 것 같다고 나를 제외한 팀원 4명이 말했다. 나는 생각이 달랐다. 리스크가 너무 크다, 불확실하다, 전부 개선해서 만든다고 해도 재미가 없다.. 등등 나와 팀원들이 1:4로 의견 충돌이 있었지만, 4명이 동의하는 것엔 이유가 있을 것이라 생각해, 그리고 내 생각이 무조건 맞지는 않을 것이란 생각 때문에 일단은 양보하고 개선하는 방향으로 더 진행해 보기로 했다.
 
우리에게 남은 시간은 하루였다. 결국 기존 기획을 완전히 따라가진 않았지만, 전투 시스템을 제외하고 알고리즘 문제 + 코딩 보조 + 공유 에디터 + 음성/일반채팅 + 펫(포켓몬) 기능을 합친 플랫폼으로 정해졌다. 전투가 빠졌다는 점에서 리스크가 적어졌고, 공유 에디터와 음성/일반채팅이 들어갔다는 점에서 기술적으로 도전해볼 것들도 생겼다. 결국 하루만에 기획과 발표자료 ppt까지 만들어 다음날에 무사히 발표를 마치고, 나쁘지 않은 평가를 받을 수 있었다. 
 
이후 열심히 구현을 진행하며 참 힘들었다. 특히 발표와 리허설. 무슨 발표가 이렇게 많은지 모르겠다. 나는 원래 완벽에 대한 강박이 있는 편이라, 발표 전/후만 되면 굉장히 예민해지고 불안해하는 경향이 있었기 때문에 많은 발표는 나에게 굉장히 힘들었다. 정확히는 "긴장감" 하나 때문에 그랬다기 보다는.. 완벽하고 싶은 생각 때문에 불확실성을 견디기 힘들었다. 다행히 발표 자체는 항상 나쁘지 않았던 것 같다. 최종 발표에서도 그랬고. 완벽하게 준비된 발표라면 전혀 긴장되지 않을 것 같다. 내가 완벽하게 준비하지 못해서 문제였고, 완벽하게 준비할 시간도 없어서 문제였다.
 
나만무 전까지는 단 한번도 밤을 샌 적이 없다. 난 일찍 와서 일찍 가는 타입이었고 밤을 새면 효율이 떨어지고, 늦게 가면 늦게 오기 때문에 쌤쌤이라고 생각했어서 그런 것도 있다. 다만 나와 함께하는 팀원들이 대체로 늦게 가는 편에 비교적 밤을 잘 새는 팀원들이었다. 난 팀장 입장에 있었기 때문에 팀원들이 가지 않고 있는데 가자고 하기도 좀 그렇고.. 또 실제로 할 일도 많았기 때문에 자연스레 11시 퇴근이 아닌 매일매일 2시 기숙사 통금 시간을 찍고 퇴근하는 게 일상이었다. 사실 우리 팀만 그런 건 아니다. 우리 팀이 늦게 가는 편인건 맞았지만, 다른 팀들도 워낙 빡센 일정에 늦게 가는게 사실상 당연해지긴 했다. 어쨌든, 자주 밤을 새고 늦게 퇴근하고 하면서 컨디션과 몸 상태가 많이 안좋아졌던 것 같다. 그래서 어떻게든 살려고 영양제를 매일 챙겨먹고, 쪽잠을 자고.. 어떻게든 노력했다.
 
팀원들한테 미안한 것도 있다. 나만무 기간과 팀장 역할이 너무 힘들어서 (물론 다 힘들겠지만) 도피하고 싶었던 마음에 전화를 하러 참 많이 나갔다. 한 2주? 정도는 거의 매일 1시간 ~ 1시간 30분 정도씩 저녁마다 전화를 하러 나갔었다. 초반엔 누구나 잠깐 나갔다 올 때는 있으니 상관 없다고 생각했지만, 팀원들이 장난식으로 "매일 그렇게 통화할 게 있냐" 라던가, 그런 말을 했을 때쯤부터 내가 잘못되었구나 라는 걸 느꼈다. 목요일 발표 후 밤에 술을 먹고 다음날 저녁이 다 돼서 5시에 온 적도 있었고... 그때즈음부터 팀장으로서의 위상이 많이 떨어지지 않았나 싶다. 그걸 뒤늦게 깨닫고 발표 1주일 전쯤부터는 최대한 자리를 비우지 않으려고 자제했고 술도 안 마셨다. 누구 탓이겠는가. 다 내 탓이지. 나만무 팀장을 겪으면서 나는 참 나약한 인간이라는 걸 많이 느꼈다. 신체적으로도, 정신적으로도. 멘탈이 아주 개복치다.
 
팀장이 아닌 팀원으로서의 나만무 프로젝트는 어떤 느낌일까 궁금하다. 생각을 해 봤는데, 팀장보단 조금 덜 힘들겠지만 다른 방향으로 충분히 힘들 것이라 생각한다. 어쨌든 둘 다 힘들 거라는 것이다. 난 나중에 사업도 하고 싶고 사람도 이끌어 보고 싶기 때문에 이번 경험은 매우 소중했고, 앞으로도 힘들 지언정 이런 역할을 일부러 찾아서 경험해볼 필요가 있다고 생각한다. 솔직히 팀장이나 리더 역할이 나에겐 선천적으로 적성에 맞지 않는 것 같다. 난 독립적이고, 사람을 이끄는 힘이 크지 않다. 그러나 많은 경험을 하고 학습을 하고 조금씩 성장시킨다면.. 엄청 대단하진 않더라도 나쁘지 않은 리더 정도는 될 수 있지 않을까 싶다. 또한 내가 그것을 원하고.
 
또한 팀장이 보는 시각과 팀원이 보는 시각이 매우 다르다는 것을 많이 느꼈다. 나는 발표, 시연, 결과물. 즉 보여지는 것에 집중했다고 한다면 팀원들은 기술적인 부분이나 기능구현, 디테일 쪽에 좀더 집중하고 싶다는 것을 느꼈다. 물론 팀장/팀원은 다르기 때문에 이런 시각 차이는 매우 당연한 것이라고 생각하지만, 나만무를 진행하며 솔직히 좀 답답할 때나 서운할 때도 있었다. 하지만 나는 정답이 무엇인지 몰랐기 때문에 팀원들에게 강요할 수 없었고, 답답함을 직접적으로 표현할 수도 없었다. 솔직히 어떤 선택이 최선이었는지 아직도 모르겠다. 왜냐하면 결과가 좋았기 때문이다.
 
결과적으로 최종 발표는 아주 잘 마무리 되었다. 하지만 우리는 최종발표 바로 전날까지 기능구현을 하고 있었다. 기존의 난 최소 발표 3~4일 전부턴 모든 구현이 완료되고 팀원 모두가 발표에 집중해야 한다고 생각했다. 하지만 그럴 수 없었다. 코치님들로부터 받은 큰 피드백 2가지가 우리의 할 일을 엄청나게 늘렸기 때문이다.
 
한 번은 solved.ac의 API에 의존했던 것을 전부 우리 플랫폼 자체 DB에 저장하여 출력하는 것으로 대체하는 것, 두 번째는 알고리즘 사이트에 펫(포켓몬)이 존재해야 하는 당위성에 대한 로직 추가였다. 두 작업 모두 단순히 기능을 추가하는 것을 넘어서 기존 API나 로직들을 싸그리 수정해야 하는 작업들이었다. 그래서 시간이 오래 걸릴 수밖에 없는 작업들이었고, 다른 팀들에 비해 기능구현을 오랫동안 할 수밖에 없었던 이유라고 생각한다.
 
나는 이런 불확실성이 너무 싫었다. 자잘한 기능 몇 개 빼더라도 우선 우리가 해야 할 포스터, PPT, 발표준비, 시연, 시나리오 작성 등을 먼저 해 두고 나서 기능을 넣어야 한다고 생각했다. 기능 몇개 없더라도 어떻게 포장하느냐 시연하느냐에 따라서 우리의 결과물을 보는 눈들은 달라지니까. 또한 발표를 완벽하게 해야 한다는 강박이 있던 나였기에, 발표준비에 대한 모든 변수를 없애고 완벽하게 대사를 외우고 연습하기 위해선 최소 며칠이 필요하다고 생각했다.
 
그래서 최종발표 2~3일 전엔 정말 정신적으로 매우 불안정한 상태였다. 해야 할 일이 기능구현 몇 가지, PPT 내용/디자인 개선, 포스터 제작, 시나리오 작성 및 연습 이었는데 내가 할 수 있는 일이 많지가 않았다. 기능구현 부분은 더이상 내가 할 수 있는 부분이 없었고, PPT 내용, 포스터 제작 부분은 기술적 챌린지 내용을 추가해야 했는데 난 기술적 챌린지를 한 게 없었다. 그냥 DB설계, 관리, API 작성이 전부였기에 내가 쓸 수 있는 내용이 없었다. 챌린지 기반해서 PPT를 작성하고 발표대본을 작성해야 하는데 그게 안 되니 아무것도 할 게 없었다. 내가 할 수 있는 건 팀원들이 기능구현을 끝내고 챌린지 내용을 작성해주길 기다리는 것 뿐이었다.
 
추가적으로 PPT/포스터 디자인, 시연(시나리오) 연습 등이 있었는데.. 핑계로 들릴지 모르겠지만 내가 진짜 디자인은 재능이 없다. PPT, 포스터를 잡고 디자인을 해보려고 몇 시간을 잡고 있었는데 어떻게 해야 할지 도저히 감이 안 오고, 감이 안 와서 대략 꾸며본 PPT와 포스터는 내가 봐도 매우 별로였고 별로라는 평가도 들었다. 추가적으로 시연(시나리오) 연습은.. 나 혼자서는 대사도 외우고 연습도 해두었지만 팀원들과 함께 연습하는 것도 필요했기에 이 부분도 불안했다. 최종발표는 며칠 안 남았는데 발표 관련해서는 거의 준비가 되어있지 않았으니.
 
결국 제대로 된 발표 준비는 발표 바로 전날에 이루어졌다고 봐도 무방했다. 물론 내가 챌린지 내용을 제외한 발표 앞 부분과 시연 시나리오 부분은 미리 전부 외우고 있긴 했지만, 실제 발표처럼 연습하는 건 발표 바로 전날뿐이었다. 발표 며칠 전부터 함께 리허설을 해보고 뺄건 빼고 추가할 건 하고 팀원끼리 상의해서 개선하고 싶었는데, 위에 말했다시피 구현할 게 매우매우 많았기 때문에 그러진 못 했다. 또한 발표에 대해 팀원들의 자잘한 피드백도 몇 개 있었지만, 당장 발표가 10시간 뒤였기 때문에 실수를 유발하는 변수를 만들고 싶지 않아서 내가 받아들이지 않았다. 어쨌든 그렇게 발표 연습을 대략 하고 대사를 외우고 다음날 바로 최종발표가 진행되었다.
 

전설의 포켓몬 뽑기

 
최종발표는 순조로웠다. 다행히 현장에서 리허설 및 음향체크를 해볼 시간이 있었고 연습해볼 시간이 충분했다. 내가 바로 전날까지 두려움과 불안함에 벌벌 떨었던 게 무색할 정도로 발표는 성공적이었고, 시연도 성공적이었다. 관객 입장에선 내가 바로 전날까지 불안에 떨었다고 하면 못 믿을 정도가 아니었을까 싶다. 다만 3시간밖에 못 자고 발표장으로 간 것이라, 머리가 멍하고 너무 피곤해서 정신을 붙잡으려고 계속 애썼다.
 
발표가 끝나고 나서는 포스터 세션이 진행되었다. 난 협력사에서 눈에 띄는 인원한테 명함을 주거나, 서류 넣어보라고 권유하거나 그런 장면이 있을 줄 알았는데 그런 건 아예 없었다. 그리고, 난 포스터 세션에서 말할 게 없었다. 큰 기술적 챌린지를 하나도 하지 못했으니 어쩌면 당연하기도 한데, 이러고 싶었던 건 아닌데 그냥 이렇게 되었다. 큰 기술들은 팀원들에게 한두개씩 맡기고 나는 DB설계, 관리, 백엔드 API 작성 등을 했다. DB관리는 내가 주로 맡아서 했고 백 API는 방 생성 관련 부분 빼고는 전부 다 내가 혼자 만들었다. 그런데 이게 기업 입장에서 봤을 때 유의미한 작업일까 싶다. 그냥 쿼리 내용 조금씩 다르게 해서 데이터 빼서 리턴해주는 것 뿐인데. 물론 할일은 많았다. 근데 그냥... 내가 느끼기엔 잡일 느낌이었다. 누군가 해야 하긴 하는데, 큰 의미는 없고 할 일은 많은 그런 잡일. 심지어 로직을 뒤집을 때가 2번이나 있었기 때문에 오류도 자주 터졌다.
 
물론 어느정도 각오는 했던 부분이긴 하다. 팀장으로서 지원할 때부터, 크게 기술적인 부분은 팀원에게 맡기고 나는 전체적인 흐름을 파악하며 잡일 같은걸 하게 될 것이라고 예상했다. 예상하고 각오는 했는데.. 발표 후 질문을 받을 때 나는 한 마디도 할 수가 없었고, 포스터 세션에서도 옆에 서있는 것 밖에 하지 못했다. 그리고 이력서와 포트폴리오를 작성해야 하는 지금, 대체 뭘 써야 할지도 모르겠다. 내가 한 일이 의미가 있나? 라는 생각이 든다.
 
모르겠다. 의미가 있을 수도 있고 없을 수도 있다. 시니어, 면접관 입장에선 우리의 챌린지든, API든 뭐든 거기서 거기일 지도 모른다. 그냥 약간 두려울 뿐이다. 내가 나만무에서 확실하게 얻어 간 게 없는 건가 싶어서. 팀장으로서의 경험은 확실히 얻었지만, 당장 취업에 필요한 것들을 얻었느냐 라고 물었을 때의 얘기다. 물론 정글 전체적으로 봤을 땐 굉장히 많이 성장했다!!
 
===========================================
 
내일 모레가 수료식이다. 수료 후에도 8월 14일, 즉 약 2주동안은 기숙사와 교육관에 머물러 공부할 수 있다. 나는 8월 12일에 인터뷰가 예정되어 있기 때문에 8월 14일까지 아마 확정적으로 있을 것이다. 고용노동부에서 KDT 프로그램인 정글을 평가하기 위해서 5기 교육생 중 2명을 선발해 인터뷰 한다고 한다. 보수도 준다고 하고..... 나로선 2명 중 1명에 뽑힌 것 자체가 영광이다. 솔직히 기술적으로 많이 잘했다거나 성장한 걸로 뽑힌 건 아닌 것 같다. 잘 하는 사람이 워낙 많았으니까. 나는 나만무 팀장도 맡았고 발표도 자주 했으니, 아마 비교적 말을 잘한다고 판단해서 뽑힌 게 아닐까 싶다. 혹시 인터뷰 영상이 크래프톤이나 정글 홈페이지 등에 업로드 되냐고 여쭤봤는데 그건 아니라고 하셨다. 그건 좀 아쉽다.
 
앞으로는 취업지원 관련 프로그램이 진행될 예정이다. 당장 이력서, 자소서를 어떻게 써야 할지, 내가 정글에서 배운 것들과 나만무 때 만든 프로젝트를 포트폴리오에 도대체 어떻게 녹여내야 할 지 등등에 대해서 전혀 감이 안 온 상태여서 답답했던 상황이라 일단 할 수 있는거라면 전부 신청해서 해보려고 한다. 혼자만의 힘으로 모든 걸 해내려는 건 꽤 어려운 일이라는 것을 살면 살수록 느낀다. 도움을 받을 수 있다면 받아야 한다.
 
이제야 드디어 취업에만 집중할 때가 왔다. 정보보안을 포기하고 딱 1년 1개월이 지났다. 포기했을 당시 나는 1년만 공부하면 중견/대기업 급 회사에 개발자로 취직할 수 있다고 믿었지만, 물론 지금 불가능한 건 아니지만!! 실력을 떠나서 신입 개발자가 너무나도 많이 때문에 큰 회사에 가는게 굉장히 어렵다는 것은 생각지 못한 변수였다. 오죽하면 코치님들도 이력서 100개를 내야 1개 붙을까 말까 하는 정도가 평균이라고 할까. 
 
정글에 안 왔으면 어땠을까 싶다. 5개월동안 목숨 걸고 단 하루도 빠지지 않고 공부해서 이 정도인데, 집에서 그냥 쉬엄쉬엄 했다면 난 지금 아무것도 아닌 플라나리아 급의 인간이 되어있지 않았을까. 생각하면 할 수록 정글에 잘 왔다는 생각이 든다. 정글을 헤쳐 나와도 부족한게 너무나도 많이 느껴지는데 여기마저 오지 않았다면.. 생각만 해도 끔찍하다.
 
후련하고, 시원하고, 우울하고, 두렵다. "제발 그만 좀 하고싶다"라고 매일 생각하던 정글에서의 공부가 드디어 끝나서 후련하고, 드디어 자유가 된 것 같아 시원하다. 이곳에서의 정들었던 사람들과 삶이 멀어지는 게 두려우며, 한참 부족한 내가 연봉을 많이 받고 취업할 수 있을지 두렵다.
 
어쨌든 결국 난 어떻게든 해야 하고, 할 것이고, 해낼 것이다. 정글에서 정말 많은 걸 배웠다. 다른 개발 부트캠프를 가본 건 아니지만, 여기만큼 빡세게 많이 배울 수 있을 것 같지 않다. 단순 기술적인 부분을 넘어서 끈기와 노력, 마인드, 인간관계까지 말이다. 정글에 온 건 한 점 후회가 없다.
 
 
===========================================

 

추가적으로 이번 5기 11팀 중 3팀만 크래프톤 정글 공식 홈페이지에 업로드 되었는데, 영광스럽게도 우리 팀 영상이 업로드되었다. 코치님들이 좋게 봐주셨다는 뜻이니 매우 감사하다. 또한 최종발표 직후 협력사에서 오신 몇몇 분들이, 우리 팀 발표가 가장 인상적이었다고 말씀하셨다는 소식도 심심찮게 들렸다. 좋은 평 주신 분들에게 감사하고 열심히 해준 우리팀에게 감사하다. 아래는 정글 홈페이지에 업로드된 우리 팀 영상이다.

 

https://jungle.krafton.com/board/project/read/136

 

[POKE CODE] 코딩테스트 도구 - 크래프톤 정글

Your Journey Starts here. 크래프톤 정글에 오신 것을 환영합니다.

jungle.krafton.com

 

 

===========================================

 

아래는 내가 유튜브에 업로드한 최종발표 현장 영상이다.

POKE CODE 최종 발표 영상 ( 역삼 크래프톤 본사 )
https://www.youtube.com/watch?v=2ZCqh2sXVTA

 

 

 
 
힐링 알고리즘 학습 사이트 POKE CODE는 알고리즘을 좀 더 쉽게, 재미있게 학습할 수 있도록 기획되었습니다.

POKE CODE는 알고리즘 문제 제공, 채점 및 메모리 사용량/시간 파악, AI 코드 피드백, 코드 에디터, 공유 에디터, 일반채팅, 음성채팅 등의 기능을 제공합니다.추가적으로 포켓몬 진화 로직과 전설의 포켓몬 시스템을 통해, 알고리즘 학습에 있어서 성취감과 재미요소를 부여합니다.

728x90
반응형