우아한테크코스 6기 프리코스 최종 코딩 테스트 후기

jiny·2023년 12월 17일
1
post-thumbnail

💻 1차 합격 이후 준비 과정

우선 1차 합격 전 1주일에 한번씩 이전 기수 문제를 시간을 재고 다시 풀어보며, 우선 순위 설정과 구현 순서 등을 정리했고 위와 같은 형태로 최종 코딩 테스트를 위한 빌드를 구성하고 있었다.

그리고 템플릿을 만들어 view나 validator, error 관련 객체들, 상수 등과 같은 것들을 미리 구성해두었다.

그러다 1차 합격 문자를 받게 되었다. 솔직히 프리코스 이후로 목 컨디션이 바닥을 기어서 문자를 받았을 당시 크게 기쁘진 않았지만 자기 직전에 합격 했다는 사실이 정말 큰 고비를 넘긴거 같아서 너무 행복했던 기억이 있다. (진짜 큰 고비가 올지 이땐 알지 못했다.)

✨ 최종 코딩 테스트 시작 전

집이 부산 이었던 탓에 새벽 6시에 기상해서 ktx를 타고 루터회관 까지 왔다. 당일 기차 예약할 때 자리가 없던 탓에 입석으로 서울 까지 이동했다.

어찌저찌 루터회관에 1시간 전 도착했고 12시 오픈 전 이었음에도 꽤나 많은 사람들이 도착해있었다.

도착했을 때 우테코 직원 분들의 안내를 받아 출석(?)을 진행했고, 포비님의 도움을 받아 귀여운 기념품 들을 받을 수 있었다.

직원 분들이 친절하게 응대해주셔서 좋았고, 짐을 보관할 수 있는 공간을 마련해주신 것도 좋았다.

나는 자리에 착석해서 세팅을 미리 해두고, 당 충전을 위한 과자들과 물, 두통이 심하게 올 것을 대비한 타이레놀, 필기할 노트와 펜을 세팅 해둔 후, 미션 관련 환경 세팅 까지 미리 마쳐 두었다.

환경 세팅까지 마쳤을 때 최종 코딩 테스트 관련 안내 메일이 왔고, 메일을 다 읽었을 땐 꼭 완벽하진 않아도 지원 사이트에서 통과될 수 있는 코드를 작성할 수 있었으면 좋겠다 싶었다.

원래 코딩 테스트 시작은 1시 부터 였지만 사내 네트워크 이슈로 인해 30분 미뤄지게 되었고 13:30 ~ 18:30의 일정으로 진행되게 되었다.

30분 정말 짧을 줄 알았는데, 생각 보다 길게 느껴져서 시간이 다가올 수록 긴장되었고 무사히 마쳤으면 싶었다.

📝 최종 코딩 테스트

최종 코딩 테스트의 주제는 개발자 비상근무 였고, 간단히 요약하면 월과 일, 평일 근무자, 휴일 근무자를 입력 받아 해당 달의 시작 날 ~ 마지막 날 까지의 근무자 리스트를 출력하는 것이었다.

결과 부터 말하면 테스트 코드는 모두 동작하였지만 세부 기능 요구 사항을 완벽히 구현하지 못한 코드를 제출하게 되었다.

미션은 총 5가지 구현 목록으로 정리할 수 있었다.

  1. 비상근무 배정 월, 요일 입력 기능
  2. 평일 비상 근무 닉네임 입력 기능
  3. 휴일 비상 근무 닉네임 입력 기능
  4. 비상 근무 리스트 생성 기능
  5. 비상 근무 리스트 출력 기능

입력 기능 자체는 큰 어려움이 없었기 때문에, 1시간 만에 완료할 수 있었지만 도메인 로직이자 가장 메인 기능 이었던 4번 기능을 이해하는데 정말 많은 시간을 잡아먹었고 완벽히 이해 하지 못했다.

구현 하면서 가장 이해하기 어려웠던 요구사항 이었는데, 이해하는데만 최소 1시간은 잡아 먹었던거 같다.

연속 근무 시 다음 근무자와 순서를 바꾸는건 이해가 되었지만, 아래의 법정 공휴일(휴일)인 상황에서 평일로 넘어갈 때 다음 평일 근무자와 순서를 바꾸는 부분이 정말 힘들었고 실제로 구현에 이어지지도 못했다.

머릿속에선 매개변수로 받은 휴일 근무자 리스트의 수아와 루루를 서로 교체하면 될 거 같았는데, 교체한 이후의 로직을 어떻게 구성해야 할지 몇 시간 동안 고민하다 결국 해결하지 못했다.

