[메모] Next.js 16에서 cookies()가 async가 된 이유
결국 가장 큰 시간은 마이그레이션과 인덱스 설계에 들어갔습니다. 검색 인덱스를 어떻게 만들지 / generated column으로 둘지 / 트리거로 둘지 고민이 많았네요.
현재 결론은 generated column. INSERT/UPDATE 시 자동 계산되니 응용 레이어 부담이 0에 가깝습니다. 단, 변경 시 ALTER TABLE이 무거워질 수 있다는 점.
댓글 트리는 일부러 depth 1로 제한했습니다. 가독성이 떨어지는 것을 막고 모더레이션 정책을 단순하게 가져가기 위함.
검색은 Postgres FTS (`websearch_to_tsquery` + `ts_rank_cd` + `ts_headline`)로 충분합니다. 트래픽이 커지면 Meilisearch / Elasticsearch를 검토.
Tiptap JSON을 그대로 저장하는 게 마이그레이션이 편하긴 한데, 인덱싱은 어떻게 하시나요?