[우테코 5기/안드로이드] 프리코스 최종코딩테스트 및 최종 결과 (불합)

Falco·2022년 12월 14일
1

우테코 프리코스

목록 보기
5/5
post-thumbnail
post-custom-banner

12월 14일 회고


1차 심과결과 메일이 왔다..!! 결과는 최종 코딩테스트를 볼 수 있게 되었다! 1, 2주차 때 소감문도 2문장 쓰고, 프리코스를 제대로 수행하지 못한 것 같아서 걱정 반 우려 반이였는데 최종 코딩 테스트를 볼 수 있게 되어서 기쁘다!! 😀

프리코스를 진행하며 솔직히 큰 기대는 하지 않았다(피어 리뷰를 하는 것들을 보며 이런 괴물들이 들어오는구나...) 그래도! 우아한 형제들 캠버스도 미리 볼 수 있다고 생각하니 가슴이 웅장해진다.

하지만!

당장 내일과 내일모레 학교시험이 있는데 이번주 토요일에 최종 코딩테스트라니.. 바쁜 일주일이 될 것 같다. 이번에 우테코를 무조건 붙어야한다..! 3학년이 끝나고 4학년이 되기전에 뭐라도 하고싶었는데 우테코가 되면 모든 걱정이 싹 하고 사라질 것이다.

최종 코딩테스트는 1시부터 6시까지 총 5시간 진행된다고 하며,

타 코딩테스트(알고리즘 테스트)와 달리 우테코에서 기존에 수행했던 야구게임과 같이 얼마나 코드를 가독성있고 깔끔하게 짜는지, 함수의 분리를 잘했는지, 클래스의 사용 및 분리를 잘했는지 등 을 볼 것 같다.

저번 기수의 과제 및 회고록을 돌아보고 복습하고 여기까지 온 거 꼭 꼭 붙고싶다..!


12월 17일 최종 코딩테스트 회고

최종 코딩 테스트의 날이 밝았다!! 솔직히 말하면 학교 시험보다 최종코딩테스트가 더 중요하다고 판단하여 시험을 다 던졌다..☆

최종 코딩테스트는 13시부터 16시까지 5시간동안 지원되며 노트북은 개인지참, 외부 모니터 사용불가(노트북만사용), 와이파이 제공, 과자 엄청 많이 제공, 물 제공, 공기청정기 빵빵 등 코딩하기엔 정말 좋은 환경이 제공되었다.

최종 코딩테스트 과제는 코틀린-메뉴였다.
3기, 4기 때의 최종 코딩테스트를 혼자서 풀어보며 연습했을 때는 5시간을 훨씬 넘겨서 아... 큰일났다.. 난 안될 인생..이라고 생각했지만 5기 과제는 생각보다 쉽게 나왔다.

안돌아가는 것 보단 돌아가는 쓰레기를 만들어라.라고 말해주셔서 일단 돌아가게끔 만들고 리팩토링 하는 과정을 수행하며 코드를 정비 하였다.


우테코 과제를 진행 했던 방식

  1. 유저 플로우를 정리한다.
### 유저 플로우
1. 메뉴 추천을 받을 코치의 이름을 입력 받는다.

2. 코치의 이름은 최소 2글자, 최대 4글자이다.
코치는 최소 2명, 최대 5명까지 식사를 함께 한다.
각 코치가 못 먹는 메뉴를 입력받는다.

3. 요일별 점심 메뉴를 추천받는다.
  1. 해당 플로우를 따라가면서 구현해야할 기능을 정리한다.
### 🚀 기능 요구 사항
1. 코치 및 금식 메뉴 입력받기
	* 예외 : ㅇㅇㅇ
2. ...
3. ...
	* 예외 : ㅇㅇㅇ

살아있는 문서를 위해 이 기능구현 리스트는 상시로 업데이트 되어야 한다.

  1. 입, 출력 예시 및 카테고리, 데이터등 을 정리

위의 과정을 거치고 난 후 기능 구현에 들어갔다.

전체 구현은 3시간 10분 쯤 지났을 때 완성되었다.
코틀린-메뉴-결과물

다음은 결과물이 만들어지고 나서 리팩토링한 것들이다.

  • 객체에 메시지를 보내서 객체가 일을하게 하라
  • 행위를 인터페이스로 추출하여 테스트에 용이하게 만들어라.
  • 일급콜렉션을 사용하여 모델을 관리하자.
  • 도메인 로직과 뷰 로직을 분리하자(MVC 패턴사용)
    - 뷰와 모델은 컨트롤러의 존재를 몰라야한다.
  • 상수형 클래스에는 Enum 클래스를, 상수형 클래스가 각각 다른 속성(인자)를 가질 때는 Sealed 클래스를 활용하여 구현
  • 상수 및 메시지를 추출
  • 함수 라인 10줄 이내
  • 아규먼트 갯수 3개 이하
  • 테스트 케이스를 작성하라.
    * 생성자 테스트
    • 도메인 로직 테스트
    • UI 테스트(안 해도 되는 듯?)
  • 동반 객체 생성자를 통한 객체 생성