이 때까지, 비즈니스 로직을 만들지 못했던 상황이 없었어서 그런지 막상 이런 상황이 찾아오니 너무 당황스러웠고 멘탈이 나가기 시작했다.

일단 테스트 통과라도 하기 위해 도메인 로직을 얼추 매듭짓고 출력 로직 까지 완성시킨 다음 테스트 코드를 실행시켜 통과하는 것을 확인했다. 이 때가 종료 약 1시간 남짓 남았었다.

5시 30분 부터 지원 사이트에서 확인이 가능했기 때문에 남은 시간 동안 format message, validator, error handling 관련 모듈들의 테스트 코드를 만들고 도메인 로직의 함수 분리, how-to-solve.md를 작성했다.

리팩터링을 마치고 20분 쯤 남았을 때 지원 사이트를 돌렸는데 예기치 않은 오류 에러가 발생했다.

하지만 어떤 에러인지 바로 예상이 갔었기 때문에 빠르게 해결하고 소감문 작성, 상수 분리 까지 하니 5분 남았었다.

이 때, 갑자기 이 요구사항을 구현하지 않은 것이 생각났는데 도저히 5분 안에 로직 수정 => 테스트 확인 => 커밋 - 푸쉬 => 지원 사이트 확인이 리스크가 너무 큰 판단일거 같아 포기하고 설문 작성을 완료했을 때 시험이 종료되었다.

✨ 최종 코딩 테스트 종료

그렇게 7월 중순 부터 시작한 우테코 6기 준비가 모두 끝이 나버렸다. 정말 허무하고 아쉬웠지만 몸 상태가 좋지 않은 상황에서 그 동안 할 수 있는 최선을 다했었기에 후회는 없는거 같다.

최종 코딩 테스트를 마치고 난 후 우아한테크코스가 기대하는 능력은 아래와 같다고 느꼈다.

1) 요구 사항을 꼼꼼하게 확인 후 이해한 내용을 바탕으로 기능 구현 목록을 깔끔하게 정리하는 능력 (도메인 로직과 관련된 구현 목록은 추가적인 case도 고려해서 작성)

2) 정리한 구현 목록을 토대로 요구사항을 모두 반영할 수 있는 능력

3) 1~3주차 공통 피드백에서 제시 되었던 클린 코드, commit 메시지, 함수 분리, 관심사에 따른 객체 분리, 읽기 쉬운 테스트 코드 & 단위 테스트를 주어진 시간 내 최대한 반영하는 능력

4) 만약 계획 대로 되지 않아도 끝까지 포기하지 않고 차분히 멘탈을 잡을 수 있는 능력

나는 4주차 미션 까지 마쳤을 때 나름 1번 부터 4번 모두 할 수 있는 사람이라고 생각했지만, 최종 코딩 테스트를 진행하며 아직 많이 부족하다고 느꼈다.

최종 코딩 테스트 구현 과정으로 다시 되돌아가도 완성하지 못한 기능을 구현하지 못했을 거 같고 분명 스스로 할 수 있는 최선을 다하긴 했지만 스스로 준비했던 걸 더 많이 보여주지 못한 것이 집 갈 때 계속 생각나서 아쉬웠다.

어쨋든 이미 돌이킬 수 없기 때문에 최종 코딩 테스트 결과가 좋든 나쁘든 결과에 얽매이지 않고 인지했던 부족한 부분들에 대해 더 나은 방향으로 나아갈 수 있도록 멘탈적인 면이나 실력적인 면을 보완하여 많은 사람들에게 실력 있는 개발자로 인식할 수 있도록 앞으로도 노력할 것이다.

그 동안 너무 수고한 나 자신이 그래도 자랑스럽다!

4개의 댓글

comment-user-thumbnail
2023년 12월 17일

마지막 문단이 정말 와닿네요..! 저도 부산 사람이라 부산에서 올라가서 최종 코딩 테스트를 쳤었는데, 정말 고생하셨습니다!

1개의 답글
comment-user-thumbnail
2023년 12월 18일

진영님! 고생하셨습니다..! 어쩐지 이름이 낯이 익었는데 테오의 프론트엔드에서 말씀 나눠보신 분 같네요..! 긴가 민가 모르겠지만.. ㅎㅎ 글 읽어보니 굉장히 꼼꼼하고 열심히 하신게 보이네요!! 좋은 결과 있길 바라겠습니다 너무 고생하셨어요 :)

1개의 답글