[우테코 5기 프론트엔드] 최종 코딩 테스트

셔노·2022년 12월 22일
1

우아한테크코스

목록 보기
13/13
post-thumbnail

📆 최종 코딩 테스트 D-Day 12월 17일 토요일

📖 최종 코딩 테스트 준비

최종 코테 합격자 발표 이후 남은 3일 동안 기다리면서, 4주간의 프리코스 미션들을 전체적으로 리펙토링 하였다. 그리고 미션들을 MVC 패턴으로 전부 리펙토링을 했고, 3기 기출문제를 콘솔형태로 변형하여 기출문제도 풀어보았었다.

전체 github repository를 아래 주소에 남겨 놓겠다.

  • 깃 저장소 git repository

1주차 프리코스: 온 보딩 미션
2주차 프리코스: 숫자 야구
3주차 프리코스: 로또
4주차 프리코스: 다리 건너기
3기 최종미션 변경 기출문제: 지하철 노선도

🚉 우아한테크코스 잠실 캠퍼스로...




우아한테크코스 잠실 캠퍼스에 도착했다. 영상에서만 봤었던 잠실 캠퍼스를 오다니 꿈만 같았다. 위 사진들은 처음에 신기해서 사진 몇 장 찍은 사진들이다. 마지막 사진이 시험을 쳤던 강의실이다.

그리고 다양한 과자들도 테스트 도중 먹을 수 있도록 제공되었었고, 특이하게 시험 도중 헤드셋이나 이어폰 착용도 가능하게 허락해주셨다. 다만, 공정성을 위해서 노트북 1대까지만 사용할 수 있게 했고, 멀티탭도 노트북 충전을 위해서 1구까지만 사용할 수 있었다.

👨‍💻 최종 코팅 테스트 시작 13시

최종 코딩 테스트는 늘 그렇듯 아래 메일 한 통으로 시작을 했다.

메일을 꼼꼼히 읽어보았는데...

최종 코딩 테스트를 통해서도 무언가를 전달해주는 역시 우아한 테크코스!!

  • 최종 코딩 테스트 저장소 git repository

5기 최종 코딩 테스트: 점심 추천 메뉴

기능구현

점심 메뉴 추천을 시작합니다.

코치의 이름을 입력해 주세요. (, 로 구분)
토미,제임스,포코

토미(이)가 못 먹는 메뉴를 입력해 주세요.
우동,스시

제임스(이)가 못 먹는 메뉴를 입력해 주세요.
뇨끼,월남쌈

포코(이)가 못 먹는 메뉴를 입력해 주세요.
마파두부,고추잡채

메뉴 추천 결과입니다.
[ 구분 | 월요일 | 화요일 | 수요일 | 목요일 | 금요일 ]
[ 카테고리 | 한식 | 한식 | 일식 | 중식 | 아시안 ]
[ 토미 | 쌈밥 | 김치찌개 | 미소시루 | 짜장면 | 팟타이 ]
[ 제임스 | 된장찌개 | 비빔밥 | 가츠동 | 토마토 달걀볶음 | 파인애플 볶음밥 ]
[ 포코 | 된장찌개 | 불고기 | 하이라이스 | 탕수육 | 나시고렝 ]

추천을 완료했습니다.

우선 지금까지 배웠듯이, 코딩을 하기 전에 기능 구현을 우선 진행했었고, MVC 패턴으로 전체적인 구현을 진행하려고 했다. 처음에는 계획대로 척척 잘 진행되었다. 시간 내 전부 구현할 수 있다는 자신감이 있었던 것 같다.

하지만 구현을 진행하면서 비동기 처리가 되지않아 막히는 것도 있었고, 의도대로 반환값이 나오지않아 편법을 사용해서 구현한 기능들도 있었다. 그렇다보니 짧은 시간 내 클린 코드로 작성하기에는 많은 어려움이 있었고, 그 고비를 넘기는데 적지 않은 시간이 소모되었던 것 같다.

우선 첫번째는 코치의 수만큼 각각 못 먹는 메뉴를 받을 수 있게 처리하는 방법이였다. 이 기능을 구현하기 위해서 CoachRepository 라는 service 처리를 하는 클래스를 만들어서 출력값을 하나씩 늘려서 입력을 받는 것으로 처리를 했었다.

