BoostUs로그인

[네이버 부스트캠프 10기] 베이직 과정 회고

J003 강동훈10
0
0
2025-07-13
원문 보기
[네이버 부스트캠프 10기] 베이직 과정 회고 글의 썸네일 이미지

🔎 참여하기 전에는

나는 매주 3~4회 정도 배드민턴을 치러 갈 정도로 배드민턴 치는 것을 좋아한다. 이렇게 자주 치러가다 보니 자연스레 실력도 높여지긴 하였지만 그만큼 더 잘 치고 싶었고 어떻게 하면 더 잘 칠 수 있을까에 대해 고민을 많이 하게 되었다. 스스로 배드민턴을 잘 치는 방법에 대해 고민해보니 총 두 가지의 요소를 충족해야 실력에 대한 성장을 이룰 수 있을 것이라 결론을 내리게 되었다.

  1. 배드민턴의 정석적인 자세
  2. 경기에서의 노하우

배드민턴의 정석적인 자세는 라켓을 쥐는 방법, 올바른 자세, 스텝법 등에 해당하며 레슨이나 유튜브와 같이 전문가의 조언과 피드백을 통해 배울 수 있다. 경기에서의 노하우는 포지션, 파트너와의 유기적인 움직임, 셔틀콕 컨트롤 등에 해당하며 자신보다 잘치는 사람들과 많은 경기를 치뤄보며 경험을 하고 이를 통해 자연스레 습득하게 된다.

이렇게 스스로 잘하고 싶다는 생각에 사로잡혀 어떻게 하면 더 잘할 수 있을까에 대해 고민하면서 경기를 치르다보니, 기존과 달리 더 빨라진 성장의 속도를 체감할 수 있었고 이러한 것이 의식적인 연습에 해당하지 않을까라는 생각을 해보곤 하였다.

어쩌면 개발이라는 것도 배드민턴과 '성장하는 방법' 면에서 비슷하다.

배드민턴의 정석적인 자세는 이론에 해당하며 프로그래밍 언어의 문법, 패러다임, 원칙과 같은 내용을 의미할 것이고 개발에서는 기본기에 해당한다. 체계적인 커리큘럼을 통해 이론을 배우고 전문가의 피드백을 통해 개발의 기본기를 향상시킬 수 있다.

경기에서의 노하우는 개발에서 실제 문제를 마주하였을 때, 자신의 문제 해결력에 해당한다. 자신의 기본기를 활용하여 문제 해결에 필요한 요소들을 결정하고 문제를 해결해나갈 수 있는 노하우를 의미한다. 여러 번의 문제를 빠르게 반복해가며 해결하고 그 과정에서 피드백을 통해 실수를 개선시켜나가며 노하우를 향상시킬 수 있다.

배드민턴과 개발 간의 성장 방법 유사성에 대해서는 인지하고 있었지만, 그렇다고 "나의 개발 실력을 이러한 방법을 통해 성장시키고 있는가?"라는 질문에 대해서는 확실하게 "그렇다"라는 대답을 하지는 못하고 있었다.

아마 그 차이는 '흥미'에서 발생한 것 같다고 생각한다. 물론 개발하는 것은 적성에도 맞고 재밌다고 느끼고 있지만 도파민이 발생하는 그 속도의 차이에 있을 것 같다. 배드민턴은 매 경기 빠른 속도로 공을 주고 받으며 도파민이 폭발적으로 발생하는 것에 비해, 개발은 문제를 해결하거나 새로운 이론을 발견하며 생기는 재미와 흥미는 비교적 인내와 기다림을 필요로 한다. 결국, 스스로 성장을 체감할 수 있는 기간이 배드민턴에 비해 길다보니 조금은 지치기도 하고 성장하는 방법에 대해 스스로 의구심을 가지게 된 것 같다.

