[우아한 테크코스 6기] - 회고(FE)

현웅(harry)·2024년 1월 2일
3

woowa-course-6th

목록 보기
2/8
post-thumbnail

프리코스 돌아보기

4주동안의 프리코스를 진행 하면서, 가장 신경썼던 부분은 각 주차의 공통 피드백을 최대한 반영하는 것이였다. 견고하고 안전한 소프트웨어를 만들기 위해서 어떻게 설계해야하는지 알려주는 것 같아 피드백 내용을 주의깊게 읽고 최대한 내 코드에 녹여내려 노력했던 것 같다. 프리코스는 일주일의 시간이 있었기에 피드백의 의도를 파악해보고 어떻게 적용해볼 수 있을지 충분히 고민할 수 있었다. 소감문은 스스로 생각해본 피드백의 의도, 어떻게 피드백을 반영 했는지, 각 주차의 나의 목표는 무엇이였고 해당 목표를 달성하기 위해 어떤 과정을 거쳤는지를 중심 내용으로 작성했었다. 피드백을 최대한 반영하는 것을 합격을 위한 전력으로 사용한 것은 아니였고 피드백을 받고, 의도를 파악해보고, 적용해보는 과정을 좋아했기 때문에 프리코스도 같은 자세로 참여했던 것 같다. (각 주차 미션이 끝날 때마다 함께 왔던 피드백 문서를 코치님들이 프리코스의 모든 참여자들에게 전달하고 싶은 메시지들을 축약해놓은 것이라 생각했었다.😊)

1차 합격

프리코스의 결과를 기다리던 중, 식도염 증상이 느껴져 병원 예약을 했었고 병원 예약 시간과 결과 메일이 오는 시간이 같아 진료 대기실에서 결과를 확인해야 했었다. 3시가 되었는데도 너무 떨려 결과를 확인하지 못하다가 결국 메일을 눌러 확인을 했는데 감사하게도 1차 합격을 해 최종 코딩 테스트 대상자가 되었다..!

최종 코딩 테스트

최종 코딩 테스트 준비 과정은

로 했다. 같이 최종 코딩 테스트를 준비했던 친구와 풀어보지 않았던 미션들을 각자 해결하고 피드백도 주고 받았다. 피드백의 주된 내용은 '생각보다 어려운데...?', '이거 5시간 안에 풀 수 있는거 맞나...?', '난이도가 말이 안되는데...?' 였다..🤣 시간에 대한 압박감이 생각했던 것 보다 컸고 뭔가 어렵게 느껴졌고 프리코스에서 배운 것들을 최대한 적용하려다보니 시간이 더 촉박하게 느껴졌다. 그래서

  • 일단 돌아가는 프로그램을 만들 때 까지(ApplicationTest를 통과한다) 나머지는 생각하지 않는다.
  • 5시간은 생각보다 길다, 중간에 막혀도 포기하지 않는다.

이 2가지를 목표로 정하고 해당 목표만 달성하기 위해서 최대한 노력하기로 했다.

서울에 묵을 곳이 있기도 했고, 테스트 당일 서울로 올라가면 체력적으로 부담이 될 것 같아 전날 부산에서 출발했다.

시험 당일, 일찍 도착했다 싶었는데도 많은 분들이 이미 도착해있었고 자리가 많이 남아있지 않아 맨 앞 가운데에 앉았다. 시험 시작을 기다리던 중, 옆에 앉아 계시던 분께서 책상위에 있던 물티슈, 물 등을 마음껏 사용해도 된다고 해주셨다. 너무 감사했고, 나도 해줄 수 있는게 없을까 하다가 최종 코딩 테스트 같이 화이팅 하자는 말을 전했다..!

시험이 시작 되었고, 요구 사항을 읽으면서 shift, push를 활용해서 '다음에 근무할 직원이 배열의 제일 앞에 올 수 있도록 하자'라고 정리한 후 코드를 작성해갔다. 생각했던 것 보다 빠르게 테스트 코드를 통과했는데, 통과한 후 너무 기뻐서 흥분을 했던건지 리팩토링을 할 생각을 하지 않았다.(이 후 부산에 내려와서 로직을 잘못 짰던것을 발견하게 된다...)

테스트 시간이 종료되고 설문 조사를 한 후 친구들과 밥을 먹고 휴식을 취한 후 부산으로 다시 내려왔다.

실수 발견

부산에 내려와서 코딩 테스트를 같이 준비했던 친구들과 테스트에 대해서 얘기 하는 시간을 가졌는데, 2일 연속 근무하는 경우 다음 근무자와 바꾸는 로직을 아예 잘못 짠 것을 발견하게 되었다...

