부스트캠프 웹·모바일 7기 후기

들어가며

어느덧 창밖의 초록은 지고 하얀 눈이 내려왔네요. 무려 5개월이 지났습니다.

부스트캠프를 하기 전까지만 해도 대학교 연구실에서 프론트엔드 개발자의 꿈을 키우며 관련된 연구 과제를 개발하고 있었습니다. 홀로 전공을 살리지 않고 웹 개발을 해야겠다고 생각하여 일찍이 다른 길로 걸었습니다. 그러다 보니 개발하면서 생기는 고민을 깊이 있게 나눌 사람이 주변에 없었습니다. 그래서 같은 길을 걷는 개발자 동료를 사귀고 싶었습니다. 그렇게 사귄 동료와 고민하고 있는 부분, 구현 방식 등에 대해서 의논하고 싶었습니다.

운 좋게 부스트캠프에 합격했지만, 눈앞에 닥친 개발 및 학습을 하는 데에 급급했습니다. 깊이 간직하고 있던 작은 목표를 달성하지 못하게 되는 것이 아닌가라는 걱정도 했습니다. 하지만 지금은 지속적으로 학습하고 성장하려고 노력하는 커뮤니티의 일원이 되었다는 점을 실감하며 큰 축복을 받았다고 생각합니다.

부스트캠프 입과 전에는 분명 구현 방식에 정답이 있는데, 이를 찾아내지 못하고 있다고 생각했습니다.
정답이 있을 것이리라.
지금까지 맞닥뜨린 문제가 모두 그랬던 것처럼.

이제는 깨달았습니다.
지금 마주하고 있는 문제들에는 단 하나의 정답은 존재하지 않는다는 것을.
정답과 해결책보다는 이유가 더 중요하다는 것을.
이를 받아들이기까지 꽤 오랜 시간이 걸렸습니다.

부스트캠프 전 과정을 통틀어서 가장 확실하게 말할 수 있는 것은 개발 철학에 대해서 배웠다는 것입니다. 마스터 클래스를 들으면서 그동안 의심하고 궁금했던 이런 방식으로 구현해도 괜찮은가?에 대한 해답을 어느 정도 해소할 수 있었습니다. 과거에 정답을 찾고 싶었던 마음, 자기 자신에 대해 확신을 가지지 못했던 것은 선택한 프로그램 구현 방식의 이유를 스스로 찾지 못했기 때문입니다.


챌린지

챌린지 기간은 이른바 벽을 많이 느꼈던 시간이었습니다. 가장 힘든 점은 정신이었고, 체력은 그다음이었습니다.
4주 동안 버틸 수 있게 도움을 주었던 많은 동료이자 멘탈 코치들이 있었기 때문에 감사하게도 수료할 수 있었습니다.


1) CS

부스트캠프에 입과 할 때 믿을 수 있었던 것은 기본적인 JavaScript 문법을 알고 있다는 점뿐이었습니다. 어떠한 장애물이 있을 것이란 예상은 했지만 그렇게 클 줄은 몰랐습니다. 앞에서 먼저 이야기했던 것처럼 챌린지의 벽을 느끼도록 만든 주된 원인이 바로 CS입니다. 개발의 근간이 되는 CS에 대한 지식이 없었기 때문에 주어지는 미션들을 해결하는 것이 말 그대로 챌린지로 다가왔습니다.

처음 들어보는 단어들도 많아서 꽤 고생했습니다. 하루하루 필요한 지식을 팀원들에게 물어보거나 구글링한 결과로 즉석에서 채우는 수밖에 없었습니다. 분명 멤버십에 합격하지 못했다면 바로 컴퓨터 공학 공부를 시작했을 겁니다. 이때 기본적인 CS 공부의 중요성을 깨달았기 때문에 멤버십이 끝난 지금, 더듬더듬 시작하고 있습니다.


CS 학습 내용을 정리하는 노션 페이지 며칠 전부터 시작한 CS 스터디


2) 기록

그 당시 정리했던 학습 내용을 보면 글 쓰는 데에 공을 많이 들였다라는 생각이 듭니다. 실제로도 자신만의 언어로 가공하기 위해서 노력을 많이 했습니다. 블로그 글을 읽고, 필요하다면 동영상도 시청하고 나서 핵심 내용만 문장 안에 잘 담아보려 했습니다. 또 시각 자료 같은 것들도 간단하게 표현할 수 있는 부분들은 직접 그려보기도 했습니다. 그때는 블로그가 없던 시절이라 그저 정리와 요약에 주안점을 두었다면, 지금은 조금이라도 남이 이해하기 편한 글을 쓰려고 한다는 차이가 있겠네요.