그러다보니, 자연스럽게 개발에 대한 성장은 고팠지만 이를 어떻게 향상시킬 수 있는가에 대해 고민이 점차 깊어지게 되고 '나만의 학습법'을 구성하여 성장을 촉진시키고 싶었지만 어떻게 해나가야 할 지 감을 잡지 못하고 있는 상태였다.

그러던 와중, 네이버 배너에서 네이버 부스트 캠프 베이직 과정을 발견하게 되었고 포스터를 보자마자 심장이 두근거리면서 "아 나 이거 꼭 해야 한다"라는 생각이 머리를 지배하게 되었다.

심장이 이렇게 두근거린 적은 고등학교 3학년 때 이후로 오랜만에 느껴보는 감정이었다. 공부에 뜻이 없어 축구와 농구에 미쳐있던 청소년 시기를 보내다가 3학년 때 우연히 접한 서강대학교 입시 요강을 포스터를 마주하였을 때 가슴이 벅차오를 정도로 가고 싶다는 생각이 들었다. 하지만 현실의 벽은 높았고 열망만으로는 하고 싶은 것을 모두 할 수 있는 게 아니라는 것을 깨닫게 되었다. 이러한 후회는 아직까지도 가슴 깊이 아프게 남아있기에, 이번에는 절대 후회하고 싶지 않았고 이 기회를 꼭 잡아서 마지막 과정까지 입과하여 수료하고 싶다고 다짐하였다.

✈️ 베이직 과정

네이버 부스트캠프 10기는 베이직, 챌린지, 멤버십 과정으로 구분되고 베이직 과정은 지원한 모두가 참여할 수 있는 2주간의 코스다. 베이직 과정은 주말을 제외하고 매일 미션이 제공되며 모든 미션을 완수 + 문제 해결력 테스트 결과를 통해 챌린지 입과 여부가 결정된다.

베이직 과정은

  1. 자기주도적인 학습
  2. 동료와의 협업 을 통해 문제 해결력을 향상시키며 2주간의 성장을 체감을 목표로 진행된다.

베이직 과정의 하루는 이러한 목적을 잘 담은 커리큘럼이 구성되어 있다.

  1. 미션: 하루에 해결해야 하는 문제
  2. 피어피드백: 동료들의 문제 해결 과정을 보고 서로 피드백
  3. 회고: 하루 미션과 피드백을 통한 회고록

🛴 2주간의 학습

자바스크립트가 주 언어이기도 하고 말 그대로 '베이직' 과정이니깐 그렇게 어렵지 않겠다고 생각하였고 남은 시간을 활용하여 내가 할 수 있는 미션 이상의 것들을 해내겠다고 목표를 설정하였다.

말도 안되는 자만이었다. 😱

매일 제공되는 미션의 난이도는 내가 생각했던 미션의 난이도에서 한 단계는 높은 수준이었다. 그렇다고 아예 손도 못 댈 수준은 아니었지만, 몇몇 문제들은 나의 한계를 시험하기도 하였다.

✅ 미션 해결

베이직 과정의 목표에 맞게 대부분 미션들이 요구하는 것들은 '구현' 보다 '설계' 에 초점이 맞춰져 있었다. 미션에 정답은 없지만 내가 미션을 어떻게 풀었고 왜 그렇게 설계했는 지에 대한 과정을 자세히 풀어내야 했다.

구현 전 설계에 대해서는 지금까지 개발하면서 크게 고민하지 않고 넘어갔던 과정이라 언어에 대한 적응과는 별개로 문제 해결에 대해 어려움을 느꼈었다. 특히, 문제를 정의하고 설계하는 방법이 나에게는 많이 어색했던 것 같다.

개발 실력에 비해 난이도가 낮은 문제들은 머리 속으로 설계가 가능하기에 문제를 정의하고 설계하는 것을 경험해본 적이 적었고, 난이도가 높은 문제에 대해서는 설계보다 구현을 먼저 해가면서 풀이를 수정하는 방식으로 문제를 해결하였기에 문제를 정의하고 설계하는 방법은 나에게 어색할 수 밖에 없었고 이로 인해, 하루에 6시간 이상씩 할애하여 문제를 풀이하였던 것 같다.

