본문 바로가기

회고

[우아한테크코스 4기] 3주간의 프리코스 후기 (+ 최종 합격)

우아한테크코스는 우아한형제들 회사에서 진행하는 무료 IT 교육 프로그램입니다.
저는 1기때부터 우아한테크코스를 알고 있었고, 유튜브 채널을 통해서 자주 보면서 우테코의 문화를 동경해 왔는데요. 그러던 제가 4학년 막학기가 되어서야 지원하여 이제 마지막 3주차 미션을 달리고 있습니다. 오늘은 지난 3주간의 과정에 대한 회고를 작성해 보고자 합니다.

왜 우아한테크코스에 지원하게 되었나요?

대부분의 학생분들이 그렇듯이, 저도 4학년이 되어서 취업 준비를 하게 됐습니다. 개발자의 경우 알고리즘, CS, 프로젝트, 언어 등등 어느 정도 표준화된 과목을 깊게 공부하게 되는 것 같습니다. 저도 올해부터 알고리즘 공부와 취업에 관련된 공부를 열심히 하고 있었지만, 막상 취업을 하게 됐을 때 과연 내가 좋은 개발자로 성장할 수 있을까에 대한 물음표가 있었습니다.

단순히 좋은 기업을 목표로 열심히 해서 취업하면, 내가 과연 잘할 수 있을까? 아직 저만의 공부 방식이나, 어떤 개발자가 좋은 개발자인지, 좋은 개발자가 되려면 무엇을 어떻게 노력해야 하는지 등.. 스스로 부족하다고 느끼는 부분이 많은 상태에서 취업이란 목표 하나만을 바라보고 뛰어들기엔 아쉬움이 너무 클 것 같았습니다. 현업 개발자라는 더 큰 필드로 나가기 전, 1년간의 우테코 과정을 통해 개발에만 집중하여 공부하고 도약할 수 있는 시간이 간절했습니다.


3주 간의 프리코스란?

프리코스 과정은 우아한 테크코스를 최종 합격 코딩 테스트를 응시하기 전, 3주 동안의 미션을 수행하는 과정입니다. 3주간의 과정을 통해서 지원자는 10개월 간의 테크코스 과정을 미리 맛볼 수 있고, 교육자분들도 어떤 참가자인지 확인해 볼 수 있는 과정이라고 이해하면 될 것 같습니다. 3주간의 미션을 완수하고 나면, 3주 동안 배웠던 내용들을 테스트 해볼 수 있는 최종 코딩 테스트(미션 구현 형태)를 응시하고 최종 합격 여부를 받을 수 있습니다.

프리코스 1주차 후기

첫째 주 미션으로는 주어진 요구사항에 따라 야구공 게임을 구현하는 미션이 주어집니다. 기능 요구사항에 따라서 프로그램을 만드는 것은 아주 어렵지는 않았지만, 기능 목록에 따라서 개발해 나가는 것이 익숙하지 않아 어렵게 느껴졌습니다. 또 기능 목록에 따라 커밋을 진행하기 위해서는 기능 목록이 상세하게 잘 작성되어 있어야 했습니다. 그렇게 첫째 주차에는 기능 목록을 작성한 후, 작성된 것에 따라 커밋해보는 것에 익숙해지고 기본적인 자바 문법에 대해 다시 한번 돌아보는 시간이였습니다.

프리코스 2주차 후기

두 번째 주 미션으로는 자동차 게임 미션이 주어졌습니다. 첫째 주차와 달랐던 점은 "setter를 사용하지 말아라", "else를 사용하지 말아라", "메소드는 15줄이 넘어가지 말아라" 등의 요구사항이 추가 되었습니다. 요구사항을 맞춰 코드를 짜고, 관련 키워드로 검색하면서 "객체지향의 사실과오해"에 대한 내용도 알게 되고 틈틈이 읽으면서 적용하려 노력했습니다. 또 메소드를 깔끔하게 짜기 위해서 자바 문법을 공부하던 중, stream과 같이 자주 접해보지 않은 개념도 적용해 보면서 기존과는 조금 다른 코드를 작성하게 되기도 했습니다.