주저리 주저리 적었지만 모두 프리코스를 진행하면서 배울 수 있던 것 들이다. 직접적으로 가르쳐준 것도 있지만 피어의 소스, 리뷰를 보며 더 공부하게 되어서 좀 더 많은 것을 배우고 적용할 수 있었다.

5기 코딩테스트에서 통합테스트를 통과할 수 있는 코드를 작성할 수 있어서 다행이였다. 더해 내가 적을 수 있는 코드, 바꿀 수 있는 코드는 대부분 바꿨기 때문에 만족하는 코딩테스트였다.


코딩테스트가 끝난 후 야경

최종 불합격

12월 28일 최종 불합격 메일이 날라왔다.

메일에는 다음과 같은 내용이 있었다.

이번 우아한테크코스에 불합격했다고 해서 여러분의 역량이 부족한 것이 아니라 저희가 여러분의 역량을 몰라봤다고 생각하면 좋겠어요. 이번의 불합격으로 인해 프로그래머로 성장하는데 좌절하거나 포기하지 말고 지속해서 도전해 나갔으면 합니다. 그것이 여러분을 불합격시킨 우아한테크코스에 복수할 수 있는 가장 좋은 방법입니다.

최종 코딩테스를 본 후 와 이건 내가 아니면 누가 붙겠어? 라고 생각했는데 정말 내가 아니라 누가 다 붙어 버렸다. 너무 자만했나 보다.

이제 내가 할것은 열심히 공부해서 우아한형제들에 복수하는 것!

모바일 - 안드로이드 학습 로드맵에서 학습과 관련된 도서를 몇개 추천해 주었다. 그 중 마음에 드는 것 몇가지를 남겨둘려고 한다.

소프트웨어 장인

개발자로서 어떤 마음가짐으로 살아갈 것인지에 대한 가이드를 제시하는 책이다.
프로그래머라는 우리 업에 대한 자부심을 느끼고, 전문가로서의 책임과 역할에 대해 자세하게 다루고 있다.

좋은 코드, 나쁜 코드

나쁜 코드에 대해 이유를 설명하고, 좋은 코드로 바꿔가는 과정을 볼 수 있다. 다양하고 구체적인 코드 예시를 통해 이론으로 배운 코드 작성 방법을 실제로 어떻게 적용하는지 알 수 있다. 책을 읽으며 좋은 코드에 대한 본인의 기준을 세우고, 기존에 작성한 코드에 적용하면서 학습하는 것을 추천한다.

Clean Code 클린 코드

클린 코드를 구현하기 위한 다양한 규칙들을 설명하고 있다. 책 예제 코드가 자바 기반으로 구현되어 있으며, 다양한 예제를 통해 설명하고 있다. 클린 코드에 관심이 있는 개발자라면 반드시 읽어야 할 책이다.

테스트 주도 개발 시작하기

TDD(Test-Driven Development)는 테스트부터 시작한다. 구현을 먼저 하고 나중에 테스트하는 것이 아니라 먼저 테스트를 하고 그다음에 구현한다. 구현 코드가 없는데 어떻게 테스트할 수 있을까? 여기서 테스트를 먼저 한다는 것은 기능이 올바르게 동작하는지 검증하는 테스트 코드를 작성한다는 것을 의미한다. 기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다.

테스트 주도 개발

TDD의 구체적 사례와 패턴을 제시하고 있다. TDD를 제대로 연습하고 경험하고 싶다면 반드시 읽고 실습해 봐야 할 책이다.

객체지향의 사실과 오해

객체지향이란 무엇인가라는 원론적 면에서도 다소 위험한 질문에 답하기 위해 쓰인 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 널리 퍼져있는 오해는 클래스가 객체지향 프로그래밍의 중심이라는 것이다. 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다.

코틀린 인 액션

코틀린 언어를 개발한 젯브레인의 코틀린 컴파일러 개발자들이 직접 쓴 일종의 공식 서적이라 할 수 있다. 코틀린 기초를 소개하고, 고차함수, 객체지향, 제네릭스 등의 내용을 설명한다.

코틀린 쿡북

개발 실무 중에 마주치는 여러 상황에서, 간결하고 안전하며 좀 더 코틀린스럽게 코드를 짜는 방법을 제시해준다. 코틀린 객체 지향 프로그래밍, 함수형 프로그래밍, 컬렉션, 시퀀스, 영역 함수, 코틀린 대리자(delegate), 테스트, 스프링 부트를 코틀린으로 설정하는 방법, 코루틴과 구조적 동시성 등 자바 기반 언어인 코틀린을 자신의 프로젝트에 적용하는 방법을 손쉽게 익힐 수 있다.

profile
강단있는 개발자가 되기위하여
post-custom-banner

1개의 댓글

comment-user-thumbnail
2024년 9월 13일

잘 읽고 갑니다!
근데 저 최고의 복수라는 멘트는 배민 MAU를 유지하려는 수작일 수도 있어요.. 조심하세요
열심히 공부하는 것뿐만 아니라 앱 삭제하고 다른 회사에서 모셔가는 개발자로 성장하는 것도
제법 나쁘지않게 복수하는 방법 한가지인 것 같습니다
화이팅 화이팅

답글 달기