우아한테크코스 후기

재키·2020년 12월 15일
2

친구의 소개로 우아한테크코스를 알게 되었고 개발자로의 진로를 고민하던 중 프리코스 3기에 참가하게 되었습니다. 이 글에서 프리코스 3주차까지의 과정을 간단히 소개하고 그에 대한 저의 소회를 알려드릴까해요.

지원서 작성

3기 지원은 10월 23일부터 11월 4일까지 진행되었습니다. 지원서는 총 5문항이 나왔던 것으로 기억하는데 링크에 나온 질문들을 미리 잘 곱씹어보신다면 어렵지 않게 작성할 수 있으리라 생각합니다.

코딩테스트

우아한테크코스 프리코스에 참여하기 위해서는 코딩테스트를 통과해야 합니다. 테크코스 측에서는 자료구조나 알고리즘 등 도메인 지식이 깊지 않아도 논리력만 있으면 풀 수 있는 문제를 내겠다고 했는데요. 이 말은 저에게 큰 힘을 주었습니다. 비전공자인데다 여러 번의 코딩테스트에서 떨어진 저였기에 코딩테스트에 임하는 게 적지 않은 스트레스였어요 ㅠㅠ 그래도 프로그래머스에서 몇 문제 풀어보면서 감을 잃지 않으려고 했습니다.

코딩테스트는 11월 7일에 12시부터 오후 4시까지 진행됐습니다. 총 7문제가 나왔고 그 중에 4문제 정도는 테크코스측의 말대로 그리 어렵지 않게 풀수 있었습니다. 문제의 길이가 좀 길어 처음 보았을 때 적잖이 겁을 먹었지만 문제를 천천히 읽다보니 실마리가 보였습니다. 나머지 3문제 중 2문제를 해결하는 데에 대부분의 시간을 썼습니다. 남은 한 문제는 그냥 포기했어요 ㅠㅠ 좀 오래되기도 해서 문제가 잘 생각나진 않지만 테크코스 측에서 말했듯이 문제풀이 좀 해보신 분들은 어렵지 않게 풀 수 있을 것이라고 생각합니다. 당연히 컴퓨터 도메인 지식이 있으신 분들은 더 효율적으로 풀 수 있으리라 생각합니다. 7문제 중 6문제 테스트케이스를 통과하고 코딩테스트를 마쳤습니다.

지원 결과 발표

지원자가 많아 꼼꼼히 검토하는 데에 부득이하게 3일 정도가 더 필요하다는 메일을 받았어요. 떨리는 3일의 시간을 보내고 합격 메일을 받았어요. 테크코스를 지휘하고 계시는 포비님께서 직접 메일을 보내주셨는데 긴 글임에도 몇 번이고 다시 읽어보았습니다. 자기주도적으로 학습하는 의지가 필요하고 긴 호흡을 유지해야 하기에 프리코스가 시작되기 전에는 자바와 객체지향의 기초 개념을 숙지하는 걸 추천해주신다고 하셨어요. 자바를 제대로 공부해본적이 없던 저는 친구가 추천해준 사이트를 보면서 기본 개념들을 익히는 시간을 보냈습니다. 연습문제나 실습을 진행하면서 피드백을 받을 수 없다는 점이 아쉬웠지만 기본 지식을 공부하기에 좋은 자료라는 생각이 들어요.

프리코스 시작

프리코스는 총 3주의 기간동안 진행되고 1주일마다 하나의 과제로 총 3개의 과제를 구현하는 과정으로 진행됩니다. 검은 콘솔 화면에 이용자의 입력에 따라 실행되는 콘솔 프로그램을 구현하는 것이 과제의 주된 내용입니다. 그러나 그 전까지 접해보지 못했던 요구사항들을 지켜야 했습니다. 가령 'indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.'을 포함한 요구사항들이 있었는데 이 요구사항들은 아래 각 주간 링크에 있으니 참고하심 될 것 같습니다.

프리코스 1주차

프리코스 1주차 과제는 어릴 적 많이 했던 숫자야구게임을 구현하는 것인데 익숙해서인지 문제의 조건을 이해하는 데에 어렵지 않았습니다. 거기까지는 좋은데 이걸 요구사항에 맞춰서 구현해야 한다는 게 막막했어요 ㅠㅠ 그래서 학교 도서관에서 객체지향의 사실과 오해를 빌려서 보니 어렴풋이 감이 잡혔습니다. 역할과 책임, 협력이라는 개념으로 객체지향에 대해서 심플하게 소개해주었는데 구현할 때 많이 도움이 되었던 것 같습니다. 객체지향의 초록맛을 느끼게 해준 과제였습니다. 아 그리고 구현하기 전에 구현할 기능을 문서로 정리해야 하는 요구사항은 구현 시 도움이 많이 되었습니다. 구현하면서 주먹구구식으로 예외사항을 처리하는 것이 아닌 미리 시스템의 빈 곳을 생각해보면서 위의 역할과 책임, 협력의 개념으로 이를 해결하려고 했던 것이 재미가 있었습니다. 이 과제가 저에게 준 스트레스 지수는 담배 한 갑정도였습니다요.

