Stones Lab.

스톤즈랩과 안녕,자비스팀의 이상동몽(異床同夢)

Stones Lab
Stones Lab
Cover Image for 스톤즈랩과 안녕,자비스팀의 이상동몽(異床同夢)

시작하면서(feat. Rain)

류이치 사카모토의 'Rain'이 극적으로 흐르고 있는 가운데 여인 [원슈]가 [푸이 황제]에게 이혼을 요청하고, 우산도 없이 비를 맞으며 도망치는 장면이 펼쳐집니다.

영화 "마지막 황제"에서는 이러한 장면 통해 [푸이 황제]와 [원슈]가 부부라는 같은 세계에서 서로 다른 꿈을 꾸고 있는 것을 보여줍니다. 푸이 황제도 피해 갈 수 없었던 동상이몽(同床異夢)은 우리 주변에서 흔히 볼 수 있는 일이기도 합니다. 심지어 오늘 하루를 같이 시작했던 동료들도 같은 경험을 서로 다르게 해석 하는 것처럼 말이죠.

이상동몽(異床同夢)

Thumbnail

하지만 반대로 서로 다른 곳에서 같은 꿈을 꾸는 경우도 있을까요?
이것은 마법 같은 일이지만, 스톤즈랩이 실제로 직접 겪은 일이기도 합니다.

곧 바로 이 흥미진진한 이야기를 시작하기 전에, 오늘 진행을 이어갈 각 팀의 MC를 소개하겠습니다.

스톤즈랩의 MC 티키, 안녕,자비스팀의 MC 자비스입니다.

티키
티키
안녕하세요!, 저는 스톤즈랩의 MC 티키입니다.
자비스
안녕하세요~ 😆 저는 안녕,자비스팀의 MC 자비스입니다.
자비스

소개가 끝났네요.

이제 저는 3인칭의 시점으로 돌아가, 이들의 이야기에 귀 기울여보겠습니다.

Diversis lectis, idem somnium

Scene #1. 우연한 만남

티키
티키
스톤즈랩의 이야기를 먼저 시작해볼게요. 😆
티키
티키
저희 스톤즈랩의 구성원은 포텐데이라는 해커톤에서 서로를 처음 만났고,
초기에는 취뽀클로바라는 이름으로 시작했어요. '티키타카'라는 프로젝트를 진행하면서,
수상도 하게 되었고, 실제로 서비스를 런칭하면서 스톤즈랩이라는 이름으로 활동하게 되었죠.

자! 저희 팀원을 소개합니다!
thumbnail
진협
PM

무한동력

thumbnail
민경
PM

비타민

thumbnail
유진
Designer

금손 확실!

thumbnail
호윤
Backend

뚝딱하면 끝!

thumbnail
원호
AI

상상 그 이상

thumbnail
우원
Frontend

약간의 지식

자비스
스톤즈랩의 소개 정말 흥미진진하네요! 😆
구성원들도 다들 좋으신 분 같아요.
그럼 안녕,자비스팀도 소개해볼까요?
자비스
자비스
저희 안녕,자비스팀은 네이버 부스트캠프 AI Tech 6기로 만났어요.
자비스라는 이름은 JOB-IT-S(ervice)의 합성어로,
IT 서비스를 제공하는 직업을 가진다는 의미를 담고 있어요.

저희는 개인의 성장 == 팀의 성장이라는 마인드로
잘 모르는 부분이 있다면 함께 알려주고 배워가면서 성장하고 있어요.
또한 배운 것을 바탕으로 자신의 역량을 팀에서
조화롭게 녹여나갈 수 있도록 믿어주고 응원해주고 있답니다!

아래는 저희 팀원입니다!
자비스
thumbnail
희찬
Backend

섬세한 손길

thumbnail
민석
Backend

무한한 열정

thumbnail
유림
Engineer

성장을 원해요

thumbnail
태연
Engineer

끝까지 간다

thumbnail
상수
Engineer

포기하지 않아요

thumbnail
예진
PM

좋아 즐거워

Scene #2. 지난 이야기

