본문 바로가기
Log/우아한테크코스

[우아한테크코스 5기] 프리코스 회고(feat. 최종합격)

by 재영(ReO) 2023. 2. 3.

개발자로 진로를 정한 것이 4~5월 부근이고, JAVA를 처음 접한 것이 프리코스 두 달 전인 8월 말 즈음이었기 때문에 Spring 등의 Framework는 커녕 아직 JAVA 기본 문법조차도 익숙하지 않은 상태로 프리코스에 참가했다. Design Pattern 등은 말할 것도 없이 접한 적이 없었다.
이런 나도 최종합격했기 때문에, 정말 간절한 마음으로 최선을 다해 노력하는 분이라면 누구나 기회를 얻을 수 있을 것임을 확신하며 그런 분들에게 조금이나마 도움이 되고자 나의 프리코스 회고를 적어본다.

프리코스 회고


자기소개서


개인적으로 내가 최종 선발된 가장 큰 이유는 자기소개서와 소감문이라고 생각한다.
간절했기 때문에, 이를 표현하려고 많은 시간을 들였고 그 부분을 좋게 봐주지 않았을까 싶다.
자기소개서의 경우는 사적인 정보가 포함되어 있어 모든 내용을 공개하기 어려운 점을 양해 바란다.
소감문은 뒤에서 각 주차마다 제출한 전문을 수정 없이 공유할 것이다.

아래의 네 가지 큰 질문에 대해 자신의 이야기를 솔직하게 적으면 된다.

 

프로그래밍 학습과정
프로그래머가 되려는 이유

마음이 끌리는 무엇인가에 긴 시간동안 몰입해 본 경험

우아한테크코스에 참여하려는 이유

 

이 중, '마음이 끌리는 무엇인가에 긴 시간동안 몰입해 본 경험'에 대해서 많은 지원자들이 어려움을 표하는 것을 봤다. 나는 취향이나 관심사가 잘 변하는 편이 아니고, 어떤 무엇인가를 좋아하게 되기까지 많은 시간과 노력이 필요한 사람이다. 그러므로 마음이 끌리는 무엇인가라면 그것이 내 일상이 되기 때문에, 나에게는 어려운 질문이 아니었다. 뮤지컬 동아리의 회장을 맡아서 소수의 인원으로 대학 동아리 최초 라이브 뮤지컬을 올리기 까지의 과정과 그 중에 생긴 갈등, 그리고 해결방법을 적었다.
오랫동안 학생들을 지도하면서, 아이들이 점점 취미를 잃어간다는 느낌을 받았다. SNS와 유튜브에서 많은 시간을 보내기 때문이지 않을까 생각한다. 여튼, 여러 이유 때문에 시간과 노력을 필요로 하는 취미 활동을 하는 사람들이 적어져서 이러한 질문을 어려워하게 된 것이 아닐까 싶다.
혹여 미리 우아한테크코스를 준비하는 사람들이 이 글을 보게 된다면, 우아한테크코스의 자기소개서 질문에 잘 응답하기 위해서라기보다 스스로를 위해서 어떤 것을 몰입해서 오랜시간 좋아하는 경험을 꼭 해보기를  바란다.
이미 어떤 무엇인가에 긴 시간동안 몰입해 본 사람들은, 꼭 개발이 아니더라도 자신이 몰입했던 경험을 솔직하게 적으면 좋은 인상을 줄 수 있을 것이라고 생각한다.

만약 도움이 필요한 분들이 계시다면, yt930310@snu.ac.kr에 자기소개서와 고민사항을 남겨주시면 된다. 사정이 허락하는 한에서 최대한 도움을 드리도록 하겠다.

미션

1주차