문득 챌린지 기간 동안 배운 내용을 금방 잊어버릴 것이라고 하셨던 마스터님의 말씀이 기억납니다.
정확하게 들어맞았습니다.
한편으로는 그렇기 때문에 학습한 내용을 글로 기록해두길 잘했다는 생각도 듭니다.
만약 기록도 존재하지 않았다면, 그 시기를 보냈다는 증거가 없어질 뻔했습니다. 😅


Git File Lifecycle에 대해서 정리해두었던 필기 자료 당시에 필기했던 Git File Lifecycle


3) 공유

대학에서 오픈소스 수업을 들으면서 개발자들의 공유 문화에 대해서 어렴풋이 들은 적이 있습니다.
학교라는 공간에서는 경쟁과 평가가 큰 축을 담당하기 때문에 학생 사이에 활발한 공유를 기대하기는 힘듭니다.
이상적인 이야기였던 것입니다.

하지만 부스트캠프는 달랐습니다. 슬랙 채널에는 자신이 아는 내용이나 정보를 열심히 공유하는 분들이 많았습니다. 서로가 구한 정보를 나누고 질문과 답변이 오갔습니다. 신기하면서도 한편으로는 직접 공유해보고 싶었습니다. 익숙하지 않은 행위였기 때문에 첫 정보 공유까지 시간이 걸렸습니다. 처음 슬랙에 올렸던 글은 Git과 관련된 동영상 링크로 기억합니다. 누군가에게 도움이 되었을 것이란 생각 때문이었는지 기분이 좋았습니다.

그 후에도 자주는 아니지만 도움이 될 수 있을 것 같은 정보를 공유했습니다.
지금 생각해보면, 도움이 되고 안되고를 스스로 판단하지 않았더라면 더 많이 공유할 수 있었겠다는 생각도 듭니다.


멤버십

입과 했다는 사실에 기분이 좋았던 만큼 함께하지 못했던 챌린지의 인연들이 생각나서 안타까움도 컸습니다. 멤버십 도중 힘들 때, 종종 그 얼굴들이 떠오르더군요. 무기력하게 보내던 멤버십은 누군가가 간절하게 바라던 기회였을 것이라는 생각이 들면 반쯤 나간 정신이 돌아오곤 했습니다. 없던 힘이 솟는 정도는 아니었지만 마음속의 작은 동기부여가 되었던 것 같습니다.

멤버십 기간 동안 가장 어려웠던 점은 바로 스프린트 일정을 산출하는 부분이었습니다. 일정을 짤 때는 실제 수행할 수 있을 정도로 구성했다고 생각했으나 지키지 못하는 경우가 대부분이었습니다. 자신을 과대평가하면 안 된다라는 조언을 들은 적이 있는데, 그에 더해서 마음을 급하게 먹으면 안 된다라는 것도 염두에 둘 걸 그랬습니다.


1) 언어의 중요성

한 번쯤 해봐야지라고 생각했던 것들을 진짜로 해볼 기회가 주어졌습니다. 최대한 라이브러리를 사용하지 않고 웹 페이지를 구현하는 연습을 통해서 충분한 불편함을 느낄 수 있었습니다. 또한 스프린트 기간 동안 마스터분들의 조언과 가르침에 따라서 개발에는 정말 다양한 답이 있을 수 있다는 것을 알게 되었습니다.

이 기간 동안 본격적으로 왜?에 대해서 궁리할 수 있었습니다. 왜라는 물음에 대한 답을 찾는 과정은 곧 이전까지 특정 라이브러리를 잘 모른 채로 사용하면서 마음 한쪽에 가지고 있던 불안함을 해소하는 과정이었습니다. 더 나아가 학습의 필요성이 라이브러리에만 국한되는 것이 아니라 자바스크립트로 확장되는 것을 느꼈습니다.

즉, 챌린지에서는 CS의 중요성을 깨달았다면 멤버십에서는 프로그래밍 언어에 대한 중요성을 깨달은 셈입니다.


2) 코드 리뷰

멤버십에 입과 하기 전에 이전 기수의 후기를 몇 가지 찾아본 적이 있습니다. 기억에 남는 대목은 멤버십에서 다른 사람의 코드를 더 볼 걸 그랬다라는 부분입니다. 그때는 마음속으로 다짐했지만 실천에 옮기진 못했습니다. 물론 막히는 부분이 있을 때는 실력이 뛰어난 동료들의 코드를 참고했지만, 의도적으로 코드를 더 살펴보았으면 좋았겠다는 생각이 듭니다.

