개발자

사용자가 생성하는 컨텐츠에 대해서 Sitemap 을 동적으로 생성해주려고 하는데 Sitemap 을 위한 전용 테이블을 추가하는 방법이 효율적일까요 ?

2023년 03월 15일조회 131

이번에 Sitemap 을 추가해야 하는데 사용자가 생성하는 컨텐츠라서 dynamic url path 를 가집니다. ex) articles/[:id] 그래서 사이트맵을 직접 만들어 줘야 하는데 어떤 방법으로 해야할지 고민이에요. 현재 문제는 테이블의 updatedAt 값을 sitemap 의 lastmod 값에 어떻게 적용할지 인데요. 처음에 생각한 방법은 Article 테이블의 updatedAt 을 그대로 사용해서 sitemap 을 동적으로 만들어 주려고 했는데, 이렇게 하면 실시간으로 페이지를 생성하는데 한계가 있어서 캐싱이 무조건 필요 하겠더라고요. 그래서 차라리 테이블을 추가해서 (ArticleSitemap ?) 여기에 updatedAt 을 실시간으로 업데이트 시켜두고 Sitemap 생성에 활용하려고 하는데 문제 없을까요 ? 참고로 사용하는 스택은 next.js, nest.js, MySQL 입니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

김형준님의 프로필 사진

테이블로 저장해서 사용하는 방법이 결국 캐싱을 사용하는것이기 때문에 큰 차이는 없어 보여요. 그래서 캐싱을 하지 않고 updatedAt 컬럼을 사용해서 실시간으로 사용하는 방법 과의 차이를 정리해 볼게요. 두 방법 각각 장단점이 있어서 상황에 맞게 선택하시면 됩니다. 정확한 상황을 몰라서 제가 생각하는 장단점만 남겨드려요. 1) 테이블의 updatedAt 을 동적으로 사용 (캐싱X) 장점 - 대부분의 상황에 구현이 간단함 장점 - 항상 최신 데이터를 사용 단점 - 데이터 양이 늘어나면 생성 시간이 느려짐 단점 - sitemap 이 자주 조회될 경우 서버 부하가 높아짐 단점 - 만약 relation 으로 연결된 데이터가 있는 데이터가 부정확해짐 (혹은 추가 작업 필요) 2) 별도의 테이블 (캐시) 를 생성 장점 - 구현 로직이 비교적 단순함 (저장, 조회가 분리되기 때문에) 장점 - 1번의 일부 단점(조회 시간, 서버 부하) 이 해결됨 단점 - 구현 리소스가 1번보다 많이 들어감 단점 - DB 저장 공간을 사용함

profile picture

익명

작성자

2023년 03월 16일

우와 친절한 답변 감사합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!