티스토리 뷰
[네이버 부스트캠프] 웹 풀스택 챌린지 회고:: 나를 죽이지 못하는 고통은 날 더 강하게 만들 뿐이다.
밍동망동 2025. 8. 17. 23:38학습 활동 가이드의 콘텐츠 이용 및 보호 수칙을 준수하고, 콘텐츠 유출에 주의해 주세요.

해당 포스팅은 경고 문구를 인지한 상태로 작성하였으나,
위반 사항이 염려되는 부분이 있다면 바로 수정하겠습니다.
풀로 지은 집, 벽돌로 지은 코드
챌린지 과정이 끝났다.
3주차까지는 시원섭섭했지만,
4주차에는 기력이 조금씩 떨어져서 빨리 끝났으면 좋겠다는 마음도 들었다🫠
돌이켜보면 챌린지 기간의 목표는 많고 많았다.
사실 매주차 달라졌던 것 같다.
첫 주차에는 리팩토링과 가독성 있는 코드에 신경을 썼다.
하지만 마지막 주차에는 오히려 리팩토링을 고려하지 않는 코드를 의도적으로 작성했다.
완벽한 설계란 없다는 걸 깨달았기 때문이다.
다시 수정할 작업에 시간을 쓰는 것이,
그렇지 않을 때보다 더 큰 대가를 요구한다는 걸 직접 경험했다.
처음에는 전체 흐름을 잡으려고 노력했다.
기능을 얕게라도 쌓아 숲을 그리려 했지만, 너무 얕다 보니 금세 문제가 생겼다.
아기돼지 삼형제가 떠오른 순간이었다.
그래서 무작정 막내 돼지가 되어보려고 했다.
그러다보니 오히려 오버 엔지니어링에 빠져버렸다.
리팩토링, 테스트 코드까지.
나름 정성껏 쌓아올렸건만, 중요한 사실을 간과했다.
내 설계는 완벽하다는 착각 속에서 이상한 곳만 보강해나갔던 것이다.
코드에 흑백은 없으며, 트레이드 오프의 미학이거늘
저건 틀렸다고 단정해나간 게 패착인 것 같았다.
3주차부터는 조금씩 균형을 찾았다.
2일에 하나의 프로젝트를 끝내는 것에 적응하는게
체력적으로 정말 힘들었지만,
첫 날 잘못하면 겉잡을 수 없어...
학습과 코딩 사이에서 나름의 균형을 잡아나가는 연습을 했던 것 같다.
그리고 4주차. 드디어 감이 잡혔다.
내 생산성이 어느 정도인지,
시간 안에 무엇을 할 수 있고 어디까지가 한계인지 알게 됐다.
조건을 모두 만족하진 못했지만,
내가 해낼 수 있는 최선은 보여줬다.
그러다보니 어느새 챌린지는 끝나 있었고,
한 달이 지나버렸다.
작은 하마가 남긴 독기
챌린지가 끝나고 내게 남은 것이 무엇인지 돌아봤다.
실력?
물론 실력이 늘었다면 최고겠지만, 정직하게 말하면... 뭔가 독기가 가득 남은 것 같다.
매일 같이 내 한계를 체험했다.
머리로 알고 있는 것과, 실제로 만들어내는 건 차원이 달랐다.
니콜라스 네그로폰테가 개구리를 이해하려면 개구리를 만들어봐야 한다고 했던 말처럼,
정말 하루하루 그 말이 이해되는 나날이었다.
오늘은 이게 뭐야... 하고 내 코드에 절망했다가,
내일은 그래도 내가 만들었잖아? 라며 뿌듯해졌다가,
그런 기복이 반복되다 보니 3주차쯤부터 뭔가 기묘한 독기가 생겼다.
그런데 이게 또, 소년만화 주인공이 각성해서 울트라 모드로 돌변하는 그런 느낌은 아니었다.
몇 년 전 유행했던 작은 하마 짤처럼...
뽀짝하고 위협되지 않는 그런 독기.
시험 기간 새벽에 강의실에 남아,
에너지 드링크를 한 캔 마신 수준의 분노랄까.

