🍒 진행상황

백엔드, 프론트엔드 모두 TypeScript 적용하고 CSS-Module도 적용하였습니다.

Redux까지 적용을 고려해보았으나, 아무리 봐도 프로젝트의 규모가 그정도는 아닌 것 같아서 시도하지 않았습니다. 추후에 상태관리가 필요하다면 Context API 정도는 사용할 예정입니다.

현재 개발중인 면접 모드는 “실전면접” 입니다. 실전면접 모드를 개발하면서 생긴 이슈들을 적어보겠습니다.

🍒 실전면접 이슈

먼저, GPT는 입출력토큰이 제한되어있습니다. 출력토큰이야 프롬프트 설계 시에 “최대한 간략하게 말하시오” 같은 명령을 내려준다면 그래도 토큰이 초과할만한 경우가 많지는 않습니다.

하지만 입력토큰의 경우 면접 대화내역을 매 답변마다 모두 GPT에게 보내주어야 하는 상황에서, 면접이 길어질수록 토큰이 초과할 수 밖에 없는 상황이 발생합니다.

이 문제로, 실전면접의 경우 프롬프트 설계 단계에서 질문의 개수를 4개정도로 설정하고, 추가질문을 하지 않도록 하는 문장을 많이 넣어주었습니다.

즉, 면접을 최대한 짧게 끝냄으로써 입력토큰이 초과되지 않도록 하는 방법을 채택했습니다.

그럼 면접의 퀄리티가 너무 낮아지는 것 아닌가요?

충분히 그럴 수 있습니다. 그래서 모드를 나눈겁니다. 실전면접은 진짜 실전처럼 면접을 진행하고, 면접이 끝나면 전체적인 피드백을 받아볼 수 있도록 구현할 것입니다.

좀 더 깊은 면접은 “연습면접” (아직 이름이 확실하진 않습니다) 모드에서 무한으로 면접을 진행하는 방식으로 구현할 예정입니다.

입력토큰의 제한이 있다면서 연습면접에서는 어떻게 무한으로 면접을 진행하나요?

연습면접에서는 면접내역을 모두 GPT에 넘겨주는 것이 아닌, 최근 내역 몇개만 잘라서 넘겨줌으로써 현재 질문에만 집중하는 식으로 구현할 예정입니다.

또 다른 이슈는 면접관이 면접자에게 질문을 던지지 않은 채 대화를 끝내는 경우입니다. 이것은 프롬프트 설계로 막아보려고 수많은 노력을 해보았지만, 워낙 제멋대로인 GPT의 특성 상 예외는 항상 발생했습니다. 따라서, 면접자가 할 말 이 없는 순간에 “면접 진행” 버튼 같은것을 만들어서, 면접관이 한번 더 말하도록 하는 방법을 개발할 예정입니다.

🍒 디자인의 부재

혼자 모든 부분을 개발해야 하는 상황에서, 디자인적인 부분의 부재가 발생하였습니다. 일단 다른 기능들을 구현해놓고 레퍼런스들을 최대한 참고하여 랜딩페이지 (면접 모드를 설정할 수 있도록 함) → 이름, 직무 입력 → 면접 순서로 웹을 구현할 예정입니다.

🍒 앞으로 할 일

  1. 실전면접 프롬프트 다듬어서 더 이상 수정하지 않아도 되도록 확정하기
  2. 면접자가 할 말이 없어질 때 진행 버튼 만들기
  3. 디자인 구성
  4. 이름, 직무 입력받아서 프롬프트에 넣어주기
  5. 연습면접 모드 구현
  6. 하드모드 구현 (면접관이 깐깐함)