우아한테크코스 지원 후기
지난 10월 15일(화) ~ 11월 11일(월) 까지 우아한 테크코스 프론트엔드 7기 프리코스를 진행했습니다. 우아한 형제들에서는 어떤 방식으로 테크코스를 진행하는지 궁금했고 , 이에 따른 회고록을 진행해보겠습니다.
지원 동기
우아한 형제들의 경우 사실 개발자라면 누구나 한 번쯤 경험하고 싶은 곳이고 , 어떤 프로세스로 사람들이 걸러지고 교육받고 성장하는지 항상 궁금했습니다. 나도 언젠가는 갈 수 있을까 ? 어떤 준비를 하면 갈 수 있을까 ? 라는 생각이 들었고 , 내가 어떻게 성장해야 하고 어떻게 준비해야하는지를 알면 좋을 것 같아서 지원한 마음이 컸습니다. 또한 한창 여러 회사에 지원하고 떨어지던 시기여서 , 이게 맞는 건가 ? 라는 생각도 많이 있어서 그런 부분에서 나에게 방향성을 제시해 줄 수 있다는 생각이 들어서 지원하게 되었습니다.
서류접수
말은 서류접수이지만 , 실제로는 내가 어떤 사람인지 , 개발에 대해서 어떤 마음인지 확인하는 과정에 가깝습니다.