그래도 이건 꽤 소중하다.
내 안에 자그마한 불씨가 남아서 다음 날에도 일어나게끔 해줬으니까.
어쩌면 챌린지 기간에 얻은 것 중 가장 값진 것일지도 모른다.
실력은 조금씩 나도 모르는 새에 올라가겠지만,
이 독기는 한동안은 계속 연료처럼 매일같이 타오를 것이다.
오답을 쪼개먹으며 정답에 다가가기
문제 해결력이란 말의 의도를 파악하기 위해 매일같이 조금 고민을 해봤다.
AI 시대를 살아가는 개발자는 상당히 과도기적인 시점에 있다.
잘못하면 기술에 매몰돼버리고, 반대로 고집스럽게 거부하면 뒤처질 수 있다.
그래서 나는 어떻게 해야 올바른 방향을 잡을 수 있을까?를 매일 고민했다.
사실 솔직히 말하면, AI를 안 썼다고는 할 수 없다.
오히려 대부분의 문제는 AI의 도움 없이는 통과하지 못했을지도 모른다.
테스트 코드 작성, 디버깅, 환경설정까지.
특히 첫 세팅이나 에러 로그 파악은 AI의 도움 없이는 훨씬 시간이 걸렸을 것이다.

그렇다고 주객이 전도되지 않기 위해, 나만의 루틴을 만들었다.
먼저 미션이 공개되면 전체적인 틀과 흐름을 그렸다.
필요한 기능과 단계를 task 단위로 쪼개고, 각 단계에 선행돼야 할 학습을 따로 정리했다.
옵시디언을 열어 나만 알아볼 수 있는 간단한 메모를 쌓아두는 방식이었다.
예를 들어 1단계가 파일 파싱 로직 구현이라면,
그 밑에 정규 표현식 연습, 파일 입출력 기본 API 복습 같은 미니 태스크를 붙여두는 식이다.
이렇게 하면 단계를 밟을 때마다 공부할 것 → 구현할 것이 자연스럽게 연결됐다.
결과적으로 웬만한 미션은 순차적으로 진행할 수 있었다.
1단계를 완성하고 단위테스트까지 통과하면, 그 뒤에 2단계를 붙이는 식이다.
물론 2단계 코드가 1단계에 전혀 영향을 미치지 않는 건 아니었지만,
어제 만든 게 오늘 바로 무너지는 악몽은 피할 수 있었다.
다만 나는 전체 개념을 어느 정도 훑어야 마음이 놓이는 타입이라,
처음엔 항상 40%쯤 학습해둔 상태에서 구현을 시작했다.
그러다 보니 시간에 쫓겼다.
특히 3주차까지는 개념 반, 구현 반을 병행하면서 늘 허덕였다.
4주차에 와서는 전략을 바꿨다.
아예 학습-구현-테스트를 스탭별로 쪼개, 눈앞에 있는 단계만 집중했다.
이렇게 하니까 오히려 시간이 남았다.
조금 늦게 깨달은 점이라 아쉽지만, 덕분에 나와 맞는 학습법을 찾았다.
언제나 과정은 결과보다 값진 것 같다.

