우아한테크코스 프리코스 7기 최종 코딩테스트 불합격 원인 분석하기

Description: 우아한테크코스 프리코스 7기를 분석해보았습니다. 마음가짐이 부족했고, 준비가 부족했고 그래서 떨어진 것 같습니다. 힘든 것은 원인을 몰라 개선사항을 모를 때이니 감정적인부분은 분리해서 논리적으로 스스로의 문제 정의, 원인 분석, 개선사항등을 생각해보았습니다.

현재 노트: KR-410.00 e 우아한테크코스 프리코스 7기 최종 코딩테스트 불합격 원인 분석하기
상위 분류: KR-410.00 우아한테크코스 프리코스 7기 회고록 1개월 기록

#우아한테크코스프리코스

글을 작성하는 이유

이번 우아한 테크코스 7기 프론트엔드 최종 불합격 판정을 받고 실의에 빠지는 한편, 그 원인을 나름대로 분석해보았습니다.
힘든 일이 있을 때 그 일을 논리적으로 분석하는게 제 취미인데요, 이렇게 분석하는 과정을 통해 해당 문제에 대해 좀 더 객관적인 시선으로 바라보면서 그 원인과 개선방법을 곰곰히 생각해 볼 수 있기 때문이죠. 그리고 분석하면서 좀 더 뭐랄까 감정적인 부분이 희석되는 느낌을 좋아합니다. 그래서 힘들 고 어려운일이수록 더욱 논리적으로 분해해보는 편입니다. 그럼 시작하겠습니다.

먼저 정량적인 측면을 분석해 볼 것입니다

먼저 경쟁률이었습니다. 최종코딩테스트의 경우 약 2배수 가량이었습니다 (5기 기준 최종 배수 약 2배수)
이번 기수 프론트 40명내외이고 시험당시 약 84명정도가 있던 것으로 기억하면 비슷한거 같습니다.

그리고 점수 반영입니다.
공식 메일에서 나와있듯 3가지 항목에 의해 결정됩니다.

특히 여기서 주목해야할 부분은 최종 코딩 테스트 결과라고 생각합니다.
점수 반영이 어떤 기준으로 돼있는지 모르지만 최종 코딩 테스트 결과를 가장 우선적으로 보고, 만약 동률일경우 프리코스 4주과정이나, 우아한테크코스 지원서로 넘어가지 않을까 싶습니다. 아니면 비율로따지면 1대2대7정도? (뇌피셜이긴합니다만)

합격하신분들의경우 마지막 최종코딩테스의 테스트케이스 성공이4/5이상이 많거나 5/5인 경우가 많은 것같다고 판단됩니다.

여기서 프리코스 4주과정의 경우 본인은 3/4, 최종 코딩테스트 2/5로 합격컷에 미치지 못했다고 생각합니다. 내부 테스트에서는 3개까지 하고 단순한 종료조건 설정등이 제대로 됐으면 4개까지 바라볼만 했는데, 실제 웹 플랫폼 테스트결과는 2/5였습니다.

추가로 당시에는 1/5이 나왔는데도 합격하신 분들의 경우 조금만 수정하면 4개 이상 합격하신 분들이 있는 것 같습니다. 즉 아예 못해서 1개가 나왔다기보다는 대소문자나, 입력출력조건처리등 일부 테스트조건이 불안정해서이지, 논리적인 구현은 대부분 완료된 부분이 많은것 같다고 판단됩니다.

정량적인 원인 결론

다음으로는 정성적인 부분의 원인 분석입니다.

정성적인 부분은 크게 1차합격 이후~ 최종 코딩 테스트 당일 전최종 코딩 테스트 당일까지로 나눌 수 있습니다.

먼저 1차합격 이후~ 최종 코딩 테스트 당일 전의 경우 프리코스의 담당자이신 포비가 합격한 것과 같은 마음가짐으로 코딩테스트 공부해라라고 한 말을 안지켰습니다.
이번에 처음 프리코스를 시도하면서 1차에 붙을지를 못 믿었습니다... 스스로에대한 불신으로 띄엄띄엄 해봤자 이번 7기 테스트 + 6기수 테스트5개 +5기수 4주차문제 정도만 정해진 시간내에 풀어보는 연습을 하였습니다. 만약 그 때 마음가짐을 제대로 했더라면 더많은 문제와 더많은 반복으로 최소 각 기수별 3번씩은 완독하면서 추가로 포비가 말한 다양하게 풀어보기를 고려해 더 어렵게, 더 까다롭게 구현 문제를 더 빠르게 풀지 않았을까 싶네요.