프리코스 2주차

프리코스 2주차 과제는 자동차 경주게임이었는데 참가자와 진행 횟수를 입력받고 횟수 진행시 각 자동차마다 RandomUtils로 숫자를 받아 4이상일 경우 전진하는 요구사항이 있었습니다. 자동차가 그 숫자를 기다리는 모습을 상상하는 게 귀여웠습니다. 이 과제를 진행하면서 우아한테크코스가 되게 아기자기하다는 생각이 들었습니다.
첫 번째 과제를 진행했어서 그런지 역할별로 클래스를 나누고 예외를 처리하는 과정도 어렵지 않게 진행할 수 있었습니다! git commit을 기능별로 하는 것에도 익숙해지고 재밌게 진행할 수 있었던 과제였습니다!

프리코스 3주차

드디어 프리코스 마지막 주가 되었습니다. 과제 메일을 받았을 때 프리코스 마지막 과제라는 것이 후련하기도 하고 아쉽기도 하였습니다. 물론 문제를 보기 전에는요...
간단히 말해 마지막 과제는 저에게 정말 많은 좌절을 느끼게 해주었습니다. 개발자가 되면 재밌게 할 수 있을까, 내가 개발자로서 적절한 능력을 가졌는지 의심케했던 과제였습니다.
일단 문제를 보시면 굉장히 복잡합니다. 역 관리, 노선 관리, 구간 관리, 지하철 노선도 출력 4가지의 큰 메뉴를 구성하고 각각 관리 메뉴에서 등록, 삭제, 조회 등의 기능을 구현해야 했습니다. 각각의 기능을 구현하는 데에는 크게 어려움을 느끼진 않았지만 화면이 입력과 결과에 따라 수시로 변하는 로직을 구현하는 것이 가장 힘들었습니다. 기존에 제가 구현 시 이용하는 MVC 패턴으로 하는 게 맞는지도 의심이 가고(아, 물론 제가 잘 몰라서 그런 것일 수도 있습니다.) 검은 창에서 결과가 잘못 출력될 때마다 깊은 좌절을 느꼈습니다 ㅠㅠ 매일 이용하던 지하철이 싫어질 정도였어요...
그래도 일주일 동안 매달린 덕분에 어떻게 구현은 되었습니다. 위에서 말했던 책임, 역할, 협력을 신경쓰면서 구현은 해보았는데 과제를 완료한 지금 시점에서도 제 코드를 보면 이렇게 하는 것이 맞을까하는 생각을 지울 수 없습니다. 위에서 느꼈던 상큼한 객체지향은 온데간데없고 혀에 남았던 건 빨간맛이었습니다. 이 과제를 진행하면서 머리카락이 많이 빠지지 않았을까 생각합니다.
마지막 과제를 진행하면서 위에 표현한 대로 좌절을 느끼기도 하였습니다. 그러나 쉽게만 살고자 했던 저에게 좀 더 겸손하고 긴 호흡을 가지고 살아가야 한다는 메시지도 주었던 것 같습니다. 깊은 좌절 뒤에 오는 깨달음이 앞으로 살아가는 데 큰 자양분이 되지 않을까 합니다. 그런 점에서 3주차 과정은 저에게 채찍질하는 '역할'을 한 객체였습니다 ㅎㅎ

마지막 과제를 제출하며...

3주 간의 길지 않은 프리코스 과정이 끝났습니다. 과정을 마치면서 가장 먼저 이번 프리코스에 참여하길 잘했다는 생각이 들었습니다. 저의 부족함이 완전히 드러난 과정이기도 했고 개발자로서 뿐만 아니라 앞으로 어떻게 살아가야할지 깊이 생각해보라고 알려준 과정이었습니다. 우아한형제들에서 일하시면서 좋은 서비스를 만들기 위해 고민하는 개발자분들, 이 과정에 직간접적으로 참여하며 프리코스를 진행하기 위해 고생해주신 분들께 감사와 존경의 말을 전하고 싶습니다. 얼굴은 모르지만 3주간 함께 프리코스에 참여하며 고생하신 참가자 분들께도 수고하셨다는 말을 전해드리고 싶네요. 이번 주 토요일에 오프라인 코딩테스트가 있는데 마지막까지 최선을 다하겠습니다! 너, 나 모두 화이팅!

profile
기초를 탄탄히!

0개의 댓글