두번째로는 Random.shuffle(array) 를 사용하는데 반환값이 이상하게 됬었던 것에 있어서 문제가 있었다. 해당 함수가 의도한대로 array의 내부의 index 위치를 랜덤하게 만들어 반환하는 것으로 생각했었는데, 자꾸만 숫자가 반환되었다. 그래서 자꾸만 에러가 뜨게 되었고, 이것을 해결하기 위해서 array의 길이만큼 index로 채워진 또다른 array를 만들어 shuffle을 진행하고, 반환되어 나온 값의 array[index]를 출력하는 코드로 작성하였다.

여러가지 고비들이 있었지만, 위 2가지가 가장 시간이 많이 소모되었던 문제점으로 기억된다.

18시가 다 되어갔을 때쯤, 위에서 나오는 출력값들은 나올 수 있도록 구현을 했었지만, 유효성 검사를 구현하거나 테스트까지 만들지 못했었다. 우선 그래서 PR과 우테코에 제출을 먼저 진행하였다.

당연하게 모두 구현하지않아 테스트는 통과하지 못했다.

그래도 아직 18시가 되기 전까지는 최대한 테스트까지만이라도 통과하기 위해서 계속해서 커밋하고 푸쉬하고 제출하고 했었던 것 같다.

✒️ 최종 코딩 테스트 종료 18시

최종 코딩 테스트를 통해서 배운 점과 느낀 점을 한 번 적어보려 한다. 우선 4주 동안 프리코스를 진행하면서 시간을 정해서 시간 안에 코딩을 해본 적이 많이 없었던 것 같다. 항상 넉넉한 시간이 있었고, 배운 내용을 코드에 잘 녹이려고만 했었던 것 같았다. 그래서 최종 코딩 테스트를 할 때 시간 내 기능 구현까지 완료 할 수 있을지가 제일 걱정이였던 부분이었다.

최종 코딩 테스트를 13시 부터 18시 까지 총 5시간을 주어졌지만, 기능을 모두 구현하고 제출 하는데 까지는 시간이 여유롭지가 않았다. 코딩하면서 먹을려고 미리 과자들과 물을 가지고 노트북 옆에 뒀었지만, 시험이 진행되는 동안 하나도 먹지 못했던 것 같다.

그래서 지금 최종 코딩 테스트를 치르고 제일 후회하는 점은 시간에 쫒기며, 최종 코딩 테스트를 치르기 전에 비슷한 환경에서 한 번 경험해보고 왔어야 했던 것 같다. 그리고 계속해서 코딩을 해보면서 구현 시간을 줄여 나가는 것이 개발자의 실력차이가 아닌가 생각이 들었다.

그래서 최종 코딩 테스트마치고 너무나 아쉬웠었던 것인지, 집으로 돌아가는 길에 노트북을 펴서 못다한 코딩을 마무리 해보기도 하고, 집에 도착해서도 계속해서 리펙토링을 했었던 것 같다.

28일 수요일날 최종 코딩 테스트 결과가 발표되는 날이다.

좋은 결과가 나왔으면 좋겠지만, 이번 최종 코딩 테스트를 치르고 아직 모자란 저를 느낄 수 있었고 개발을 계속해서 더 열심히 해야겠다는 것을 얻었기 때문에 큰 후회도 없었고, 결과가 어떻게 나오든 괜찮을 것 같았다.

우아한테크코스를 약 2개월 가량 진행하고 준비하면서, 클린코드란 무엇인가? 어떻게 코딩하는 것이 옮은 방향인가? 등등 많은 것들을 깨닳을 수 있었던 것 같다. 만약 주변에 누군가 우아한테크코스가 어떻냐고 물어본다면 단연코 최고라고 강력 추천을 해줄 것 같다.

profile
초보개발자

2개의 댓글

comment-user-thumbnail
2022년 12월 26일

정말 꾸준히, 열심히 노력하신게 잘 느껴지네요
좋은 결과 있으시면 좋겠어요!

1개의 답글