본문 바로가기
우아한테크코스 5기/회고록

우아한테크코스 5기 모바일 안드로이드 선발 과정 전체 정리

by 코드 이야기 2023. 1. 17.
728x90

 

서론

소중했던 우테코 5기의 선발 과정을 잊지 않기 위해,

혹시라도 추후에 지원하시는 분들께 도움이 될까 싶어서,

우테코 지원 과정과 이를 통해 배운 점, 모바일 첫 기수 합격 과정 등의 정보를 적어보고자 합니다!

 

선발 과정 및 일정

  1. 서류지원 : 2022.10.17. 10:00 ~ 2022.10.24. 10:00
  2. 프리코스 : 2022.10.26. ~ 2022.11.22.
    (매주 수요일 오후 3시 과제 공개, 화요일 과제 마감일)
  3. 1차 합격자 발표 : 2022.12.14. 15:00
  4. 최종 코딩테스트 : 2022.12.17. 13:00~18:00
  5. 최종 합격자 발표 : 2022.12.28. 15:00

 

 

1. 지원 (자소서)

  • 고등학교/대학교 전공을 포함하여 프로그래밍 교육 이력을 작성해 주세요. (200자 이내)
    전공, 부전공, 복수전공, 그 외 교육 기관이 있는 경우 쉼표로 구분. 해당 사항이 없는 경우, "없음"을 입력해 주세요. (예. OO학과, 국비지원, 부트캠프, 독학) 
  • 프로그래밍 학습 과정은? (1000자 이내)
    우아한테크코스는 프로그래밍에 대한 기본 지식과 경험을 가진 교육생을 선발하기 때문에 프로그래밍 경험이 있는 상태에서 지원하게 됩니다. 프로그래밍 학습을 어떤 계기로 시작했으며, 어떻게 학습해 왔는지를 구체적으로 작성해 주세요. 외적인 요인(예를 들어 컴퓨터 전공)이 아닌 자기 주도적으로 학습 계획을 세우고, 학습한 과정을 작성할 것을 추천해요.
  • 프로그래머가 되려는 이유는 무엇인가요? (1000자 이내)
    어떤 계기로 프로그래머라는 직업을 꿈꾸게 되었나요? 프로그래밍을 배워 최종적으로 하고 싶은 일이 무엇인지, 프로그래밍을 통해 만들고 싶은 소프트웨어가 있다면 무엇인지에 대해 작성해 주세요.
  • 마음이 끌리는 무엇인가에 긴시간 동안 몰입해 본 경험이 있나요? (1000자 이내)
    우아한테크코스는 약 10개월 동안 꾸준히 학습해야 수료할 수 있는 과정입니다. 지금까지 살아오면서 마음이 끌리는 무엇인가에 최소 1년 이상을 투자해 결과물을 만들어 낸 것이 있다면 공유해 주세요. 반드시 소프트웨어와 관련된 일이 아니어도 괜찮습니다. 어떤 성과를 냈는지도 중요하지만 어떤 과정과 노력을 통해 어려움을 극복하고, 성과를 만들어 냈는지 구체적으로 작성해 주세요.
  • 우아한테크코스에 참여하려는 이유는 무엇인가요? (500자 이내)
    우아한테크코스는 자기주도적으로 학습해야 하며, 동료들과 공동으로 학습하고 같이 성장하는 방식으로 진행합니다. 지금까지 우리가 흔히 알고 있는 교육 과정보다 훨씬 더 힘들 수 있습니다. 또한 10개월이라는 시간이 여러분의 삶에 상당히 중요한 시간일 수 있습니다. 이런 중요한 시기에 우아한테크코스 교육 과정에 참여하고 싶은 이유는 무엇인가요?

(필자의 자소서 내용은 공개하지 않도록 하겠습니다.

지원 질문에 대해 자기 소개를 잘 하는 방법은 이미 아주 많은 곳에서 알려주고 있습니다.)

 

자소서는 필자 자신의 과거를 돌아보기도 하고, 미래를 그리기도 하며 무엇보다도 솔직하게 적으려 노력하였습니다.

 

이 내용으로 인해 합격하게 된다면 1년간 우테코에 참여하게 될 것이고,

우테코 과정에 잘 참여할 수 있을지, 잘 어울릴 수 있을지를

1차적으로 확인할 수 있는 기회일 것이라 생각했기 때문입니다.

 

이 내용으로 인해 떨어지게 되더라도 '나와는 맞지 않는 과정이었을 수도 있겠구나' 하고

납득할만한 이유가 되었으면 했습니다.

 

또한, 저는 우테코에 모바일 과정이 생긴 것을 뒤늦게 알게 되어
자소서를 작성할 수 있던 시간은 1주일도 채 없던 것 같습니다.