티키
티키
희찬, 민석, 유림, 태연, 상수, 예진!
안녕,자비스팀의 멤버들도 정말 멋있어 보이네요! 😆
티키
티키
팀 소개를 들으니, 프로젝트 히스토리가 더욱 궁금해져요.
이어서 소개해주세요.
자비스
아무래도 히스토리는 구간을 나눠서 소개하는게 좋을 것 같아요.
먼저 [💡 주제 선정 배경]을 소개해볼게요.
자비스
자비스
NLP 도메인에서 취업 준비를 하다보니,
취업에 도움이 되는 챗봇을 만들어보고 싶었어요.

개인의 자소서와 블로그를 학습한 분신과 같은 챗봇을 만들어
'답변'에 집중한 모델을 배포해보면 좋겠다고 생각했죠.

하지만 프로젝트 진행 과정은 순탄하지 않았어요.
팀내에서도 '좀 더 사용자 입장에서 많이 사용할 만한 서비스가 없을까?'라는 의문이 제기되었고,
본인의 입장에서 답변해주는 챗봇은 생성된 답변을 보여줄 대상이 많이 없다는 생각이 들었답니다.
그래서 저희 팀은 최종적으로 타겟을 취업준비생으로 유지하고,
답변 보다는 '질문' 생성에 중점을 맞추기로 의견을 모았어요.

기존에 운영되고있던 구인구직 플랫폼들을 분석해보면,
실제 면접에 가까운 구체적인 질문을 생성해주는 기능이 좀 부족하다는 문제를 발견 할 수 있어요.
또한 질문 생성에서 나아가, 지속적으로 지원자를 파악하기 위한
꼬리 질문을 생성해주는 서비스가 없다는 것에
"아! 이거다"라는 확신이 들었답니다.
자비스
티키
티키
흥미진진한 주제 선정 배경이네요! 😆
이제야 안녕,자비스팀의 색깔이 좀 더 잘 와닿네요.
그럼 혹시 [💡 피벗 경험]은 없는 건가요?
자비스
피벗 경험은 현재로서는 없어요.
다만 자원 내에서 우리가 추구할 수 있는 방향 및 차별점을 꾸준히 재정의하고
서비스 타겟을 재조정하는 과정을 무수히 거쳤어요.
자비스
티키
티키
치열한 과정이었겠네요.
박수를 보내드립니다! 👏
[💡 팀원 간의 소통 방식]은 어떻게 이루어졌나요?
자비스
매일 아침 데일리 스크럼 시간을 가지고 오후에는 정기적으로 회의를 했어요.
특히 회의 과정은 Notion, Figma와 같은 툴을 사용해서
내용을 쉽게 공유하고 기록으로 상세히 남겼답니다.
자비스
티키
티키
이건 조금 민감한 주제일 수도 있겠네요.
[💡 팀원들과의 갈등]은 없었나요?
자비스
물론 없었다고 할 수는 없어요.
하지만 팀원들과의 갈등보다 프레임워크 갈등(기술적 문제)가 더 많았어요.
AI 부스트캠프에서 만난 팀원들이다보니
프론트를 담당할 팀원이 없어서 Streamlit을 대체로 사용했는데요.
FastAPI와 연결하는 부분에서 많은 문제가 발생했어요.┌( ಠ_ಠ)┘

그 중에서 Streamlit을 통해 여러 사용자를 동시에 관리하는 것이 어려웠어요.
업로드된 이력서로 질문을 생성할 때,
한 사람이 테스트할 때는 잘 되던 것이 동시에 테스트를 진행하니
첫 번째로 입력된 이력서로 모든 질문을 생성하는 문제를 발견했어요.
이를 해결하고자 세션 상태를 이용해서 사용자를 구분했고,
구분된 사용자를 잘 인식하는 것을 확인했지만 같은 문제가 해결되지 않았어요.

이로 인해 서비스 런칭을 잠시 미루고,
데모 버전으로 최종 프로젝트를 마무리했답니다.
추후 MongoDB로 사용자 정보를 백엔드 단에서 불러옴으로써
동시 접속 문제를 해결하고자 합니다!
자비스
티키
티키
기술적인 문제는 어쩔 수 없는 것 같아요.
하지만 프론트를 담당한 팀원이 없어도
서비스를 런칭할 수 있었던 것은 대단한 것 같아요! 😆
칭찬해주고 싶네요!

Scene #3. 너는 다 생각이 있구나!

