[부스트캠프 7기] 챌린지 1주차 회고록

Lybell·2022년 7월 24일
1

각 일차별 회고록

1일차

이때까지만 해도 내가 코딩을 잘 하는 줄 알았다.

첫 날은 매우 쉬운 문제가 나왔다. 조건은 빡빡하게 주어졌지만, 평소에 하던 거라서 무리 없이 1시간컷 내고 공부나 하러 갔다. 이때까지만 해도 내가 코딩을 잘 하는 줄만 알았다. 2일차에서 무참하게 깨지기 전까지는...

2일차

난 내가 코딩을 잘 하는 줄 알았지. 알고 보니 난 그냥 말하는 감자였어.

첫 날은 쉬웠지만, 그 반대급부로 정말 안 풀리는 문제가 나왔다. 1주차에서 유일하게 제 시간에 끝내지 못한 문제였다. 프로그래밍 로직이 어려운 건 아니지만, 처음 접하는 환경과 처음 접하는 문법과 명령어들, 특히나 나는 맞다고 생각한 것이 원인 모를 오류로 계속 실패할 때 좌절감을 느꼈다.

백지장도 맞들면 낫다.

이 문제를 해결할 수 있게 된 것은 인터넷도 뭣도 아닌 다름아닌 동료였다. 동료가 슬랙에 올린 한 글이 내 문제 해결의 실마리가 되었고, 이를 바탕으로 왜 이런 실행오류가 일어났는가를 파악하였고, 결국 문제를 해결할 수 있었다. 만약 내가 소통 없이 혼자서 이 문제를 해결하려고 했다면, 아예 원인을 찾지도 못했을 것이다. 다들 배경 지식이 없는 채로 검색을 통해 방법을 스스로 찾아야 했는데, 혼자서는 찾지 못하는 방법도 여러 명이서 찾고 공유하다 보면 방법의 합집합이 늘어나면서 수많은 방법 중 가장 나은 방법을 찾을 수 있게 되는 것이다.

3일차

내 코드는 내가 작성하지만 다른 사람이 읽고 다루기 위해 만드는 겁니다.
내 코드를 읽고, 이해하고, 실행해보는 사람이 항상 있다는 것을 염두해둬야 합니다.
-JK(부스트캠프 챌린지 마스터)

부스트캠프에는 피어세션이라고, 다른 캠퍼의 코드를 살펴보고, 코드와 학습한 내용에 대해 토의하는 시간이 있다. 다른 사람들의 코드를 볼 수 있는 시간이지만, 역으로는 나 자신의 코드가 다른 사람들에게 노출되는 시간이기도 하다. 이번 일차부터는 git log를 이용하여 커밋 기록을 확인하였다. git log로 다른 캠퍼의 커밋 기록을 알아보니, 대충 쓴 내 커밋 기록과는 다르게, 커밋 컨벤션을 지켜서 알아듣기 쉽게, 자신의 학습이 잘 드러난 것이 눈어 띄었다. 이를 보고 나니 내 커밋 로그가 굉장히 초라해졌다.

이래서는 안 되겠다고 생각해서, 내 커밋 규칙을 정하고, 이번 미션부터 철저히 지키기로 마음먹었다. 스스로 세운 커밋 규칙은 다음과 같다.

  • 공통적으로 기능 단위로 커밋한다. 여러 개의 기능을 커밋하거나, 기능을 완전히 완료하지 않은 채로의 커밋을 하지 않는다.
  • feat : 새로운 기능을 추가했을 때
  • modify : 기존 기능의 작동 방식을 변경했을 때
  • fix : 기능의 버그를 수정했을 때
  • refactor : 코드의 기능 변경 및 수정 없이, 코드를 깔끔하게 재작성할 때(함수 분할 등)
  • scaffold : 코드의 구조만을 짤 때. 기능이 거의 없는 구조만 작성된다.
  • docs : 코드의 수정 없이 문서를 변경할 때
  • build : npm, babel, rollup 등 코드의 빌드가 변경될 때
  • 현재형 명령어로 작성한다.
  • 한 줄은 영문 기준 최대 70자로 작성한다. 70줄을 넘기면 git log로 커밋 로그를 볼 때 짤린다.

내 코드는 내가 작성하지만, 누군가가 나의 코드를 실행할 수 있다. 다른 사람들과 미래의 나를 위해 더 깔끔한 코드와 깔끔한 커밋 기록을 남기는 나 자신이 되어야겠다고 다짐했다.

4일차

야매 구현과 무지성 구현

4일차 문제는 이전 문제에 비해 난해했다. 개념을 이해해야 제대로 된 구현이 가능한 문제였는데, 나는 개념의 이해 없이 내가 생각하는 대로 구현을 먼저 시작했다. 그래서인지 베이스캠프에 올라오는 질문이 무슨 말인지 알아듣기 어려웠고, 심지어는 잘못 해석해서 답을 하기도 했었다. 놀랍게도 제 시간에 구현을 끝내긴 했지만, 이 기능이 실제로 어떤 것을 의미하는지 대한 이해도 하지 않은 채로 구현되어서, 끝나자마자 아쉬움이 남았었다.