한편, 미션에 대한 구조 설계에 투자했던 시간이 아이디어 단계로 그친 부분이 많았습니다. 장고 끝에 악수라는 말이 있죠. 잘 만들어보려다가 남은 시간이 부족해서 실제 코드 레벨로 구현하지 못한 경우도 있었습니다. 점차 프론트엔드 코드와 백엔드 코드의 불균형도 심해져서 리뷰어분들께 요청할 내용이 점점 빈약해졌던 것도 아쉬움으로 남습니다. 스프린트 후반에도 들었던 생각이지만 일단 만들어내고 빠르게 고치는 것도 좋은 전략이 될 수 있겠습니다.


3) 그룹 프로젝트

가장 다사다난했던 6주였습니다.

정했던 주제가 몇 번씩 변경되었고 팀원이 이탈하는 등 팀 내부적인 문제뿐만 아니라 팀 외적으로도 복잡한 이슈들이 있었습니다. 최종적으로 실시간 공동 문서 편집이라는 주제를 정하고, 이를 위해 구현해야 하는 CRDT라는 것은 난이도가 매우 높은 편이었습니다. 설상가상 실질적으로 개발할 수 있는 물리적인 시간도 부족했습니다.

따라서 후반부에는 프로젝트의 초기 기능 스펙에서 부수적인 기능이라고 판단되는 부분을 엄격하게 제한하는 초강수를 두었습니다. 덕분에 어려운 내용을 구현할 수 있었고 마지막의 마지막 날까지 모두가 열심히 달렸기에 최소한의 기능을 제공하는 웹 사이트를 배포할 수 있었습니다. 끝나갈 때쯤에는 스스로 이렇게 생각한 적이 있습니다.

기능은 최소로, 기간은 최대로


물론 아쉬운 점도 끝끝내 남아있습니다.
당장 떠오르는 점은 프로젝트 초기에 생각했던 것보다 코드 품질을 잘 챙기지 못했던 점입니다. 테스트 코드를 작성하거나 코드 가독성을 높이거나 더 나은 구조를 위한 리팩토링 등의 작업을 함께 수행하지 못한 점이 아쉽습니다. 또한 개발 중에 글로 적을만한 내용들을 시간에 쫓겨 제대로 정리하지 못한 점도 생각납니다. 모두 앞으로의 숙제로 남아있습니다.

어떠한 결과물을 만들어냈다는 점도 뿌듯하지만 개발적인 측면 외에도 얻어가는 것이 있습니다.
개인적으로 이전에는 많은 사람 앞에서 말하는 것이 긴장되어 발표를 잘하지 않았는데, 그룹 프로젝트 기간에는 짧은 발표에 여러 번 노출된 덕에 약간은 내성이 생겼습니다. 프로젝트를 진행할 때 다른 팀원들과 소통하면서 커뮤니케이션에 대한 소프트 스킬을 증가시켰을 뿐만 아니라 스스로에 대해 더 많이 알 수 있게 되었습니다. 이야기를 나누면서, 의견을 주고받으면서 저 자신이 원래 생각했던 것보다 더 계획적이고, 형식적이고, 통일성을 중요시하는 성격이라는 것을 깨달았습니다. 또한 몇 가지 단점도 알게 되었는데, 앞서 언급한 것의 반대급부로 인해 유연성이 부족하다는 점과 다른 사람의 의견에 너무 귀 기울이는 탓에 해당 의견에 빠르게 동조하여 스스로 의견을 생각해보지 않는 경우가 있다는 점입니다.


그룹 프로젝트로 진행했던 Codocs의 문서 목록 페이지 겨우겨우 배포했던 Codocs


깨달음 조각모음

그 외에 짧게 깨달았던 점이나 개인적인 생각을 모아봤습니다.


1) 왜? 생각하기

기술적인 것이든, 지식 학습에 있어서든 이유를 말할 수 있어야 하겠습니다. 왜?라는 질문을 받았을 때 상대방에게 그 이유가 무엇이든 설명할 수 있어야겠다고 생각했습니다. 안다는 것을 확실하게 표현하기 위함도 맞지만, 그보다 더 큰 이유는 자신에게 도움이 되기 때문입니다. 평소에 원인과 이유에 대해 생각하는 습관을 키운다면 보다 깊이 있는 개발자가 될 수 있을 것입니다.