createWorkersInform(workingDayInform) {
  const workingTable = workingDayInform.reduce((accTable, currInform, index) => {
    const { type, isHoliday } = currInform;
    const nextWorker = this.#getNextWorker(type, isHoliday);
    const oppositePrevWorker = this.#getOppositePrevWorker(type, isHoliday);
    if (nextWorker === oppositePrevWorker && index !== 0) {
      this.#changeWorker(type);
    }
    const worker = this.#getAppendingWorker(type, isHoliday);
    return [...accTable, worker];
  }, []);

  return deepFreeze(workingTable);
}

shift, push를 사용해서 이제 근무해야 하는 근무자를 배열의 제일 앞, 제일 최근에 근무했던 근무자를 배열의 제일 뒤에 위치하도록 했다. 하지만, 이 방법은 문제가 있다. 기능 요구 사항의 예시를 입력해보면

비상근무를 배정할 월과 시작 요일을 입력하세요>5,월
평일 비상근무 순번대로 사원 닉네임을 입력하세요>준팍,도밥,고니,수아,루루,글로,솔로스타,우코,슬링키,참새,도리
주말 비상근무 순번대로 사원 닉네임을 입력하세요>수아,루루,글로,솔로스타,우코,슬링키,참새,도리,준팍,도밥,고니

준팍, 도밥까지 정상적으로 배정이 되지만 고니의 경우 주말 비상근무 순번에서 제일 뒤에 있기 때문에

if (nextWorker === oppositePrevWorker && index !== 0) {
  this.#changeWorker(type);
}

이 조건문의 결과가 true가 되어 고니와 수아를 변경 해버리는 문제가 발생한다...
이 문제를 알고 나서 아 끝났구나...라는 생각을 했다.

createWorkersInform(workingDayInform) {
  const workingTable = workingDayInform.reduce((accTable, currInform, index) => {
    const { type, isHoliday } = currInform;
    if (index !== 0) {
      const nextWorker = this.#getNextWorker(type, isHoliday);
      if (this.#isSameWorker(nextWorker, accTable[index - 1])) {
        this.#changeWorker(type, isHoliday);
      }
    }
    const worker = this.#getAppendingWorker(type, isHoliday);
    return [...accTable, worker];
  }, []);

  return deepFreeze(workingTable);
}

문제를 깨닫고 난 후, 로직을 수정했는데 5줄정도만 수정했으며 5분도 채 걸리지 않았다.. 기능 요구 사항에 있는 예시를 한번이라도 입력해봤으면 이런 실수를 하지 않았을텐데 라는 생각에 빠졌다. 분명 테스트 시간이 끝났을 때만 해도 '최선을 다했고 후회가 없다'라는 생각을 했는데, 실수를 발견하고 나니 후회를 하기 시작했다.

최종 결과

결과를 기다리는 10일 동안 내가 해야하는 일들에 제대로 집중을 하지 못했다. 계속해서 실수가 생각 났었고, 원래 잠을 잘 자는 편이고 꿈도 잘 꾸지 않았는데 한 해 동안 꾸지 않았던 꿈들을 몰아 꾸는것 같다는 생각이 들 정도로 정말 많은 꿈을 꿨다. 그래서, 가만히 후회만 하고 있을 바엔 차라리 움직이자는 생각이 들어 기다리는 동안 거의 매일 등산을 했다.

집 옆에 금련산으로 향하는 길이 있어 생각도 정리할 겸 산으로 향했다. 그리고 결과가 나오는 당일 2시 55분 부터 책상 앞에 앉아 기도를 했고, 결과는

합격이였다..! 실수를 해서 거의 마음을 내려 놓고 있었지만 최종 합격을 하게 되어 정말 기뻤고 가족들 친구들과 기쁨을 공유했다.

앞으로의 계획

본격적으로 우테코가 시작되기 전 까지,

  • 진행 중인 프로젝트를 잘 마무리하기
  • 알고리즘 꾸준히 풀기
  • 리액트 공식문서, 딥다이브 공부하기

들을 할 예정이다. 작년 한 해 결실을 잘 맺은 것 같아 기쁘고 올해도 부족한 부분을 채우기 위해 열심히 공부해야겠다! 😊

profile
블로그 이동했습니다.

4개의 댓글

comment-user-thumbnail
2024년 1월 2일

합격 축하드려요!! 앞으로 화이팅입니다 👍👍

1개의 답글
comment-user-thumbnail
2024년 1월 2일

혹시 젤 왼쪽 상단 테이블에 계셨었나여 ㅋㅋㅋㅋㅋ 저는 바로 아래 테이블에 있었는데 합격 하셨군요!!

정말 축하드려요 🙏🙏🥹 같은 부산 분이 계셔서 반갑네여!! 6기 잘 부탁드리겠습니다 그 동안 고생 많으셨구 같이 화이팅해봐요!🙇🙇

1개의 답글