실제 지원 사이트에서는 위 항목들에 대해서 스스로에게 질문하고 답하는 방식으로 진행됩니다. 프로그래머가 되려는 이유 , 몰입했던 경험 , 앞으로의 목표 이 세 가지로 나눌 수 있을 것 같습니다. 알고는 있었지만 희미하게 알고 있었던 프로그래머가 되려고 했던 이유 , 내가 몰입할도록 집중했던 경험 , 앞으로 어떤 식으로 진행해야 하는지 목표에 대해서 한번 더 고민하게 되는 계기가 되었고 , 앞으로의 방향성을 잡는 계기가 되었습니다. 아마 앞으로도 방황하거나 그런 시기에 한 번씩 생각하면 좋을 것 같다는 생각이 드네요.
프리코스
프리코스는 총 4주로 이루어져 있습니다. 매 주 점점 상승하는 난이도의 과제가 주어지고 , 해당 과제를 진행 및 다른 사람들과 이전 주차 과제를 리뷰하는 정도로 진행됩니다. 프론트엔드의 경우 특정 페이지를 만들다기 보다는 기본적인 자바스크립트 , node 에 관해 프로그래밍을 진행합니다. 또한 공통적인 피드백을 받고 , 개인적인 피드백은 지원자들끼리의 코드리뷰로 진행됩니다.
- 아래 작성되는 게시글에는 주차별 과제는 공개하지 않습니다.
1주차
처음 문제를 받았을 때는 그렇게 어렵지 않겠다 ! 라는 생각이 먼저 들었습니다. 실제로도 문제가 크게 어렵지 않았고 , 1주차에 맞는 난이도라는 생각이 들었습니다. 다만 실제로 진행을 해 보니 , 애를 먹는 부분이 많았습니다. node 상에서 작업을 해야 하는 것 , class 형 프로그래밍을 진행해야 하는점 , 테스트코드 작성 까지 기존에 하던 것과 달라서 어색한 부분이 있었지만 , 큰 문제없이 진행하고 제출했습니다.
하지만 후에 공통 피드백을 보니 , 단순히 개발을 떠나서 다른 사람들과의 협업 까지도 강조된 피드백을 받았습니다. 이를 보고 개인적인 개발 뿐만 아니라 다른 사람들과의 협업까지도 고려하는 부분이 놀랍다는 생각이 들었습니다. 과제를 풀 때 그냥 나만 알아보도록 세팅하고 , 의미없는 commit 메시지를 작성하고 , commit 의 단위를 생각하지 않는 부분이 피드백에서 크게 와닿았습니다. 개발 전반적인 부분 뿐만 아니라 협업에서 어떤 역할을 하는지도 생각도록 의도한게 인상적이었습니다.
2주차
1주차 피드백과 함께 2주차가 시작됩니다. 2주차는 1주차보다 조금 더 심화된 과제입니다. 조금 더 많은 입력을 요구하고 , 기능을 요구합니다. 과제의 사이즈가 커진 만큼 생각해야할 것도 많아집니다. 기능이 커져서 작성해야할 코드가 길어지고 , 코드가 길어진 만큼 읽기 힘들어지기 때문에 함수를 모듈화해서 나눌 필요성이 생깁니다. 또한 확인해야 할 코드가 길어져서 일일히 실행하기 힘들어지므로 디버깅을 시작합니다. 1주차 피드백에서 나온 commit 메세지도 신경써야 하고 , prettier 등을 통일해야 합니다. 의도적으로 고려해야 하는 것들이 많아진만큼 코딩에 많은 시간이 들고 , 수정도 많아집니다. 문제의 난이도는 1주차에 비해서 많이 어려워지지 않았지만 , 보다 많은 시간을 써서 과제를 진행하고 제출했습니다.
2주차 공통 피드백과 코드리뷰로 받은 피드백을 보니 , 익숙하지 않은 부분에서 많은 피드백을 받게 되었습니다. 모듈화를 하는 부분에서 보다 작게 한다던지 , 1가지 함수가 1가지 기능만 담당한다던지 , 함수의 구현 순서를 통일한다던지의 피드백이 있었습니다. 또한 테스트 코드 작성에서 처음부터 큰 테스트를 만든다기보다는 작은 테스트부터 만들어간다던지 등의 피드백을 받았습니다. 1주차의 연장선으로 코드를 나만 보는 것이 아니라 , 다른 사람들과 함께 본다고 생각하면 보다 나은 코드를 만들 수 있겠다는 느낌을 받았습니다. 코스 과제에서 이런 부분들을 의도적으로 유도하고 있다고 생각되었고 , 좋은 방향이라는 생각이 들었습니다.
3주차
3주차는 과제의 사이즈가 확연하게 커집니다. 또한 의도적인 제약사항이 추가됩니다. 입력도 많아지고 출력도 많아지고 , 기능의 숫자도 확연하게 늘어납니다. 예외 사항도 많이 늘어나서 고려해야 할 부분이 많아집니다. 이쯤 오니 개발하기 전 설계하는 시간이 필요해지고 , 구조를 짜는데 시간을 많이 투자하게 됩니다. 1 - 2 주차의 피드백은 익숙해졌지만 , 개발적인 부분에서 막힐 수도 있는 단계입니다. 또한 모듈화나 코드 통일을 위해 노력하다 보니 완성하기까지 걸리는 시간과 commit 보다 후에 리팩토링하는데 드는 시간과 commit 이 더 많아졌습니다. 또한 예외 사항도 항상 생각해야 하기 때문에 , 개발보다 리팩토링에 더 많은 시간이 들었습니다. 테스트 코드 작성에도 많은 시간을 할애하게 되었습니다.
3주차 공통 피드백과 코드리뷰에서 받은 피드백으로는 테스트코드와 가독성 부분이 있었습니다. 아무래도 코드가 더욱 길어지다 보니 가독성을 위해 모듈화를 신경쓰고 , 함수 이름이나 여러 구조들을 통일하려고 노력했지만 부족한 부분이 있었습니다. 특히 이번 주차에 코드리뷰의 장점이 많이 드러났는데 , 다른 사람들도 이해하기 쉽게 적었다라고 생각했지만 , 실제로 사람들의 리뷰를 들어보니 부족한 부분이 있었습니다. 다만 저번 주차보다 혼동되는 부분이 적었다는 것은 긍정적인 부분이었습니다. 또 여러 사람들의 모듈화에 대해 알아볼 수 있었는데 , 사람들마다 스타일이 다르다보니 여러 방식들을 보게 되었고 , 더 좋은 부분을 알 수 있었습니다. 어떻게 보면 3주차부터는 실제로 협업을 한다면 이런식일까 ? 라는 생각이 들었고 , 특히 배울 점이 많았던 주차였던 것 같습니다.
4주차
4주차에는 실제 하나의 프로젝트 크기로 사이즈가 커졌습니다. 제약사항도 많고 , 고려해야 할 사항도 확연하게 늘어납니다. 설계의 시간도 많이 늘어나고 , 실제로 작성하다가 다시 설계하기도 하고 시행착오가 늘어납니다. 처음부터 다만 이 기간에는 제가 예비군 기간이어서 요구사항을 다 완성하지 못했습니다. 돌이켜보면 상당히 아쉽게 느껴집니다.
아무래도 프로젝트의 사이즈가 커지다보니 모듈화에서도 어려움을 느끼는 부분이 있었습니다. 특히 시간이 부족하다보니 완성하는데 급급해서 제대로 적용하지 못하는 부분도 있었습니다. 또한 프로젝트가 private 하다보니 다른 분들의 리뷰를 많이 받지 못한 부분도 아쉽게 느껴집니다. 4주차의 경우 아쉬움이 많이 남은 것 같습니다.
마지막으로
용두사미가 된 것 같아서 아쉬움이 많이 있습니다. 마지막에 완성하고 싶었는데 완성하지 못한 부분이 가장 아쉽네요. 하지만 프리코스를 진행하면서 어떤 방식으로 코딩을 해야 할지 , 하나의 동기부여가 된 것 같아서 큰 힘이 된 것 같습니다. 또한 가장 궁금했던 우아한 형제들에서 어떻게 코스를 진행하는지를 알게 되었습니다. 위에서도 계속 말했지만 코딩을 잘하는 것을 떠나서 , 협업을 어떻게 해야 잘 효율적으로 할 수 있는지를 말하고 있는 것 같아서 엄청 인상적이었습니다. 프리코스를 통과하고 아니고를 떠나서 , 그 과정만으로도 저에게 큰 영향을 주고 많은 성장을 가져다 준 것 같아서 도움이 된 것 같습니다. 이 회고록을 작성하면서 한번 더 상기할 수 있어서 좋네요. 저는 이 경험으로 방향을 찾고 , 나아갈 수 있을 것 같습니다.