boostcamp Web/Mobile 6th Challenge까지의 이야기
Activities

boostcamp Web/Mobile 6th Challenge까지의 이야기

네이버 커넥트 재단에서 진행하는 boostcamp Web/Mobile 6th(이하 부스트캠프)에 대한 이야기를 써보려고 한다. 우선 부스트캠프는 챌린지 1개월 + 멤버십 4개월 총 5개월의 과정으로 이루어져 있다. 필자는 부스트캠프 6기에서 챌린지 과정까지 진행하였고, 아쉽게도 멤버십 과정에 도달하지는 못했다. 지원부터 코테, 챌린지의 내용을 기록을 남겨본다.

(사실 미리 작성했어야 했는데 현생이 바쁘다는 핑계로 자꾸 미뤄둔 탓에 이제서야 작성한다. 게다가 2021년 12월 31일에 작성하려 했더니 티스토리 서버가 마비되는 바람에... 결국 해를 넘기고 업로드하게 되었다. 앞으로는 미리미리 작성해야지...)

 

지원

네이버 부스트캠프에 대한 정보는 익히 들어왔었다. 부트캠프 종류 중 하나로, 웹 풀스택/안드로이드/iOS 분야별로 5개월의 과정을 거쳐 활동한 뒤에 훌륭한 네트워킹과 함께 취업 연계까지 가능한 네이버 커넥트 재단에서 진행하는 무료 과정 활동. 취업준비를 하면서 어떤 분야의 개발자가 될지 고민이 많았고, 평소 iOS에 대한 막연한 궁금증도 있었기에 iOS에 대해 부스트캠프를 통해 겪어보고 나의 개발자 커리어를 정해야겠다는 생각을 했다. 그 길로 바로 부스트캠프 6기 지원서를 작성하였다.

 

자~ 부스트캠프 지원 드가자~

 

자소서는 나야 뭐 원래부터 대입/대외활동/교육/인턴 등등 많이 써봤기 때문에 어렵지는 않았다. 문항은 교육 활동답게 전체적으로 해당 교육을 중도포기하지 않고 끝까지 잘 이수할 수 있는지에 대한 내용으로 이루어져 있었다. 본인의 학습 경험을 바탕으로 만들어진 자신만의 학습 방식, 특정 상황에서 어떠한 행동을 하고 해결을 해나갔는지에 대한 내용을 잘 담아내었다.

아직 자기소개서에 익숙하지 않은 사람이라면 필자가 이전에 적은 개발자 취업 준비를 위한 자기소개서 팁 정리 [1편 - 공통 사항] 을 읽어보도록 하자.

 

1차 코딩테스트

1차 코딩테스트는 지원서에 대한 합격여부와 관계없이 모든 지원자들을 대상으로 이루어졌다. 

모든 지원자를 대상으로 하는 1차 코딩테스트 메일이 왔다.

객관식 문제 10문제와 프로그래밍 문제 2문제가 나왔다. 총 100분이 주어졌다. 객관식 10문제는 정말 간단한 기초 수준의 CS 문제들이 출제되었다. 2진법이나 논리적인 프로그램 흐름, 자료구조와 컴퓨터 구조들에 대한 문제였다. 컴퓨터공학 전공이거나 부스트캠프 지원 페이지에 나와있는 'CS 기초 강의'를 들은 사람이라면 풀 수 있는 문제 수준이었다. (여담으로, 합격자들끼리 이야기했을 때, 부스트캠프 지원 페이지의 'CS 기초 강의'를 들은 사람들이 객관식 문제가 'CS 기초 강의'에서 다 나왔다고 한다... 이후 지원자들은 꼭 한번 들어보는 것을 추천한다.) 프로그래밍 2문제는 C, C++, C#, Java, Javascript, Kotlin, Python2, Python3, Swift 언어들이 사용 가능했고, 문제의 수준은 프로그래머스 1~2 레벨 정도였던 것 같다. 다만 필자는 1번 문제는 풀었으나, 2번 문제를 이해를 잘 못하여 풀지 못했다. 그래서 살짝 조마조마했었던 기억이 있다.

필자는 Python3로 풀었는데, 프로그래밍 문제를 효율적으로 잘 푸는 것뿐만 아니라 보기 좋은 코드를 작성하는 것도 중요하다고 생각하여 Python3의 타입 힌팅/어노테이션 기능을 적극 활용하여 풀이하였다. 이러한 점을 안 보는 곳도 있겠지만 습관화하면 어딘가에서 분명 좋은 평가를 받을 것이니, Python3를 사용하는 분들은 타입 힌팅/어노테이션에 대해 공부하고 적용해보는 연습을 하는 것이 좋겠다.

 

