Skip to content

11 6 회의

Seungheon Han edited this page Nov 30, 2024 · 4 revisions

안건1 : 오늘 무슨 일을 할 수 있을까

남은 초기세팅 목록

  1. nCloud 설정
    1. vpc 설정
    2. 공인 ip
    3. 인스턴스 생성 (서브넷)
  2. git action, 도커 세팅
    1. 배포 파이프라인 작성, CI/CD
    2. 테스트 파이프라인
  3. 프론트엔드 초기세팅
    1. alias 설정
    2. Tailwind 변수 넣기 ⇒ 디자인 확정하고 해야할 듯?
    3. 디자인 확정 (컬러 뽑기, 뭐..등등)
  4. 백엔드 초기세팅
    1. erd 설계
    2. api 명세 작성 (리스트 뽑기)
    3. orm 선정 및 설치, 세팅
    4. db 설치 및 연결
    5. 테스트 초기설정 (jest)
    6. 로깅
    7. 에러 핸들링
    8. 인터셉터, 필터 (응답 통일 같은거래요)

토론

  • 1, 2번은 나머지 로컬에서 할 수 있는걸 다 한 후에 진행하는것이 좋은것 같다.
  • 3, 4는 찢어져서 세팅 하면 될 것 같다.

결론

  • 3, 4를 각자 찢어져서 오늘 해보자

안건 2: ERD 설계 과정 토론

Redis 사용 이유

  1. 룸(room) 관리
  • Redis를 통해 방송 세션(룸)에 대한 정보를 효율적으로 관리.
  1. 방송 정보 저장
  • 방송 제목, 썸네일, 시청자 수 등의 정보를 Redis에 저장.
  • 실시간 처리 및 빠른 읽기/쓰기 요구 사항 충족.
  1. Redis를 사용하지 않을 경우
  • 모든 관리 작업을 미디어 서버에서 처리.
  • Redis 대신 미디어 서버에서 JSON으로 데이터를 저장 및 관리.
  • 문제점: 개발 난이도 상승, 관리 부하 증가, 미디어 서버의 부하 증가.

Redis 및 RDBMS 활용 방안

1. Redis 단독 사용

  • 구조: 방송 정보를 JSON 형식으로 Redis에 저장

{
  "broadCastingUUID": {
    "hostCamper": "Jxxx",
    "broadCastingName": "방송 제목",
    "participant": ["Jxxx", "Jyyy", "Jzzz"],
    "createAt": "yyyy.mm.dd:hh.mm.ss"
  }
}
  • 특징:
    • 모든 데이터를 Redis에 일괄 관리.
    • 빠른 읽기/쓰기 성능.
    • 실시간성이 중요한 정보(시청자 수 등)에 적합.
    • 문제점: Redis 사용 경험이 적거나 대규모 데이터 관리 시 부담 발생 가능.

2. Redis와 MySQL 병행 사용

  • 구조:
    • Redis에 방송 UUID 및 세션과 관련된 실시간 정보 저장.
    • MySQL: 방송 제목과 같은 변동이 적은 데이터를 저장.
{
  "캠퍼Id": "방송UUID"
}
  • 특징:
    • Redis는 실시간 데이터, MySQL은 영구적 데이터로 역할 분담.
    • 확장성과 관리 편의성 증가.
    • 문제점: Redis와 MySQL 간 데이터 동기화의 복잡성.

성능 외 다른 관점 분석

Redis만 사용 Redis + MySQL 사용
개발 난이도 낮음 (단순 구조) 높음 (동기화 필요)
확장성 높음 (Redis 기반 확장 용이) 중간 (두 시스템 관리 필요)
비용 낮음 (Redis 관리만 필요) 높음 (두 시스템 운영 필요)

방송 정보 저장 고민

  1. 썸네일
  • 미디어 서버에서 S3로 저장하고 즉시 반환하는 방식으로 해결 가능.
  • DB 저장 불필요.
  1. 시청자 수
  • Redis에서 실시간으로 관리 가능.
  • 별도의 저장 없이 실시간 API 요청으로 처리.
  1. 방송 제목
  • RDBMS에 저장.
  • 자주 변경되지 않으며, 수정 API를 통해 관리.

결론

  1. Redis를 주요 실시간 데이터 관리 도구로 사용.
  • 방송 세션(room) 정보, 시청자 수 등을 효율적으로 관리.
  • JSON 기반 구조 활용.
  1. MySQL은 변동이 적고 영구적인 데이터 관리에 집중.
  • 방송 제목과 같은 데이터를 저장.
  1. 썸네일은 미디어 서버와 S3를 연계하여 관리.
  • 별도의 DB 저장 불필요.
  1. 실시간 요구 사항은 Redis와 API 요청으로 해결.
  • Redis에서 필요한 정보를 빠르게 읽고, 별도 API로 시청자 수와 같은 데이터를 제공.

👥 팀 강점

🧑‍💻 개발 일지

📌 ALL

📌 FE

📌 BE

💥 트러블 슈팅

📌 FE

📌 BE

🤔 고민

📚 학습 정리

📌 김광현

📌 백지연

📌 전희선

📌 한승헌

🤝 회의록

🗒️ 데일리 스크럼

💬 팀 회고


👨‍👩‍👧‍👦 소개

🌱 문화

🔨 기술 스택

⚙️ 서비스 아키텍쳐

🚧 CI/CD

🌊 Flow

💭 6주를 보내면서

Clone this wiki locally