버츄얼 모델 렌더링 품질 향상 기록
·
개발 프로젝트
EC2 배포 환경 렌더링 속도 확인인프라 담당 팀원분이 열심히 해주신 결과 배포 환경에서도 CSR 렌더링 모델 'JUN'을 띄울 수 있었습니다.렌더링 시간은 5.81S 인것을 볼 수 있습니다. 렌더링 품질에 대해 더 높이고 싶은 욕심이 생겼습니다.뭔가 지금 렌더링은 three.js 방식의 본연의 의미인 3d 렌더링에만 충실한 느낌이 들었습니다. 공식 문서 확인이를 위해 현재 fbxloader 방식이 문제가 있다고 판단하고 고품질의 2D 느낌의 렌더링 방법을 구글링 해보았습니다. FBXLoader는 VRM 특유의 toon 스타일, 쉐이더, 물리 설정을 무시하고 단순 메쉬로만 렌더링하기 때문에, 퀄리티가 낮아지고 3D 정보만 남는 것처럼 보입니다. VRM은 glTF 기반 확장 형식으로, 애니메이션 외..
CSR 렌더링 시간 최적화(with.Three.js) 13초에서 5초, 다시 2초까지
·
개발 프로젝트
현재 클라이언트 렌더링 시 소요시간입니다 각 FBX 당 1초 이상 소요되고 있어 상당한 지연이 발생하고 있습니다.평균 약 13초 소요 (고객은 3초 이상 기다리지 않는다) 최소 11.83s ~ 최대 14.26s 체크해야할 사항- 현재 fbx 파일들은 비동기로 불러오고 있는가?비동기적 요청하고 있는 있다고 알았으나, 실제 네트워크에서 처리는 동기적으로 이루어져 있었습니다. 그 결과, fbx파일 각 렌더링 시간의 합의 시간이 걸렸습니다. → 결과 평균 13초이 방식은 모델이 늘어날 수록, 동작이 늘어날 수록 극악의 구조 로딩 화면 추가CSR 특성 상 최적화를 한다해도 최소 렌더 시간이 존재하기 때문에 고객 경험을 고려해 동적으로 움직이는 로딩을 표현해보았습니다.Three.js도 사용하고 있지만 기본적인 이..
WebRTC P2P vs SFU 버츄얼 개발 프로젝트 (Nest.js 2편)
·
개발 프로젝트
요구사항유저는 AI 버튜버와 1대1 채팅을 할 수 있고 AI 버튜버의 목소리와 반응을 볼 수 있는 서비스입니다. LLM& TTS 모델을 이용해 감정 별로 삽입해 놓은 이미지와 매칭시켜 감정에 따라 이미지가 출력되게는 성공했습니다. 그러나 팀원들과 저는 이에 멈추지 않고 실제 영상으로 출력하는 서비스를 원했고, 더 도전하기로 했습니다. 춤추기 노래부르기 등 큰 액션보다 소소하게 대화할 수 있는 모델을 행동 범위를 정해놓고 개발하기로 했습니다. 말을 할 때 좌우로 고개를 흔든다거나 인사할 때 손 흔드는 정도만 정했습니다. 잠시 후 시도해주세요 뜨는 것은 비용 때문에 TTS를 개발 단계에서 막아놨기 때문입니다 버츄얼 모델 렌더링을 어디서 하는게 최선인가? 크게 UNITY & WebRTC 로 서버에서 렌더링..
Nest.js 프로젝트 시작 @swc\core segmentation fault 문제
·
개발 프로젝트
명세서가 Node.js 기반으로 적혀있었습니다. 백엔드 프레임워크는 적혀있지 않아 선택지를 알아보았습니다.선택지가 Express.js와 Nest.js가 있었습니다. 저는 Express.js 경험은 있었지만 팀원은 아무도 경험하지 않았습니다. Nest.js 선정이유Nest.js의 엔티티 선언 방식을 보니 JPA와 유사한 점이 많아보였고, 팀원들이 JPA에 익숙한 상황에서 프로젝트의 기간과학습 커브를 고려했을 대 Nest.js를 백엔드 프레임워크로 사용하는 것이 적절하다고 판단했습니다. 이에 더해 공식문서를 보면 볼 수록, Spring과 유사한 흐름과 코드를 확인할 수 있었고, 팀원에게 근거를 제시하며 설득했습니다.TypeORM을 쓰기로 한 이유 ORM은 TypeORM과 SequelizeORM이 있었는데J..
Kubernetes가 왜 많이 쓰이나요? (학습과 프로젝트 도입)
·
개발 프로젝트
Why Kubernetes? Kubernetes(K8s)를 사용하는 이유는 운영 효율성, 확장성, 자동화 등의 이점을 제공하기 때문입니다. 1. 자동화된 컨테이너 오케스트레이션수동으로 컨테이너를 배포하고 관리하는 대신, K8s가 자동으로 컨테이너를 배포, 확장, 복구함.예를 들어, Pod가 종료되면 자동으로 새로운 Pod를 생성하여 서비스 가용성을 유지.2. 높은 확장성 (Scalability)트래픽이 증가하면 자동 확장(Auto-scaling)을 통해 추가 리소스를 할당하고, 트래픽이 줄면 리소스를 줄여 비용 절감 가능.Horizontal Pod Autoscaler(HPA), Vertical Pod Autoscaler(VPA) 등을 활용 가능.3. 서비스 발견 및 로드 밸런싱Kubernetes는 내부 ..
Buffer와 Cache의 차이와 GIT SUBMODULE 사용, 도커 트러블슈팅 err_name_not_resolved
·
개발 프로젝트
만약 이런 질문을 면접에서 받는다면 어떨까? Buffer와 Cache의 차이가 뭔가요?Cache는 대답한다해도 Buffer는 느낌은 알겠는데 조리있게 답변을 뭐라 말해야할지 모르겠다. Cache는 toRead, Buffer는 toWrite 즉, 목적이 다르다.지역성과 L1, L2, L3 등 계층적 구조에 대해 설명하면 BEST! Buffer는 영상 스트리밍 버퍼 예시를 들면, 끊김 없는 재생을 위해 미리 일부 데이터를 버퍼링디스크 버퍼 : HDD/SSD에서 데이터를 블록 단위로 읽고 쓰는 과정에서 임시 저장 도커 테스트를 해보며 여러 이미지를 빌드하고, 컨테이너를 만들게 되었는데 궁금한게 WORKDIR 로 설정한 (예시) /app 이 여러 파일에서 쓰여도 겹치지 않느냐였다.물론 애초에 격리성이 큰 특징인..