해야했어야 할 행동: 각 기수별 문제 5시간에 무조건 다 풀 수준 되도록 노력하기 + 더 어렵게 생각해서 풀어보기 + 이걸 여러번 다회 수행
실제로한 행동: 각 기수별 문제 일부분 1회만 풀어봄
원인: 스스로 합격 못할 거라고 생각하며 불신

최종 코딩 테스트 당일 구현 속도가 너무 느렸습니다. 제가 2시간 정도 한 상황에서 거의 모든 세팅이 완료됐지만 가장 중요한 각 기능들을 제대로 구현하지 않았다는 것을 깨달았습니다. 파일을 읽어드리고 적절히 처리하는 형태까지 구현을 했지만, 그래서 요구하는 테스트 케이스를 생각하지 못했습니다. 그래서 나머지 시간중 2시간을 기능 구현을 위해 힘쓰고, 나머지1시간은 실제 test에 맞게 작성하는 방법을 시도했습니다. 그러다보니 1시간 남은 시점에서 npm test를 수행하면서 계속 에러가 생겼습니다. 특히 로직에서 문제가 없어야 하는데 문제가 생기는 부분으로 시간을 많이 써버렸습니다. 만약 처음부터 test기반으로 생각을 했었다면 구현시 반복문입력받기와 종료조건설정등을 면밀히 보고 버릴건 버린다는 마음가짐으로 좀더 침착하게 할 수 있었을텐데... 왜냐하면 소문자 q가 종료조건인데, 대문자 Q로 종료조건으로 테스트하다보니 실패가 계속 뜨면서 이런 부분에서 쓸데없는 시간을 많이 소비했습니다.

해야했어야 할 행동: 테스트 기반으로 문제를 구현하면서 생각해보기. 가장먼저 1번째 테스트를 통과하기위해 구현을 하고 기능을 구현하는 것부터 시작 했어야함
실제로한 행동: 내 기준에서 필요하다고 판단되는 부분 구현 후 테스트를 나중에 수행. 그래서 클래스나 상수값사용등 어떤 의미로는 외적인 부분에 신경을 많이 써버림. 그 결과 테스트에서 필요한 부분을 고려하지 못하고 시간이 부족한데다가, 그러다보니 경황이 없어 쓸데없는 오류 수정에 시간을 많이 써버리는 최악의 악재가 겹침
원인: 5시간내에 정해진 테스트를 통과하는 마음가짐, 구현 습관이 부족함

개선사항

이렇게 정리하면서 보니 개선사항을 뭐랄까 명확해서 흐름화하기가 쉽네요
스스로 믿고 구현 연습하기 -> 우아한 테크코스 합격을 위한 구현 연습

스스로 합격을 믿는 부분에 관한 근거는 다음과 같고
만약 4주 프리코스 전부 구현 기능을 명시한데로 모든 요구사항에 맞춰 제대로 완료 했다면 1차 합격확률 높은 편

실제 당일날 최종 코딩테스트를 합격하기 위한 연습 방법은 다음과 같네요
각 기수별, 여러번, 제한시간내에, 테스트를 통과하기위해, 더 어렵게도 생각해서


마치며

20 후반 늦은 나이에 개발을 시작해서 그런지 자신감도 떨어지고 정신적으로 힘들었는데 1차 붙어서 기분이 좋았다가! 결국 떨어지니 다시 우울해지긴하네요 (좋은건가 나쁜건가 싶긴하지만 성장했으니 좋았쓰!). 그나마 분석하며 회고하니 이래서 떨어졌구나! 다음에는 더 나은 방법을 시도하자!라고 문제가 보이니 조금이나마 마음이 가벼워지는 것 같습니다. 문제가, 원인이 아예 안 보이는 것이 젤 무서운...

우아한 테크코스 프리코스 7기 마지막 회고입니다
성공에서 배우는 것보다 실패에서 배우는 것이 값어치 있을 때도 있다라고 생각합니다
아무튼 이번 여정은 여기에서 마치게 됐네요. 다음에 다시 도전할 기회가 있다면 이런 수정 사항들을 개선해서 찾아뵙겠습니다.