이러한 과정에서 절대 뒤쳐지고 싶지 않다는 생각에 스스로에 대한 회고를 철저하게 진행하면서 다음 미션에 대한 나만의 목표를 계속해서 설정해나갔다.

미션의 초반부에는 나의 개발 습관에 따라서 요구 사항도 제대로 읽지 않고 문제를 해결하여 제출하거나, 미션이 요구하는 방법을 잘못 파악하여 엉뚱한 방법으로 구현하기도 하였다. 이러한 실패 과정들이 조금 아프기도 하고 쓰라리기도 하였지만 계속 정답은 없다고 생각하며 마음을 다잡았던 것 같다. 문제 풀이는 틀렸지만, 결국 미션을 통해 성장한다면 그것만으로도 부스트 캠프의 목적과 일치하기에 어떻게든 성장하고자 회고를 하였다.

미션을 제출하고 피어 피드백을 통해 내가 놓쳤던 부분을 기록하고 요구사항을 다시 한 번 확인해보며 부족했던 점들을 리스트 업하였다. 이후, 다음 미션에서 이 리스트를 먼저 풀이에 반영해가며 개선시키기로 마음을 먹었다.

예를 들어, 첫 날에 요구사항을 제대로 파악하지 못하고 문제 구현을 먼저 하였다면 다음 날에는 '요구사항 파악'을 먼저 체크리스트에 담아, 구현 이전에 수행하여 개선시켰다.

만약 다음 날에 개념 공부가 부족하여 문제 풀이에 영향을 주었다면 모레에는 '모르는 개념 공부'를 체크리스트에 추가하여 글피에는 요구사항을 파악하고 해당 요구사항에서 모르는 용어가 나왔을 때 개념은 먼저 공부한 뒤에 구현에 들어가는 식으로 이전 과정의 실패에 대해 개선해나가도록 노력하였다.

결국 이렇게 개선해야하는 점들을 축적해나가며 미션의 후반부에 도착해보니, 신기하게도 네이버 부스트 캠프에서 추구하는 목표와 일치해가고 있다는 느낌이 들었다. 물론, 네이버 부스트캠프에서 후반부에는 초반부의 응용을 필요로 하는 미션을 제공함으로써 지원자에게 단계적으로 자신의 목표에 도달하도록 유도했다는 점도 느낄 수 있었지만 이를 처음부터 의식한 것이 아닌, 성장을 위해 개선시키다보니 자연스럽게 목표에 맞춰지고 있다는 상황이 나에게는 놀라웠던 점 중 하나였다.

✅ 피어 피드백

베이직 과정에서 가장 소중했던 경험 중 하나였다. 비전공자 출신에 개발 커뮤니티의 경험이 많지 않은 나에게 누군가의 코드를 살펴보고 나의 코드를 누군가가 피드백해줄 수 있다는 경험은 흔치 않은 기회였다. 물론, 깃헙이나 여러 커뮤니티를 통해 누군가의 코드를 구경하는 것은 그리 어렵지 않은 일이다. 하지만 동일한 환경에서 같은 문제를 마주한 여러 사람들이 각자 자신의 방식으로 문제를 해결하고 서로의 코드에 피드백을 해주는 경험은 나에게 거의 없는 일이었고 그만큼 소중했던 경험이었다.

매일 미션을 진행하면서 스스로 창의적으로 해결했던 부분에 대해서, 혹은 어떻게 해결해야 할 지 감을 잡지 못한 부분에 대해 항상 피어 피드백을 통해 동료들과 피드백을 주고 받으며 하루 미션을 마무리할 수 있었다. 만족스럽게 제출한 미션 풀이에 대해 부족함이 없다고 자만할 때는 항상 피어 피드백을 통해 반성의 시간을 가져볼 수 있었다.