4기까지는 프리코스에 참여할 인원들을 선발하기 위하여 코딩테스트를 봤다. 그동안 프리코스를 진행하며 지원자들이 많이 성장하는 모습을 보였고 긍정적인 피드백을 주었다고 한다. 그래서 '함께 성장하기'를 모토로 하는 우아한테크코스답게 이번 기수부터는 모든 지원자가 프리코스에 참여할 수 있도록 해주었다.(실제로 나의 경우, 환골탈태라는 단어도 부족할만큼의 성장을 했다!) 여하튼, 그런 연유로 (확실하지는 않지만) 저번 기수들의 코딩테스트에 나왔던 문제들이 1주차 미션으로 주어졌다.

 

1주차 미션
1주차 PR

 

3개월 정도 알고리즘을 공부한 나에게도 문제의 난이도는 높지 않았다.

역대 최다 지원자를 기록한 이번 기수였기에, 문제를 잘 푸는지로 변별을 할 수 없을 것이라고 생각되어서 내가 선발을 하는 입장이라면 어떤 지원자를 뽑아서 교육하고 싶을지를 먼저 고민했다.

우아한테크코스 사이트와 관련 유튜브 영상들을 찾아보면서, 정답일지는 모르겠지만 주어진 요구사항을 잘 준수하며 꾸준하게 자기 주도적으로 학습하여 다른 이들과 공유함으로써 편향되지 않고 성장하는 사람이라는 결론을 냈다. 그리고 설령 내가 그런 사람이 아니더라도 프리코스 과정 중에 그러한 모습으로 변해가는 모습을 보여주면 확실하게 어필을 할 수 있을 것이라고 생각했다.
그래서 주어진 요구사항을 나름대로 잘 지켰고, 일주일 내내 꾸준하게 미션에 몰입했으며, 부족한 부분을 자바 기본서를 열심히 뒤져가며 공부했고, 미션 이후에 코드리뷰를 하고 프리코스 슬랙 커뮤니티에서 다른 지원자들과 스터디를 만들어서 지난 미션에 대해 토론했다.

불과 3달이 지나지 않았는데도, 지금 시점에서 다시 내가 제출한 코드를 보면 참 부족한 부분이 많다. 그리고 이에 감사하다. 내가 그만큼 성장했다는 방증이기 때문이다. 즉, 위와 아래에 첨부한 PR의 코드들은 속된 말로 쓰레기다. 혹시 참고를 할 분들은 절대로 저 코드를 '정답'이라고 생각하면 안된다. 다만, 코드리뷰까지 포함하여 참고한다면 틀림없이 도움이 될 것이다. 추가적으로, 코드 리뷰는 얼마든지 환영이고 자유롭게 리뷰 남겨주시면 정말 감사드리겠다.

 

2주차

2주차부터 본격적으로 지난 기수들의 미션과 비슷한 형식의 미션들이 주어졌다.
프리코스 2주 전부터 지난 기수 크루들의 회고를 여기저기 기웃거리며 대략적으로 어떤 형식인지 파악을 했고, 그들이 PR한 코드를 보며 공부를 했기에 오히려 1주차보다 익숙한 느낌이었다. 여기서 주의한 점은 어떤 코드도 정답이라고 생각하지 않은 것이다. 프로그래밍이라는 것이 애초에 정답이 주어진 문제를 해결하는 행위도 아닐뿐더러 각자의 코드가 전부 달랐기 때문에 어떤 한 크루(혹은 지원자)의 코드가 정답이라고 생각해서 유사한 방식으로 생각하거나 프로그래밍을 하지 않으려고 의식하며 공부를 했다. 나의 회고를 읽는 분들도 다른 지원자와 크루들의 PR을 보면서 자신만의 정답을 만들어갔으면 한다.

 

2주차 미션
2주차 PR

 

숫자야구 게임을 구현하는 미션이었다. 나의 경우 거의 처음으로 무언가 작동하는 프로그램을 만들어 본 경험이라 정말 재밌게 프로그래밍을 했다. 2주차부터는 코수타(코치들과의 수다 타임)도 진행하며 궁금한 점도 해결할 수 있었고 공통 피드백을 통해 부족한 점과 유의할 사항들을 확인할 수 있었다. 이를 바탕으로 유의할 점들을 정리하여 여기에 맞춰서 미션을 진행하며 구현했다. 체크리스트를 만들어 코드를 제출하기 전에 항상 확인을 했다. 그럼에도 불구하고 몇몇 실수들이 있었지만 없이 하는 것보다는 획기적으로 그 수를 줄였을 것이라고 생각한다.

