Team Monument Gallery의 버그 처리 일화를 다룹니다.

버그 리포트


일부 데이터를 MongoDB에 저장할 때 저장이 안 되는 버그

일부 데이터를 MongoDB에 저장할 때 저장이 안 되는 버그

<aside> 🔑 constructor key가 존재하는 객체를 Mongoose를 통해 DB에 Map 형식으로 저장을 시도하면, Mongoose가 constructor 메소드의 이름을 기반으로 일반 객체인지 아닌지 판단을 시도하기 때문에, constructor가 함수가 아닌 일반 값으로 정의되면 Mongoose가 해당 객체를 객체가 아닌 것으로 판단하여 Map에 그대로 집어넣는 버그가 있었습니다.

해당 문제는 DB 스키마를 {keyword, freq} 형태의 객체 배열로 변경하여 해결했습니다.

</aside>

Three.js 컴포넌트 리렌더링 시 셰이더가 죽는 문제

Three.js 컴포넌트 리렌더링시 셰이더가 죽는 문제

<aside> 🔑 사진 파편의 애니메이션 uniform을 react-spring으로 관리하고 있는데, 컴포넌트가 리렌더링될 시 셰이더 매터리얼의 유니폼 객체가 재생성되어서 실제로 GPU에 부착된 유니폼 객체를 조작할 수 없는 문제가 발생했습니다.

해당 문제는 셰이더 유니폼을 useMemo가 아닌 useRef로 선언하여 해결했습니다.

</aside>