AI 활용, 어떻게 했나
AI를 단순히 정답 생성기로 쓰진 않았다.
그보다는 검색 가이드로 활용했다.
예를 들어 어떤 최적화 개념이 필요할 때,
국내 블로그만 봐도 구현이 가능한 경우가 많았다.
하지만... 개념 자체를 깊게 이해하는 데는 부족했다.
그럴 때 AI에게 이렇게 물었다.
지금 나는 이런 상황인데, 이러한 개념이 필요해.
관련해서 구글링하기 좋은 키워드를 추천해줄래?
AI가 제시한 키워드로 다시 구글링하면,
내가 몰랐던 영문 레퍼런스나 더 정제된 공식 문서를 찾을 수 있었다.
영어가 약하다 보니, 내가 직접 치던 검색어보다
훨씬 더 구체적인 결과가 나온 경우가 많았다.
특히 레퍼런스를 직접 달라는 요구는 종종 404로 끝났기 때문에
검색 키워드 브레인스토밍 도구로 사용하는 편이 훨씬 유용했다.
챌린지 생활의 꿀팁
한 가지 예상하지 못한 문제는 코드 저장 방식이었다.
챌린지 과제는 모두 Gist로 제출했어야 하는데, Gist는 디렉토리를 지원하지 않는다.
파일이 늘어날수록 내 파일 어디 갔지? 하며 헤매기 일쑤였다.
슬랙에서 한 피어분이 알려준 팁이 정말 유용했는데,
바로 디렉토리 이름을 파일명 앞에 붙이는 것이다.
예를 들어,
- `src/index.js` → `src-index.js`
- `test/index.js` → `test-index.js`
이렇게 해두면 Gist에서도 유사한 파일이 한눈에 보여서,
작업 속도가 훨씬 빨라졌다.
개인적으로 이게 챌린지 생활 최대의 꿀팁이라고 생각한다👍👍
AI와 함께한 디버깅
코드를 짜는 과정에서 AI는 또 다른 역할을 했다.
특히 성능 피드백에서 큰 도움을 받았다.
예를 들어,
- 이 구현 방식이 병목을 일으키지 않을까?
- 이 코드에서 동시성 문제가 생길 여지가 없을까?
이런 질문을 던지면 AI가 정확히 해결책을 주지는 않더라도,
최소한 아닌 경우를 빠르게 제거해줬다.
마치 수학문제에서 보기 다섯 개 중 세 개는 지워주는 느낌이랄까?
undefined 에러처럼 눈에 잘 안 보이는 버그도,
AI가 의심할 부분을 짚어주면 디버깅 시간을 크게 줄일 수 있었다.
물론 아직 AI가 완전하지 않아 해답은 내가 찾아나가야 했지만,
가지치기와 방향 제시의 역할은 확실했다.
부엉이에게 길을 물으며
AI를 정답을 주는 도구가 아니라,
문제 해결 여정에서 방향을 잡아주는 부엉이처럼 사용하도록 노력했다.
문제 해결력이란건 결국,
모르는 걸 어떻게든 풀어내는 힘이라고 생각한다.
AI는 그 힘을 키워주는 보조바퀴에 가깝다고 생각한다.
내가 직접 밟아나간 시행착오와 AI가 보여준 가지치기 사이에서,
비로소 나는 문제 해결 감각을 배워나간 것 같다.
메일보다 먼저 온 여름 하늘
챌린지 생활이 끝나고 나니 마음 한 구석이 텅 빈 듯했다.
끝나길 바라던 순간이었는데, 막상 끝나버리니 이게 진짜 맞나? 싶었다.
그래봤자 한 달이지만 매일 하루하루를 꽉 채웠던 터라,
삶의 큰 부분이 갑자기 사라진 기분이었다.
사실 나는 글을 다듬고 메시지를 정리하는 일을 오래 해왔다.
교지 편집부, 대학교 공식 홍보서포터즈에서 활동하며
어떤 주제든 설득력 있게 어필하는 건 자신 있었다.
그래서 코드 자체는 완벽하지 않아도
핵심을 짚고 나를 표현하는 데 강점이 있다고 믿었다.
하지만 그런 자부심은 3주차부터 무너졌다.
부족한 설계력이 드러나면서 결국 진심 모드로 각성할 수밖에 없었고,
마지막 날에는 늦잠을 자 미션을 날려먹는 실수까지 했다.
릴레이 프로젝트는 없겠지하고 방심한 게 문제였다.
이 사건 이후로는 모든 Slack 알림을 모바일에도 무조건 켜두기로 했다.
뒤늦게 제출하긴 했지만 이미 마감은 지나 있었고🥲
토요일에 Gist 정리를 마친 뒤부터는 기다림이 견디기 힘들었다.
불안핑이 될 게 뻔했기에, 미리 비행기 표를 예약해뒀고,
일요일 새벽 짐을 싸서 삿포로로 떠났다.


불안핑과 삿포로의 하늘
결과는 잠시 잊고 하루 종일 걸었다.

토요일까지 밤새 코드를 짜고 README를 정리하던 내가,
다음 날 오전부터 전혀 다른 도시를 걷고 있다는 사실만으로도
이미 기분이 환해졌다.
무엇보다 하늘이 너무 예뻤다.
여름이 다 갔다고 아쉬워할 틈도 없을 만큼,
그동안 못 본 하늘이 한꺼번에 보상이라도 하듯 펼쳐졌다.


노트북을 하루종일 열지 않아도 된다는 사실이 이렇게 행복할 줄이야.
완벽한 리프레시였다.
하늘을 보며 걷다 보니,
합격하든 떨어지든 결과를 겸허히 받아들일 마음이 생겼다.
만약 떨어진다면 인턴십 준비, 개인 프로젝트 정리, 팀 활동...
하반기를 어떻게 보낼지 차분히 계획까지 세워봤다.
기다림의 끝
여행 넷째 날, 카페에서 점심을 기다리던 중
강한 직감이 들어 메일을 열어봤다.