다시 한 번 배드민턴이랑 개발을 비교해보자면, 배드민턴을 치는 많은 사람들은 각각의 개성을 갖고 있다. 공격을 잘하는 사람, 수비를 잘하는 사람으로 크게 구분을 할 수 있으면서 더 깊이로는 게임의 흐름을 자신의 페이스 대로 속도를 조절할 수 있는 사람, 다양한 방식의 공격을 섞어가며 상대에게 혼란을 줄 수 있는 사람, 엇박자로 타이밍을 뺏어가며 유리한 흐름을 가져가는 사람 등 게임을 이끌어나가는 방법은 개인마다 다를 것이며 각자의 개성이라고 생각한다.

피어피드백을 통해 개발 또한 코드에서 각자의 개성이 들어난다는 것을 체감할 수 있었다. 가독성을 중시하는 사람, 효율성을 중시하는 사람, 더 깊이는 부분 함수로 분리하여 메인 함수의 역할을 줄이거나 객체를 이용하여 각자의 책임을 분리시킨다던가 혹은 세심한 에러 핸들링을 통해 안정성을 높인 코드를 작성하기도 한다. 이러한 점들을 코드를 읽으면서 생각하다보면 작성자가 문제를 해결하는 과정이 고스란히 느껴져서 흥미롭기도 하고 그들로부터 내가 생각하지 못한 부분을 배워갈 수 있어서 읽는 것만으로도 나에게는 큰 경험과 학습이 될 수 있었다.

추가로 현재 활동하고 있는 글쓰기 스터디의 팀원 한 분도 함께 베이직 과정에 참여하였다. 피어피드백은 불특정 다수를 통해서 피드백을 받는 것이라 제출이 늦거나 운이 좋지 않으면 누구에게도 피드백을 받지 못할 가능성이 존재한다.(다른 코드에 피드백과 함께 피드백을 구걸하기도 하였다😅) 하지만 함께 하는 누군가가 있다는 것은 확정적으로 구체적인 피드백을 받을 수 있는 기회이기도 하기에, 부탁을 드려서 이렇게 공유 시트를 제작하여 따로 개인적인 피드백을 진행하기도 하였다.

'요청자'와 '리뷰어'로 구분하여 미션을 진행하면서 구체적인 부분에 대해 내용을 담아가며 요청자와 리뷰어가 피드백을 진행할 수 있도록 양식을 제작하였다.

덕분에 최소 하나의 피드백은 받을 수 있었고 이를 통해서 많은 고민과 인사이트를 받아갈 수 있었다.

📔 회고

베이직 과정에서 나의 최종 목표는 "나만의 학습법" 을 구축하는 것이었고 이를 통해 개발자로서의 성장을 촉진시키고 싶었다. 어찌보면 '학습법'이라는 단어보다 '성장하는 방법'이 더 나의 목적에 부합할 지도 모른다. 하지만 성장하는 방법은 다소 추상적인 반면, 학습법은 성장에 필수요소인 '학습'에 대한 구체적이고 효율적인 방법을 구성할 수 있다는 생각에 '학습법'이라는 키워드로 목표를 세우게 되었다.

결과적으로 2주간의 베이직 과정은 개발자로서의 성장을 체감할 수 있는 기간이었다. 몰입, 빠른 시도와 실패, 피드백, 회고로 이루어진 하루의 커리큘럼과 이를 매일 반복하는 베이직 과정의 흐름은 짧지만 '나만의 학습법'에 대한 토대를 다져가며 조금씩 감을 잡아갈 수 있었고 과정이 끝나고 돌아보니 비로소 개발자로서의 성장을 체감해볼 수 있었다.

