-
Notifications
You must be signed in to change notification settings - Fork 2
고민 view All
Jiyeon Baek edited this page Dec 6, 2024
·
6 revisions
탐구, 가설, 검증, 개선 단계에서 고민했던 내용을 확인할 수 있습니다.
- 고민 이유: 기존 Git Flow 전략에서 Release 브랜치를 사용하는 것이 효율적인지 의문. CI/CD 자동화 과정에서 불필요한 브랜치 관리로 복잡성이 증가할 우려.
-
결론: Release 브랜치를 생략하고
develop
브랜치에서 주요 검증 후main
에 직접 배포하도록 결정.
Release 브랜치? 너 필요해?
- 고민 이유: UI에서 로딩 애니메이션이 너무 짧아 사용자 경험이 부자연스러움.
-
결론: 최소 로딩 시간(예: 500ms)을 설정하여 로딩 상태를 시각적으로 제공하기로 결정.
로딩이 너무 짧아…!
- 고민 이유: 프로젝트에 TypeORM과 Prisma 중 어떤 ORM이 더 적합할지 고민.
-
결론: NestJS와의 통합성과 팀원의 경험을 고려해 TypeORM을 선택.
NestJS ORM으로 무엇을 사용해야 할까?
- 고민 이유: WebRTC 연결 초기화를 위해 시그널링 서버를 꼭 사용해야 하는지 고민.
-
결론: WebRTC 연결 초기화 및 관리 목적으로 시그널링 서버를 구현하기로 결정.
WebRTC를 이용한 1:N 스트리밍 서비스에서 시그널링 서버가 필요할까?
- 고민 이유: Redis와 같은 영구 저장소 대신 인메모리를 사용하는 것이 적절한지 논의.
-
결론: 성능 최적화와 낮은 지연 시간을 위해 인메모리 방식을 채택.
실시간 채팅 구현: 인메모리 방식을 선택한 이유
- 고민 이유: API 서버와 Media 서버가 모두 MySQL에 직접 접근하는 구조로 인해 데이터베이스 의존성이 증가하고 유지보수가 어려워지는 문제가 발생
-
결론: DB 접근을 API 서버로 중앙화하여 데이터 일관성을 확보하고 각 서버의 역할을 명확히 분리하는 방향으로 개선
MySQL 아키텍처 개선: DB 의존성 분리와 서버 역할 명확화
- 고민 이유: 방송 송출창이 최소화되면 영상 송출이 정상적으로 되지 않는 문제가 발생
-
결론: rAF가 백그라운드에서도 계속 실행되게 하는 것은 현재 불가능한 것으로 보이므로 다른 접근으로 문제 해결 고려
브라우저 창이 최소화되면 비디오 송출이 안된다…!
- Mediasoup 포트 매핑 문제
- swagger 같은 응답 코드에 다양한 응답 보여주기
- Sudo가 계속 비밀번호를 요청함
- Docker 이미지가 너무 크다
- Git action에서 도커 이미지 빌드 시간을 단축시켜보자
- Docker compose를 이용해서 메모리 사용률을 줄여보자
- 방송 녹화 시 CPU 과부하 문제를 해결해보자
- Release 브랜치? 너 필요해?
- 로딩이 너무 짧아…!
- NestJS ORM으로 무엇을 사용해야 할까?
- WebRTC를 이용한 1:N 스트리밍 서비스에서 시그널링 서버가 필요할까?
- 실시간 채팅 구현: 인메모리 방식을 선택한 이유
- MySQL 아키텍처 개선: DB 의존성 분리와 서버 역할 명확화
- 브라우저 창이 최소화되면 비디오 송출이 안된다…!
- Mediasoup 기본 개념
- DLTS와 Signaling
- Tell, Don't Ask (TDA) 원칙이란
- VPC(Virtual Private Cloud) 학습 정리
- 순환참조: A 서비스 ‐ B 서비스 vs. A 서비스 ‐ B 레포지토리
- Dto 메서드 전략
- WebRTC란?
- 자바스크립트 패키지 매니저(npm, yarn, pnpm)
- shadcn/ui을 이용해 UI 개발 생산성 높이기
- React 이벤트 핸들러 네이밍(on vs handle)
- React-router-dom의 createBrowserRouter을 사용해보기
- fetch vs axios