때문에 지금 돌아보면 중복되는 말도 있고, 정돈되지 않은 문장들도 있었습니다.

다소 문장이 매끄럽지 못하더라도 하나하나 살펴봐 주시고, 내용을 더 중요하게 보시는 것 같습니다.

 

 

2. 프리코스 

과제

어려운 알고리즘을 접하고, 사용하고, 시험하는 단순히 어려운(?) 방식이 아니었습니다.

문제에 대한 조건을 추가하며 각 상황에 더 나은 방법(코드)을 찾고 고민하는 방식이었습니다.

이 과정 속에서 언어의 문법들, 객체를 잘 다루는 방법, 코드를 잘 관리하는 방법, github 등을 접하며 자연스럽게 실력을 쌓을 수 있었습니다.

 

  • 1차 과제 : 온보딩
    • 온보딩으로 프리코스의 진행 방식을 학습할 수 있었습니다.
    • 간단한 알고리즘 문제들을 풀고 깃허브를 사용해볼 수 있었습니다.
  • 2차 과제 : 숫자 야구
    • 테스트 코드를 접할 수 있었습니다.
    • 함수의 기능 분리에 대한 고민을 하였습니다.
  • 3차 과제 : 로또
    • Enum class, 도메인 로직, 비즈니스 로직 등을 접할 수 있었습니다.
    • 객체에 대한 고민을 할 수 있었습니다.
  • 4차 과제 : 다리 건너기
    • 제공된 피드백, 예제 코드를 통해 설계, 구현을 하며 객체에 대한 이해도를 높일 수 있었습니다.

 

문제 분석과 설계, 구현

수요일(코치와 수다타임 있는 날)은 코수타를 보며 뒹굴거리고 쉬었고, 

출퇴근 시간을 이용해 문제를 읽고, 분석하고, 설계와 관련 영상 등을 찾아보곤 했습니다. 

그렇게 설계된 내용을 바탕으로 구현하고, 재설계하고, 개선 방법 등을 찾아보는 활동의 반복이었습니다.

 

주차가 지날 때마다 기본 코드에 들어있는 예제 코드가 조금씩 바뀌었는데,

이 부분이 설계에 큰 힌트가 되어 학습의 방향을 잡아주었습니다.

 

소감문

소감문 또한 자소서와 마찬가지로 배웠던 부분, 좋았던 부분, 힘들었던 부분 등을 진솔하게 적었던 것 같습니다.

1주차에는 내용도 문장도 엉망진창이었지만,

함께 지원한 친구가 예쁘게 잘 정리해 적은 것을 보고 부끄러워서 2주차 이후에는 좀 더 문장을 다듬었습니다. 

 

추가 제공 학습 자료

 

피드백

  • 모바일 안드로이드 프리코스 3주차 피드백
    • 함수 라인 기준 (프리코스에서는 15줄)
    • 문제를 분석해 발생할 수 있는 예외 상황을 고민한다.
    • 비즈니스 로직과 UI 로직을 분리한다.
    • 연관성이 있는 상수는 전역 선언 대신 enum class를 활용한다.
    • val를 이용해 값의 변경을 막는다.
    • 객체의 상태(프로퍼티) 접근을 제한한다. 
    • 객체는 객체답게 사용한다.
      데이터를 꺼내지(get) 말고, 메시지를 던지도록 구조를 바꿔 데이터를 가지고 있는 객체가 일하도록 한다.
    • 필드의 수를 줄이도록 노력한다.
    • 테스트는 성공 케이스, 예외 케이스 등을 작성한다.
    • 테스트 코드도 코드다.
      리펙터링과 어노테이션 등을 통해 관리한다.
    • 테스트를 위한 코드를 구현 코드에 구현하지 않는다.
    • 단위 테스트하기 어려운 코드를 단위 테스트하기 
    • 메서드 시그니처를 수정하여 테스트하기 좋은 메서드로 만들기
    • private 함수를 테스트 하고 싶다면 클래스(객체) 분리를 고려한다

 

필자의 과제 코드를 저격한걸까 싶을 정도로 뼈를 맞는 기분이었습니다...

그만큼 공통 피드백이 많은 도움이 되었던 것 같습니다.

 

프리코스 회고

 

 

3. 코딩테스트 대비 

프리코스의 합격자 발표일은 12월 15일로 코테 2일 전이었습니다.

따라서 코테 대비를 위해 1차 합격자 발표를 기다릴 시간은 없었습니다.

