Lsiron

일곱달 차 겸 3차 프로젝트 후기 (엘리스) - NUDDUCK (면접 커뮤니티 웹 서비스) 본문

회고록/회고록

일곱달 차 겸 3차 프로젝트 후기 (엘리스) - NUDDUCK (면접 커뮤니티 웹 서비스)

Lsiron 2024. 10. 15. 20:52

3차 프로젝트 기간 : 2024.08.29 ~ 2024.10.4 ( 5주 )

벌써 마지막 프로젝트인 3차 프로젝트도 끝이났다! 그리고 개발 공부를 시작한지 이제 7개월 차 이다!

 

이제 슬 정리도 하고 포트폴리오도 작성하면서 본격적으로 취업준비를 해야겠다!

 

3차 프로젝트를 기획하며 과연 이 프로젝트를 한정된 데드라인 안에서 모두 끝낼 수 있을까..? 생각이 들었다. 

 

각자의 실력을 제대로 알지 못 할 뿐더러 모두 익숙한 스킬이 아닌 처음 사용하는 기술, 프레임워크이기 때문에 두려움이 더 컸다.

 

허나, 모두의 걱정과는 달리 아주 멋지게 완성작을 내 놓았고, 배포 및 발표도 무사히 끝났다!

 

프로젝트가 끝나고 생각해본 결과, 프론트 / 백 구분 짓지않고 어느 한 부분이 안된다면 모두가 달라붙어서 해결하려하는 팀 워크가 이러한 결과를 만들어 낼 수 있다고 결론지었다. + 매일매일 할 수 있다는 가스라이팅과 함께...

 

또한 팀원이 할 수 있을 것이라는 믿음과 함께 뒤에서 적절히 서포트를 해 주는게 중요함을 이번 프로젝트를 통해 많이 느꼈다.

 

예를 들어, 과한 믿음은 한 가지 경우의 수를 만들게 되는데 바로 해야할 일을 정해진 기간안에 못 끝냈을 경우, 믿음이 깨지며 해당 팀원에게 더 이상 업무를 맡기지 못 하게 되는 것.

 

그렇다고 해서 너무 믿지 않는다면 이는 과한 서포트로 이어지며 팀원의 성장을 방해 하는 격이 될 것이다.

 

때문에 적절한 믿음과 적절한 서폿 이게 바로 서로가 윈-윈 하는 방법이 아닐까 싶다.

 

5주간 프로젝트를 하면서 가장 크게 느낀 점이며, 9월에 지켜야했던 가장 중요한 마음자세 였던 것으로 기억한다!

 

다시 돌아와서.. 우리의 면접 커뮤니티 웹 프로젝트! 누떡(누워서 떡 먹기)이란?

 

유저가 AI 코치를 통해 예상 면접 질문을 받고, 이를 통해 실전 대비를 할 수 있으며 또한, 관심사 기반 커뮤니티 기능을 통해 쉽게 면접 메이트를 찾고 교류할 수 있는 웹 서비스이다!

 

사실 이를 처음 기획할 때, 내가 가장 필요하다고 생각한 사이트를 생각하며 기획했다.

 

면접준비를 할 때 적절한 면접 질문 모음집과 질문을 바로바로 해 줄 수있는 사람이 없는 점. 스터디를 구하기 힘들다는 점. 면접에 대한 정보 및 스킬을 수집하기 어렵다는 점. 이였다.

 

허나 누떡에서는 모두 다루고 있다. 덤으로 내가 인성면접을 준비 할 때 유용하게 사용하던 인생그래프 까지!

( 인생그래프란? 본인이 살아오면서 다양한 시점이 있을 것이다. 해당 시점에 대해 이벤트가 있었다면 그 내용을 기록하고 점수화 하여 종합적으로 X축을 나이 Y축을 점수로, SIN 그래프처럼 만드는것이다. )

아래 와 같은 형식으로 만들었다! 아마 개발자 취업할때도 유용하게 사용할 듯하다!  참고로 우리 서비스는 점수가 -5점부터 +5점까지 있다.

 

나는 면접에서 말하는 화술도 중요하지만 순간 반응속도와 짧은 시간안에 생각과 말을 정리해서 입으로 뱉는 스킬이 중요하다고 생각한다. 면접에서 답변할 시간을 계속 기다려줄 만큼 면접관들은 한가하지 않다.

 

이러한 점에서 AI 코치가 되게 마음에 들었던게, 유저가 AI 코치의 질문에 답변을 하면 다음 질문을 재깍재깍 던져주는 점.

 

이 점이 유저의 순발력도 상당히 향상시킬 것으로 예상한다!

 

3차 프로젝트는 AI 웹 프로젝트가 주제인 만큼 우리는 AI를 무조건적으로 도입을 해야했고, 누군가 한명은 담당 해야했다.

 

허나 내가 기획을 할 때 부터 이미 AI는 챗봇으로 구상했었고, 내 머릿속에서 나온 기획이니 내가 AI를 담당하기로 했다.

 

Nest.js 를 처음 사용해보는 프로젝트인데 AI까지 될까..? 생각했지만 안 될게 무엇인가.

 

일단 우리가 모델을 만들고 그 모델에 모든 데이터를 학습 시키는 것은 절대로 무리라고 생각했다.

 

제대로된 모델을 만들 수 있는 방법을 모를 뿐 더러 아무리 엘리스에서 GPU 환경을 제공 해 준다고 한들, 그 수많은 데이터를 모두 학습 시킬 자신이 없었다.

 

때문에 KoGPT-2 모델에 AIHUB에 있는 채용면접 인터뷰 데이터를 학습 시키기로 했다. 즉, 튜닝을 시키기로 한 것.

 

한국어에 능통한 모델에, 면접 데이터만 학습시킨다면 QnA식의 면접 챗봇이 나오지 않을까? 하는 가설은 적중했다.

 

서비스 성격에 걸맞는 면접 AI 챗봇이 탄생하게 된 것이다. 채용면접 인터뷰 데이터는 Question과 Answer로 나누어서 전처리를 해 주었으며 이를 그대로 KoGPT-2 모델에 학습시켰다.

 

AI가 빨리 끝난 덕분에 내가 담당한 백엔드 파트도 수월하게 끝낼 수 있었다.

 

AI 챗봇과의 대화는 HTTP 응답방식으로 이루어지도록 구성했고, axios의 HttpModule을 이용하여 유저의 Query를 Flask 서버로 POST메서드를 통해 보내도록 했다. 이 후, 응답 data에 AI의 답변을 받아오도록 구성하면 끝.

 

chatGPT처럼 스트리밍 형식도 하고싶었으나, 로딩중으로만 뜨도록 하는게 최선이였다! 나중엔 꼭 한번 해보고싶다!

 

배포때.. 저 POST메서드를 통해 Flask서버로 Query를 보내는 구조 때문에 골머리를 앓았으니.. 트러블슈팅으로 따로 다루도록 하겠다!

 

다음으로 트러블 슈팅을 정리하면서 리팩토링도 하고 포트폴리오도 다듬어 가는 작업을 시작해야겠다!

 

아래는 팀원 분께서 정성스레 제작한 누떡의 시연영상이다!

https://github.com/Lsiron6661/NUDDUCK

 

GitHub - Lsiron6661/NUDDUCK

Contribute to Lsiron6661/NUDDUCK development by creating an account on GitHub.

github.com

 

+보너스

1등을 했다..! 수료식때 상을 받으니 노력한 성과가 보여서 감회가 새로웠다!