Git에 대한 공부를 할 수 있었고, 특히 commit에 대한 convention이 존재해서 이에 맞게 commit을 하는 것에 대한 중요성을 알았고 실제로 해보며 몸에 익혔다. Java에도 code convention이 있었고 이를 체득하는 데에 집중하는 주간이었다. 미션 자체는 크게 어렵지 않았어서 이러한 부분에 더욱 신경을 쏟았다.

 

3주차

3주차보다는 조금 더 객체지향적인 코드를 작성하기 위한 부분들에 대해 연습하고 공부했다. 함수를 분리해보며 객체화를 연습하는 데에 집중했다. 공통 피드백 또한 이러한 부분에 초점이 맞춰줘 있었기에 유의할 사항들에 이러한 점들을 추가했다.
위에서 언급했다시피 나는 프리코스 전에는 MVC 같은 가장 기본적인 design Pattern도 접해본 적이 없었고 객체지향에 대한 개념도 전무했기 때문에 미션들을 진행하면서 스터디와 코드리뷰, 추가적인 공부를 통해 학습했다. 배운 것을 바로 적용해 볼 수 있었기 때문에 더 active한 학습이 되었던 것 같다. 책에서만 내용을 보고 암기식으로 학습을 했다면 효과가 적었을 것이다. 그리고, 이 점이 우아한테크코스에서 지원자들이 프리코스를 통해 경험해보기를 바라는 것들 중에 하나일 것이다.

 

3주차 미션
3주차 PR

 

로또를 구현하는 미션이었는데 일반적인 개념과는 살짝 다른 구현을 해야했다. 2주차와 마찬가지로 구현 자체는 어려운 편이 아니라고 생각한다. 다만 이 미션에서는 객체지향적인 방법론들을 적극적으로 적용할 수 있는 요소들이 많기 때문에 이에 집중해서 코드를 짰었다.

프리코스를 진행하며 정말 잘하는 지원자분들의 코드들을 볼 기회가 있었다. 사실 내가 본 모든 지원자들의 코드가 나의 코드보다 객관적으로 훌륭했다. 다른 사람의 코드를 본 경험도 처음이고, 다른 사람에게 코드를 보여준 경험도 처음이었다. 많은 코드리뷰들을 받고, 또 하면서 자존감과 자신감이 상당히 떨어졌다. 30살 비전공자로서는 20대 초반 전공자들과 비교되어서 선발당해야하는 과정에 참여하는 것만으로도 이미 어느정도 정신적, 감정적 어려움이 있었는데 다른 이들의 제출물을 모두 볼 수 있으니 더욱 그런 점이 크게 다가왔다.
하지만 코수타에서 '자기만의 속도로 가라, 자괴감을 느낄 시간에 배울 점을 찾아라' 라는 조언을 포비님이 해주었고 이 말이 정말 든든한 길잡이가 되어주었다. 선발되어서 우아한테크코스에 참여하는 것도 중요하겠지만 이 프리코스 과정을 통해서 내가 얼마나 성장하는지에 집중하라는 말 또한 큰 도움이 되었다. '어떻게 해야 더 잘 보여서 선발될 수 있을까'를 고민할 resource를 '어떻게 해야 더 clean한 code가 될까' 등의 고민에 쓰니 실제로 많이 배우고 성장할 수 있었고, 그래서 더 좋은 code를 작성하고 진실된 소감문을 작성할 수 있었다.
이후 기수 선발에도 모든 지원자가 프리코스에 참여하게 될 가능성이 높기 때문에, 지원하는 분들은 이러한 마음가짐을 견지하고 프리코스에 임하면 개인적으로도 큰 성과가 있을 것이고 선발될 확률 또한 높아질 것이다.

 

4주차

