코드숨(codesoom)을 끝내며

많은 걸 담고 싶었지만, 생각나는데로 적어보았습니다.

시작하기

짧기도 했고 길기도 했던 교육이 끝났다. (코드숨 교육은 총 12주간 진행하지만 난 14~15주 정도 진행했다)

하지만 교육은 끝나도 커뮤니케이션은 지속하고 있다.

도움이 엄청 되었다.

간단하게만 어떤 점이 어떻게 도움이 되었는지 적어보자.

왜 신청을 하게 되었을까

대학교 4학년 때 창업을 했다. 하지만 창업을 하면서 다양한 파트에 신경을 써야 했다.

서비스 기획부터 시작해서 운영과 개발까지.. 심지어 전시회도 나가기도 하고 현장에 투입해서 설치작업도 한 적도 있다.

초기 스타트업이니 신경 써야 할 부분들이 많았다.

그러다 보니 개발은 우선순위에서 점점 밀려 나갔었다. (여기서 개발은 단순히 구현에 초점을 맞춘 코드를 작성하는 것이 아니라 좀 더 좋은 품질의 코드 작성하는 것에 초점을 맞춘 개발을 말한다.)

개발 쪽으로 인사이트를 늘려야 된다는 생각은 하고 있었다.

하지만 시야가 좁은 상태였다. 그때 내가 시야가 좁은진 몰랐다. 시야가 좁았으니 보이는 게 많지 않았다.

테스트, 유닛 테스트, 통합 테스트, TDD 단어를 들어보기만 했다.

그때 당시는 구현이 목표였다. 자금을 벌기 위해서 사업을 계속 따오고 그 사업에 맞춰서 기획하고 준비하고 개발을 했다.

그러다 보니 좋은 소프트웨어를 만들려고 노력을 하지 못했다.

“나는 개발자인데, 개발자가 아닌 것 같다”라는 생각을 많이 하게 되었다.

물론 노력을 안 한 건 아녔다.

업무시간에는 개발 외에도 여러 가지를 해야 했었고 집중하기가 힘들었다.

그래서 매일 회사 끝나고 일이 많을 땐 스스로 야근(내가 원해서 했다)을 하거나 공부를 했다.

아는 게 많지 않다 보니 퇴근하고 공부를 했다.

하지만 웹서비스를 구현하기 위해 웹의 기본적인 부분과 프레임워크를 알아가기도 바빴었다.

시야가 좁다 보니깐 속도도 더딘 부분도 있었을 수도 있고 공부 방법이 틀렸을 수도 있다.

어쨌든 일단 나는 우물 안에서 벗어나야 했다.

그래서 일단 사랑하는 동료들을 떠나서 성장 여행을 떠나기로 했다.

그 길에 코드숨을 만나게 되어서 신청하게 되었다.

나는 무엇을 얻을 수 있었나

처음 본 회고를 작성할 때, 주 차별로 한 일에 대해서 작성했지만 지우고 핵심만 적어보았다.

교육 진행 루틴은 1. 교육 2. 과제 3. 피드백 4. 회고이다.

온라인 강의를 듣고 공부를 시작해야 한다.

모든 것을 알려주지 않는다. 무엇을 공부해야 되는지 알려준다.

그래서 많은 부분을 공부하게 되었다. 문서를 많이 보게 되었다.

그리고 과제를 제출하기 위해서 코드를 작성하려고 아등 바등했다.

과제를 하는 데 많은 시간이 필요했다. 어려웠다. 하지만 고통 속에 성장하고 있었다.

과제를 제출하면 피드백이 달린다. 피드백을 받고 또 수정한다.

그렇게 인사이트를 늘려갔다. 피드백은 코드숨의 꽃이다.

주로 개발을 대하는 자세와 코드의 품질을 높이는 방법에 대해서 알 수 있었다.

받은 피드백을 통해 좀 더 생각해보면서 많은 성장을 할 수 있었다. 트레이너분들은 못 한걸 지적하지 않고 개선하는 방향을 알려준다는 점에서 좋았다.

그리고 한 주가 끝나면 회고를 한다.

사실 회고를 통해서 내가 뭘 잘했는지보다 내가 뭐가 부족했고 못 했는가에 집중해서 회고했다. 그리고 회고를 통해 부족한 부분은 고치려고 노력했다. 정리도 해보았다.

이 과정이 반복적으로 이루어진다.

그리고 테스트코드를 작성해보는 건 엄청난 경험이었다.