2차 코딩테스트

1차 코딩테스트에서 조마조마했던 마음을 가득 안고 결과 발표를 기다리던 와중에 메일이 하나 도착했다.

자기소개서와 서류, 1차 코딩테스트의 결과 메일이 도착했다. 합격!

자기소개서를 포함한 서류 전형과 1차 코딩테스트가 통과했다는 소식이었다. 너무나 기뻤지만 곧 2차 코딩테스트의 압박이 몰려왔다. 160분의 시간 동안 3문제가 출제되었다. 1차 코딩테스트와 동일하게 C, C++, C#, Java, Javascript, Kotlin, Python2, Python3, Swift 언어들이 사용 가능했다. 2차원 배열을 활용하는 문제와 여러 가지 명령에 따라 각자의 역할을 구현해주는 시뮬레이션 형태의 문제가 나왔다. 2차 코딩테스트는 정말 알고리즘 문제라기보다는 구현과 시뮬레이션 형태여서 조금 색다른 느낌이 들었다. 때문에 필자는 가독성 높은 코드를 쓰는 것에 더 신경 써서 풀이하였다. 다행히 3문제 모두 풀었지만, 한 문제에서 예외처리를 덜 한 것을 나중에 알게 되었다.

2차 코딩테스트를 준비하는 분들은 구현이나 시뮬레이션에 대한 프로그래밍 연습을 많이 해보는 것이 좋겠다. 예를 들어 계산기를 만든다고 할 때, 두 수를 입력받고 사칙연산 기능별로 처리해줘야 할 것들이 나뉘어 구현되어야 할 것이다. 이처럼 해당 명령들에 대해 여러 기능들이 존재하고 그 기능을 보기 좋게 구현하는 문제들이 출제되는 편이다.

 

최종 합격자 발표

2차 코딩테스트가 예상보다 쉬웠기 때문에 문제를 거의 다 풀었어도 솔직히 걱정이 많이 되었다. 완전히 다 풀은 사람들만으로 채워도 정원이 나올 것 같았기 때문이다. 그러던 와중 기쁜 소식이 도착했다.

부스트캠프 웹/모바일 6기 최종 합격!

최종 합격 소식이었다. 내 주변 사람들과 같이 신청한 부스트캠프였지만, 아쉽게도 나와 다른 한분만이 합격하였다. 아마 개인적인 생각으로는 2차 코딩테스트에서 많이 갈리는 것 같다. (이후 Challenge 과정에 대한 이야기를 하면서 다시 한번 언급하겠다.) 입과 등록을 마치고 며칠 기다리니 edwith, Slack, Github Organization에 초대가 되었다. 이제 드디어 부스트캠프 Challenge 시작이다!!!

 

부스트캠프 웹/모바일 6기 Challenge

부스트캠프의 웰컴 키트와 함께하는 설레는 시작

본격적으로 부스트캠프 Challenge 과정(이하 부캠 챌린지)이 시작되었다. 시작하기 전, 갑자기 큰 택배 하나가 집으로 도착했다. 입과 등록 시에 주소를 적었었는데, 웰컴 키트를 보내주려고 그랬던 것 같다. 설레는 맘을 가득 안고 상자를 열어보았다. 코스트코 대신 부스트캠프의 이름을 딴 boostco라는 타이틀을 가진 간식 세트와 스티커, 일력이 들어있었다. 이걸 보고 역시 네이버 커넥트 재단은 어마어마하다는 생각이 들었다:) 또 한편으로는 이런 간식 세트를 주는데 얼마나 챌린지 과정이 힘들까 하는 생각도 들었다ㅋㅋ

부스트캠프 웹/모바일 6기 Challenge 과정의 웰컴키트 (간식 세트와 스티커/일력)
부스트캠프 웹/모바일 6기 Challenge 과정의 웰컴키트 (스티커, Challenge 기간의 일력)
웰컴 키트의 일력 (매일의 기분과 학습 내용을 기록할 수 있게 되어있다.)

