지원서


지원 계기

우아한테크코스를 처음 알게 된 건 이동욱 개발자님의 블로그를 통해서였다.

비전공자인 나에게 개발 역량을 빠르게 증진 시키기 위해선 부트캠프와 같은 오프라인 교육이 필요하다고 생각했다.

특히 자바 백엔드 개발자로서 성장하기 위해서는 우아한테크코스가 제일 좋은 교육기관이라 생각하여 해당 교육과정에 합류하기 위해 많은 준비를 했다.

우테코를 지원하기 위해선 아래와 같은 질문에 대한 답변을 준비해야 했다.


질문

  1. 프로그래밍 학습 과정과 현재 자신이 생각하는 역량은? (1000자)
  2. 프로그래머가 되려는 이유는 무엇인가요? (1000자)
  3. 마음이 끌리는 무엇인가에 긴 시간 동안 몰입해 본 경험이 있나요? (1000자)
  4. 우아한테크코스에 참여하려는 이유는 무엇인가요? (500자)

답변 고려 사항

우테코가 지원서를 상당히 중요하게 생각한다는 것을 다양한 후기들을 통해 알 수 있었기에 해당 질문들을 답변하기 위해 이 질문들을 답변하기 위한 경험들을 위주로 준비했다.

특히 우테코는 원하는 인재상을 굉장히 중요하게 생각하는 듯 하여 지원서에 내가 우테코에 잘 맞는 인재상임을 어필하기 위해 준비한 경험들을 인재상에 맞춰 지원서에 녹여내도록 노력했다.

이번 4기에는 인재상과 교육 대상자 뿐만 아니라 새롭게 야생에서 살아남기 위한 역량을 특히 강조했기에 이 부분들을 특히 더 집중적으로 공략했던 것 같다.


인재상

  1. 일반 사용자용 서비스를 개발하는 회사가 필요로하는 역량을 키워 재교육 없이 현장의 업무를 바로 시작할 수 있는 인재
  2. 프로그래밍에 대한 내적 동기를 가지고 있어 평생 동안 자기 주도적으로 학습할 수 있는 역량을 가진 인재
    • 평생 동안 학습해야하는 어렵지만 재밌는 직업
    • 내적동기가 상당히 중요함 프로그래밍을 재밌어해야지 좋은 개발자로 성장할 수 있음
  3. 프로그래밍과 관련한 기본 역량 외에 다른 사람들과 소통하고 협업하면서 같이 성장할 수 있는 소프트스킬을 갖춘 인재
    • 복잡도 및 난이도가 높아짐에 따라 소통과 협업이 정말 중요함

교육 대상자

  1. 한 가지 일에 몰입해 성공한 경험이 있는 사람
  2. 최소한의 프로그래밍 역량이 있는 사람
  3. 현장에 필요한 문제해결역량을 키우는 것에 관심이 많은 사람

야생에서 살아남기 위해서 어떤 역량이 필요할까요?

  • 복잡한 상황을 지혜롭게 해결하는 역량
  • 특정 문제를 해결하는데 필요한 집중력
  • 끝이 보이지 않는 막막한 현실을 이겨낼 정신력
  • 함께 문제를 풀기 위한 소프트 스킬

몰입 경험

많은 지원자들이 3번 문항에서 많은 고민을 했을 것이라 예상된다.

우테코를 준비하던 시점 나는 군 복무 중에 있었기 때문에 복무 기간 동안 알고리즘을 공부하여 몰입 경험을 쌓아 해당 문항을 대비하고자 했다.

약 7개월 간의 알고리즘 공부와 1일 1커밋 그리고 개인적으로 만든 간단한 애플리케이션 정도를 준비하여 3번 문항에 해당 경험들을 통해 얻은 것, 어려웠던 것, 극복한 경험 등을 인재상에 맞춰 잘 녹여내도록 하였다.

우테코를 준비하시는 분들이라면 다음 지원 시기가 오기 전까지 무언가 꾸준히 몰입해보는 경험을 갖는게 상당히 유리할 것이라고 생각하고 지원서 완성 이후에도 여러 번 첨삭하여 다양한 사람들에게 피드백 받는 것이 굉장히 큰 도움이 될 것이라고 생각한다.

참고 페이지


코딩테스트


기본 정보

우테코의 코딩테스트는 총 7문제로 이루어져 있으며 총 4시간의 시간이 주어진다.

1차 코딩테스트는 본인이 제일 자신 있는 언어로 볼 수 있기 때문에 기존에 공부하던 언어가 있다면 해당 언어를 활용해 문제를 푸는 게 효과적이라고 생각한다.

반복문, 조건문, 문자열 처리, 배열, 자료구조 등 사용하고자 하는 언어의 숙련도만 준비되어 있다면 크게 어려움 없이 테스트를 치를 수 있을 것이라 생각한다.

문제 유형