1주차 미션때도 설계의 중요성을 느꼈지만, 스스로 부족함을 많이 느끼게 되었습니다. 그도 그럴 것이, 자바 문법이나 요구사항을 맞추는 것은 공부하면서 그때그때 적용하면 됐었지만, 설계는 코드를 작성하기 전 한번 만 이루어지고 이후에 설계를 잘못했다고 판단해도 다시 돌아와서 설계하기가 쉽지 않았습니다.

이걸 어떻게 극복하지,,, 하다가 해답이 잘 나오지 않자, 조금 무리를 하더라도 "에이 그냥 이때까지 프리코스 과제로 나왔던거 설계 다 해보자!"하고 문제가 공개된 프리코스 과제를 설계하고 구현까지 전부 진행했습니다.

지하철 노선도 미션
지하철 최단 거리 미션
자동차 미션

이 과정에서 설계하는데에 저만의 방식도 생기게 되었고, 구현 과정에서 추가로 알게된 자바 문법 등 여러가지를 알게 됐습니다.

프리코스 3주차 후기

3주차 미션에는 "Enum클래스를 사용", "비즈니스 로직과 UI를 분리하라", "객체에 메시지를 보내라" 등의 피드백과 요구사항이 있었습니다. 여기서 "객체에 메세지를 보내라"라는 문구를 보고 반가웠는데요. 지난 1~2주차에 "객체지향의 사실과오해"라는 책에 나와있는 문구였습니다. "틈틈이 읽어보려 노력하길 잘했다. 그래도 공부 방향이 아예 다르지 않나보다" 등의 생각이 들면서 뿌듯해하며 적용하려 노력했습니다.
"비즈니스 로직과 UI를 분리하라"는 피드백을 통해 MVC패턴 의 블로그를 보면서 공부하고 적용했습니다.

MVC 레이어로 나누어 설계했고, 각 레이어에 대해서 간단히 소개하자면.
Controller: 요청에 따라서 뷰와 모델 간의 경계를 이어주는 중간다리 역할을 하게 했습니다. 요청(Request)를 받아 수행 후, 응답(Response)를 View에 전달하게 됩니다.
→ 블로그에서도 "Model과 View를 연결하여 프로그램 전반적인 로직을 수행"라고 나와있었지만, 현재 제 상황에서는 InputView에서 요청을 받은 후, Controller가 모델에게 전달하고 필요한 정보를 받아 다시 OutputView에 출력하는 식으로 설계했습니다.
Model: 데이터 요청에 대한 처리와 비즈니스 로직에 대해서도 처리하게 했습니다. 보통 Service 레이어를 따로 두어 비즈니스 로직만을 처리하게 하기도 한다는데, 저의 경우는 비즈니스 로직이 아주 크지 않고 Model에서 처리하는게 너무 이상하다 싶은게 없었기 때문에 Model 레이어에서 처리하게 했습니다.
View: 사용자의 입력과 출력 등 눈에 보이는 부분을 담당하게 했습니다. 여기서 일반적이지 않다고 생각했던 부분은 예외처리에 대한 부분이였습니다. 다른 코드를 보니 View에서 입력받은 것에 대한 예외처리 부분을 Controller에서 하는 것을 보았는데요, 저는 입력에 대한 검증인데 왜 Controller에서 하지?하는 생각이 많이 들었습니다. InputView에서 데이터를 입력 받아서 Controller에 전달됐을 때의 상태는 이미 InputView에서 검증이 다 된 입력 데이터만을 전달하게 하려고 했습니다.

또 Enum 클래스를 사용해 보면서, Enum클래스의 사용법과 활용에 대해서도 알게 됐습니다. 프리 코스 이전에는 정말 개념만 알았던 Stream과 Enum에 대해 더 공부하고 활용하게 돼서 좋았습니다. 이렇게 새롭게 느껴지는 개념을 배울 때 마다, 마치 전쟁터 나가기 전에 좋은 무기를 가지게 되는 것 같아 뭔가 든든해졌습니다. "객체에 메시지를 보내라"는 피드백을 적용시키면서, 각 객체를 머릿 속으로 상상하면서 얘는 이러한 메시지를 받는 객체야. 만약 ~한 메시지를 받는다면, 어색하지 않을까? 등등 머릿 속으로 상상하면서 설계했는데, 이 부분도 굉장히 재밌었습니다.