그렇게 한 달간의 챌린지 과정이 시작되었다. 사실 부스트캠프에 지원할 때, 주변 지인에게 많은 것을 물어보았었다. 주변 지인이 부스트캠프 수료자였기 때문이다. 부스트캠프는 챌린지 과정을 한 달 진행하고 내부적인 종합평가 이후에 따로 선발된 인원들이 멤버십 과정을 진행하게 되는 방식이다. 수료하신 지인께서는 멤버십 과정을 못 넘어가는 것을 너무 걱정하지 않아도 된다고 하셨다. 잘 적응하지 못하고 열심히 하지 않는 사람들(예를 들어, 흔히 대학 조별과제에서 열심히 참여하지 않는 사람들?)이 멤버십 과정에 떨어진다고 하셨다. 대부분은 멤버십 과정으로 넘어갈 수 있으니 너무 걱정하지 말고 열심히 해보라는 말씀을 생각하고 부담 없이 부캠 챌린지를 시작하게 되었다. 하지만 그것이 내 발목을 잡게 될 줄은 몰랐다.

 

부스트캠프의 학습 방식

부스트캠프는 각 분야별로 웹 풀스택 파트는 Javascript, 안드로이드 파트는 Kotlin, iOS 파트는 Swift 언어를 활용하여 CS지식을 직접 구현해보며 해당 개념을 공부하는 방식이었다. 과정 및 상세 커리큘럼은 유출하지 않는 것에 서약했기에 공개할 수 없지만, 간단히 느낌만 전달하자면 다음과 같다.

CS 분야에는 여러 가지가 있다. 운영체제, 데이터베이스, 소프트웨어 버전 관리, 자료구조/알고리즘, 네트워크, 소프트웨어 개발 방법론, 소프트웨어 개발 패러다임 등...
이러한 개념에 대한 미션들이 매일 정오 12시에 업로드되고, 이를 그날 하루 동안 모의 시뮬레이션으로 직접 구현해보면서 해당 개념을 공부하고, 공부한 자료들을 기록한다. 그 후 매주 정해지는 그룹원들끼리 다음날 오전에 코드 리뷰를 해주고, 서로 공부한 내용을 공유, 토론해나가는 방식이다. 이러한 스케줄이 평일에 반복된다.
예를 들어, 객체지향 프로그래밍에 대한 개념이라면 어떤 간단한 게임을 만드는 것이 미션으로 나오게 되고, 그 게임 속 객체들의 역할에 맞춰 객체지향적으로 프로그램을 작성한다. 프로그램 작성을 완료하면 정말 내가 객체지향적으로 프로그래밍했는지를 검토하고, 이에 맞는 이론적인 내용들도 정리한다. 그리고 다음날 같은 그룹원들끼리 코드 리뷰와 함께 공부한 내용을 공유한다.

 

이와 같은 진행 방식을 통해 부캠 챌린지 과정을 하면서 2차 코딩테스트가 생각났다. 2차 코딩테스트 또한 개념을 직접 시뮬레이션으로 구현하는 방식이었는데, 왜 2차 코딩테스트가 그렇게 나왔는지 알 것 같았다. 챌린지 과정에서는 직접 개념을 프로그램으로 구현하고 학습하는 방식이다 보니 이를 잘 해낼 수 있는 사람들을 선발하고자 하는 듯했다.

 

내 생에 가장 열심히 공부해본 부스트캠프 챌린지 기간

부캠 챌린지가 시작되고 첫째 주는 꽤 할만했다. 나는 iOS를 부스트캠프로 처음 시작했기 때문에 첫날은 미션 해결보다는 기반 지식인 Swift 문법공부에 많은 시간을 쏟았다. 처음 써보는 IDE인 Xcode도 너무 어색했다. 그래서 다른 캠퍼(부스트캠프에서는 서로를 캠퍼라고 부른다.)들이 미션을 금방 수행했을 첫날에 나는 조금 시간이 걸렸다. 그렇지만 4주 동안의 챌린지 기간 중에 첫째 주가 가장 할만했던 것 같다. 나온 미션들도 간단한 CS 개념이라 나쁘지 않았다. 그리고 지금까지 연락하고 있는 캠퍼 두 분을 만난 주이기도 하다. 이때 만난 두 분의 캠퍼들은 정말 열심히 하시는 분들이라 아직까지 존경하고 멋있다고 생각하는 분들이다. (그리고 재밌는 분들이다ㅋㅋ)

 

둘째 주도 나쁘지 않았다. 미션 수행률도 꽤 높은 편이었고 부담이 없었다. 이제는 조금 익숙해진 Swift 문법과 Xcode 사용법 덕분에 즐겁게 진행했었던 것 같다. (물론 안 힘들다는 것은 절대 아니다...)

 

