NCP를 활용한 RAG 기반 키워드 추출 (팀피셜)

이민호·2025년 11월 28일

프로젝트 소개

우리는 팀빌딩 과정에서 반복적으로 발생하는 ‘소프트스킬 파악의 어려움’을 해결하기 위해 팀피셜(Teamficial)을 만들었다.

대부분의 팀원 모집은 기술 스택 중심으로 이루어지지만, 실제 협업의 문제는 소통 방식·책임감·성향 차이에서 비롯되는 경우가 많다.
기존 플랫폼들은 하드스킬 위주의 매칭에 머물러 있어, “이 사람과 잘 맞을까?”라는 핵심 고민을 해결해주지 못했고,
팀피셜은 이러한 문제를 해결하기 위해 사람의 성향과 협업 스타일에 기반한 팀빌딩 경험을 제공하고자 했다!

깃허브 : https://github.com/TEAMFICIAL/teamficial-be

활용한 서비스

naver cloud platform에서는 굉장히 많은 서비스를 활용했는데, 이는 다음과 같다

🖥️ 컴퓨팅 (Compute)

  • Server (VPC)
    🗄️ 스토리지 (Storage)
  • Storage
  • Object Storage
    🛢️ 데이터베이스 (Database)
  • Cloud DB for MySQL
    🌐 네트워크 (Network)
  • VPC (Virtual Private Cloud)
  • Global DNS
    🔍 분석 / 검색 (Analytics & Search)
  • Search Engine Service (VPC)
    📦 컨테이너 (Container)
  • Container Registry
    🤖 AI / 클로바 (AI & CLOVA)
  • CLOVA Studio

우선, 구성했던 아키텍처를 공유하며 설명을 시작해보겠다.


1. 개발 & GitHub Workflow

  • GitHub 리포지토리에서 기능 개발과 브랜치 전략을 기반으로 코드를 관리, Pull Request가 생성되면 GitHub Actions가 자동으로 빌드·테스트 파이프라인을 실행해 품질을 검증
  1. CI/CD – GitHub Actions 기반 자동 배포
  • Merge가 완료되면 GitHub Actions가 Spring Boot 애플리케이션을 Docker 이미지로 빌드, 빌드된 이미지는 Naver Cloud Platform의 Container Registry로 push
  1. 서버 배포 – Naver Cloud Container 환경
  • NCP 서버는 Container Registry에서 최신 이미지를 pull하여 서비스 컨테이너를 구동, 서버 앞단에는 Load Balancer를 구성해 트래픽을 분산 처리하고, Certbot을 통해 HTTPS 인증서를 자동 갱신

이때, 로드밸런서 사용한 이유는 처음에 블루그린 배포하려다가, 아직은 서비스 볼륨이 크지않다고 생각해서 단일 인스턴스로 다시 수정했고 추후에 배포 전략을 바꿀 가능성이 크다


키워드 추출 로직

우리는 "팀피셜록"이라는 내 팀원들의 리뷰들을 받고, 그 리뷰들로 부터 특정 키워드를 추출하는 로직을 짜야했다.

그림부터 보자,

우선 키워드와 팀피셜록의 의미적 유사성을 통해 키워드 추출 기능을 구현하려 했다.
우리는 110여개의 데이터를 먼저 임베딩 해, Opensearch에 임베딩 해놓았다.
이후, 이용자가 적은 팀피셜록 3개에 대해 각각 키워드를 추출하는데,
이때 LLM을 이용해 250자 정도의 팀피셜록을 30~40자 정도의 키워드 중심 문장으로 축약하는 로직이 적용된다.

예를 들면 다음과 같다.

[예시]
입력: 그분의 가장 큰 무기는 탁월한 커뮤니케이션 능력이었습니다. 단순히 말을 잘하는 수준이 아니라, 팀의 상황을 빠르게 파악하고 필요한 정보를 명확하게 전달해 협업 효율을 극대화했습니다. 덕분에 프로젝트 방향이 흔들릴 때마다 중심을 잡아주는 역할을 해주셨습니다.
출력: 탁월한 커뮤니케이션으로 협업 효율을 높임

이와 같이 나오게 된다!

이게 가끔 이상한 말을 쓰면 이상하게 키워드 매핑이 있는데, 그것을 검증하는 부분을 출시 전 까지 보충을 해야할 것 같다 !

profile
효율적으로 살게요.

0개의 댓글