먼저 부스트캠프 5개월동안의 전체 과정을 돌아보려고 한다.
그리고 부스트캠프에서 느낀 점, 그리고 앞으로 어떻게 할 지 등을 생각해보려고 한다.경험과 느낀 점을 생각나는데로 쓰다보니까 글이 엄청 길어졌다. (장문주의)
부스트캠프에 지원하게 된 이야기.
6월, 열심히 학교를 다니다가 부스트캠프 웹·모바일 7기를 모집 공고를 봤다. 싸피, 우테코처럼 유명한 교육 프로그램 중 하나로 관심이 생겼고, 지원하여 결국 합격할 수 있었다. 사실 이때 합격 과정도 서류 작성도 쉽지 않았고, 코딩 테스트도 잘 본 편이 아니여서 조마조마하며 기다렸던 기억이 있다.
이때까지 나는 지속 가능한 개발자 와는 거리가 멀었다고 생각한다. 개발을 좋아하는 것 같긴 한데, 몰입하지는 않고, "해야 하는데" 하며 중간에 포기하는 모습도 가지고 있었다.
챌린지 회고를 하면서 느낀 것 처럼 적당히라는 단어와도 잘 어울려서 애매함이 내 정체성이였을까? 생각도 한다.
그래서 처음 지원 공고를 봤을 때 이런 단어들이 많이 눈에 띈 것 같다.
인정받는 개발자, 지속 가능한 개발자, 몰입, 협력, ...
부스트캠프에 지원하면서 생각한 단어에 가까운 개발자가 되기를 원했고, 실제로 챌린지, 멤버십 기간 내내 그렇게 되기 위해 노력했던 것 같다.
훈련소같은 4주간의 챌린지 기간 이야기.
챌린지 기간에는 CS 기초에 관련된 미션 수행 + 미션 수행을 위해 학습한 내용을 정리 + 팀원과의 커뮤니케이션 이렇게 세 가지를 중심으로 진행했다.
그런데 사실 나는 여기서 한가지 미션을 더 수행한 것 같은데, 바로 자바스크립트다. 나는 내가 애매한 전공자라고 소개했는데, 왜냐하면 정말 학점만 열심히 딴 전공자였기 때문이다. 그래서 학교 사정으로 웹 관련 수업이 없어져서 듣지 못한 나는.. 정말 기초적인 자바스크립트 문법도 잘 쓰지 못했다.
그래서 챌린지 기간을 되돌아보면, 항상 아침마다 코드리뷰, 피어세션에 정말 진심으로 참여했던 것 같다.
1주차에 처음 만나 새벽까지 줌에서 모각코 해주셔서 감사한 민혁님, 코드리뷰도 열심히 해 주셔서 너무 감사했다.
1주차 이후에 다른 피어세션 그룹에서도 팀원들과 열심히 커뮤니케이션했다.
전체 코드와 리뷰가 있는 링크는 부스트캠프 컨텐츠 보안때문에 공개할 수 없어서 아쉽다.
전체적으로는 미션에 대한 코드를 올리고, 코드리뷰 시간동안 서로 코드를 보면서 리뷰하고, 이어지는 피어세션에서 서로 리뷰한 내용에 대해 이야기를 했다.
그 과정에서 같은 미션을 팀원은 어떻게 구현했는지 보고, 몰랐던 자바스크립트 문법이나 구현 방법에 대해서도 정말 많이 배웠다. 그래서 1주차때 코드를 보면 하루마다 같은 기능이여도 구현에 차이가 정말 많이 났다. 예를 들면 for(...)
이렇게 쓰던 반복문을 arr.map(...)
으로 사용한다거나..
그리고 학습한 내용도 정말 많았는데, 전공 시험을 위해서만 공부했다는걸 많이 느꼈다. 알고 있다고 생각한 개념도 미션을 수행하다보니 모르는 개념이였구나 느꼈고, 새롭게 알게 된 내용도 엄청 많았다. 그나마 아쉽게 생각하는 부분으로, 챌린지 기간동안 열심히 한 학습정리 내용을 작성할 때 미션내용과 겹쳐서 작성해서 블로그에 공유할 수 없는게 너무 아쉽다. (기회가 된다면 나중에 포스팅 하는걸로..)
아무튼 챌린지 기간은 정말 의미있는 도전이었다. 한 달 시간을 요약하면 몰입이라고 생각한다. 매일매일 새로운 미션을 꼭 끝내겠다고 다짐하면서 밤 새 미션을 수행하기도 했고, 다른 사람이 작성한 코드를 열심히 보고 이야기를 나누기도 했다. 공부한 내용을 정리하는 것도 꽤나 깊게 공부하고 작성했던 것 같고, 그 내용을 공유하는 경험도 했다.
지금 돌아가서 다시 하라고 하면 못하겠다 말하고 싶지만, 한번쯤은 경험하면서 몰입의 즐거움을 느끼는 것도 좋은 것 같다. (훈련소처럼)
8주간의 학습 스프린트, 멤버십 첫번째 이야기.
챌린지 기간이 전반적인 CS 내용을 다룬다면, 9월부터 시작한 학습 스프린트 기간에는 내가 지원한 웹 분야에 대한 미션을 수행하면서 학습했다.
이때 미션 수행하는것도 충분히 어려웠고, 특히 일정관리에서 어려움을 많이 겪었다. 매일매일 새로운 미션을 수행하던 챌린지 기간에는 오늘 최대한 해보고 안되면 내일 다른 미션을 처음부터 시작할 수 있었다. 하지만 학습 스프린트 기간에는 미션마다 1주에서 최대 3주까지 기간이 주어지고, 그 기간동안 학습부터 구현까지 완료해야 했다.
부스트캠프를 하면서 심리적으로 가장 힘들었을 때로 생각하는게 학습 스프린트 1주차 기간인데, 그 가장 큰 원인중 하나가 일정관리였다. 요구사항을 분석해서 작업 단위로 나누고, 작업별로 걸릴 시간을 예상해야 했고, 그 과정에서 필요한 학습 과정도 생각해야 했다. 그런데 챌린지가 끝나고 처음 만났는데 당연히 알리가 없었다.
그래서 학습 스프린트 1주차에는 우울했던 기억이 있다. 다른 캠퍼분들은 하루마다 요구사항을 쭉쭉 개발하고, 심지어 거의 완성한 캠퍼분도 계셨는데, 나는 전체 요구사항에서 거의 30% 정도밖에 개발하지 못했다. 계속 비교되다 보니 오히려 의욕이 떨어져서 마지막 날에는 손에 거의 잡히지 않았던 것 같다.
첫번째 미션에서 충격이 주말까지 이어졌지만 그래도 금새 이겨내고 학습 스프린트 두번째 미션부터는 훨씬 많이 개발했던 기억이 있다. 이를 통해 일정관리를 이제 완벽하게 할 수 있다가 아니라 일정이라는 게 정말 지키기 어려우니까 잘 설정하고, 어느정도 여유 기간을 줘야겠구나를 크게 경험했다.
부스트캠프 멤버십 기간동안 여러 주제에 대한 특강, 수료생과의 미팅과 같은 많은 커뮤니티 이벤트에 참여할 수 있었다. 거기에 분야별로 마스터분들의 마스터 클래스를 주마다 총 세 번 들을 수 있었다.
특히 학습 스프린트 기간에 마스터 클래스가 너무 도움이 됐다. 마스터 클래스에서는 매번 다른 주제에 대해 이야기를 해주셨는데, 어떤 마스터님께서 이야기하시냐, 어떤 내용을 말씀해주시냐에 따라 방식도 조금씩 달라졌다.
~ 부분을 학습해봐도 좋을 것 같아요.
와 같은 방식으로 소개한다거나,처음에는 마스터 클래스에서 명확한 답을 알려주지 않아서 아쉽다고 생각했다. 부스트캠프에서 학습 스프린트 미션마다 관련된 개념과 강의를 약간씩 제공하긴 하지만, 수많은 요구사항들을 구현하기 위해서는 더 깊은 학습이 필요했기 때문이다.
부스트캠프 챌린지 기간을 시작할 때 챌린지 마스터인 JK님께서 말씀하시길, 부스트캠프는 야생에서 살아남는 방법을 학습할 수 있다고 하셨는데, 이와 비슷한 경험이었다.
물론 best-practice 를 설명해주시면 바로 내 코드에 적용하고 문제를 쉽게 해결하지 않았을 까 싶다. 하지만 그러면 왜? 라는 질문에 대해서 생각하지 않고 그 코드를 계속 사용했을 것 같다.
하지만 도움주신 부분에 대해서 우리가 생각해보고 학습하면서 나름대로의 왜? 를 생각하면서 개발할 수 있었다. 그리고 피어세션을 통해 동료 캠퍼들에게 생각한 왜? 를 설명하고, 피드백 받는 과정을 통해 나름대로 성장을 이뤘다고 생각한다. 이런 부분이 부스트캠프에서 원한 자기주도적 학습이 아닐까?
그리고 그 외에도 현업 개발자분들과 접점이 아예 없었던 나에게, 실제 현업의 이야기나 현업 개발자의 입장에서 의견을 들을 수 있다는 점이 유니크하게 다가왔다.
나에게는 이렇게나 좋은 기회지만, 시간을 내서 짧지 않은 시간의 마스터 클래스를 준비하셔서 도움을 주셨다는게 정말 감사하다는 말씀을 드리고 싶었다. 마스터님들 정말 감사합니다!!
학습 스프린트의 마지막 미션은 페어 프로그래밍으로 진행했다. 사실 페어 프로그래밍을 하면 지금까지는 나눠서 작업할 걸 같이 작업하면 더 느려지는게 아니야? 라고 생각했다. 물론 해보니까 생각보다 장점이 엄청 많은 개발 방식인 걸 알았다.
나는 이전에도 친분이 있던 도훈님과 같은 그룹이 되었는데, 일단 여기서 운이 너무너무 좋았다. 열심히 하시는데, 개발도 잘 하시고, 설명도 잘 하시는데, 재미도 있으셨다.. 완전 사기캐..
특히 도훈님 성격이 너무 좋으셔서 협업할 때 어려움이 크게 없었던 것 같다. 면접같은 곳에서 같이 일하고 싶은 사람을 찾는다고 했는데, 내가 면접관이라면 도훈님은 무조건 뽑을 것이라고 느꼈다.
이전까지 정해진 시간 외에 다른 캠퍼분들과 모여서 모각코를 하거나 코딩 이야기를 나누긴 했지만, 직접적인 코드 공유는 진행하지 않았다. 그래서 이번 미션에서 부스트캠프가 시작된 후 첫번째 협업 프로세스를 경험했다. 컨벤션이나 코딩 스타일 같은 그라운드 룰도 이때 처음 정해본 것 같다.
우리는 아침에 모여서 오늘 할 작업을 정하고, 필요한 부분을 2시간 내외 시간에서 페어 프로그래밍으로 처리했다. 페어 프로그래밍은 짧은 시간 단위로 네비게이터-드라이버
역할을 돌아가며 진행했다. 이후 나머지 시간은 각자 작업을 나누고, 개발이나 필요한 학습을 줌에서 진행했다. (모각코)
페어 프로그래밍에서는 보통 같이 정해야 하는 부분이 있거나, 당장 우리가 각자 개발하기 애매한 주제들을 선정해서 같이 고민하고 바로 해결하는 방식을 택했다. 그리고 코드 레벨에서 생기는 휴먼 에러를 바로 잡을 수 있다는 것도 장점 중 하나라고 생각했다. 수도 없이 많은 에러를 바로 해결했던 것 같다. 그리고 모각코를 하면서 집중력도 계속 유지할 수 있었다.
그래서 결과적으로 도훈님과 함께한 기간에 가장 많은 개발 성과를 이뤘다. 이때 처음으로 배포도 진행했었고, 목표로 했던 기능인 GitHub OAuth를 구현하면서 정리한 내용을 블로그 포스트로 남기며 velog 트렌드에 오르기도 했다. canvas도 처음 사용했는데도 주요 기능을 나름대로 잘 만들었다.
이렇게 다시 돌아보니 도훈님을 파트너로 만난 건 최고의 행운이였다. 도훈님한테서 느낀 협업에 필요한 능력을 많이 배우려고 노력했고, 나중에 소개할 그룹 프로젝트에서 많이 적용했다. 미션 기간 3주동안 열심히, 그리고 엄청 잘해주신 도훈님께 너무 감사하다.
나의 첫번째 컨퍼런스, 부스트 컨퍼런스 이야기.
코로나 이슈로 100% 온라인으로만 진행되던 이번 부스트캠프 웹・모바일 7기에서 처음으로 열린 오프라인 행사면서, 나의 첫번째 컨퍼런스 경험이었다. 이때 부스트 컨퍼런스의 부제가 너의 첫 개발자 컨퍼런스가 되고 싶어
였는데, 실제로 이루어졌다!
이때 컨퍼런스에 참석한 게 인생 처음으로 IT회사 사옥 방문 경험이 되었는데, 그 경험이 엄청 매우 굉장히 멋진 네이버 1784 사옥이였다..! 정신없이 구경하고 다른 캠퍼분들과 이야기하느라 사진을 많이 남기지 못한게 너무나도 아쉽다.
지금 돌아보면 오프라인에서 그렇게 많은 캠퍼분들을 뵐 수 있는 기회가 더 없을텐데, 미리가서 만나고, 더 적극적으로 이야기 해볼걸 하는 약간의 후회가 남는다. 그때 당시에는 첫 오프라인 행사여서 조심스러운 태도를 취해서 정말 아는 캠퍼분들과 인사하고 그랬던 것 같다.
그래도 이 컨퍼런스에서 연예인같은 동료 캠퍼분들을 직접 뵈고 인사도 했고, 뒷풀이에서 새로 친해진 인연이 생겨서 그룹 프로젝트 팀도 이때 거의 결성했다! 결과적으로 연사 듣는 것도, 캠퍼분들을 실제로 보는것도 모두 재밌었다. 다음에도 커뮤니티 행사가 있다면 꼭 참여하고 싶다.
6주간의 그룹 프로젝트, 멤버십 두번째 이야기.
그룹 프로젝트는 챌린지부터 학습 스프린트까지 경험한 것들을 모두 쏟아내는 과정이라고 생각했다. 그래서인지 주별로 회고도 작성하고, 프로젝트를 하면서 학습한 내용이나 그 과정을 블로그 포스팅으로도 많이 남겼던 것 같다.
자세한 내용은 회고에 깊게 적어놔서 여기서는 그룹 프로젝트에서 느낀 좋았던 점을 간단히 소개하려고 한다.
프로젝트를 하면서 가장 중요하게 생각한 것 중 하나가 왜? 를 말할 수 있게 하자는 점이었다. 지금까지 부스트캠프를 하면서 느낀 점도 왜? 가 굉장히 중요했고, 팀원들도 모두 공감하고 있었다. 그래서 우리 프로젝트를 시작할 때 관련된 몇가지 규칙을 정했다.
위와 같은 부분이 그룹 프로젝트를 하면서 느낀 가장 큰 발전이라고 생각한다. 프로젝트의 거의 모든 부분에 대해서 왜? 에 대한 답변을 준비한다는 점이 개발할 때 항상 근거 있는 개발을 하고 있다고 생각했다.
그리고 질문에 대한 답이 정확하지 않거나 틀린 내용이 있을 경우 서로 피드백으로 수정할 수 있었다. 코드리뷰에서는 코드 품질을 좋게 유지할 수 있고, 기술스택에서는 어떤 부분에서 필요했고, 왜 선택했는지 명확하게 할 수 있었다. 개발 블로그는 내가 생각한 왜? 를 다른 사람에게도 설명할 수 있도록 구체화하고 정리할 수 있었다. 이런 부분이 정말 좋았다고 생각한다.
개발을 하다보면 모두 개인마다 코딩 스타일이 있고, 커밋도 작성 방식이 다르다. 이런 불일치를 우리 프로젝트에서 최소화하고 싶었다. 왜냐하면 정돈된 문서가 프로젝트 품질 유지에 도움이 된다고 생각했기 때문이다. 그래서 우리는 여러가지 툴을 통해 컨벤션을 지킬 수 있었다.
Git
커밋 컨벤션을 쉽게 지킬 수 있도록 도와주는 라이브러리다.Git hooks
를 쉽게 적용할 수 있도록 도와주는 라이브러리다. 이를 이용해 코드 lint
체크를 진행했다.여기에 커밋 뒤에 이슈번호 붙이기, PR 내에 related, fixed
키워드를 통한 이슈 연결짓기, 브랜치 전략 등 4명이서 진행한 프로젝트지만 가능하면 1명이서 한 프로젝트처럼 보이려고 노력했다.
우리만의 컨벤션을 정하고 거의 대부분의 경우에 컨벤션을 지킨 경험이 너무 좋았다. 이런 컨벤션에서부터 4명이서 각자 개발하는게 아니라 하나의 팀에서 프로젝트를 진행했다고 생각한다.
그룹 프로젝트에서 협업 프로세스를 잘 체험했다고 생각한다. 물론 여기에 야근까지 함께 체험했다는 부분이 옥의티 이긴 하지만, 나름 목표한 기능을 대부분 구현해서 출시해서 굉장히 만족스러웠다.
끝까지 함께 달려준 모든 팀원들에게 정말 고생했고, 푹 쉬어서 나머지 개발 계속 하자고 전하고 싶다. 김가네 팀원들 모두 고생했다!!
2022년 하반기를 부스트캠프와 함께 보냈는데, 할 때는 못 느꼈는데 지금 돌아보면 엄청 바쁘게 빨리 지나온 것 같다. 수료한 나는 처음 모집 공고에 적힌 지속 가능한 개발자로 성장했을까?
부스트캠프를 하다보니 위에 나와있는 대부분을 자연스럽게 경험했다. 적지 않은 웹풀스택 동료 캠퍼분들을 보며 내 실력이 많이 부족하다는 점을 알았고, 잘 하면서 엄청 열심히 하는 분들을 보며 본받으려고 노력했다.
개발 공부를 어떻게 해야할지 막막했던 예전과 달리, 이제는 어떻게 학습하고 개발할 지 방향을 잡았다고 생각한다. 앞으로는 개발에 필요한 부분을 학습하고, 그 과정을 블로그로 공유하려고 한다. 그리고 그룹 프로젝트에서도 배운 것 처럼 코드에 왜? 를 항상 물어보면 대답할 수 있도록 노력하려고 한다. 아직 잘 하는 개발자가 되지는 못한 것 같지만, 이대로 방향을 잡고 꾸준히 한다면 될 수 있지 않을까 생각하고 있다.
이제 올해가 지나면 부스트캠프도 수료했고, 대학교도 졸업하기 때문에 아무런 소속이 없게 된다. 이제 "부스트캠프 중이니까", "아직 학생이니까" 와 같이 말할 수 없기 때문에 약간 두렵기도 하고 부담이 되기도 한다.
바로 원하는 회사에 취업이 되면 좋겠지만, 현재 시기도 그렇고, 내 실력도 아직 취업할만한 시기가 되지는 않는다고 생각한다.
지금 생각중인건 먼저 면접 준비 겸 CS 전공 지식을 다시 공부하려고 한다. 면접 준비는 미리미리 해야 하기도 하고, 부스트캠프 챌린지 기간동안 전공 수업을 들었음에도 기억 안나는 부분도 많고 모르는 내용도 있었기 때문에 공부 할 겸 꾸준히 하려고 한다.
그리고 리액트 관련 공부도 시작하려고 한다. 프로젝트를 하면서 기능 개발을 위해 필요한 부분만 공부해서 적용했는데, 리액트도 깊게 공부 할 필요가 있다고 느꼈다. 최근에 블랙프라이데이 세일로 Udemy 에서 강의를 하나 구매했는데 강의랑 함께 공부해보려고 한다.
또 최근에 코딩 테스트 전형에서 프론트엔드 개발자는 코딩 테스트 언어를 자바스크립트로 고정하는 경우가 꽤나 늘고 있다고 생각했다. (최근에 본 네이버파이낸셜이나, 우아한 테크캠프 등) 그래서 기존에 C++로 준비한 코딩 테스트를 자바스크립트로 다시 공부할 예정이다. 부스트캠프 핑계를 대면서 준비를 안 하기도 했고, 부족했던 부분도 있어서 꾸준히 매일매일 준비하려고 한다.
마지막으로 개인 프로젝트를 하려고 한다. 아마 인원은 혼자 하거나, 백엔드 개발자나 디자이너 분들께 함께 하자고 할 것 같다. 부스트캠프 그룹 프로젝트에서 새로운 기술도 많이 사용하고, 협업 경험 등 굉장히 도움이 많이 되었지만, 개인이 아닌 팀 단위에서 결정하다보니 제약사항이 꽤나 있었다. 개인 프로젝트를 통해 적용해보고 싶었던 기술이나 기능들을 사용해보려고 한다.
개인 프로젝트와 팀 프로젝트 중 어떤걸 하나 더 해볼지 고민하기도 했는데, 부스트캠프 네트워킹데이를 통해 현업 개발자분들께 질문드렸었다. 두분께 질문드렸는데 두분 모두 개인 프로젝트를 추천해주셔서 개인 프로젝트를 시작해보기로 결심했다.
이렇게 준비를 하다보면 내년 상반기 공채에 지원할 자격은 되지 않을까 싶기도 하고, 할 게 너무 많아서 번아웃이 올 수도 있겠다고 생각도 든다. 하지만 부스트캠프도 끝까지 수료했는데 할 수 있지 않을까? 하는 자신감이 당장은 있기 때문에 열심히 해보려고 한다.
나는 개발자로서 부스트캠프 전후로 아예 다른 사람이 되었다고 생각한다. 웹 개발에 관심은 있었지만 별로 깊이 있는 공부도 하지 않았고, 개발을 좋아한다고 생각은 하면서도 개발을 많이 하지도 않았다. 부스트캠프를 통해 웹 개발 중에서도 프론트엔드가 더 관심이 가졌고, 부스트캠프를 통해 일단 부딫혀볼 수 있게 되었다.
그리고 같은 관심사를 가진 열정 있는 캠퍼분들을 새로 만난 경험도 너무 좋았다. 이런 사람들을 만나는게 쉽지 않았는데, 새로운 인연을 만난 것 같아서 좋았고, 캠퍼분들이 기본적으로 모두 열심히 하셔서 나도 덩달아 열심히 할 수 있었다.
그 외에도 개발자로서 어떻게 성장하는지도 배울 수 있었고, 컨퍼런스 같은 커뮤니티 이벤트에도 관심이 생겼다. 그래서 나도 나중에 기회가 된다면, 멘토나 연사 등 부스트캠프 커뮤니티에 기여할 수 있는 좋은 개발자가 되려는 목표가 생겼다.
그래서 끝으로 만약 부스트캠프에 지원할까 말까 고민한다면 한번쯤은 꼭 지원해서 경험하는 걸 추천한다. 성장도 하면서 인맥도 생기고, 취업에 대한 부분까지 여러가지로 얻어가는게 굉장히 많았다. 5개월이 짧은 시간은 아니지만 정말 많은 부분을 경험하고 배울 수 있기 때문에 꼭 지원해서 같은 경험을 해 봤으면 좋겠다.
챌린지 4주차 코드리뷰 추억이네요.. 항상 긍정적이고 열심히 하셔서 보기 좋았어요!!