죽음의 셋째 주... 이때부터 내 체력의 한계를 느끼기 시작했다. 미션도 더욱 어려워지고 구현해야 하는 규모도 커졌다. 매일 새벽 5~6시까지 미션을 수행하다 잠들기 일쑤였고, 아침에 일어나 코드 리뷰와 공유를 진행한 후에 미션을 확인하고 점심식사 후 2~3시간 잠을 보충한 후, 다시 미션을 수행하기를 반복했다. 사실 부스트캠프의 일정 상 19시에 미션이 마감된다. 19시에 미션을 제출하고 난 후에, 이후 개인 시간을 들여서 미션 수행을 보충할 수 있다. 부스트캠프의 마스터분들(부스트캠프에서 각 분야별 멘토 선생님 느낌의 분들을 마스터라고 부른다.)께서는 너무 미션 수행에 목매달지 말고 개인이 할 수 있는 성장에 조금 더 신경을 쓰라는 말씀을 지속적으로 하셨다. 하지만 나는 나 자신이 할 수 있는 데까지 밀어붙이고 싶었다. 그래서 조금 더 미션 수행률을 높이려고 했던 것 같다.

 

대환장파티의 마지막 넷째 주는 미션 수행률이 정말 낮았다. 드디어 내 체력이 바닥이 난 것 같았다. 아침해를 볼 때까지 미션을 수행하다 잠시 눈을 붙이고 오후에 잠을 보충하는 생활이 반복되었다. 주말에는 못 잔 잠을 몰아서 잤다. 평소에 잘만 확인하던 카톡은 신경을 못쓴 지 이미 몇 주가 지났다. 이러다 쓰러지겠구나 싶은 생각도 들었다. 나름 CS지식을 어느 정도 알고 있다고 생각했지만, 미션들을 수행하면서 그 생각들이 완전히 박살 났다. 정말 난 모르는 게 많구나 라는 생각이 들었다. 나와 같이 부캠 챌린지 과정으로 Swift를 처음 시작한 다른 캠퍼들이 미션 수행률이 높은 것을 보고 사실 자존감도 많이 떨어졌던 것 같다. 그럼에도 내가 누구인가. 항상 긍정적으로 생각하는 나 아닌가. 부스트캠프 지원 당시 지인께서 말씀해주신 멤버십 과정 입과에 너무 걱정하지 말라는 말을 듣고 묵묵히 열심히 해나갔다.

 

부스트캠프 챌린지 과정의 수료

이제 드디어 부캠 챌린지 과정이 모두 끝났다. 마지막 날 게더타운에서 진행하는 수료식에 참여하였다. 수료식에서는 캠퍼들이 각각 만든 부스트캠프 수료 영상 등을 쭉 보기도 하고 내가 스스로에게 주는 '내준내상' 시상식도 진행하였다. 아래와 같이 게더타운 캐릭터들과 춤을 추는 조작키를 눌러놓은 채 단체사진을 찍기도 하였다.(사실 게더타운 단체사진은 필자가 좀 전에 언급한 첫째 주에 만난 두 캠퍼분들끼리 단체로 찍자고 모인 것이었는데 점점 사람들이 늘어났다ㅋㅋ) 필자는 부스트캠프에서 캠퍼 코드 'S037'이었다. 아래 사진 속 빨간색 박스로 표시되어있다.

게더타운에서 진행한 부스트캠프 웹/모바일 6기 Challenge 수료식

수료식까지 진행하자, 긴장이 모두 풀렸다. 드디어 끝났다는 안도감이 몰려들었다. 정말 후련했다. 이제 다음 주 일주일을 쉬게 되고, 쉬는 도중 멤버십 과정 입과 대상자 발표 일정이 있으니 그때까지 편하게 쉬어야겠다는 생각을 했다. 그리고 곧 아래처럼 부스트캠프 챌린지 과정의 수료증도 발급되었다.

부스트캠프 웹/모바일 6기 Challenge 과정의 수료증

 

부스트캠프 멤버십 과정의 입과 실패

부캠 챌린지 과정을 하얗게 불태우고 잘 쉬고 있던 목요일 오후, 메일 한통이 날아왔다. 부캠 챌린지 결과 안내 메일이었다. 떨리는 마음으로 메일을 열어보았다.

부스트캠프 웹/모바일 6기 Challenge 과정의 결과 메일