합격을 믿고, 결과를 의심하지 않고 공부했던 즐거운 시간이었습니다.

 

  • 공부 내용
    • 2, 3, 4주차의 과제를 매주 하나씩 다시 설계, 구현 하였습니다.
    • 마지막 주차의 3일간은 이전 기수의 문제를 5시간에 맞추어 풀어보았습니다.
  • 스터디
    • 매주 2회 약1시간씩 진행하였습니다.
    • 매주 설계 및 구현을 해오고, 그에 대해 UML 리뷰, 코드 리뷰를 하였습니다.
    • 2인으로 스터디하여 더욱 집중되고 동기부여를 많이 받아 꾸준히 공부할 수 있었습니다.
    • 설계, 객체와 관련된 블로그, 강의 등을 공유하며 몰랐던 부분들을 배울 수 있어 좋았습니다.
  • 코드리뷰
    • 프리코스 기간동안 시간이 없어 리뷰를 하지 못한 것이 아쉬웠습니다.
    • 함께 스터디를 하시는 분은 코드리뷰를 하며 API, 간결한 구현 방법 등을 배웠다고 하셨는데
      저는 그러지 못했던 것이 아쉬웠습니다. 
    • 매일 출퇴근길을 이용해 1일1리뷰를 남겼습니다.

 

코테 준비 회고

 

4. 코딩테스트

코딩테스트 문제 : 점심 메뉴 추천 

 

시험이 시작되고 행복했던 것은 "이어폰 끼고 노래 들으실 분들 들어도 됩니다~" 

라고 말씀하셔서 신나서 바로 노래를 들으며 문제를 풀었습니다.

주변에 피해를 끼치지 않는 선에서 자유롭게 시험에 임하면 되는 것 같았습니다.

 

5시간의 시험시간 중

중간에 쉬는시간 10분을 마련하셔서 실제 시험시간은 4시간 50분이었으나,

쉬는시간이 없었다면 중간에 지쳤을 것 같습니다.

쉬는시간 10분이 있어 오히려 더 좋았던 것 같습니다.

 

난이도는 이전 기수보다 쉬웠고,

코딩테스트에서 선발자를 크게 분별하지는 않는 것 같았습니다.

저 또한 기능을 모두 구현하지 못하였고, 테스트케이스를 통과하지 못했음에도 합격한 분도 계신 것 같습니다.

 

코딩테스트의 목적은

과제의 코드를 본인이 작성한 것인지, 코테 준비 기간을 잘 보냈는지 등을

간략히 확인하는 절차이지 않을까 추측해봅니다.

 

최종 코테 후기

 

 


 

선발 과정 정리를 하며 느낀 보완점 (및 잡담)

1주차때는 적응하는 것만으로 정신이 없어 피드백도 다 읽어보지 못한 것 같다.

추천해주신 git 강의들을 전부 다 읽지 못하였다.

git과 관련해 여전히 어려운 부분이 많았는데...

추천해주신 강의를 꼭 봐야겠다.

 

2주차에서 테스트에 관한 내용을 놓쳤다.

단지 기능을 점검하기 위한 목적으로 테스트를 작성하는 것은 아니다. 테스트를 작성하는 과정을 통해서 나의 코드에 대해 빠르게 피드백을 받을 수 있을 뿐만 아니라 학습 도구(학습테스트를 통해 JUnit 학습하기.pdf)로도 활용할 수 있다. 이런 경험을 통해 테스트에 대해 어떤 유용함을 느꼈는지 알아본다.

무슨말인지 이해가 되지 않아 그냥 지나쳤던 것 같다.

사실 지금도 모르겠다..

(안돼...! 이제 곧 우테코 시작인데 모른다는게 할 말인가....!!! 퇴사 후 시간 있으니 냉큼 학습하도록!)

 

3주차의 피드백...

단위테스트는 여전히 잘 모르겠다...

 

 

다짐

내가 과연 잘하는 분들 사이에서 잘 참여할 수 있을지에 대한 걱정으로 한동안은 기죽고, 의욕이 없었다.

이럴 때 가장 큰 도움이 된 것은 내가 이전에 함께 걸어왔던 분들이 해주는 응원이었다.

덕분에 목표도 잡을 수 있었다.

 

좋은 소식을 전하기 위해 연락한 분들만 최소한 10분은 되었던 것 같다.

내 기쁜 소식을 스스럼없이 전달할 수 있다는 것은

그 사람이 내 기쁨을 함께, 온전히 축하해줄 수 있는 사람이기에 가능한 일인 것 같다.

그런 사람이 주변에 많다는 사실이 위안이었고, 그것만으로도 응원을 받는 느낌이었다.

 

응원과 목표를 되새기며, 마음을 편히 가지며 다시 힘차게 열심히 임해볼 것이다.

우선 목표와 목적부터 다잡는 기간이 필요할 것 같다.

 

우테코 모두 화이팅!

728x90

댓글