티키
티키
이제 좀 더 프로젝트에 집중해볼게요.

프로젝트를 기획하고 정보를 수집하는 과정에서
이미 같은 제품을 만들고 있는 서비스를 벤치마크한 적이 있나요?
벤치마크한 대상이 있다면, 어떤 서비스였나요?
자비스
물론 있어요.
아래와 같이 벤치마크 대상을 정리해봤어요.

⭐️ [티키타카] (^^ 🫶🏻)(づ ̄ 3  ̄)づ ╭❤️ ~

- UI/UX 설계 면에서 사용자 경험 및 편리성을 많이 고려하신 게 느껴졌어요.
- 로봇 너무 귀여웠어요!!!

⭐️ [하이어뷰]

- [하이어뷰 깃헙](https://github.com/hotorch/hireview)
- 공개한 코드 중 프론트엔드 설계 구조가 효율적이고 명료하다고 느꼈어요.

⭐️ [원티드 AI 면접 코칭]

[원티드](https://www.wanted.co.kr/ai-interview?defaultId=3703)

- 상용화된 면접 서비스라 참고하며 해당 서비스에서 보완할 점을 찾아내고자 했어요.
자비스
자비스
이렇게 벤치마크를 통해 서비스의 장단점을 파악하고
보완할 점을 찾아내는 것이 중요하다고 생각해요.

또한 저희는 Git을 통해 버전 관리를 하면서 프로젝트를 진행했답니다.
자비스

Scene #4. 개발이 계속되면 그게 프로젝트인줄 알아

티키
티키
이제 가장 기대되는 시간이죠! 😆
얼른 포지션과 기술 스택을 소개해주세요!
자비스
알겠어요 ㅎㅎ 포지션과 기술 스택을 소개해볼게요!
자비스
자비스
먼저 백엔드 포지션이에요.
백엔드는 민석, 희찬이 맡았어요.
그리고 기술 스택은 FastAPI를 사용했어요.

FastAPI를 선택한 이유는
팀원들이 파이썬 언어에 익숙하고,
직관적이고 쉽게 구현할 수 있었기 때문이에요.
또한 다른 파이썬 백엔드 프레임워크에 비해 실행 속도가 빠르다는 장점이 있어요.
자비스
Thumbnail
자비스
다음은 프론트엔드 포지션입니다.
프론트엔드는 예진, 상수가 맡았어요.
그리고 기술 스택은 Streamlit, CSS, JavaScript를 사용했어요.

Streamlit을 선택한 이유는
익숙한 파이썬 언어로 구현 가능한 Streamlit을 주로 사용했기 때문이에요.
그리고 빠른 프로토타입핑이 가능한 Streamlit으로 기간내 데모 서비스 제작을 위해 사용했어요.
자비스
Thumbnail
티키
티키
FastAPI는 최근 인기가 많은 것 같아요.
저도 FastAPI를 사용해보고 싶네요! 😆
그리고 Streamlit으로 빠르게 프로토타입을 만들 수 있다니, 정말 편리한 것 같아요!
티키
티키
그럼 기초기술질문을 생성하는 방식은 어떻게 구성했나요?

Generation(Langchain) + Retriever(Semantic Search/Rule-Based)

자비스
기초기술질문은 Semantic Search와 Rule-based Model을 활용했어요.

Semantic Search는 FAISS를 활용하여 수집된 기출 기술면접
데이터셋을 임베딩하여 vector store에 저장한 뒤,
사용자의 이력서와 채용공고가 Input으로 들어오면
이와 유사한 기출면접질문을 검색해서 내보냈어요.
이때, Reranker를 활용해서 retriever 성능을 개선시켰어요.

Rule-based Model은 채용 공고 및 이력서에 특정 키워드가 등장할 경우,
해당 키워드와 관련된 질문을 추출했어요.
(별도의 사전학습 모델을 사용하지 않는 방식으로,
연관성을 높이기 위해 다양한 규칙을 추가했어요.)
자비스
자비스
선택에 대한 이유는 기술면접은 주로 프로젝트 관련 질문,
기초기술질문 이런식으로 구성이 되는데, Generation만을 사용했을 때는
기초기술질문이 구체적이지 못 한 것을 느꼈기 때문이에요.

그렇기 때문에 프로젝트 관련 질문은 Generation을 활용하여 생성하고,
기초기술질문은 실제 기출 기술 질문을 수집하여
사용자의 채용공고나 이력서와 유사한 것을 검색해올 수 있도록
Semantic Search(FAISS)와 Rule-based model을 활용했어요.
자비스
티키
티키
확실히 Generation과 Retriever를 조합하니
더욱 풍부한 질문을 생성할 수 있겠네요!

아! 간단한 아키텍쳐 도식도 준비하셨다고 하셨죠? 😆
자비스
네 맞아요! 간단한 아키텍쳐 도식을 준비해봤어요.
자비스
Thumbnail

Generation : Langchain 활용해서 이력서와 채용공고를 요약하는 chain을 만든 후, 이 내용을 바탕으로 프로젝트와 관련된 면접 질문을 생성하는 방식으로 구성 (3-chain 구조)

Scene #5. 끝은 시작이다

티키
티키
자비스 팀의 프로젝트는 정말 흥미진진하네요! 😆
시간 가는 줄 모르고 듣고 있었어요.

이제 마지막으로 평가 및 후기를 들어볼게요.
자비스
저도 티키님과 함께 이야기를 나누는 것이 정말 즐거웠어요!
벌써 마지막이라니 아쉽네요.
음... 종합적인 평가와 후기를 먼저할까요?
자비스
티키
티키
네, 먼저 총평을 들어볼게요! 😆
자비스
LLM과 retriever 모델을 활용하여,
개인에게 맞춤화된 서비스를 제공하면서도,
할루시네이션을 줄이는 방향을 모색했어요.

결과적으로, 채용 공고와 사용자의 정보를
모두 고려한 고품질의 면접 질문을 생성할 수 있었답니다.
또한 사용자의 답변에 대한 피드백이
면접관의 의도와 적합한지 판단하고,
보충해야 할 부분까지 적절히 제시했다고 생각해요.
자비스
티키
티키
아쉬운 점이나 좋았던 점이 있을까요?
자비스
아쉬운 점은 데모 서비스 런칭을 하지 못했다는 점이에요.
그로 인해 실제 사용자 경험에 대한 조사가 부족했다는 점이 아쉬움으로 남아있어요.

좋았던 점은 예상 질문에 사용자만의 경험과 채용 공고에서
알 수 있는 면접관의 의도를 잘 반영했다는 점이에요.
또한, 2-stage 모델을 활용함으로써 할루시네이션을 줄인 점도 좋았던 점이에요.
자비스
티키
티키
앞으로의 계획은 어떻게 되나요?
자비스
백엔드, 프론트엔드 에서 보완할 부분을 보완한 뒤
최소 1~2달 이상 짧게 서비스를 런칭 해보려 한답니다!

이를 통해 사용자 피드백을 반영하고
프로젝트의 도메인 전문성을 제고하며
더욱 체계적인 성능 지표를 개발할 계획이에요.

특히, 정량적 분석과 정성적 분석을 모두 활용하여,
사용자 입장에서 더 나은 서비스를 제공받을 수 있도록
프로젝트를 개선해나갈 예정입니다.

그 외로는 검색 속도를 개선하고 API 활용 비용을 최적화하며
개발 단계에서의 문제점도 개선 하고자 해요.
또한, 앞서 언급했던 사용자 정보 저장 등의 기능을 추가하여
개인 맞춤형 서비스 측면에서의 차별점을 더욱 견고히 할 예정이에요.
자비스
티키
티키
자비스 정말 수고 많으셨어요!
앞으로의 계획도 정말 기대되네요! 😆
저희 팀도 이번 경험으로 더욱 성장할 수 있도록 노력하겠습니다!
수고하셨어요! 👏
자비스
영광이었습니다! 😆
티키님도 수고 많으셨어요! 👏
자비스

Scene #6. 끝

돌아왔습니다.

밖에서 보고 있던 저는 자비스팀의 프로젝트를 들으면서 정말 흥미진진한 영화를 보는 것 같았습니다. 사용자의 입장에서 더 나은 서비스를 제공하기 위해 노력하는 모습이 정말 인상적이었습니다. 앞으로의 자비스팀의 활약을 기대해봅니다!

수고하셨습니다! 👏