Skip to content
@Parrotalk

앵무말(Parrotalk)

image

팀원 및 역할

목차

⚒️ 기술스택

본문 확인 (👈 Click)

📞 텍스트 통화


🎤 STT / TTS


🤖 AI


🔄 CI/CD


🔍 모니터링


⚙️ 인프라

🤔 아이디어 소개

본문 확인 (👈 Click)

앵무말'콜포비아' 극복을 위한 AI 기반 통화 보조 서비스로, 전화 통화에 어려움을 겪는 사람들을 위해 설계된 혁신적인 서비스입니다.
이 서비스는 음성 통화를 텍스트로, 텍스트를 AI 음성 기술로 변환하여 사용자와 상대방 간의 의사소통을 더욱 편리하고 효과적으로 만들어 줍니다.
특히, 통화에 불안감을 느끼거나, 목소리에 자신감이 없거나, 말실수를 걱정하는 사용자에게 적합한 솔루션입니다.

📞 주요 기능

본문 확인 (👈 Click)

주요 기능 내용입니다.

💸 아키텍처

본문 확인 (👈 Click)

Slide 16_9 - 46

아키텍처 설명

Infrastructure & Application Management

1. Parrotalk-CD Repository

  • Terraform: AWS 인프라 구성 (VPC, EKS, RDS)
  • Ansible: Kubernetes 클러스터, ArgoCD 설치
  • Kubespray: K8s 클러스터 자동 설치

2. Parrotalk-Manifests Repository

  • 매니페스트 관리: K8s 리소스 정의 매니페스트 관리
  • 자동 배포: ArgoCD를 통한 자동 배포
  • 설정 관리: 마이크로서비스 및 인프라 설정 포함

배포 프로세스

  1. CD Repository로 인프라 구성 및 ArgoCD 설치
  2. ArgoCD가 Manifests Repository와 연동되어 전체 시스템 자동 구성
  3. 이후 모든 변경사항은 Git을 통해 자동 배포

🗂️ ERD

본문 확인 (👈 Click)
image

앵무말ERD

1. Users 테이블

  • 역할: 사용자 정보를 저장합니다.
  • 주요 필드:
    • user_id: 사용자 고유 식별자 (Primary Key)
    • nickname: 사용자의 닉네임
    • email: 사용자 이메일
    • provider: 소셜 로그인 방식 (e.g., KAKAO, GOOGLE)
    • profile_image: 사용자 프로필 이미지
    • created_at, updated_at: 데이터 생성 및 수정 시간

2. Talks 테이블

  • 역할: 대화 관련 정보를 저장합니다.
  • 주요 필드:
    • talk_id: 대화 고유 식별자 (Primary Key)
    • status: 대화 상태 (ACTIVE, INACTIVE, CLOSED)
    • created_at: 대화 생성 시간
    • closed_at: 대화 종료 시간
    • room_name: 대화방 이름
    • sender_id: 발신자 ID
    • receiver_id: 수신자 ID

3. Todos 테이블

  • 역할: 대화 방에서 생성된 투두(To-Do) 항목을 저장합니다.
  • 주요 필드:
    • todo_id: 투두 고유 식별자 (Primary Key)
    • title: 투두 제목

4. RoomUser_Detail 테이블

  • 역할: 마이페이지에서 유저별 투두(To-Do)를 관리하며, 사용자, 대화, 투두 간의 관계를 연결합니다.
  • 주요 필드:
    • user_id: 사용자 ID (Foreign Key)
    • todo_id: 투두 ID (Foreign Key)
    • talk_id: 대화 ID (Foreign Key)
    • todo_status: 투두의 상태를 나타내는 필드
  • 관계:
    • Users, Todos, Talks 테이블과 모두 연관. RoomUser_Detail은 다대다 관계를 구현하는 연결 테이블 역할을 합니다.

