+ "content": "\n# 괴담집-Asset 필드 정리하기\n\n\n\n프로젝트를 개발하던중 에셋을 저장한 구조에 대해 불편함을 느끼기 시작하였다. 현재 프로젝트에서 에셋이 가장 중요한 역할을 하고있기 때문에 후에 다양한 효과의 추가와 관리를 위해선 좀 더 확실한 분류와 정리가 필요하다는 생각이 들었다.\n\n## 개발중에 느낀 불편함과 문제점\n\nPrisma를 통해 에셋들을 가져올때부터 실제로 음향을 적용하여 테스트하고 strapi를 통해 새로운 효과를 추가혈때 모든 과정에서 불편함들을 느꼇다.\n\n### Asset을 가져올때의 문제점\n\n처음 Gemini를 활용하여 고민을 하였고 에셋들을 `SOUND`,`AMBIENCE`,`VISUAL`,`TEXT`,`PAUSE` 5가지의 카테고리로 분류하였다.\n소리 음향의 경우 `Howler.js`를 통해 로드를 하게 되는데 지금은 소리에 관련된 배경음과 효과음 두개가 나눠져 있어 에셋을 가져와서 필터링하는데에 코드가 좀 길어진다.\n\n먼저 모든 에셋들에 대한 정보를 가져오고 이후에 필터링을 거쳐서 사운드와,효과음에 해당하는 효과들만 필터링하여 넘거야 한다.\n\n만약 `SOUND`와 `AMBIENCE` 두개를 합치면 에셋을 가져올때부터 필터링이 가능하기 때문에 더 깔끔해질것으로 생각된다.\n\n### 겹치는 필드들\n\n처음 Gemini와 대화하여 만들게된 필드중 에셋들에 대한 설명을 담고있는 필드를 살펴보면 display_name, description, usage_guide, keywords 총 4개의 필드를 통해 에셋에 대한 설명을 하고 있다. 이 설명들은 사용자나 개발자가 아닌 ai가 새로운 프롬프트를 만드는 RAG로서 사용하려는 목적이기 때문에 만들게 되었다.\n\n하지만 문제는 필드의 역할이 모호하고 겹치는 부분이 있어 사람이 새로운 에셋을 추가하려고 할때 내용을 어떤식으로 추가해야하는지 겹치는 부분때문에 확실하지 않다는 것이다.\n\ndescription 하나로 통합하고 tag를 사용해 ai의 이해를 도울 생각이다.\n\n### 에셋들의 세부 사항\n\n음향들을 가져와서 실제로 사용하면서 각각 음향들의 사용 성격이 달라 좀 불편했다.\n예를 들어 어떤 심장소리의 경우 두근 두근 거리는 소리가 충분히 길게 이어져 소리를그냥 한번 재생하면 충분했지만 다른 소리의 경우 짧게 두근 거리는 소리가 한번이라 코드를 통해 5번을 반복하게 하는등 고정을 시켜야 했다. 하지만 이렇게 되면 에셋을 확인하면서 코드를 하나씩 수정해주어야 하기 때문에 일이 두배가 될수 있다. 따라서 json을 담은 하나의 필드를 만들고 그 안에 에셋을 저장하면서 에셋을 확인하고 해당 에셋이 반복이 필요한지 아니면 특정 구간만 사용해야 하는지등에 대한 설정을 하게 된다면 코드를 불편하게 수정할 필요가 사라질 것이다.\n\n## 어떻게 바꿀것인가\n\n먼저 카테고리를 수정하여 SOUND, VISUAL, TEXT 3가지로 나누고 불필요한 필드를 삭제하고 다시 작성할 것이다.\n\n또한 properties라는 json 필드를 만들어 유연하게 다른 속성들을 추가할 수 있도록 할 예정이다.\n",
0 commit comments