테스트코드를 작성하는 이유를 처음에는 잘 몰랐다. 테스트코드를 작성하면 좋다고 하니깐 좋은지 알았다. 이런 생각이 내가 뭘 하고 있는지 모르는 상태(노 방향성)를 만든다는 것을 알게 되었다.

테스트 코드도 단순히 테스트코드를 작성한다고 해서 되는 게 아녔다. 테스트코드를 작성하는 이유에 대해 알고 나서 왜 테스트코드를 작성하면 좋은지와 어떤 걸 테스트코드를 작성해야 되는지 어렴풋이 감을 잡을 수 있었다.

그 과정에서 좋은 코드를 작성하는데 관심사 분리가 왜 중요한지 알게 되었다.

교육 속 핵심 7가지는 다음과 같다.

  • 프론트엔드 개발환경 구축 방법
  • 좋은 코드를 작성하는 방법
  • 피드백
  • 관심사 분리
  • 테스트 코드 작성하는 방법과 생각
  • TDD 하는 방법
  • 생각하는 방법

위 7가지로 고통을 받겠지만 성숙한 나를 볼 수 있었다.

사실 교육이 프로젝트로 이어지긴 한다.

프로젝트 이야기를 해볼까

프로젝트 진행은 순탄하지 않았다.

주제를 선정하는데 2주 정도 걸렸고, 1주일은 코드를 작성했다가 지우고를 반복했다.

그 이유에 대해서는 각 주 차별 회고를 보면 알 수 있다.

좀 더 잘하고 싶다는 생각하더니… 프로젝트의 방향성이 왔다 갔다 했었다.

어떤 서비스를 만들고 싶어서 만들다가 원래 의도와 다르다고 생각해서 다시 갈아엎고 생각해보는 과정들이 많았다.

이런 과정을 좀 더 줄였더라면 좋았을 텐데 아쉬웠다.

그래도 프로젝트를 진행하면서 질문과 프로젝트 PR에 대한 피드백을 통해 프로젝트를 잘 마무리 했던 것 같다.

프로젝트를 하면서 테스트코드 작성부터 시작해서 컴포넌트 작성 등 많은 연습을 할 수 있었다.

Git을 어떻게 사용하는지에 대해서도 알 수 있었고, 깃에 흥미를 느낄 수 있었다. (추가로 자바스크립트 스터디를 윤석님과 함께 진행하고 있는데, 깃에 대해 이야기를 해주실 때마다 깃의 매력이 느낄 수 있었다)

또한 Github Action을 통해 CI/CD를 구성해서 테스트를 자동화하고 배포까지 자동으로 해보는 과정을 거치면서 신세계를 알게 된 느낌이었다.

물론 이거 때문에 많은 시간을 할애했었다.. 😭 그래도 보람 있었다. 😀

내 블로그도 Github Action을 통해 gh-pages에 배포하고 있다.

주별로 진행 사항을 적어보고 그 주가 끝나면 주간 회고를 작성해보았다. 할 일을 모두 지키진 못했던 적도 있었지만, 무엇이 변화되었는지는 알 수 있었다.

코드를 작성할 땐 TDD 기반으로 작성하다 보니 초반에는 답답한 부분들이 많았다.

그냥 바로 구현하면 되는데, ‘테스트코드를 작성할 때 뭘 작성해야 되지?‘라는 생각을 많이 했었다.

아마도 익숙하지 않기도 했고 내가 뭘 만들지를 잘 몰라서 그랬던 것 같다.

앞으론 테스트코드가 없으면 불안할 것 같다는 생각하고 있다.

앞으로도 많은 연습을 해보자.

그리고 같이 함께 달려온 수강생분들도 직간접적으로 도움을 많이 받을 수 있었다.

다른 분들 깃 저장소도 살펴보면서 동기부여도 되고 프로젝트 회고록을 통해서 반성도 하게 되었다.

모르는 것이 있을 때, 슬랙에 물어보면 답변해준 분들에게도 고마웠다.

끝으로

내가 한 프로젝트 규모는 크지 않지만 다양한 연습을 할 수 있었다는 것에 아주 만족스럽다.

사용할 사람은 없을 것 같지만ㅋㅋㅋ 도메인도 연결해놓고 보니 뭔가 있어 보이기도 하다.

고통이 따를 때도 있었지만 보람있고 재미있는 시간이었다. 다음에는 아쉬운 부분들을 보완하여 또 도전해보자.

도움을 주신 아샬님, 윤석님, 수형님께 감사의 인사를 드립니다. 많은 도움을 받았습니다!

그런데.. 회고를 이렇게 쓰는게 맞나..?


@kwonmory
성장을 위해 노력하고 있는 모리입니다.

깃허브