테이블 간 관계 요약

  • Users ↔ RoomUser_Detail: 사용자와 마이페이지 상세 정보는 1:N 관계입니다.
  • Talks ↔ RoomUser_Detail: 대화와 마이페이지 상세 정보는 1:N 관계입니다.
  • Todos ↔ RoomUser_Detail: 투두와 마이페이지 상세 정보는 1:N 관계입니다.

유의할 점

RoomUser_Detail 테이블의 데이터 증가 문제
RoomUser_Detail 테이블은 대화가 시작될 때 유저 수(2명)와 투두의 갯수만큼 데이터가 생성됩니다.
예를 들어, 대화 하나에 두 명의 유저와 10개의 투두 항목이 있다면, 이 대화로 인해 RoomUser_Detail 테이블에는 2 x 10 = 20개의 데이터가 추가됩니다.
여러 대화와 투두가 반복적으로 추가되면 데이터가 기하급수적으로 증가하여 성능 및 저장 공간에 문제가 발생할 수 있습니다.

최적화 전략 구상

  • 인덱싱 추가 → 빠른 쿼리 개선.
  • 캐싱 도입 → 자주 조회되는 데이터를 캐시에 저장.
  • 데이터 수명 관리 → 오래된 데이터를 주기적으로 삭제.
  • 비즈니스 로직 개선 → 중복 데이터 최소화.

🔎 기술 사용 근거

본문 확인 (👈 Click)

기술 사용 근거 내용입니다.

📈 성능 개선 & 리팩토링

본문 확인 (👈 Click)

성능 개선 & 리팩토링 내용입니다.

🖥️ 테스트 & 모니터링

본문 확인 (👈 Click)

테스트 & 모니터링 내용입니다.

🍻 결과

본문 확인 (👈 Click)

Slide 16_9 - 39

📺 시연 영상

본문 확인 (👈 Click)

Popular repositories Loading

  1. .github .github Public

    카카오테크 파이널 프로젝트 Repository

  2. Parrotalk_BE Parrotalk_BE Public

    카카오테크 파이널 프로젝트 백엔드 Repository

    Java

  3. Parrotalk_FE Parrotalk_FE Public

    카카오테크 파이널 프로젝트 프론트엔드 Repository

    JavaScript

  4. Parrotalk_AI Parrotalk_AI Public

    카카오테크 파이널 프로젝트 AI Repository

    Python 2

  5. Parrotalk_CD Parrotalk_CD Public

    HCL

  6. Parrotalk Parrotalk Public

    Parrotalk 프로젝트의 메인 레포지토리입니다.

Repositories

Showing 6 of 6 repositories
  • .github Public

    카카오테크 파이널 프로젝트 Repository

    Parrotalk/.github’s past year of commit activity
    0 0 0 0 Updated Dec 29, 2024
  • Parrotalk_CD Public
    Parrotalk/Parrotalk_CD’s past year of commit activity
    HCL 0 0 3 0 Updated Dec 26, 2024
  • Parrotalk_FE Public

    카카오테크 파이널 프로젝트 프론트엔드 Repository

    Parrotalk/Parrotalk_FE’s past year of commit activity
    JavaScript 0 0 0 0 Updated Dec 24, 2024
  • Parrotalk_AI Public

    카카오테크 파이널 프로젝트 AI Repository

    Parrotalk/Parrotalk_AI’s past year of commit activity
    Python 0 2 7 2 Updated Dec 22, 2024
  • Parrotalk_BE Public

    카카오테크 파이널 프로젝트 백엔드 Repository

    Parrotalk/Parrotalk_BE’s past year of commit activity
    Java 0 0 1 0 Updated Dec 22, 2024
  • Parrotalk Public

    Parrotalk 프로젝트의 메인 레포지토리입니다.

    Parrotalk/Parrotalk’s past year of commit activity
    0 0 0 0 Updated Oct 13, 2024

Top languages

Loading…

Most used topics

Loading…