1기2기3기4기
1번거스름돈최단거리 피타고라스성적 * 가중치1, 2, 3 으로 주어지는 숫자 평균값 구하기
2번nxn 토지매매시간값 문자열 정리문자열 사칙연산HH:MM 형태로 주어지는 문자열 시간 계산
3번알파벳 거꾸로 출력쿠폰 사용 시 가장 저렴하게마틴매매법음식의 재료와 가격이 주어졌을 때 음식의 이윤 계산
4번책 양쪽 페이지 계산배달앱 로그인, 장바구니, 주문nxn 1~9 까지 숫자 찾기처음과 끝이 이어지는 문자열 최대 길이 구하기 (”aaa” 와 같은 무한루프 고려)
5번369게임요리할 때 n인분에 따라 가격문자열 특정 코드 삽입격자패턴에 지그재그로 숫자 채우기 (1000 * 1000 시간 초과 고려)
6번티켓팅 성공여부같은 글자가 연속포함부정행위출퇴근 휴가 시간 계산 (12AM/12PM 예외처리 중요)
7번암호화친구 추천 알고리즘로봇청소기삼각형으로 배치된 문자열 회전 시 새로 생기는 문자열 출력

난이도

우테코의 코딩테스트는 그렇게 어려운 수준은 아니었다.

각종 후기들에선 BFS/DFS 와 같은 간단한 알고리즘 지식이 요구된다 하여 해당 알고리즘들을 공부했지만 4기 코딩테스트에서는 전혀 찾아볼 수 없었다.

백준 티어로 따지면 실버5 ~ 골드5 수준의 구현 문제들이었고 앞서 말한 것과 같이 특정 알고리즘 지식은 전혀 필요하지 않았다.

그래도 전 기수 문제들의 정보를 취합해보면 적어도 BFS/DFS 정도는 다룰 줄 알아야 어렵지 않게 코딩테스트를 통과할 수 있을 것 같다.

3문제 정도 예외를 놓친 부분이 있었지만 7문제 모두 풀 수 있었기에 다행히 최저기준은 통과해 1차 심사를 합격한 것 같다.

공부 방법

알고리즘을 어느 정도 공부했다면 문제를 해결할 수 있는 패턴을 찾는 연습을 하는 것이 좋다고 생각한다.

필자의 경우 백준에서 비슷한 난이도의 문제들을 정리한 연습 문제를 바탕으로 매일 4시간씩 시간 안에 모든 문제를 푸는 연습을 했다.

본인 만의 연습 문제를 만들어서 미리 테스트 환경을 경험해보는 것도 좋은 전략이라고 생각한다.

연습 문제

코딩테스트 준비

프리코스


1주 차 - 숫자 야구 게임

2주 차 - 자동차 경주 게임

3주 차 - 자판기


최종 코딩테스트


기본 정보

최종 코딩테스트는 3주간 프리코스에서 경험했던 방식의 구현을 5시간 내에 구현해야 했다.

3주간 프리코스를 성실히 임하고 피드백을 꼼꼼히 수용했다면 크게 어려울 것은 없을 것 같다.

페어 매칭 프로그램 구현

이번 4기 최종 코딩테스트는 페어 매칭 프로그램을 구현하는 것이었다.

프리코스를 통해 자바를 처음 접해봤던 필자이기에 상당히 어려움이 있었지만 기능 구현 한 가지를 제외하고 모두 구현할 수 있었다.

기존에 1주에 완성하던 프로그램을 5시간 내에 완성하고자 하니 시간이 굉장히 촉박했던 것 같다.

다행히 기존 프리코스를 통해 자바 문법을 어느 정도 숙지하고 구조 설계에 대한 지식을 얕게 나마 갖고 있었던 것이 큰 도움이 되었던 것 같다.

다른 지원자들 역시 어려움을 느꼈던 것인지 많은 사람들이 구현을 완성하지 못한 채로 제출을 했다고 한다.

자바를 미리 공부하여 숙련된 상태로 프리코스 및 최종 코딩테스트를 치른다면 큰 어려움 없이 프로그램을 완성할 수 있을 것이라 생각한다.


최종 합격


영겁의 기다림

최종 코딩테스트 이후 완성하지 못했다는 불안감에 2주를 살았던 것 같다.

기다리는 2주 동안은 정말 실컷 놀고 매일 알고리즘 한 문제씩만 푸는 정도를 하루하루를 최대한 여유롭게 보내도록 노력했던 것 같다.

하지만 대망의 최종 합격 발표 날이 다가오자 급속도로 상승되는 불안감에 오후 2시부터 카페에 눌러 앉아 1시간 동안 발표를 기다렸다.

대망의 오후 3시. 시간을 잘 지키는 우테코임에도 불구하고 아무 연락이 오지 않는다. 떨어진건가?

아니다. 다른 지원자들 역시 메일이 오지 않는다고 한다. 그렇게 1분이 지나자 하나 둘 씩 메일이 도착했다고 연락이 온다. 나는? 하는 순간 메일이 도착했다.

Untitled

손이 부들부들 떨리고 기쁜 마음을 주체하지 못했다.

가쁜 숨을 가다듬고 가족들과 친구들에게 합격 소식을 전했다.

군에서 부터 열심히 했던 2021년의 보상과 함께 행복한 2022년을 맞이할 수 있게 되었다.