Skip to content

if-muneo/muneo-be

Repository files navigation

프로젝트 배경

문제 인식

현재 LG U+ 챗봇(홀맨)은 대부분 정형화된 응답 스크립트에 의존하고 있으며, 고객의 세부적인 통신 사용 패턴이나 선호도를 반영하지 못하는 룰 기반의 방식을 취하고 있습니다. 이로 인해 고객은 본인에게 적합하지 않은 요금제를 안내받거나, 관련없는 정보를 받는 등 불편을 겪고 있습니다.

해결 목표

본 프로젝트는 제시된 요구사항과 더불어 LG U+ 고객 대상 챗봇 서비스를 구현하여, 사용자의 통신 사용 패턴과 선호도를 반영한 맞춤형 요금제 추천과 간단한 질의응답 용례 기능을 제공하는 것을 목표로 합니다.

기대 효과

이에 따라 페르소나는 "나에게 맞는 요금제를 추천받고 싶은 고객"으로 제한하여 설정했으며, 해당 사용자에게 실제로 기존 홀맨의 응답에서 나아가 자연스럽고 정확한 응답을 제공하는 것에 목적이 있습니다.

ERD

image

서비스 요청 흐름도

image

시스템 아키텍처

image

기능 소개

1️⃣ 로그인

👉 IFMUNEO 유저는 ID/PW로 로그인할 수 있습니다.



2️⃣ 메인

👉 IFMUNEO의 메인에서는 주요 요금제와 제공하고 있는 부가서비스를 한눈에 확인할 수 있습니다.



3️⃣ 챗봇

👉 챗봇 무너를 이용하면 24시간 내내 요금제와 관련하여 궁금한 사항을 물어볼 수 있습니다.
👉 LG U+에서 제공하는 요금제를 추천받을 수도 있습니다.




image

4️⃣ 요금제 모아보기

👉 요금제 모아보기를 통해 LG U+에서 제공하고 있는 다양한 요금제를 확인할 수 있습니다.



image

5️⃣ 요금제 상세보기

👉 요금제 모아보기 페이지에서 각 요금제를 클릭하면 해당 요금제의 세세한 정보를 확인할 수 있습니다. 👉 해당 요금제를 이용한 사용자가 남긴 리뷰를 확인할 수 있으며, 로그인한 사용자가 사용하고 있는 요금제일 경우 직접 리뷰를 남길 수 있습니다.


(화면 추후 공개)

image

6️⃣ 부가서비스 모아보기

👉 부가서비스 모아보기를 통해 LG U+에서 제공하고 있는 다양한 부가서비스를 확인할 수 있습니다.



image

7️⃣ 마이페이지

👉 마이페이지에서는 사용자의 정보를 확인할 수 있습니다.



image

8️⃣ 관리자 모드

👉 관리자는 ADMIN 페이지에서 요금제 데이터를 생성할 수 있습니다.



image

9️⃣ (관리자만 해당) 요금제 · 부가서비스 생성

👉 관리자는 다음과 같은 순서로 요금제 데이터를 생성할 수 있습니다.


- 부가서비스 생성

image

image

  • 부가서비스 그룹 생성


image image

  • 요금제 정보 생성


- 요금제 생성

image

image

🛠️ Tech Stack

📱 Frontend

React TypeScript

🔧 Backend

Spring Boot WebFlux WebSocket JUnit JPA JDBC

🗄️ Database

PostgreSQL pgvector

☁️ Infrastructure

Redis OpenAI API Docker AWS EC2 AWS RDS AWS CloudFront

Team Rule

🌿 브랜치 관리

  • 기본 구조: maindevelopfeature/MUN-123-feature-name
  • 작업 절차: develop에서 feature 브랜치 생성 → 개발 → PR 생성 → 코드 리뷰 → develop 머지
  • 동기화 원칙: 작업 시작 전과 푸시 전에 반드시 develop 최신화 후 merge
  • 완료 기간: 각 feature 브랜치는 1-3일 내 완료, develop 직접 커밋 금지

📝 커밋 컨벤션

MUN-[티켓번호] [타입]: [간단한 설명]
  • 타입: feat(기능), fix(버그), refactor(리팩토링), docs(문서), test(테스트), chore(기타)
  • 예시: MUN-123 feat: 사용자 인증 기능 구현

🔍 코드 리뷰

  • 리뷰어: 모든 PR에 3명 지정, 24시간 내 리뷰 완료
  • PR 크기: 200줄 이하 권장, 효율적인 리뷰를 위한 적절한 단위 유지

💻 코딩 컨벤션

  • 엔드포인트: /v1/chat 형식
  • 클래스명: PascalCase, 역할별 suffix (Controller, Service, Repository)
  • 메서드명: camelCase, 의도가 명확한 네이밍
  • Bean 명명: camelCase, 소문자 시작
  • 멤버 순서: 상수 → 인스턴스 변수 → 생성자 → public 메서드 → private 메서드

⚡ 개발 원칙

  • 레이어 분리: Controller → Service → Repository 계층 구조 준수
  • 의존성 주입: @RequiredArgsConstructor 활용한 생성자 주입
  • 예외 처리: 글로벌 예외 핸들러를 통한 일관된 에러 응답
  • 테스트: 비즈니스 로직에 대한 단위 테스트 필수 작성

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8