2) 세상에 좋은 기업이 많습니다.

개발할 때 검색을 잘하는 능력도 필요한 것처럼 기업을 잘 조사하고 탐색할 필요성이 있다는 것을 깨달았습니다. 부스트캠프에서 처음 들어본 파트너 기업들이 많았습니다. 그중에서 기업에 대해 알아볼 수 있는 시간을 통해 어딘가 매력적으로 느껴지는 기업도 있었습니다. 좋은 기업은 좋음의 기준이 무엇인지에 따라 결정될 것입니다. 분명한 것은 다양한 기업을 알아보는 것이 도움이 된다는 것입니다.


3) 이력서에 정답은 없습니다.

혹자는 이력서를 짧게 쓰는 것이, 다른 이는 길게 설명하는 것이 좋다고 합니다. 저마다 생각이 다 다르고 개개인의 취향이 매우 확고한 분야라고 생각합니다. 다만 확실한 것은 최고의 이력서는 없다는 것입니다. 그러니까 최선을 다해서 쓰면 그만입니다. 가장 기억에 남는 말은 이렇습니다.

판단은 면접관이 한다.


4) 부스트캠프의 선물에는 감동이 있습니다.

택배로 물건을 받을 때 설렌다는 것은 만인이 공감할 것입니다. 부스트캠프에서는 물건과 함께 감동을 전달합니다. 왜냐하면 물건들이 항상 패브릭 파우치에 담겨서 오기 때문입니다! 모 향수 브랜드에서 제품을 구매한 적이 있는데, 그 포장이 떠올라서 그런지 고급스럽게 느껴집니다. 여행 갈 때 쓰면 좋다는데, 기회가 된다면 활용해보겠습니다. 😊

패브릭 파우치 삼형제
온보딩으로 받은 굿즈 컨퍼런스 후기 글로 받은 굿즈 수료 기념으로 받은 굿즈

짧은 글들

부스트캠프 기간을 통틀어서 적었던 글 중에서 2가지 정도를 함께 남기려 합니다.

첫 번째 글은 페어 프로그래밍을 할 당시에 일기로 적었던 글입니다. 그룹 프로젝트 기간에 우연히 재조명받고 나서 이후에 계속 팀 내에서 회자되었습니다. (놀림 받았습니다) 이제는 저 글만 보면 깔깔대던 팀원들이 생각나서 그저 웃기기만 합니다.

두 번째 글은 영광스러운 수료식 축사 연사로 지원하면서 적었던 글입니다. 아무도 제가 연사로 나올 것이라는 생각을 못 했겠죠? 줌으로 진행했던 수료식 채팅창의 분위기와 축사 내용을 놓쳤다는 슬랙 메시지가 왔던 것이 기억납니다. 모든 구성원 앞에서 말할 때 엄청나게 떨렸던 것을 잊을 수가 없습니다. 일반적인 발표와는 차원이 달랐습니다. 😵‍💫

페어 프로그래밍 1일차 일기(좌)와 수료식 축사(우)
페어프로그래밍 1일차 일기 수료식 축사

맺으며

일상이 곧 개발인 강도 높게 몰입하는 나날을 보냈습니다. 빠르게 달리다 보니 그동안 자신을 제대로 돌볼 수 없었습니다. 수면시간은 물론이거니와 운동량도 부스트캠프를 시작하기 전보다 훨씬 줄어들었습니다. 이제는 조금은 속도를 조절하며 일상에 개발을 녹여내는 방식으로 바꿔도 좋을 것 같습니다.


교육 기간동안 엄청나게 줄어든 걸음 수 처참한 운동량



마음속에 품고 사는 여러 문장이 있습니다.
지금의 시기에 가장 알맞은 문장이 하나 떠오릅니다.

Anxiety is freedom

인문학 교양 수업에서 들었던 말입니다.
불안하면 지금이 자유롭기 때문이라는 것입니다.
그러니, 불안을 너무 부정적으로 생각하지 말고 긍정적으로 생각하라는 것이죠.
자유로운 상태에서는 무엇이든 될 수 있다고요.

지금은 어디에도 소속되어 있지 않지만, 그와 무관하게 실력을 키우기 위해 성장하고 있습니다.
불현듯 불안감이 엄습해올 때면 다시 떠올리는 겁니다.

천천히 하자, 급해지지 말자, 무엇이든 될 수 있다