이전 미션들은 전 기수들의 모집에도 나왔던 적이 있었기 때문에 참고할 수 있는 source들이 있었을 것이다. 하지만 4주차의 미션은 매년 그랬듯이 새로운 문제가 나왔기 때문에 그 동안 주체적으로 학습을 하며 이를 적용해왔는지를 검증할 수 있는 최종테스트 전의 첫번째 관문으로 보였다. 2주차, 3주차에 걸쳐서 MVC pattern과 layered architecture를 학습했고 적용해봤기 때문에, 큰 틀은 이전과 같은 형태로 잡고 DTO를 추가로 학습하고 적용해봤다. 이렇게 주차를 지날수록 실제로 성장하는 모습을 보여주는 것을 추천한다.

 

4주차 미션

4주차 PR


넷플릭스 오리지널 '오징어 게임'에 나왔던 다리 건너기 게임을 구현하는 미션이었다. '오징어 게임'을 재밌게 봤기 때문에 이번 미션도 재밌게 구현할 수 있었다.
이번 기수에는 전 기수와는 다르게 test code를 작성하고 unit test를 적극 권장하고 이에 적합하도록 함수를 분리하라는 내용도 공통 피드백에 있었기 때문에 test code를 작성하는 데에 집중을 했다. 그리고 이에 맞춰서 구현을 진행했다. 실제로 경험해보니 마구잡이, 되는대로 구현했던 1,2주차 때보다 더 refactoring 등의 보수 과정에서 간편했다. 살짝 TDD의 장점과 중요성을 맛 본 느낌이었다.
이처럼 공통 피드백과 코수타에서 언급하는 내용들을 잘 정리하고 내가 얻어가야하는 점이 무엇인가를 먼저 고민하고 그에 맞춰서 미션을 진행하다보면 저절로 성장해있는 자신을 발견할 수 있을 것이다. 또한 그런 능력을 갖추고 노력하는 인재들을 우아한테크코스에서도 원하지 않을까 생각해본다.

 

소감문


위에도 언급했다시피 나의 코드는 다른 지원자들에 비해 굉장히 별 볼 일 없고 개발자가 되기로 결심한 지 이제 막 6개월 정도 된 시점이었기 때문에 많이 부족했다. 이런 내가 선발될 수 있던 가장 큰 이유는 내 생각에는 소감문에서 보여지는 간절함이었을 것 같다. 자기소개서만큼이나 소감문에도 긴 시간을 들였다. 어떤 주차에는 구현의 시간과 거의 비등할 정도로 소감문에 정성을 많이 쏟았다.

 

[우아한테크코스 5기] 프리코스 1주차 소감문

[우아한테크코스 5기] 프리코스 2주차 소감문

[우아한테크코스 5기] 프리코스 3주차 소감문

[우아한테크코스 5기] 프리코스 4주차 소감문

 

개발자가 되기로 결심했지만 방향도 잡지 못하고 알고리즘 문제나 매일 하나 정도씩 풀며 취업준비를 한다고 뻗대던 나였기에 우아한테크코스의 프리코스에 참가한 것이 정말 잘한 선택이라고 생각됐다. 그리고 혼자서 외롭게 준비하던 내가 약 3800명의 지원자들과 함께 고민하고 스터디를 진행하고, 코드리뷰로 의견을 주고받는 경험을 하게 돼서 진심으로 우아한테크코스에 감사했다. 이후에 지원하는 분들도 미션을 진행하며 느끼는 감정을 담아서 진실되게 소감문을 적는다면 좋은 결과가 있을 것임을 믿어 의심치 않는다.

 

결과


오랜 기다림 끝에 최종 코딩 테스트의 결과 메일이 도착했다.
정말 감사하게도 기회를 가지게 되었다.
스터디를 함께한 지원자들 중에 정말 잘하는 분들도 대거 낙방했다는 이야기를 들었기 때문에 위에서 언급한 기준들이 중요하게 작용하지 않았나 싶다.
최종 코딩 테스트에 대한 회고는 다음 글에 이어적도록 하겠다.