체크아웃 시간 이후에 계속 고민하고 공부하다, 깨달음을 얻었다. 그리고, 이제는 미션 수행이 아니라 내가 이해한 것을 실제로 구현하겠다는 마음가짐으로 프로그램을 다시 짜기 시작했다. 결론적으로,

부스트캠프에서 내는 문제는 학습을 위한 소재의 징검다리일 뿐, 본래 목적은 학습이라는 것을 기억하자.

5일차

내 코드는 알아들을 수 있는 코드였나요?
-나(팀 회고 시간에)

작년과는 다르게, 이번 기수에서는 릴레이 프로젝트가 없다. 대신, 다른 걸 했는데, 자세한 건 컨텐츠 유출 사항이니까 넘어가겠다. 지난 4일간 열심히 학습했기 때문에, 지난 4일을 돌아보면서 마음을 내려놓는 시간이었다.

지난 4일을 회고하면서, 나는 팀원에게 이런 질문을 남겼다. "내 코드를 알아볼 수 있습니까?" 팀원은 나에게 알아듣기는 쉽지 않지만, 그것은 나 자신이 부족한 탓이고, 자신이 좀 더 공부했다면 내 코드를 쉽게 알아들을 수 있다고 말했다. 확실히, 올해 들면서, 자바스크립트의 별의 별 이상한 테크닉을 사용하면서, 모던한 코드가 되었지만, 아직도 변수 이름의 모호함과 같이 내 코드가 깔끔하고 아름다운 코드인지는 알 수 없었다. 스스로가 만족할 때까지, 클린코드에 대해 더 공부하고, 다음 주에도 이 질문을 물어보면서, 나를 되짚어보아야겠다고 생각했다.

주말

세상엔 누구도 완벽할 수 없다. 그렇기에, 서로를 보완하는 것이 동료인 것이다.

부스트캠프에서는 정말로, "이 사람은 더 이상 공부 안 해도 될 것 같은데"라고 생각될 만한, 엄청난 사람들이 있다. 슬랙에서 많은 사람들의 문제를 해결해주고, 이런 것까지 안다고? 라고 생각할만한 전문적인 지식을 전수하는 사람들을 보면서, 괜시레 주눅들기도 했다.

주말에, 다른 사람의 코드와 학습 정리를 보면서, 내 생각은 바뀌었다. (부스트캠프에서는 같은 조뿐만 아니라 같은 트랙의 모든 캠퍼의 코드를 볼 수 있다.) 내가 느낀 첫 번째는 저 날고기는 사람들도 부족한 면모가 있다는 것이었고, 두 번째는 저 날고기는 사람들은 지식을 공부하기 위해 엄청난 기록으로 노력을 보여준다는 것이었다.

누구는 엄청난 CS 지식을 가졌다. 누구는 자바스크립트의 동작 원리에 대해 빠삭하게 이해하고, 누구는 코드를 아름답고 깔끔하게 짜기도 한다. 누구는 그 어느 것도 갖고 있지 않지만, 끊임없이 자기 자신을 보완하면서 성장하는 의지가 넘친다. 부스트캠프는 각자의 재능이 있는 사람들이, 서로를 보완하면서, 예전보다 더 나은 자기 자신을 보여주는 곳이라고 생각했다.

다음 주차의 마음가짐

구현보다는 성장이다

4일차에서, 문제를 이해하지 못한 채 구현에 집중하다가 시간은 지켰지만 스스로에 대해 굉장히 불만족해서, 문제를 다시 풀면서 제일 늦게까지 깨어 있었다. 문제를 풀 때 7시까지 어떻게든 구현해야 한다고 생각할 때보다, 구현에 집착을 버리고 실제로 내가 배운 걸 만들어봐야겠다고 생각할 때, 더 많은 것을 배울 수 있었다.
부스트캠프는 이것을 깨우치는 것이다. 구현을 위한 문제 풀이가 아닌, 성장을 위한 문제 풀이를 하도록 하자.

주눅들지도, 자만하지도 마라

자존심은 나의 가장 큰 적이다. 부스트캠프에서는 각자 한 분야에서 두각을 드러내는 사람들이 굉장히 많다. 내가 남들에게 절대 남과 평가하면서 서로를 깎아내리려는 생각을 하지 말고, 오로지 경쟁해야 할 상대는 나 자신이라는 생각으로 임해야 한다.

질문을 두려워하지 마라

동기부여 - 질문 잘 하는 법
나는 아직도 질문을 하는 것에 낯설다. 지금까지 나는 "잘 하는 사람"의 포지션이었고, 그렇기 때문에 답변은 잘 할 수 있어도, 질문에 낯설다. 내 질문이 정말 어리석은 질문은 아닐지, 나 자신의 포지션에서 질문을 해도 되는 것인지 계속 생각하다가, 결국 그냥 구글링으로 모르는 것을 해결하였다. 하지만, 이때까지 도움은 전부 다른 사람들의 질문과 답변에서 받았다.

나 역시 모르는 것이 있을 수 있다. 심지어는, CS 지식에 대해 날고기는 사람조차도 완벽하지 않다. 질문을 두려워하지 않는 습관을 이제부터라도 길러야, 좋은 개발자로 성장할 수 있다.

profile
홍익인간이 되고 싶은 꿈꾸는 방랑자

0개의 댓글