3주 동안의 프리코스 후기

프리코스를 경험하며 배운 것들
- 자바 문법 개념과 활용
- 객체를 객체답게 사용하려는 능력(아직 많이 부족해서 노력 중입니다.)
- 무지성 코딩이 아닌, 설계 후 작성
- 깔끔한 코드를 작성하려는 시도
... 등등
새롭게 배운 것들을 나열할 수 있겠지만, 저에게 가장 큰 영향을 주었던 것을 정리해보자면

1. 스스로 학습하게 한다.

우테코 교육과정은 개념에 대해 설명해주는 강의형 교육과정이 아닙니다. 미션을 진행하면서 지켜야할 원칙과 약간의 피드백만을 주어, 방향성을 제시해주는 것이지요. 저는 이 방식이 저에게 꼭 필요했다고 생각합니다. 개발 공부를 하면서 인강을 완강하거나, 책을 완독하는 등의 학습방식을 해왔는데요. 제가 직접 필요한 개념들이 무엇이 있을지 탐색하고, 공부하는 과정에서 저에게 맞는 학습 방식이 무엇인지 깨닫게 되는 계기가 되었습니다. 이것만 하더라도 저는 우테코 지원하길 정말 잘했다 생각이 들었습니다.

2. 지원자분들이 모두 열정이 넘친다.

이번 4기는 150명을 선발하는데 2000명이 넘는 지원자가 지원했다고 들었습니다. (정확한 오피셜은 아닙니다..! 더 많을 수도 있고 적을 수도 있습니다.) 그 경쟁률을 뚫고 프리코스까지 온 지원자분들이 계시다 보니, 모두 열정이 넘쳤습니다. PR을 보더라도, 누가 시키지도 않은 공부양과 정리 등 정말,,,배울점이 굉장히 많았습니다. 스스로 이정도면 됐으려나? 싶을 때 지원자분들의 PR을 보면 엄청난 동기부여가 되었습니다. 스스로의 한계점을 깨보는데에 엄청난 동기가 될 것 같습니다.

3. 교육에만 집중할 수 있다.

이때까지 혼자 공부해오면서 "이 방향이 맞나?, 잘못된 방향이 아닌가?"하는 생각이 자주 들곤 했습니다. 하지만 우테코 유튜브 채널 등, 우테코 과정에 대해 알 수 있는 채널들이 굉장히 많은데, 이것들을 보면서 교육 과정의 방향에 대해 굉장히 신뢰하게 됐던 것 같습니다. 그래서 지난 3주 동안 우테코 교육과정에만 몰입하고, 다른 일들은 최소한으로 진행했음에도 정말 행복한 시간을 보냈습니다.


우테코와 일반 교육과정과의 차이를 명확히 느낄 수 있었습니다. 미션을 구현하면서 스스로 문제점을 인식하고 학습 하게끔 방향성을 제시해주는 과정이라고 느꼈습니다. 덕분에 주도적인 학습과 저에게 맞는 학습 방식이 무엇인지도 깨달을 수 있었고, 3주 동안 멋진 지원자 분들과 같이 공부할 수 있어서 영광이였습니다.

남은 최종 테스트까지 잘 해내서 꼭 테크코스까지 참여하고 싶네요..
긴 글 읽어 주셔서 감사합니다. 혹시라도 궁금하신 점이 있다면 댓글로 남겨주세요!
아는 선에서 최대한 답변해드리겠습니다 😊


최종 합격했습니다!
앞으로는 테크코스를 진행하며 배운 것들을 포스팅할 것 같네요😊

'회고' 카테고리의 다른 글

알고리즘 공부 방향성🙏  (0) 2021.04.19