가장 크게 성장을 체감할 수 있었던 부분은 "근거있는 자기 주장" 을 해보았던 점인 것 같다. 그 동안은 개발과 관련된 하나의 논제에 대해 나만의 근거를 갖고 주장하는 것이 약했고 자유롭게 대화를 나눌 수 있는 사람에 대해 존경스럽고 본받고 싶다고 생각하였다.

하지만 미션을 진행하면서 한 가지 문제에 대해 계속된 실패와 개선을 꾸준히 반복하다보니 그 문제에 대한 나만의 노하우가 생겨났고 그에 대한 명확한 근거가 생기게 됨으로써 소심하게나마 근거 있는 자기주장을 펼칠 기회가 주어졌었다.

예를 들어, 나의 코드에 대한 가독성이 떨어지는 것에 대해 불만을 가지고 있고 이를 개선하기 위해 A라는 방법을 사용하였다. A라는 방법을 통해 기존의 가독성은 조금 개선되었지만 코드의 길이가 너무 길어졌다는 문제가 발생하였다. 그래서 이를 개선하기 위해 그 다음 날에는 B 방법을 통해 가독성을 개선해보려 노력하였다. 이렇게 하나씩 한 가지 문제에 대한 개선 방법이 쌓여가고 가독성에 대한 나만의 최선의 방법을 설계하게 된다. 그리고 이에 대해 만약 나와 같은 고민을 갖는 누군가에게 A, B,,, 방법의 장단점을 설명하며 결국 나만의 노하우를 명확한 근거와 함께 주장할 수 있게 된다.

결국에는 내가 바랬었던 "근거있는 자기 주장"은 이론만을 통해서 나오는 것이 아닌 실패와 개선을 반복적으로 경험한 끝에 나온 지혜를 통해 구축될 수 있다는 것을 깨달을 수 있었던 것 같다. 나 또한 매일 회고를 하면서 고민이었던 한 가지 문제점에 대해 매일 개선을 시도하였고 그 동안의 과정과 결국 선택하게된 나만의 노하우에 대해서 근거있는 자기 주장을 담아볼 수 있게 되었다.

이와 더불어서 스스로에 대한 성장을 촉진시킬 수 있었던 가장 큰 요소가 실패에 대한 회고라고 생각한다. '실패'라는 것은 어떠한 행위에 대한 결과이다. 즉, 실패를 하기 위해서는 '어떠한 행위'를 해야하고 그것에 대한 '평가'가 이루어져야 한다. 하지만 그 동안 스스로 공부하면서 이러한 흐름을 만들어내지 못했던 것 같다.

강의를 듣거나 이론을 공부하더라도 개념을 통해 무엇을 만들지 않았고, 프로젝트를 통해 무언가를 만들어내더라도 프로젝트 구현에만 의의를 두었기에 이에 대한 '평가'가 부족하여 성공인 지, 실패인 지에 대해 제대로 고민해보지 못했던 것 같다. 그렇다보니 내가 부족한 점을 객관적으로 판단하고 이를 실패라 파악하여 다음 번에 개선시켜보는 과정을 경험하지 못하였고 이로 인해 스스로에 대한 성장을 체감하지 못했다고 판단했다. 물론 이러한 환경을 개인이 구축하여 경험하는 것도 쉽지 않은 일이라 생각한다.

하지만 그러한 환경을 제공해주는 기회를 잘 잡을 수 있었고 이 기간동안의 몰입을 통해 기존에 알고있었지만 다시 한 번 리마인드를 시킬 수 있었던 것들도, 그리고 경험을 통해서 새롭게 체득할 수 있었던 개발자로서의 성장 방법도 어렴풋이 감을 잡아갈 수 있었다.

1. 실패와 개선 2. 반복적인 회고

두 가지 방법에 대해 이번 베이직 과정에서 가장 뜻깊이 얻을 수 있었던 경험이었고 다음에 계속되는 챌린지 과정에서도 이를 더 깊이, 그리고 더 넓게 다양한 것들에 도전하며 개발자로서의 성장을 이어나갈 생각이다.