본문으로 건너뛰기
← 작업 목록PROJECT / 02
진행 중 · 개발 · 개선 중

선비 · Seonbi

상황형 질문으로 나의 선호를 찾고, 추천 이유와 선택이 달라지는 조건을 보여 주는 의사결정 서비스

선비 의사결정 서비스 시작 화면
맡은 일
분석 엔진 · 질문 흐름 · AI 연동
참여 방식
팀 프로젝트
기간
2026.10.19 — 진행 중

어떤 서비스인가요?

노트북 구매나 진로·활동 선택처럼 여러 후보를 놓고 고민할 때, 자신이 중요하게 생각하는 기준을 찾아보는 서비스입니다. 후보와 비교 항목을 입력하고 상황형 질문에 답하면 추천 순위와 그 이유, 다른 후보가 유리해지는 조건을 확인할 수 있습니다.

선비 서비스의 실제 시작 화면

사용 흐름

  1. 고민 제목과 후보, 비교 항목, 항목별 값, 필수 조건을 입력합니다.
  2. A/B 선택이나 슬라이더 질문에 답합니다. 답변에 따라 다음 질문이 달라집니다.
  3. 추천 순위, 1위가 될 확률, 결정 안정성과 답변에서 드러난 선호를 확인합니다.
  4. 기준의 중요도를 조정해 결과가 달라지는 조건을 살펴봅니다.
  5. 최종 선택을 확정하거나 기록을 Markdown으로 내보냅니다.

선비의 노트북 비교 기준 선택 예시 화면

맡은 역할

분석 엔진과 질문 흐름, AI 연동을 중심으로 개발했습니다. Python 참조 구현을 Java로 옮기면서 정규화, 선호 추정, 질문 선택, 종료 판단, 추천 분석을 구현하고 질문·답변·분석 API에 연결했습니다.

AI 제공자별 어댑터와 출력 검증, 호출 한도·사용량 기록도 구성했습니다. Python과 Java의 결과를 비교하는 골든 테스트와 시뮬레이션을 만들었고, 입력 단계·시작 화면 개선, API 문서화와 배포 구성에도 참여했습니다.

WORK NOTES

트러블슈팅

02 CASES
  1. 01

    비슷한 질문이 반복됐습니다.

    이전 질문

    가격 ↔ 무게를 물은 뒤 같은 쌍을 다시 질문

    현재 질문

    가격 ↔ 무게를 물었다면 다른 기준 쌍부터 질문

    해결 과정과 코드 보기

    원인

    이미 가격과 무게를 비교했는데도 같은 기준 쌍을 다시 묻는 질문이 나왔습니다.

    해결 방법

    기존 답변과 후보의 기준 쌍을 비교해 repeatsStated로 중복을 걸렀습니다. 새 조합이 있으면 그중 정보 이득이 큰 질문을 선택했습니다.

    결과

    새 조합이 있는 동안 같은 쌍을 곧바로 되묻지 않습니다. 새 조합이 없으면 허용된 기존 후보에서 다음 질문을 고릅니다.

    실제 코드와 출처

    이전에 물은 기준 쌍은 history에서 확인해 새 질문 후보에서 제외합니다.

    List<Candidate> unseen =
        allowed.stream().filter(c -> !repeatsStated(c.spec(), history)).toList();
    

    질문 선택 코드

  2. 02

    AI 응답이 예상과 달랐습니다.

    문제 상황

    AI 설명 누락 → 빈 결과 위험

    현재 처리

    응답 검증 실패 → 기본 설명 유지

    해결 과정 보기

    원인

    AI 응답에서 설명 항목이 빠지거나 형식이 틀리면 결과 설명이 비거나 분석값과 어긋날 수 있었습니다.

    해결 방법

    서버에서 기본 설명을 먼저 만들고, 검증된 AI 필드만 optionId에 맞춰 적용했습니다. 빈 응답은 기본 설명으로 유지했습니다.

    결과

    유효한 AI 설명이 없어도 기본 설명이 남습니다. 추천 순위와 확률은 분석 엔진 값으로 유지합니다.

    관련 자료

    결과 설명 처리 코드

기술 구성

영역기술용도
화면React · TypeScript · Vite입력, 질문, 분석 결과, 기록
서버Java 21 · Spring Boot · JPA결정 데이터와 분석 API
분석Apache Commons Math · Python 참조 구현선호 추정, 질문 선택, 결과 비교
데이터·배포PostgreSQL · Docker Compose · Nginx데이터 저장과 서비스 배포
AIGemini · OpenAI · Anthropic 어댑터제공자 교체, 출력 검증, 사용량 관리

진행 상태

2026년 10월에 시작한 팀 프로젝트로, 입력부터 질문·분석·결과 확인까지 구현하고 개선 중입니다. 공개 시연 화면은 PC용이며, 로그인 없이 공유된 결정을 조회할 수 있습니다.

프로젝트 기술 구성

  • React
  • TypeScript
  • Java
  • Spring Boot
  • PostgreSQL
  • Docker
  • Python