Retrospect

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

w00se 2021. 12. 20. 23:23

https://pixabay.com/ko/photos/글쓰기-작가-메모-펜-공책-923882

 

최종 코딩 테스트로 우아한 테크코스 4기 프론트엔드 프리코스의 모든 과정이 끝났습니다.

 

결론부터 적으면 최종 코딩 테스트의 요구사항을 완벽히 구현하지 못했으며,

주어진 테스트도 3개 중 2개만 통과했기 때문에 점수는 0점입니다🙃

 

과제 형식의 코딩 테스트는 이번이 처음이었는데, 아쉬운 점도 있고 스스로 부족한 점이 많았습니다.

따라서 이번 글에서는 프리코스 최종 코딩 테스트를 하면서 느낀 점과 부족한 점을 정리하려 합니다.

 

느낀 점

대부분 시험을 보고 나서 드는 생각이 '시간이 조금만 더 있었더라면!'인데, 이번 시험도 어김없이 그랬습니다.

중요한 시험이었던 만큼 시간이 부족한 게 더욱 아쉽게 느껴졌습니다.

물론, 실력이 부족해서 시간이 부족했던 거지만..!

 

제 생각일 뿐이지만, 최종 코딩 테스트에서 구현해야 할 기능 분량은 3주차 과제의 구현량보다 적었습니다.

그리고 탭이 나뉘고, 상태 값을 관리하고, 테이블로 데이터를 보여준다는 점에서 구현 난이도만 봤을 때는 3주차 과제와 비슷했던 거 같습니다.

하지만, 제게는 시간이 넉넉하진 않았습니다🥲

 

시험 결과는 좋지 않았지만, 그래도 시험을 준비하면서 수확은 있었습니다.

저는 3주차 과제가 끝나고 아쉬운 점으로 '컴포넌트의 생명주기를 적용시키지 못했다.'를 뽑았습니다.

이번 시험은 아쉬웠던 부분을 보완하기 위해 위 부분을 집중적으로 준비를 했고,

덕분에 시험에서 옵저버 패턴을 기반으로 '컴포넌트 생명주기'까지 적용시킬 수 있었습니다.

조금 더 자세히 적으면 아래와 같습니다.

 

  1. 중앙에서 상태 값을 관리하기 위해서 Store를 정의한다.
  2. Store는 스스로 상태 값을 가지고 있으며, Component는 Store를 구독할 수 있다.
  3. Store의 상태 값에 변화가 생기면, Store를 구독하고 있는 Component를 다시 렌더링 한다.

비록 결과가 어떻게 됐든, 조금이라도 발전을 했다는 점을 위안으로 삼으려 합니다ㅎㅎ

 

지금부터는 이번 시험에서 스스로 생각하기에 부족했던 점에 대해 적으려 합니다.

 

부족했던 점

1. 구현 속도

구현하는 속도가 빠르지 않았고, 때문에 시간이 부족했습니다.

빠른 시간 안에 요구사항을 지키며 구현하는 게 역량이므로 명백히 실력이 부족했습니다.

특히 3주차 과제에는 시간이 정말 오래 걸렸었는데, 그럼에도 시험을 준비하면서 시간을 측정하면서 연습하지는 않았습니다.

새로운 패턴을 공부하고 적용시켰다는 것도 큰 수확이었지만,

구현 속도가 느렸기 때문에 시간을 측정하면서 과제를 반복적으로 연습하는 것이 시험을 준비하는 데는 더 적합하지 않았나 아쉬움이 듭니다.

 

2. 우선순위 관리

과제에 대한 설명이 나와 있는 README 파일에는 '테스트가 실패할 경우 0점으로 처리되므로, 반드시 확인 후 제출한다.'가 적혀있습니다.

평소 과제 설명 문서에도 항상 명시돼 있던 내용인데, 막상 시험을 볼 때 아쉽게 눈에 들어오지 않았습니다.

cypress로 테스트를 돌려보면 테스트의 요구사항을 알 수 있습니다.

따라서, 최소 0점은 되지 않기 위해서 테스트 요구사항을 확인하고 이를 우선순위로 두고 개발을 했으면 하는 아쉬움이 있습니다.

평소에는 보이는 뷰의 순서대로 관련된 기능을 구현했었는데, 적어도 과제 형식의 시험을 본다면 최소 구현 요구사항이나 테스트 요구사항을 먼저 확인하고 이를 우선순위로 두고 구현하는 것이 더 적합할 거 같습니다.

 

3. 침착함

시험이기에 자연스레 긴장을 했습니다.

때문에 시험이 시작되고 프로그램 실행 결과에 대한 gif를 오래 들여볼 심적 여유가 없었습니다.

모든 뷰가 다 보이는 순간만 확인하고 화면에 있는 뷰를 모두 구현을 했는데, gif를 다시 보니 입력 단계 별로 뷰가 순차적으로 보여야 했습니다.

그리고 3주차 과제에서 새로 고침을 했을 때 마지막으로 봤던 탭이 유지되도록 구현을 했었는데, 예시를 자세히 확인하지 않았기 때문에 이 기능이 예시와 상충되는지 모르고 구현을 했습니다.

 

요구사항에 맞지 않은 기능을 구현했고, 잘못 구현하여 수정을 필요로 하는 부분도 있었습니다.

이는 시간이 중요한 시험에서는 큰 손해였다고 생각합니다.

 

다음에 과제 형식의 시험을 보는 기회가 있다면, 급하게 시작하지 않고 침착하게 예시를 확인하고 시작하려 합니다.

 

끝으로

3주가 열심히 공부를 했습니다.

본 과정이 아닌 프리코스 과정만으로도 성장을 했다는 게 느껴지는 게 놀랍고, 본 과정에서 동료들과 더 밀접하게 같이 학습을 하게 된다면 정말 많은 성장을 이룰 것이 예상이 됩니다.

최종 결과가 어떻게 될지는 모르겠지만, 이미 지나간 시험이니 이제는 다시 개발과 공부에 집중을 하려 합니다.

 

마지막으로 깨달음과 배움의 기회를 주신 우아한 테크코스 멘토님들께 감사 인사를 전합니다🙇🏻‍♂️