네이버 부스트캠프 9기 Web 베이직 수료 후기
🤫 후기에 앞서서, 나에게는 비밀 한 가지가 있다.
바로 개발자로 성장하는 과정의 필터링 없는 내 감정과 경험들을 담는 인스타그램 계정이다. 베이직 수료 후기를 적으려 하니 그 계정에 적어왔던 나의 웃픈 다짐들이 생각났다. 파노라마같이 특정 순간들이 스쳐 지나간다. 지원서 제출 전 시니어 개발자분의 냉철한 피드백을 받으며 운 적도 있었고, 베이직이라는 기회가 주어지는 만큼 반드시 잠재력을 증명하겠다는 승부욕이 생기기도 했었다.
처음엔 할 수 있을까- 하는 의심, 걱정, 떨림과 함께 지원하게 되었지만 오히려 준비 과정에서 자신감을 얻었다. 당장의 실력만이 아니라 잠재력을 평가하는 것이라면 충분히 가능할 것이라 생각했다. “나에게 희박한 1%의 가능성이라도 있다면, 그 작은 확률에 내 200%를 걸자” 고 생각했다. (이 문구를 실제로 노션에 적고 매일 되짚곤 했는데 지금보니 오글거 . . 린 ㄷ. . 다)
☘️ 베이직에서의 성장
1) 베이직 Before & After
베이직 이전의 나 : 쿠키런
베이직 과정에서의 성장을 설명하자면, 모름지기 Before-After가 있어야 하지 않을까. 베이직 수료 전의 나를 비유하자면, 쿠키런 속 쿠키와 같다. 어떻게든 열심히 뛰어가는 쿠키인데, 내가 뭘 먹고 있는지, 맵은 어떻게 생겼는지 잘 모르는 쿠키다.
게임에서는 좋은 아이템을 빨리 얻는 법, 게임머니를 단기간에 많이 쌓는 방법 등 여러 가지 편법에 대한 정보가 떠돌아다니기 마련이다. 이처럼 ”좋은 개발자”에겐 무엇이 필요한지 모른 채, 다른 이들이 학습하는 것들과 그렇게 보이는 것들을 따라가기에 급급했다. 돌아볼 시간보다는 하루라도 더 빨리 더 많은 내용들을 학습하고 정리하기 위해 조급함을 느꼈다.
비유는 여기까지! 돌아봤을 때의 특징들은 다음과 같다.
👉 필요한 역량보다는 “지식” 중심
👉 주변 사람들과의 비교
👉 탐색보다 속도 중시
베이직 이후의 나 : 슈퍼마리오
베이직 수료 후 나는 슈퍼마리오로 성장할 수 있었다. (어찌보면 2D에서 3D로의 성장으로도 보인다..) 쿠키런 속 쿠키처럼 맵에서 주어지는 아이템들과 코인들을 수동적으로 급하게 받아들이지 않는다. 마리오처럼 나에게 필요한 아이템을 직접 판단하고, 활용하며, 히든 미션은 없는지 탐험하고 즐길 수 있게 되었다. 이 비유가 부스트캠프에서 강조하는 “문제 해결력”과도 연결될 수 있다고 생각한다.
나의 변화한 점들을 요약하자면 다음과 같다
👉 속도보다는 “방향”에 대한 고민을 먼저
👉 비교보다 나만의 학습 경로를 중시
👉 지식에 대한 강박보다 학습의 즐거움과 확장에 초점
이보다 훨씬 더 많지만, 아래의 목차에서 더 자세히 설명하겠다. (글을 적다보니, 비유를 통한 설명도 베이직 과정의 마스터님으로부터 배운 것 같기도 하다 ㅋㅋ)
2) 변화를 느꼈던 순간
사람의 변화를 위해서는 새로운 지식보다 새로운 ”태도”가 중요하다. 나의 태도나 행동이 변화했을 때 스스로의 변화를 가장 크게 실감하곤 한다. 베이직 종료 이후의 한 소중한 이벤트가 변화에 대한 그린라이트(?)가 되어주었다.
🧐 물음표만 남았던 베이직 마지막 날의 상황
베이직 과정 마지막 날, 우리 팀은 그룹 미션 구현 과정에서 미스테리한 오류를 마주하였다. 줌 운영 시간 끝까지 남았지만 운영 상의 제약으로 종료한 채 흩어졌다. 목표했던 사항들을 다 완료하지 못한 상태로 아쉬움을 느꼈다.
🔐 베이직 종료 이후의 신나는 도전
베이직 종료 직후 바로 다음날이 2차 문제 해결력 테스트였다. 온 마음과 에너지를 쏟은 후라 아무것도 못할 줄 알았는데 본가로 돌아가는 길에 그룹 미션의 오류가 머릿속에 맴돌았다(!) 저녁을 먹고 또 밤까지 코드를 뜯어보았고 해결 이후 행복하고 신나는 마음으로 해당 내용을 문서로 정리하였다. 찝찝한 부분들은 그 다음날까지도 기억하며 고쳐갔다.
WOW, OMG하며 하나씩 고쳐가는 과정이 그룹 미션 때처럼 재밌었다. 지친 와중에도 몰입해서 끝까지 도전한 것과 습관적으로 해당 과정들을 노션에 문서로 정리한 나의 모습에 (혼자서ㅋㅋ) 감탄하고 뿌듯하기도 했다. 아직 많이 부족하지만 하나라도 바뀌었다는 점이 행복했다.
3) 베이직 과정을 통해 얻은 것들
#1 [태도] 더 나은 무언가를 고민
베이직을 통해 부스트캠프에 인재상인 ‘지속가능한’ 개발자가 되기 위한 필수적인 태도를 배웠다. 캠퍼들의 학습 기록, 수료생의 과정들을 보며 비교가 아닌 여러 레슨을 얻을 수 있었다. 가장 중요한 것은 좋은 결과물과 내용이 담긴 곳에는 늘 “더 나은 방향”에 대한 고민의 흔적이 있었다는 점이다. 코드를 리팩토링 하는 것 뿐만 아니라, 미션을 해결하면서 실천했던 일련의 과정들, 학습 방식들에 대해서도 발전시키기 위한 평가와 회고가 함께했다.
그동안의 나는 무언가 마무리가 되고 나서야 되돌아보고 회고를 하는 등에 그쳤던 것 같다. 하지만 베이직을 통해서는 해결하는 과정 속에서도 끊임없이 발전시키고, 회고 이후에는 반성했던 내용을 반드시 실천하는 끈기를 얻었다.
#2 [태도] 문서화를 통한 공유
미션마다 리드미를 작성하며 다음과 같은 것들을 생각할 수 있었다. “문서화 하는 이유는 무엇일까? “그 이유에 걸맞는 내용의 구성은 무엇일까?”. 혼자서 학습할 때는 문서화를 통해 내가 설계하고 생각한 것들을 누구나 이해할 수 있는 언어로 표현하는 연습을 할 수 있었다. 문서화 과정은 표현의 연습도 되었지만, 내 해결 과정을 돌아보는 좋은 지침서가 되기도 했다.
그룹미션을 진행하면서는 문서화의 필요성을 진정으로 깨달을 수 있었다. 각자의 생각 차이와 다양한 해석의 방향을 반드시 시각화하고 명료화할 때 그 간극을 줄일 수 있었다. 이때 추상적인 나의 생각을 언어로 표현했던 연습이 큰 도움이 되었다.
#3 [문제해결] 설계와 계획
알고리즘 문제 풀이를 하다보면 코드부터 치지 말라는 이야기를 많이 들어보았을 것이다. 이는 코딩테스트, 알고리즘 문제 풀이에만 해당되는 이야기가 아니다. 베이직을 통해서 설계와 계획의 중요성을 깨달았고, 더 나아가 이를 “잘 수행하기 위한” 나만의 루틴도 얻을 수 있었다.
컴퓨터공학을 전공하면 보통 ‘소프트웨어공학’에서 해당 내용을 배우는 것 같다. 하지만, 이는 특정 분야가 아니라 모든 “문제의 해결과정”에서 중요한 것이었다. 설계는 문제를 제대로 정의하고 앞으로의 나의 액션들을 결정하는 명확한 토대를 마련하는 과정이었다. 계획은 구현을 체계적으로 할 수 있도록 일종의 ‘틀’이 되어주었는데, 이는 디버깅 과정에서도 큰 도움이 되었다.
#4 [문제해결] 혼자가 아닌 함께하는 해결
2번밖에 없었던 그룹 미션이었지만 같이 풀기에 어려웠던 미션을 받았다. 개인적으로 구현의 난이도보다는 “소통의 중요성과 난이도”가 더 크고 높은 미션이었다고 생각한다. 헙업 경험이 없지만 그룹미션을 기회 삼아 아래의 2가지를 실천하고자 노력했었다.
(1) 그룹에 필요한 질문을 적극적으로 던지는 것
(2) 문서화 작업을 주도적으로 하는 것
그룹에 필요한 질문이란, 미리 정하고 가지 않으면 애매한 사항들을 캐치하여 공유하는 것이다. 문제를 이해하며 해석이 다양하게 될 수 있는 부분들을 꼼꼼히 메모하고 팀원들의 의견을 묻기 위해 노력했다. 처음엔 의도한 대로 잘되지 않았지만, 몇 번의 과정을 거쳐 조금씩 수월하게 실천할 수 있었다.
문서화 작업을 통해서는 개인 미션 때와 마찬가지로 팀의 전체 해결 과정을 돌아보는 데 좋은 기반이 되었다. 그룹 전체의 단위에서 회고하진 못했지만, 기록했던 각 단계에서의 내 수행 과정과 방식에 대해 반성할 수 있었다.
#5 [문제해결] “Why”에 대한 고민
그동안 개발하면서 일단 처음 생각했던 나의 방식대로 구현하고 “되게” 만들기 위한 과정들이 더 컸다. 이후에 늘 회고는 했지만, 해결 과정도중에 방식을 선택하거나 수정하는 기준은 없었다. 베이직의 각 미션을 통해서는 내 해결 과정의 기준이 되어 줄 “why”를 고민하고, 목표를 설정하는 연습을 반복적으로 할 수 있었다.
why에 대한 고민은 구체적으로 다음과 같은 상황에 도움이 되었다. 가령, 어떤 값을 저장하고 가공하는 데 있어서 나에게 익숙하거나 가장 먼저 직관적으로 떠오르는 자료 구조를 선택하곤 했다. 하지만, why에 집중하면서는 내가 쓸 수 있는 자료구조의 종류(선택지)를 탐색해보고, 각 선택지들에 대해 평가해보고, 특징을 파악하고, 변형하는 등의 과정을 거칠 수 있었다.
#6 [기타] 회고를 통한 내 강점과 약점
베이직을 통해 개발자로서 가질 수 있는 나의 강점과 약점을 더욱 객관적인 시각에서 파악할 수 있었다. 아직 경험이 많이 없던 터라 베이직 과정을 시작하기 전 의기소침했다. 특히 이전 부스트캠프 수료생들의 블로그를 보며, 역시 최소한의 스펙이 있어야 가능하다고 생각했다. 하지만 베이직을 하며 오히려 내가 경험해보지 못한 것들을 도전할 때마다 내 강점을 알 수 있었다.
(1) 나는 정리가 강점이다. 그동안 어떤 경험이든 나만의 것으로 구조화하기 위해서 꾸준히 회고를 해왔는데, 이때의 습관들이 도움이 되었던 것 같다.
(2) 회고를 통해 발전한다. 같은 문제와 상황이 주어져도 경험의 깊이와 얻는 레슨은 달라진다. 글을 통해 기억하고 이후 실천하며 발전할 포인트들을 정리하며 몇 가지에만 집중하기 위해 노력했다. “다음” 스텝에서 실천할 항목들을 업데이트하고 실천하는 것을 반복하다보니 자연스럽게 실력도 성장한 것 같다.
(3) 필요한 학습 키워드 추출 능력이 부족하다. 몇몇 캠퍼들은 문제 해결을 위해 필요한 배경 지식과 추가적으로 조사할 부분들을 체계적으로 추출한 뒤 빠르게 탐색하였다. 물론 방식에 정답이란 건 없지만, 중간중간에 왔다갔다하며 탐색했던 나의 방식은 문제 해결의 본질에 집중하는 데 방해가 되었다.
(4) 확장성을 고려한 구현 능력이 부족하다. 아직 좋은 코드와 구현에 대한 개념이 부족한 것 같다. 이는 개발을 하는 내내 고민해봐야 할 문제겠지만, 그동안의 내 개발 순간들에서는 이에 대한 고민이 부족했음을 깨달았다.
때로는 이러한 부족한 점들이 끝도 없이 느껴져서 우울한 적도 있었다. 하지만 어느순간부터는 이런 것들을 발견할 수 있는 것 자체가 행운이라는 생각이 들었다. 강점은 강화하고, 약점은 보완하면 된다. 이들을 정확히 인지할 수 있다는 것부터가 감사한 일이다.
#7 [기타] 개발에 대한 나의 생각
💚 개발자로서의 정체성에 대한 깨달음
개발자는 ‘어떠한 사람일 것이다’라는 그동안의 환상이 있었다. 아무리 어려운 문제를 만나도 그 머리아픔(?) 자체를 즐길 수 있어야 하고, 하루종일 구현에 빠져있어야 한다는 등. 이러한 상상 속 몇 가지 요소들에 내가 맞지 않다고 느낄 때마다 찝찝한 기분과 함께 맞춰야 한다는 강박이 들기도 했다. 베이직 과정의 몰입을 통해서 이 허상을 확실히 깰 수 있었다. 개발자도 당연히 몇몇 순간들에 짜증도 나고 어려울 수 있따. 그런데 이를 끝까지 해결하고 싶다는 끈기와, 더 잘하고 싶다는 욕심이 있다면 누구든 더 나은 “지속가능한” 개발자가 될 수 있다.
💚 문제 해결의 즐거움
베이직 전 개발을 “공부”처럼 여기다보니 특정 기간 내에 완수하고 끝내야 하는 과업처럼 느껴졌다. 베이직에서 “문제 해결”에 초점을 맞춘 미션을 통해 개발을 하다보니 개발을 처음 시작했을 때의 설렘과 매력을 다시 느낄 수 있었다. 이제는 다른 사람의 코드와 새로운 프레임워크를 배우는 것과 오픈 소스를 활용하는 것이 두렵지 않다.
다른 사람이 작성한 결과물을 보는 눈과 이해하는 힘이 길러지니 확실히 시야가 확장된 것 같다. 노는 물이 커야, 노는 재미가 더 크듯, 개발을 재밌게 할 수 있는 기초적인 힘을 얻은 기분이다.
🚀 앞으로의 계획
꼭 실천해야 할 것들
계획은 강점을 발전시키고, 약점을 보완하는 데 집중하고자 한다. 특히, 베이직에서 얻은 것들을 “유지”해야 의미있기 때문에 이 후기에 작성하며 정리했던 포인트들을 의식하며 실천할 것이다.
👉 프로젝트 단위든, 기능 단위든, 미션 단위든 회고 습관을 꾸준히 이어간다.
👉 “좋은 코드”에 대한 고민을 심화시킨다. 좋은 코드란 건 정답이 없기에, 시야를 확장하고 나만의 관점을 완성해가는 것이 중요하다고 생각한다. 따라서, 무언가를 구현하면 반드시 여러 개의 다른 접근법과 다른 사람들의 문서 및 방식들을 참고하는 것을 습관화할 것이다.
👉 자료 구조에 대한 정리를 더욱 완성도 있게 마무리한다. 문제 해결을 위해서는 해결 과정도 중요하지만, 최소한의 필수적인 지식을 갖추는 것도 중요하다. 베이직 과정 동안 자바스크립트 자료구조와 알고리즘 (https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=69412435&start=pgooglemc) 서적을 읽으며 기초적인 개념은 정리할 수 있었다. 하지만 누군가에게 설명하거나 특정 상황에서 설명할 때 특정 자료 구조의 특징과 장단점을 완벽하게 설명할 수 있는 수준은 아닌 것 같다.
챌린지 입과에 대해
사실 이 글을 임시저장하며 쓰는 기간 중에 합격 메일을 받았다 . . . 🥺 설레는 마음으로 작년의 챌린지 후기들을 한 번 더 살펴봤는데 가장 기억에 남는 문구는 “야생에서 살아남기”였다. 베이직이 온실 속 정원이었다면, 챌린지는 아마존 정도 되지 않을까.
두려움도 있지만, 설렘이 훨씬 더 크다. 베이직을 수료하며 느꼈던 스스로에게 아쉬웠던 점들은 챌린지에서 꼭 보완하며 참여할 것이다. 1) 해결 전에 필요한 지식들을 더 체계적으로 구성하고 2) 비교보다는 동료의 장점을 스펀지처럼 흡수하고 배우며 3) 과제와 미션 구조 때문이 아니더라도 스스로 끊임없이 개선을 위해 노력할 것이다.
챌린지 수료 이후에는 그냥 슈퍼마리오가 아니라, 스타를 먹은 무적 슈퍼마리오가 되고 싶다.
어디서든 살아남을 수 있는 야생의 무적 슈퍼마리오!
[출처: https://www.nicepng.com/ourpic/u2q8q8i1a9u2t4o0_super-mario-star-power/#google_vignette]



