시작하며
우아한테크코스는 ‘사용자용 서비스를 개발하는 회사가 필요로 하는 역량을 가진 프로그래머를 양성하기 위한 교육프로그램’이다. (테크톡 참고)
나는 전공자이기는 하지만 학교에서 가르쳐주는 지식들은 대부분 정적인 정보로 실무에서 어떻게 활용해야하는지, 어떻게 앞으로 프로그래밍을 학습을 해야하는지는 가르쳐주지 않는다. 학교에서는 주로 컴퓨터 구조가 무엇인지, 자료 구조가 무엇인지, 알고리즘이 무엇인지 알려주고 교수님의 강의를 통해서, 그리고 책을 통해서 혼자 학습하는 형태로 수업이 이뤄진다.
하지만 우아한테크코스는 이에 반대되는 형태로 진행이 된다. 이론이나 강의 중심이 아니라 현장 중심으로, 책이 아니라 직접 코드를 작성해보며, 혼자가 아니라 교육생들과 토론과 협업을 위주로 학습을 하는 형태이다. 내가 학교 수업을 통해 해소되지 않던, 갈증을 느끼고 있던 것들을 채울 수 있다는 점에서 우아한테크코스의 교육방식은 상당히 매력적으로 다가왔다.
나는 2023, 2024 우아한테크코스에 모두 지원을 했으나 학업과 병행하기 어렵다고 판단해 중간에 포기한 적이 있었다. 그리고 2025 우아한테크코스에는 마침 전력을 다할 여유가 있었기에 5주간(프리코스 4주 + 최종 코테 1주) 우아한테크코스 프리코스에 몰입을 했고 원하는 결과를 얻어, 이 경험에 대해 다뤄보고자 한다.
우아한테크코스 선발 절차
우아한테크코스(이하 우테코)는 서류 접수 > 프리코스 > 최종 코딩테스트 3단계를 통해 최종 인원을 선발한다. 프리코스는 서류 합불과 관계없이 모두가 참여할 수 있으며, 최종 코딩테스트는 서류와 프리코스를 종합적으로 평가하여 1차 합격자를 선발하고, 1차 합격자들은 최종 코딩테스트를 통과하면 비로소 최종 합격을 하게 된다.
더 자세한 내용은 신입생 모집과 입학 설명회를 참고 바란다.
인재상
나는 우테코에 참여하며 ‘이 과정에서 우테코는 무엇을 평가할까?’를 중점적으로 고민했다. 이를 위해서 우테코에서는 ‘어떤 사람을 뽑으려할까?’에 대해 끊임없이 고민하고 질문했다. 우테코 홈페이지에서 제공하는 교육 대상자는 다음과 같다. 이 교육 대상자가 곧 우테코가 추구하는 인재상이라고 보면 된다.
- 몰입 : 한 가지 일에 몰입해 성공한 경험이 있어야 합니다
- 프로그래밍 : 하나 이상의 기능을 가진 작은 애플리케이션으로 300라인 정도의 구현이 가능해야 합니다.
- 현장 : 현장에 필요한 문제 해결 역량을 키우는 것에 관심이 많아야 합니다.
그럼 각 항목씩 뜯어보자.
첫 번째 몰입. 우테코는 10개월이라는 여느 교육 프로그램보다 긴 교육 기간을 자랑한다. 그렇기에 중도에 이탈하는 교육자가 발생한다면 우테코에게는 큰 손실이다. 왜냐하면 우테코 또한 하나의 교육 프로그램이고 ‘수료자’라는 결과물을 만들어내야 하기 때문이다. 우리는 이를 통해 ‘저는 오랜 기간 동안 하나에 포기하지 않고 끝까지 이뤄내는 사람이에요’를 증명해내야한다. 이는 후술할 서류의 ‘몰입 경험’에서 증명을 할 수 있을 것이다.
두 번째는 프로그래밍. 이는 우테코가 ‘완전 생초보’를 뽑지 않는다는 것을 의미한다. 개발을 완전 해보지 않는 사람보다는 개발을 어느정도 해본 사람을 더 선호한다는 것을 의미한다. 이 또한 모든 교육프로그램이 그렇듯 최종 평가를 할 때 수료생 중 ‘얼마나 취업을 했느냐’ 또한 하나의 중요한 지표가 되기 때문이다. 하지만 그 기준이 ‘하나 이상의 작은 애플리케이션’인 만큼 최소한의 기준이 높지 않다는 것을 알 수 있다. 이는 프리코스에서 내 최소한의 프로그래밍 실력을 증명해내야 한다.
세 번째는 현장. 우테코는 ‘서비스를 개발하는 회사가 필요로 하는 역량을 가진 프로그래머를 양성하는 프로그램’이다. 서비스를 개발하는 회사가 필요로 하는 역량이 곧 문제 해결 능력이기 때문에 이 항목이 있을 것이라 생각했다. 이는 추후 프리코스에서 내가 문제를 해결하기 위해 어떠한 노력을 하는 사람인지 증명해내야 한다는 것을 의미한다.
이런 관점을 먼저 잡고 임하면 소비자 입장에서 생각하게 된다.
우리는 공급자가 아닌 소비자 중심적으로 생각해야한다. 즉 회사 면접관 입장에서 생각을해야한다. 그가 무엇을 원하고 어떤 성향의 회사인지, 그리고 사람인지.
1) 서류
우테코 입학설명회를 보면 알 수 있듯이 프리코스는 ‘최소한의 실력’을 검증하고 그 이상은 서류로만 평가한다고 설명했다. 그렇기에 우리는 서류에 전력을 다해야한다.
우선 각 항목에 대해 간략하게 살펴보자.
- 프로그래머가 되려는 이유와 지원 동기(2000자)
이는 우테코가 10개월이라는 긴 기간 동안 개발자로서 준비해야하는 과정인만큼 프로그래밍에 대한 열정이 높아야되어야 함을 의미한다. 그 열정을 이 문항에서 녹여주어야 한다.
나는 여자친구와의 100일 기념 웹사이트를 만들며 프로그래머가 되기로 결심한 경험과, 프로그래머가 되기 위해 어떤 노력들을 해왔는지, 그리고 우테코가 나에게 왜 필요한지를 중점적으로 다루었다.
- 오랜 시간 몰입했던 경험 그리고 도전(2000자)
이 항목은 10개월이라는 긴 기간 동안 이 사람이 포기하지 않고 끝까지 임할 수 있는가를 평가하는 항목이다. 본인이 오랜 기간 동안 무엇을 했고 그 기간 동안 얼마나 몰입을 했고, 얼마나 노력을 했고, 최종적으로 어떠한 결과를 만들어냈는지를 녹여주면 된다.
나는 운동을 소재로 다루었으며 20살에 운동을 시작한 계기, 운동을 하며 겪었던 어려움과 극복 과정, 그리고 5년 간의 운동을 통해 이뤄낸 성과, 마지막으로 이 성과를 통해 얻은 다른 분야에서의 효과를 중점적으로 다루었다.
- 프리코스 목표 설정(1000자)
이는 이번 서류에 새롭게 추가된 항목이다. 이는 평가를 한다기보다는 프리코스에서 본인이 더 성장할 수 있는 방향으로 이끌어주기 위한 항목이라 생각한다. 왜냐하면 프리코스 기간 동안 소감문 요구사항에서 ‘기존 목표와 얼마나 일치’하는지를 묻는 부분이 있기 때문이다. 그렇기에 솔직하게 본인의 프리코스 동안 목표를 세운다고 생각하고 작성하면 된다.
나는 평소에 가지고 있던 코드 작성에 대한 고민, 그리고 이를 프리코스를 통해 어떻게 해결하고 싶은지를 중점적으로 작성했다.
서류를 작성하며 느낀 ‘서류 잘 작성하는 법’은 다음과 같다.
- 소재 선정
가장 먼저 소재를 선정해야한다. 소재를 정하지 않고 글을 작성하면 방향성을 잃기 쉽다. 소재를 정하고 그 소재를 어떻게 풀어나갈지 먼저 정리하는 것이 좋다. 예를 들어 '몰입 경험'이라면 어떤 경험을 중점적으로 다룰지, 그리고 그 경험에서 어떤 부분을 강조할 지를 미리 구상해야 한다.
여러 소재들을 생각나는 대로 적어두고 웬만하면 각 항목 별로 곂치지 않게 분배를 한 후, 가장 적합하다고 생각되는 소재들을 하나씩 선정하는 방식을 추천한다.
- 이터레이션
‘한 번에 완벽하게 작성한다’고 생각하면 절대 안된다. 처음에는 1번에서 정한 소재를 바탕으로 생각나는대로 전부 작성한다. 그리고 다시 읽어보며 보완하거나, 마음에 안들면 처음부터 다시 작성하고, 이 과정을 수 차례 반복하며 글을 점진적으로 완성해나가는 것이 중요하다. 각 단계마다 글의 완성도가 높아지고 더 나은 표현과 구조를 찾아낼 수 있다.
그리고 이를 버전 별로 기록하는 것이 중요하며 필자의 경우 최대 15회까지 재작성을 했다.
마지막으로, 이터레이션은 시간을 두고 돌리는 것이 좋다. 왜냐하면 오늘 생각나지 않던 경험이나 단어가 하루동안 밥을 먹고, 운동을 하고, 공부를 하며 머리가 리프래쉬되어 내일이 되면 떠오를 수 있기 때문이다. 이렇게 시간을 두고 글을 다시 보고 보완하고, 다시 작성하는 것이 이터레이션의 핵심이다.
- 피드백
내 글만 계속해서 보면 내 생각의 틀에 갇히기 십상이다. 그래서 피드백을 반드시 3명 이상에게 받아보기를 권장한다. 필자의 경우 아버지에게, 인프런 멘토링을 통해, 그리고 JSCode님에게 한 번씩 받아보았다.
개인적으로 JSCode님의 피드백은 상당히 만족스러웠다. 비록 저렴한 가격은 아니지만 그 이상의 값어치를 했다. 단순히 우테코 서류에 대한 피드백 뿐 아니라 우테코에 최종적으로 합격하기 위한 마인드셋을 가르쳐주어 프리코스, 최종 코딩테스트를 준비하면서도 어떤 방식으로 준비해야할 지 감을 잡을 수 있었다. 만약 고민 중이라면 강력하게 추천한다.
피드백을 너무 많이 받는 것은 혼란을 야기할 수 있으니 주의해야한다. 피드백을 많은 사람에게 받으면 그 피드백이 한 방향을 가르키지 않을 때가 많다. 사람마다 추구하는 방향이 다르고 가치관 또한 다르기 때문이다. 그렇기에 피드백은 그저 조언정도로만 받아들이고 나의 가치관을 세워 이를 바탕으로 서류를 작성하고 다듬는 것이 중요하다.
보기 좋은 떡이 먹기도 좋다는 말이 있듯이 글 또한 보기 좋아야 잘 읽힌다. 그래서 글 내용 뿐 아니라 글의 구조와 가독성을 신경을 써야한다. 평가관은 결국 사람이기에 오로지 평가 기준에 맞게 객관적으로 판단하고 싶어도, 잘 읽히는 글을 더 선호할 수밖에 없다고 생각한다. 또한 수백에서 수천에 이르는 서류 지원자 중 내 서류를 돋보이게 할 수 있는 절호의 기회라고 볼 수도 있다.
나는 작성할 때는 노션에 작성을 하고, 제출할 때에는 아래와 같은 형식으로 바꾸었다.
[주제1]
저는 ~입니다.
[주제2]
저는 ~입니다.
2) 프리코스
프리코스를 진행하며 작성한 기록은 Untitled에 있으니 참고 바란다.
프리코스에서 나는 ‘개발자로서 성장’을 목표로 했고 이를 우테코에게 보여주고 싶었다. 그러기 위해서 항상 모든 과제에 최선을 다했다. 하루종일 과제를 고민하고, 관련된 책을 찾아 읽고, 공부하고, 코드를 고쳤다. 그리고 이 과정을 반복했다. 그리고 소감문은 5000자에 가깝게 채워서 작성했다.
프리코스는 우테코의 미니 과정이라고 생각하면 된다. 실제로 우테코에서 진행하는 과제를 프리코스에서는 1주일에 1개씩 주어진다. 다시 말해 ‘우리는 우테코 내내 이렇게 과제를 줄 건데, 너 버틸 수 있어?’,’너 이거로 혼자 성장할 수 있어?’,’너 이거 풀 수 있어?’를 질문하는 것과 같다. 이에 우리가 답변하기 위해서는 프리코스 기간 내내 몰입을 해서 성장을 이뤄야하고, 버텨야하고 풀어내야함을 시사한다. 매 과제마다 이러한 도전 과제를 우테코가 나에게 던진다는 생각으로 프리코스에 임했다.
또한 나는 프리코스에서 1등이 되어야겠다는 마음가짐으로 임했다. 서류도 동일하지만 우테코에서는 이를 ‘평가 기준’에 맞게 모든 사람을 점수로 매길 것이다. 우리에게는 그 점수나 등수가 공개되지는 않지만 내부적으로는 평가 기준이 있어야 우리를 이에 따라 평가하고, 등수를 나누어 합격자와 불합격자를 나눌 수 있을 것이라 생각했다. 그렇기에 나는 이 점수들을 서류 + 프리코스 + 최종 코딩테스트 각각의 점수를 합산해 등수를 나눌 것이라 가정하고, 모든 과정 하나하나에 최선을 다했다. (물론 우테코에서 프리코스는 최소한의 점수만 넘으면 동일하다고 이야기는 했다.)
3) 최종 코딩테스트
프리코스가 끝나고 최종 코딩테스트 전까지는 잠적의 1달이 있다. 1달 동안은 시간이 멈춰있는 듯했다. 내가 1차 합격을 할지도 못할지도 모르기에 새로운 계획을 세우기에도 에매하다. 다른 교육 프로그램을 찾기도, 회사에 지원하기에도 에메하다. ‘만약 1차 합격하면 어떡하지?’라는 생각이 머릿 속에 있기 때문이다. 만약 1차에 합격하면 교육 프로그램 혹은 회사 지원 절차를 중단해야하는데 이 또한 문제이다.
그래서 나는 1차 합격 발표 전까지는 최대한 새로운 것을 시작하지 않고 기존에 진행해오던 개인 프로젝트를 진행했다. 그리고 마인드 세팅으로는 ‘나는 1차 합격에 떨어질꺼야’라고 임했다. 왜냐하면 기대가 크면 실망도 큰 법, 떨어졌다고 생각하는게 내딴에는 마음이 편안했다. 그래서 떨어졌을 때의 B플랜까지 세워두었다.
대망의 1차 합격 발표 날 합격을 했다. 1차 합격과 최종 코딩테스트 까지는 5일의 시간이 있다. 그 5일 간의 계획을 철저하게 세웠다. 나는 올해 1-4주차 과제, 그리고 작년과 저작년 1-4주차 과제 중 올해와 곂치지 않는 과제 + 최종 코딩테스트를 다시 풀어보았다. 이 때 코드 품질을 무조건 높이기보다는 ‘최종 코딩테스트에서 완성을 하고 싶은 정도의 코드’를 작성하는데까지만 노력했다. 그리고 최종 코딩테스트 때 사용할 ‘프로세스’를 만드는데에 중점을 다했다.
최종 코딩테스트 프로세스는 Untitled, 최종 코딩테스트를 준비하는 기간의 기록은 Untitled, 최종 코딩테스트에 대한 소감은 Untitled에서 참고 바란다.
추가로, 1차 합격자는 두 배수를 뽑기에 최종 코딩테스트는 1:2의 경쟁률을 가지게 된다. 다시말해 전체에서 중간 등수만 되면 합격할 수 있다는 것을 의미한다. 그럼에도 다들 쟁쟁한 경쟁률을 뚫고 1차 합격한 사람들이기에 끝까지 우리는 긴장의 끈을 놓아서는 안된다.
마지막으로 최종 합격자는 개인적인 생각으로 오로지 ‘최종 코딩테스트’의 점수로만 평가한다. 그 점수는 ‘애플리케이션 테스트 코드를 얼마나 통과했느냐’를 수치적으로 계산한다. 입학 설명회에서도, 프리코스 과제 가이드에서도, 최종 코딩테스트날 당일에도 ‘코드 품질보다 돌아가는 깡통을 만드는데 집중하세요’를 일관되게 강조한다. 또한 내 ‘증명 자료’ 노션 페이지에 접속자가 없다가 최종코딩테스트 발표 전 날에 2가 생겼다. 이 말은 즉슨, 합격자를 평가하는 과정이 아니라 검증하는 과정에서 확인을 했다는 것을 의미하고 서류는 최종 코딩테스트 선발에 영향을 미치지 않았다는 것을 의미한다.
정리하면 우테코에서는 코드 품질보다는 기능 구현에 더 큰 가중치를 두고 최종 합격자를 선발한다. 그리고 이를 평가하기 위해서는 내부적으로 요구사항의 각 항목들에 대한 테스트 케이스를 만들어두고 이를 통과하는 정도를 기준으로 점수를 매길 것이다. 그렇기에 최종 코딩테스트에서는 코드 품질은 최소한만 신경을 쓰고 주어진 테스트 케이스를 통과하는데 최선을 다하고, 여력이 된다면 요구사항에 알맞는 테스트 케이스를 작성해 이것에 통과하는데 집중할 것을 권장한다.
새로운 시작
5주간의 프리코스와 긴장감 넘치는 최종 코딩테스트를 거쳐 드디어 우아한테크코스 6기 최종 합격이라는 결과를 얻었다. 지난 2년간 두 번의 도전과 중도 포기를 겪었기에 이번 합격의 기쁨은 더욱 특별하게 다가왔다.
'우테코에 떨어져도 괜찮아'라고 스스로를 다독이며 B플랜을 세워두었지만 실제로 불합격 통보를 받았다면 앞으로의 방향성에 대한 고민과 불안이 컸을 것이다. 그런 면에서 우아한테크코스라는 새로운 기회를 얻게 된 것은 큰 축복이자 놓치고 싶지 않은 기회라 생각한다.
맺으며
우테코 프리코스 과정은 나에게 단순히 선발 과정 이상의 의미가 있었다. 5주라는 짧지만 강도 높은 기간동안 개발자로서의 성장뿐 아니라 한 가지 목표를 향해 전력을 다해 달려갈 수 있는 경험을 할 수 있었다.
특히 이번 도전을 통해 깨달은 가장 큰 교훈은 과정의 중요성이다. 매 주차 과제를 하면서 결과물보다 어떻게 풀지, 어떻게 더 나은 코드를 쓸지 고민한 과정이 크게 남았다. 그 고민과 노력이 쌓여 결국 최종 합격으로 이어졌다.
또한 공급자 중심이 아니라 소비자 중심에서 사고하는 것의 중요성을 느꼈다. 내가 회사에 합격하기 위해서는 회사가 어떤 마음으로 지원자들을 평가할 것이고, 어떤 부분에서 무엇을 어떻게 평가해야하는지 알아야한다. 그러기 위해서는 회사의 입장에서 생각할 줄 알아야한다. 우테코에서 이러한 방식을 우테코 홈페이지의 인재상과 입학 설명회를 통해서 유추할 수 있었다. 앞으로 소비자를 설득하는 일이 수없이 많을 것이다. 회사에 지원할 때도, 회사에서 팀장님을 설득할 때도, 혹은 실제 소비자를 설득할 일도 있을 것이다. 아니 어쩌면 서비스를 만드는 과정 자체가 소비자를 설득하는 과정일 지도 모른다. 이러한 때에 공급자인 나 중심이 아니라 소비자인 상대방의 입장에서 생각해야 비로소 소비자를 설득할 수 있을 것이라는 것을 몸소 깨달았다.
앞으로 10개월은 길고도 험난한 길이 될 것이다. 그럼에도 프리코스에서 보여준 열정처럼 10개월 동안 개발에 대한 열정, 성장에 대한 열정을 불태운다면 분명히 의미 있는 결과를 만들어낼 수 있을 거라 확신한다. 10개월이라는 우아한테크코스에서의 목표와 계획을 한 번 더 상기시키며 글을 마무리하고자 한다.
우테코에서의 목표
- 오로지 우아한테크코스에만 몰입하기
- 개인 프로젝트나 다른 내용의 공부 금지
- 우테코 현재 과제와 관련된 내용만 공부
- 우아한테크코스에서 배운 내용을 모두 소화하기
처음에는 난이도가 실력에 비해 쉬울 수 있다.
단순히 운영 X, 스터디를 운영하며 개선하고, “어떻게 함께 성장하는가”에 대해 초점을 맞추고 이를 고민하기
e.g. 과제를 진행하는데 불편하거나, 개선할게 있다 → 서비스로 만들기
e.g. 불편한게 있다 → MVP 8시간만에 만들어 출시
- 대화에 능숙한 사람 되기
대화에 능숙한 사람 : 누구와 처음 만나 이야기를 하더라도 편안하게 이야기를 하고, 대화만으로 매력적인 사람이 되고, 나를 잘 표현하는 사람이 되기 https://junilhwang.github.io/TIL/writing/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%B7%A8%EC%A4%80/#_1-%E1%84%89%E1%85%A9%E1%84%91%E1%85%B3%E1%84%90%E1%85%B3%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B5%E1%86%AF