네이버 부스트캠프 웹모바일 9기 베이직 회고
들어가기 전에
베이직 과정이란?
네이버 부스트캠프 웹 모바일 과정은 9기부터 선발 과정에 베이직이라는 교육 과정이 추가되었다. 1차 시험 결과에 따라 베이직/2차 테스트 직행자로 나뉘고, 2차 테스트 직행자여도 베이직 과정을 수강할 수 있으며 수강이 권장된다.
베이직 수강 계기
나는 2차 직행자였지만 네이버에서 교육을 받을 수 있는 기회라니! 하면서 수강하게 되었고, 결론적으로 아주 만족해서 이렇게 후기를 남기고 있다. 신설 과정이기에 정보가 많지 않았어서 이후에 베이직 과정에 대해 궁금한 분들이 잘 알 수 있도록 구체적으로 작성해보고자 한다.
베이직 과정 구성
베이직 과정은 다음과 같이 구성되어 있다.
매주 월요일 아침에는 특정한 세션이 1시간가량 진행된다.
매주 월-목은 개인 미션을 수행해야 한다.
매주 금요일에는 피어세션이 진행된다.
이름에서도 알 수 있듯 개인미션은 정말 알아서 잘 풀어내면 되고, 피어세션은 동료들과 함께 미션을 진행한다.
금요일의 피어세션을 참여하기 위해서는 월-목의 모든 과제를 목요일 23:59까지 제출해야 한다.
1주차 미션을 제출해야 2주 차로 넘어갈 수 있으며, 2주 차 미션까지 모두 제출해야 베이직 수료가 가능하다.
코어 타임이 있는가?
코어 타임은 딱히 없다. 자유롭게 원하는 시간에 미션을 수행해서 제출하면 된다.
부스트캠프 공식 블로그에서는 4시간 정도를 투자해서 완료할 수 있는 미션들로 구성된다고 했는데, 나는 1주 차 미션은 짧게는 1시간, 길면 2시간 정도의 시간이 걸렸고, 2주 차 미션은 짧게는 2시간, 길게는 5시간까지 걸렸다.
나는 웬만하면 매일 점심 먹은 후 14시 - 16시 혹은 17시까지 미션을 수행했고 17시부터는 수료생의 접근법을 본 후 회고를 작성했다. 2주 중 한 날의 미션만 유독 내게 너무 어려워서 밤늦게 제출했지만, 모든 미션을 당일에 제출했다.
웬만하면 시간을 정해두고 매일 그날의 미션을 해결하는 게 좋을 것 같다. 뒤로 갈수록 어려워져서 한 번에 하려고 하면 쉽지 않을 것이다.
피어세션이 뭔지?
피어세션은 3-4명이 한 팀이 되어 과제를 해결하는 과정이다.
코어 타임이 없는 만큼 오전, 오후, 저녁으로 나뉘어 피어세션을 신청할 수 있다. 여기서 운영진분들의 배려가 돋보였다. 나는 오후반이라 14시 - 17시에 피어세션을 진행했다.
두 번의 피어세션 모두 노션을 활용해 문서를 공유했고, 80퍼센트 가량의 시간을 설계에 할애했다. 문서 작성까지 다 해서 18시까지는 집중했다. 피어세션 날에는 적어도 3시간은 다른 일을 하지 않고 오롯이 집중해야 한다. 이 때는 Zoom을 이용하며 카메라와 마이크를 모두 켜고 진행해야 한다.
주어지는 시간이 세시간이라 아이스브레이킹 할 여유가 없이 곧바로 설계, 구현을 했는데, 이 점은 살짝 아쉬웠다. 개인적으로는 서로 어느 정도의 유대감이 있어야 더 좋은 결과물을 낼 수 있다고 생각하는데, 유대감을 쌓을 시간이 전혀 없었기 때문이다. 그래도 팀원분들이 다들 굉장히 열정적으로 참여하셔서 기쁘게 참여할 수 있었다.
개인 미션을 위해 필요한 것
월요일부터 목요일까지는 개인 미션이 주어진다. 이 미션은 매일 달라지며 자료 구조 이해, CS 이해를 비롯해 폭넓은 지식을 요한다. 그래서 난이도가 낮은 편은 아니다. 해당 언어에 대한 이해도 어느 정도 있어야 하므로, 아무것도 모르는 상태에서 베이직 과정을 수강하게 되면 더 많은 노력이 필요할 듯하다.
학습 저장소와 수료생의 접근법
매일 본인의 미션 코드, 풀이에 대한 설명을 학습 저장소에 올려야 한다. 다른 캠퍼 분들의 학습 저장소도 볼 수 있다.
17시에는 수료생의 접근법이 제공된다.
학교 과제의 경우 혼자 과제를 풀어서 내고 나면 거기에 대한 성적은 매겨지지만 다른 사람들이 어떻게 풀었는지는 알 수 없다. 그래서 그냥 성적을 잘 받으면 내가 잘했구나~하고 못 받으면 못 했구나 아는 정도가 전부다. 부스트캠프 베이직 과정에서는 점수를 알려주거나 명확한 해설을 올려주지는 않는다. 대신에 같은 문제여도 다른 사람들은 어떻게 접근했는지, 어느 부분에 집중했는지, 또 무엇을 배웠는지를 볼 수 있고 이 과정에서 많은 것을 깨닫게 된다.
내 경우 과정을 진행하며 정말 기억에 남아서 이름도 외워졌던 분이 한 분 계신다. 하루종일 붙잡고 늘어져도 도저히 해답을 알 수 없어 그냥 제출했던 이슈를 그분의 학습 저장소를 보면서 왜 그런 이슈가 났는지를 알 수 있었다. 개발자에게는 '왜'가 중요하다. 왜 이런 문제가 생겼지?를 알면 그 해답을 찾는 건 시간문제다. 그 왜에 대한 해답을 못 찾아 헤매고 있던 내게 사막 속의 오아시스 같은 정보였다. 그 뒤로 그 분의 학습 저장소를 매일 들여다봤는데, 매일 배워가는 게 있었다.
그리고 또 다른 훌륭한 캠퍼분들이 매일 문제를 풀면서 어떤 고민을 했는지 어떤 결론을 냈는지를 기록해 둔 걸 보면서 이 분은 이런 고민까지도 했구나, 아 이 문제를 보고 이런 고민도 해볼 수 있구나 하면서 많은 인사이트를 얻었다. 일례로, 나는 미션을 수행하면서 속도와 성능에 대한 고민을 해본 적은 없었다. 근데 성능에 대한 고민을 해본 분들의 학습 저장소를 보면서 이런 고민을 하려면 더 '잘', '세세하게' 알고 있어야겠구나 하는 생각이 들었다. 그래서 해당 주제에 대해 더 깊게 파고들어 보고 메모리 계산, 성능에 대한 고민을 시도해 봤다. 사실 아직은 조금 어렵다. 하지만 이 과정을 통해 아는 방법이라고 그냥 막 갖다 쓰지 말고 이 방식을 왜 쓰는가? 이 방식을 쓰면 어떤 단점이 있고, 그 부분은 어떻게 보완할 수 있는가? 하는 다양한 고민을 해봐야겠다는 생각이 들었다.
매일 회고하기
매일 학습 내용에 대해 정리해 보는 시간, 그리고 하루를 돌아보며 회고를 해보는 시간이 있다. 나는 평소에 공부할 때 어떤 것들을 공부해야지~ 하고 기록해 두고 공부한 내용을 바로바로 노션에 정리해 둔다. 하지만 이건 나 혼자만을 위한 글쓰기다. 내가 보려고 쓰는 글과 다른 이들에게 보기 좋게 설명하는 글쓰기는 확연히 다름을 느꼈다. 그래서 처음에는 회고와 학습저장소를 쓰는 게 상당히 어려웠다. 하지만 매일 다른 분들의 회고, 학습 저장소를 들여다보며 내 방식의 아쉬운 점과 좋은 점을 발견했고, 아쉬운 점은 개선 방안을 찾고 좋은 점은 그대로 유지하며 조금씩 나아질 수 있었다. 실제로 첫째 날 쓴 글과 마지막날 쓴 글을 비교해 봤을 때 성장이 눈에 띄어서 몹시 기뻤다.
베이직 과정에서 좋았던 점 두 가지
첫째로는 '왜'에 대한 생각을 많이 했다. 베이직 과정에서는 계속 내게 '너 뭐 했어? 왜?', '너한테 뭐가 중요했어? 왜?'를 물어본다. 그래서 처음에는 대답을 위해 '왜'를 생각했지만 갈수록 진짜 왜 내가 이런 걸 했지? 하고 깊게 생각해 보게 되었다. 과정이 2주뿐이어서 완전히 체득되지는 않았으나 이 습관을 앞으로도 유지해보고 싶다.
두 번째로는 내가 한 실수에 대해 생각해 볼 기회가 있다는 것이다. 나는 보통 개발하면서 에러가 나거나 설계를 잘못해서 전체 구조를 뒤엎는다거나 하더라도 당장 해결하면 그냥 넘어갔다. 하지만 베이직 과정에서는 아주 사소한 실수라도 넘어가지 않고 기록해 보도록 권장한다. 그래서 나는 노션에 매일 미션을 풀며 저지른 실수를 정리했다.
내가 한 실수 기록
단순히 문법 상의 오류뿐만 아니라 자료구조를 처음에 완벽히 정의하지 못했다가 구현 중에 추가해 나간 것이나, 아니면 자료구조를 통째로 갈아엎는다든가, 처음에 설계한 대로 코드를 짰더니 예상외의 문제에 맞닥뜨려서 수정한다든가 이런 모든 실수를 기록했다. 실수를 기록하면서 내가 왜 이렇게 생각했지? 앞으로는 어떻게 해야 하지? 하는 것들을 돌아볼 수 있어서 좋았다. 다만 내 실수 기록에는 왜 이런 실수를 했는지는 담겨있지 않는 듯해서 베이직 이후에도 실수 기록을 꾸준히 하면서 좀 더 나은 기록을 해나가고 싶다.
네트워킹에 대한 아쉬움
베이직 과정에서 딱 한 가지의 아쉬움이 있다. 바로 네트워킹이 부족하다는 점이다. 앞서 말했듯 피어세션이 2회 있지만, 시간이 너무 촉박해서 아이스 브레이킹이 거의 불가능했다. 다른 팀들은 짬 내어했을지도 모르겠으나 적어도 내가 겪은 두 번의 피어세션은 모두 그랬다. 사실 피어세션 함께 진행한 동료 캠퍼분들과 좋은 동료의 연을 이어나가고 싶다는 욕심이 있었지만 정신없이 설계하고 구현하느라 사담을 나누는 게 민폐가 될 것 같다는 생각에 그러지 못했다.
그 외에도 학습 저장소를 매일 둘러보고 다른 캠퍼분들의 회고를 보며 오!! 저분이랑 대화를 나눠보고 싶다! 저분께 뭔가 배움을 얻고 싶다! 하는 생각을 많이 했는데, 그럴 기회가 전혀 없었다. 과정이 너무 짧아서 어쩔 수 없다고는 생각하지만 너무 아쉬웠다. 슬랙이라도 따로 있었다면 스터디도 구하고 캠퍼들끼리 의견도 공유할 수 있지 않았을까? 하는 아쉬움이 남는다.
마치며 : 2주 간의 성장, 그리고 멤버십까지 전진하기!
2주간 내가 얻은 것들을 정리하자면 다음과 같다.
- 이해하기 쉬운 코드를 작성하려고 노력하는 자세
- 계속해서 다른 캠퍼분들의 코드를 보는 과정에서 다른 코드를 이해하는 역량
- 다른 사람이 봤을 때 내 설계 방향과 구현 의도가 보이도록 글을 작성하는 역량
- 실수를 그냥 지나치지 않는 자세
- 기록하는 자세
- 왜? 에 대한 것을 고민하는 자세
- 시간 내에 문제를 해결하기 위해 우선순위를 고민해 보는 경험
- 설계 후 구현의 중요성
- CS 전반, 자바스크립트에 대한 많은 깨달음
이런 다양한 경험 속에서, 2차 문제 해결력 테스트를 따로 준비하지 않았음에도 감사히 합격할 수 있었다. 문제를 풀면서 베이직에서의 경험이 큰 도움이 되었다는 게 여실히 체감되었다. 감사하게도 챌린지라는 다음 기회가 내게 주어졌으니, 베이직에서 얻은 것들을 소중히 안고 다음 단계를 밟아보려 한다. 기대된다! 멤버십까지 쭉 네부캠과 함께할 수 있기를. 화이팅!