[메모] 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를 검토.

댓글 (5)

로그인하면 댓글을 작성할 수 있습니다.

Tiptap JSON을 그대로 저장하는 게 마이그레이션이 편하긴 한데, 인덱싱은 어떻게 하시나요?

코드블록 예시 하나만 더 부탁드려도 될까요?

이 부분은 사실 측정해보지 않으면 답이 안 나옵니다. 환경마다 다를 거에요.