필자는 안타깝게도 멤버십 입과에서 떨어지게 되었다. 이유는 알려주시지 않았다. 정말 아쉬웠다. 다행히 첫째 주에 친해진 두 캠퍼분들은 멤버십 입과 기회를 얻게 되었다. 내가 무엇이 잘못되었는지 끊임없이 고민하게 되었다. 생각에 생각을 반복하였고, 결국 두 달 정도를 개발에서 아예 손을 떼었다. 정말 열심히 공부했었는데, 개발자라는 직업을 할 수 있을까 라는 것에 대해 몇 번이고 생각하게 되었다. 계속 나를 돌아보다 보니 문득 '내가 조금만 더 열심히 했으면 어땠을까, 조금 더 절박했으면 가능했지 않았을까' 하는 생각들이 계속 떠올랐다. 사실 앞서 이야기했지만, 부스트캠프에 지원할 때, 지인께서 멤버십 입과에 너무 불안해하지 말라고 하신 말씀을 새겨듣고 부캠 챌린지 과정을 진행할 때는 열심히는 했지만 절박하지는 않았던 것 같았다. 안일하게 생각했다는 것이 맞는 것 같다. '잠 보충하지 않고 좀 더 열심히 했었다면 어땠을까, 주말에 쉬지 않고 보충 공부를 했었다면 돌아오는 일주일이 조금 더 편하지 않았을까' 하는 후회가 밀려왔다. 아마 멤버십 입과 실패의 이유를 알 수 없었기 때문에 혼자 생각이 많았던 것 같다. 

 

지금에서의 생각과 앞으로의 다짐과 계획 그리고 나에게 부스트캠프는

코딩을 두어 달 쉬면서 정리한 뒤 들었던 생각은 '그래 오히려 잘됐다.'라는 것이었다. 사실 이전까지 여러 개발 동아리와 대외활동을 많이 해본 경험으로 필자는 스스로가 SW 개발에 대해 잘 알고 있다고 생각했다. 하지만 이렇게 어려운 미션들과 학습 기회로 인해 정확한 내 위치를 알게 되었다. 솔직히 필자가 이 정도의 수준으로 멤버십 과정에 입과한다고 해서 멤버십 과정을 잘 소화시킬 수 있을지 자신이 없다. 멤버십 과정은 4개월 과정이고, 챌린지 과정만큼은 빡세지 않아도 꾸준히 해결해나가야 하는 문제들이 있을 텐데, 내 수준은 아직 그에 대한 준비가 되지 않았다는 생각이 들었다. 게다가 재학 중인 학교가 2021년 2학기부터 전면 대면 수업 진행을 발표했다. 때문에 멤버십에 입과했다면 휴학을 했어야 했다. 과 특성상, 졸업 조건이 졸업작품의 학술제 출품, 졸업 논문 작성 총 2개이기 때문에 졸업을 위해서는 하반기에만 열리는 학술제를 꼭 참가해야 했고, 그럼 필자는 1년의 휴학을 해야 했다. 이는 멤버십 과정 입과의 장점에 비해 너무나 큰 시간 투자였다. 그래서 오히려 입과 실패가 잘된 일인 것 같다는 생각으로 결론지었다.

 

다시 부캠 챌린지를 돌아보면 필자 생에 정말 열심히 공부했던 기간이었던 것 같다. 그리고 그 과정에서 생성된 지식과 기록 결과물은 정말 소중한 자산이 되었다. 개발자가 되기 위해 공부해야 할 CS 지식은 부캠 챌린지 때 공부했던 것을 복습하면 될 정도로 좋은 커리큘럼이었다. 꼭 부스트캠프 멤버십 입과를 해야만 개발자가 되는 것은 아니다 라는 생각이 단단히 굳혀졌고, 스스로의 방식을 가지고 공부해서 성공하고 싶다는 꿈이 생겼다. 누구에게 인정받아야 좋은 개발자가 되는 것이라는 게 기존의 생각이었다면, 이제는 좋은 개발자의 또 다른 기준을 만들어나가는 사람이 되고 싶다는 것이 현재의 생각이다.

 

그래서 맨 처음에서 언급한 'iOS에 대한 경험 해보기' 목표는 계속 이뤄나갈 것이다. 챌린지 과정에서는 iOS를 경험해본 것이 아니라 Swift를 경험해본 것이니까 말이다.

 

그래서 필자는 몇 달 뒤 모집하는 대학생 연합 IT 창업 동아리 SOPT의 iOS 파트에 지원하게 되는데....

(이에 대한 뒷 이야기는 2월 중에 업로드하고자 한다. 많관부...)

'Activities' 카테고리의 다른 글

UNIT - UPF 2021SS를 마치며  (1) 2021.07.04