제목을 본 순간부터 지난 두 달이 파노라마처럼 스쳐 지나갔다.

혹시 모른다는 생각에 메일을 열어봤고,
결과는 합격이었다.

의외로 환호보다는 안도감에 가까운 감정을 느꼈다.
여행을 즐기며 나를 증명해주는 건 메일 제목 한 줄이 아니라,
책상 앞에서 하루하루 버텨온 시간이라고 마음을 정리했기 때문일까.
그래서 합격 소식이 여름 하늘만큼이나 은은하고 담담하게 다가왔다.
이제, 그 시간을 어떻게 이어갈지가 더 중요한 숙제로 남았다.
아직 미완의 문장
챌린지 동안 나는 나 자신을 끊임없이 몰아붙였다.
덕분에 분명 성장했지만, 지속 가능하기엔 조금 가혹했던 것도 사실이다.
특히 구현에 급급하다 보니 성능적인 부분을
제대로 살피지 못한 게 가장 아쉬움으로 남았다.
동시성 문제나 병목이 일어나는 순간에도,
끝내 최적화까지는 닿지 못한 경우가 많았다.
애초에 처음부터 좋은 구조로 완벽하게 짜려는 태도가 오히려 발목을 잡았던 것 같다.
이제는 구현부터 하고,
프로파일링을 통해 개선해나가는 흐름이 더 정석이라는 걸 배웠다.
나는 그동안 열심히 했다, 이 부분에 집중했다 같은 정성적인 말로 코드를 설명해왔다.
앞으로는 성능 수치, 테스트 결과, 리팩토링 전후 비교 같은 정량적인 언어로도
내 코드를 이야기할 수 있는 개발자가 되고 싶다.
또 하나의 도전은 함수형 프로그래밍이다.
아직 제대로 이해하지 못했기 때문에, 더 원초적인 언어인 하스켈 책을 집어 들었다.
부스트캠프 멤버십 학습 스프린트 기간 안에
이 부분을 파고들며, 얻은 인사이트를 동료들과 공유하고 싶다.
개발의 미덕이 나눔에 있다고 생각한다.
특히 챌린지 기간 동안 많은 피어 분들에게 도움을 받으며 이 부분을 여실히 느끼게 됐다.
이제는 내가 가진 것을 돌려주고 싶은 마음이 들어, 조금 더 열심히 공부하게 됐다.

그렇게 또 한 걸음을 내딛는다.
완벽하지 않아도, 균형을 잡아가며, 때로는 삐끗하더라도.
결국 중요한 건 계속 배우고 나누며 앞으로 나아가는 것이다.
그리고 마지막으로, 내 안의 작은 하마가 말한다.
날 죽이지 못하는 고통은 날 더 강하게 만들 뿐이다.

'Oops, All Code! > 🧩 BoostCamp' 카테고리의 다른 글
| [네이버 부스트캠프] 웹 풀스택 멤버십 #2:: git stash로 파일 15개 날리고 배운 것들 (1) | 2025.08.31 |
|---|---|
| [네이버 부스트캠프] 웹 풀스택 멤버십 #1:: 검색엔진 최적화와 PRG 패턴의 발견 (3) | 2025.08.25 |
| [네이버 부스트캠프] 웹 풀스택 챌린지 3주차 회고:: 리팩토링 집착, 성능, 패러다임, 동시성 지옥 (4) | 2025.08.09 |
| [네이버 부스트캠프] 웹 풀스택 챌린지 2주차 회고:: 학습과 구현/오버엔지니어링/발표/피어피드백 방식 (3) | 2025.07.27 |
| [네이버 부스트캠프] 웹 풀스택 챌린지 1주차 회고:: 피어피드백/나만의 루틴/줏대 (4) | 2025.07.20 |
- Total
- Today
- Yesterday
- 일급객체
- 대학생팝업스토어
- 웹풀스택
- 책추천
- 도서추천
- 소사벌맛집
- javascript
- 도서리뷰
- 프론트엔드
- 경험플리마켓
- typescript
- 프리코스
- 소사벌
- js
- 대학생플리마켓
- 부스트캠프
- 어휘력
- 비즈플리마켓
- 서평
- 트러블슈팅
- 네이버부스트캠프
- react
- 어른의어휘공부
- 프로토타입
- 우아한테크코스
- 안성스타필드
- 회고
- 카드뉴스
- 코딩테스트
- 카페추천
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |