본문 바로가기
후기

우아한테크코스 5기 지원 후기 + 최종 합격(백엔드)

by kadokok 2022. 12. 31.

 우아한테크코스 5기 최종 합격(백엔드) 

안녕하세요. 이번 글은 우아한테크코스 5기 지원 후기에 대한 글입니다.
12월 28일 오후 2시 59분쯤에 메일로 최종 합격 안내를 받았습니다! 정말 기쁘네요. 지원 후기를 쓸지 말지 고민을 했지만, 다행히도 결과가 좋았으니 다음 기수에 지원하실 분들에게 도움이 될 수 있도록 저의 경험을 공유하고자 합니다.


 서류 지원 

저는 우아한테크코스에 지원해야겠다고 마음먹은 때가 서류 마감 3일 전쯤이었습니다. 당시의 저는 군인 신분이었고, 일과가 끝난 말년 포지션에 있었어서 슬슬 전역 후에 무엇을 할지에 대해 고민하던 시기였습니다. 평소와 다름없이 사지방에서 알고리즘 공부나 하면서 백준을 풀고 있던 찰나, 문득 제 머리속에서 생각 하나가 스쳐 지나갔는데, "개발 공부는 언제 하지"였습니다. 군 입대 전에 지원했던 소프트웨어 마에스트로에서 최종 면접 탈락을 겪었던 저는 "개발 능력 부족"에 대한 위기의식을 가지게 되었는데요. 하지만 그런 거 있죠. "못하는 건 건드리기 싫다".. 뭐 이런 핑계 때문에 지금까지 개발 공부를 애써 모르는 척하며 지내왔습니다. 그런 도중에 더 이상은 이렇게 살면 안 되겠다는 생각에, 알고리즘은 잠시 내려놓고 개발 공부에 뛰어들기로 마음먹게 되었습니다. 그러다가 어찌어찌해서 우아한테크코스 지원까지 오게 되었네요.

 

먼저 서류 지원을 할 때 물어보는 질문들은 우아한테크코스 지원 탭에 다 적혀있습니다. 아마 서류 모집 기간 전부터 질문들을 볼 수 있던 것 같은데, 혹시나 지원하실 생각이 있으시다면 미리 질문들에 대한 답변을 생각해놓는 것도 괜찮을 것 같아요. 저는 비록 3일 전부터 쓰기 시작했어서 급한 감이 없지 않아 있었는데, 이런 불상사가 생기지 않도록 미리미리 하시는 걸 추천드립니다.

 

최종 결과가 모두 나온 뒤의 시점에서 돌이켜보면, 서류 지원서의 내용이 굉장히 중요하게 작용하는 것 같습니다. 글 밑에서도 다시 언급하겠지만, 우아한테크코스 서류 지원서는 단순히 1차 검문소 같은 느낌이 아닙니다. 지원하면서 겪으실 모든 평가 과정에 지원서가 포함되어 있습니다. 최종까지도요. 그러니 최대한 자신의 가치관과 경험을 진솔하게 녹여서 시간이 좀 많이 걸리더라도 지원서에 투자하시는 것을 추천드립니다.


 프리코스 

낯설면서도 신기하고 재미있던, 우아한테크코스 지원 과정의 꽃입니다. 과정 별로 사용할 수 있는 언어가 정해져 있는데, 5기 기준으로 백엔드는 자바, 프론트엔드는 자바스크립트, 안드로이드는 코틀린으로 진행할 수 있습니다. 또한, 깃과 깃허브는 모든 과정에서 공통적으로 쓰입니다.

 

먼저 프리코스는 99% 자기주도적으로 학습하고, 코드를 구현해서 미션을 진행하는 방식입니다. 각 미션은 일주일 동안 자신만의 방식으로 구현해서 제출하면 되고, 총 4주 차 분량의 미션이 있습니다. 또한 강의 같은 것은 따로 없고, 대신 주차별 미션이 끝나면 구글 문서 형식으로 된 공통 피드백을 주십니다. 이게 꽤 맛돌이라서 도움이 많이 됐습니다.

 

프리코스 미션은 단순한 기능을 가진 프로그램을 구현하는 겁니다. 이게 결과물만 보게되면 꽤나 단순해 보이는데, 구현하는 과정이 생각보다 힘들었습니다.
단순히 의식의 흐름대로 구현하는 것이 아니라, 최대한 객체지향적으로 클래스를 설계하고, 필요한 기능들은 무엇이 있는지 등등을 생각하는 과정이 필요해서 코드 구현이 다가 아니라는 것을 깨닫게 되었습니다. 익숙하지 않으시다면 분명 어려우실 수 있는데, 직접 설계를 해보고 구현해보면서 많이 깨지다 보니 확실히 실력이 빠르게 올라가는 듯한 느낌을 받곤 했습니다. 무엇보다도 직접 해보시면 어렵긴 해도 재미가 있습니다.

 

또한 프리코스의 진정한 매력은 따로 있는데, 바로 오픈소스라는 점입니다. 서로 타인의 코드를 리뷰해주고, 다양한 주제로 양질의 아고라가 열리는 것을 보시면 서로 성장한다는 느낌이 어떤 것인지 알 수 있습니다. 여기 깃허브 프리코스 커뮤니티 탭을 통해 확인하실 수 있고, 혹시나 프리코스에 참여하게 되신다면 커뮤니티를 적극 활용해보시는 걸 추천드립니다. 양질의 글들이 많이 올라와있고, 많이 배울 수 있었습니다.

여기까지가 전체적인 프리코스 설명이었고, 저는 어떻게 프리코스를 준비하고 진행했는지 좀 끄적여보자면,

 

 1. 오픈소스의 장점을 최대한 활용하기 

이전 프리코스 미션들은 깃허브에 모두 공개되어있습니다. 그래서 미션들이 어떤 느낌으로 나오는지 미리 체험할 수 있습니다. 또한, 구글링을 해보시면 이전 기수에 합격하신 분들의 미션 PR을 찾을 수 있는데, 이게 많이 도움이 됐습니다. 서류 마감 후에 프리코스 시작 전까지 이틀정도 시간이 있었는데, 저는 이 기간 동안 전 기수분들의 PR 커밋들을 정말 많이 봤습니다. 저의 경우에는 커밋을 순서대로 따라가며 코드를 읽으면서, "이 사람은 이런 순서로 기능을 구현했구나", "기능 구현 목록은 이런 식으로 작성하는구나", "커밋 컨벤션은 이런 식이구나", "이럴 때는 이런 식으로 코드를 짜면 되는구나"와 같이 학습했습니다. 커밋을 쭉 따라가다 보면, 설계나 구현의 흐름이 보이는데, 저는 이런 걸 최대한 따라 하려고 노력했던 것 같습니다.

또한 위에서도 언급했다시피, 커뮤니티를 잘 활용하시면 좋을 것 같습니다. 저는 정말 객체지향적인 것과는 거리가 먼 사람이었는데, 커뮤니티 글들 보면서 많이 배웠던 것 같습니다. 커뮤니티의 분위기도 너무 좋고 해서 저도 정말 끼고는 싶었지만, 정말 말 그대로 실력이 부족해서 적극적으로 활동하진 못한 것이 참 아쉽습니다. 가끔은 여기가 알고리즘 커뮤니티였다면 어땠을까 하는 상상을 하곤 했을 정도로...

 

 2. 미션 소감문 열심히 작성하기 

아무래도 다른 분들보다 OOP 실력의 깊이감이 얕다는 걸 알고 있었어서, 소감문이라도 열심히 작성하려했던 기억이 납니다. 사실 프리코스 마지막 주차가 올 때까지는 몰랐는데, 마지막 미션 안내 메일에 이런 내용이 있었습니다.

그렇습니다.. 미션 소감문도 굉장히 중요하다는 걸요.. 각 주차 미션들에는 학습 목표가 함께 제시되는데, 저는 이 학습 목표에 맞춰서 소감문을 작성하려고 노력했습니다. 만약 학습 목표가 클래스 분리라면, 어떤 어려움이 있었고, 이를 해결하기 위해 어떤 식으로 클래스 분리를 시도하려고 했고, 클래스 분리를 통해서 어떤 이점이 있었는지를 최대한 경험적으로 풀어내려고 노력했습니다.

 

 3. 코수타 챙겨보기 

코수타(코치와 수다 타임)라고 프리코스 미션 시작 전에 주차마다 진행하는 유튜브 라이브가 있습니다. 코수타를 통해서 코치님들과 지원자분들이 실시간으로 소통을 할 수 있는데요, 재미도 있고 실제로 프리코스를 진행하면서 도움이 될만한 내용이 꽤나 많이 나옵니다. 저는 코수타를 통해서 더 열심히 미션에 임할 동기부여를 많이 얻기도 했고, 합법적(?)으로 쉬는 기분이라 매번 챙겨봤던 것 같습니다.


 최종 코딩 테스트 

감사하게도 저에게 최종 코딩 테스트의 기회가 찾아왔었습니다. 그렇지만 마냥 좋아할 수만은 없었던 것이, 프리코스가 끝나고 1차 발표까지 3주 정도 기간이 있었습니다. 하지만 프리코스 3, 4주차때 전역 전 휴가를 몰빵 했던 저는 3주 기간 중 2주를 부대에서 보내야 했는데요.. 그 기간 중에는 격리도 포함되어있어서 사지방을 이용할 수 없었고, 부대 내부 분위기도 어수선해서 쉽지 않은 상황이었습니다. 물론 이 모든 걸 감안하고 지원한 것이긴 했지만요..

 

그렇게 시간이 흘러서 1차 심사 발표 메일이 전역 다음날 왔고, 다행히도 붙어서 캠퍼스 구경을 할 수 있었습니다. 발표난뒤부터는 정말 죽었다 생각하고 코딩 테스트까지 남은 3일간 모든 걸 쏟아부었습니다.

 

일단 시험 시간은 5시간으로 제한 돼 있기 때문에, 일종의 행동강령같은 것을 만들어서 시험장에 가서 그대로 따라 하려고 했습니다. 도움이 되실진 모르겠지만 제가 했던 방법은 다음 세 가지 정도입니다.

 

 1. 기능 구현 목록에 최소 30분 이상 투자하자 

이건 다른 분들도 대부분 이렇게 하신 것 같습니다. 기능 구현 목록에 시간을 투자한다는 건 구현을 하다가 중간에 길을 잃지 않기 위함입니다. 시간이 지날수록 코드가 많아져서 전체적인 흐름을 한 번에 파악하기가 쉽지 않습니다. 그때마다 어떤 기능을 더 구현해야 하는지 알고 들어가는 게 훨씬 효율적이라는 생각이 들었습니다. 초반부터 바로 코드 치는 것보다는, 일단 비즈니스 요구사항 해석에 시간을 투자해서 전체적인 틀을 잡고 들어가는 것을 추천드립니다.

 

 2. View를 먼저 구현하자 

여기서 View는 MVC 패턴에서 등장하는 View의 개념입니다. 이 친구를 먼저 구현하는 이유는 그냥 단순해서입니다. 입출력에 대한 기능을 먼저 구현해보며 머리를 예열하는 느낌을 받았어서 괜찮은 방법이라고 생각합니다.

 

 3. 잘하려 하지 말자 

좀 역설적인 표현이긴 하지만, 전 이런 마인드가 시험장에서 도움이 됐던 것 같습니다. 너무 잘하려고 하다보면 오히려 긴장이 되더라고요. 여러 번 코딩 테스트를 봤었지만, 내가 잘하고 싶다 해서 잘 되는 게 아니라는 걸 많이 느꼈습니다. 그냥 평소처럼, 내 능력만큼만 보자는 마인드가 시험장에서 훨씬 편하다고 느꼈습니다. 또한 최종 코딩 테스트 시작 한 시간 전쯤 이런 메일이 왔었습니다.

그래서 처음부터 클래스 설계를 예쁘게 해서 구현하려고 노력하기 보다는, 일단은 필요한 기능들이 모두 동작할 수만 있도록 구현하는 데 집중했던 것 같습니다.

 

제 이야기를 조금 더 해보자면, 최종 코딩 테스트를 선릉 캠퍼스로 가게 되었는데 시간이 꽤 걸려서 지각할 뻔 했습니다.. 아빠가 차로 데려다준다고 하셔서 준비를 좀 여유롭게 하기도 했고, 시간대가 주말 점심이라서 차가 별로 안 밀릴 것이라는 아주 우매한 생각을 저질러버린 것이죠.. 안내 메일에는 시험장에 최소 12시 40분까지 도착해야 한다는 내용이 있었는데, 예상 도착 시간이 12시 25분이라서 처음에는 별 생각이 없었습니다. 하지만 곧 차들이 줄을 서서 기어가고 있었고.. 예상 도착 시간은 끝을 모르게 늘어나고 있었습니다. 전 예상 도착 시간이 교통 체증을 모두 고려해서 종합적으로 판단된 시간이라고 생각하고 믿고 있었는데.. 기술에게 배신당한 이 기분.. 매우 쫄렸습니다. 예상 시간이 12시 51분으로 찍혀있었는데, 정말 다행히도 아빠가 선릉 주변 지리를 잘 아셔서(숏컷) 12시 40분에 딱 도착할 수 있었습니다.

 

그렇게 무사히 도착해서 세팅을 하고 코딩 테스트가 시작됐는데, 뭔가 느낌이 싸해서 push를 해봤더니 찰떡같이 에러가 났습니다. 순간 멘탈이 흔들렸던 저는 애써 이런 생각을 했는데요.. "최종 코테라고 push가 안 되는 시련을 심어놓으신건가? ㅎㅎ;;" 예.. 진짜로 그런 줄 알았습니다. 그때 전날 밤에 제가 했던 행동이 머리 속을 딱 지나쳤습니다.

 

분명 토큰 만료까지 4일정도 남은 시점이었고, 재발급 안 해도 코딩 테스트 때 문제없이 쓸 수 있었는데 그냥 expire 단어가 불길해서 재발급했던 제가 딱 생각이 나더라고요. 이때만 해도 전 재발급하면 깃허브 인증이 계속 유지되는 줄 알았습니다. 근데 아니더라고요 ㅎㅎ.. 어쨌든 뭐가 문제인지 대충은 인지하고 침착하게 토큰 값을 찾는데 아뿔싸.. 토큰 값은 재확인이 안된다는 걸 깨달았습니다. 메모장에도 안 적어놓은 저를 원망하기 시작하면서 진짜 멘붕이 왔었습니다. 아직 깃허브 울렁증이 있어서 시험 때 이런 거 건드리기 진짜 싫었었는데... 결국 다시 재발급해서 인증을 마치게 되었습니다. 이때 시간을 보니까 거의 20분 정도 까먹었더라고요. 멘탈이 매우 흔들렸었지만 어찌어찌 잘 부여잡고 마무리했던 것 같습니다..

 

캠퍼스 내부는 되게 예뻤습니다. 코수타에서만 보던 배경을 실제로 보니 너무 신기했었고, 코치님들도 연예인보는 기분이었습니다. 캠퍼스 내부는 따로 찍은 게 없어서 사진이 없네요. 그냥 눈으로만 봤습니다.

전리품으로 귀여운 펜과 노트도 받았습니다. 


 끝으로 

일단 거의 두달 가까이 되던 긴 지원 과정 속에서 좋은 결과를 얻게 되어 정말 기쁩니다. 우아한테크코스 프리코스 진행하면서 정말 많이 배웠고, 앞으로의 본 과정도 정말 기대가 됩니다. 일단 미래의 팀원들에게 피해가 안 가도록, 본 과정 시작 전까지 공부를 계속해서 실력을 키우려고 합니다.

이번 인프런 연말 할인 때 스프링 강의를 좀 사놨는데, 이거 열심히 들으면서 정리를 해봐야겠습니다. 확실히 재밌긴 하더라고요. 그리고 제 마음의 고향인 백준에서 그간 못했던 알고리즘 공부도 좀 하면서 살아야겠네요.

 

글을 쓰다보니 좀 많이 길어진 것 같네요. 마지막으로 제가 강조하고 싶은 말은 바로바로 "도전"입니다. 본인의 실력이 안될 것 같아서 지원하기도 전부터 지레 겁먹는 것보다는, 일단은 저질러보고 그때그때 내가 할 수 있는 최선만 다해보는 거죠. 저도 좋지 않은 환경에서 좋지 않은 실력으로 시작했지만, 결국은 좋은 결과를 만들었으니까요! 설령 결과가 좋지 않더라도, 도전해보았다는 것만으로도 충분히 가치 있고 멋진 일입니다. 분명 프리코스만으로도 많은 걸 배우실 수 있을거에요.

 

마지막으로 지원 과정 간 제출했던 모든 PR 링크를 올려놓고 마무리하겠습니다. 읽어주셔서 감사합니다. 다들 화이팅!!

 

[프리코스 1주 차 미션]

https://github.com/woowacourse-precourse/java-onboarding/pull/222

[프리코스 2주 차 미션]

https://github.com/woowacourse-precourse/java-baseball/pull/99

[프리코스 3주 차 미션]

https://github.com/woowacourse-precourse/java-lotto/pull/52

[프리코스 4주 차 미션]

https://github.com/woowacourse-precourse/java-bridge/pull/549

[최종 코딩 테스트]

https://github.com/woowacourse-precourse/java-menu/pull/65

댓글