개발
PHP 개발 일지
PHP 사이트맵 제작 (1)
112 views as of October 29, 2024.
사이트맵이란?
사이트맵은 그 사이트의 여러가지 페이지에 접근가능한 링크의 모음, 즉 메뉴라 볼 수 있다.
근데 용도는 사용자가 보기보다는 웹 서치 엔진이나 봇이 이 사이트에 대해 이해하는데 도움을 주기 최적화된 형태라고 할 수 있다.
실제로 사이트맵은 위의 형태처럼 XML 문서 구조의 형태를 띄고 있다.
사람이 보고 이해하기엔 그 용도가 아님을 알 수 있다.
그래도 웹사이트의 전파, 특히 웹 서치엔진의 결과에 좋은 평가를 얻어 유입을 만들고 싶을때 가장 먼저하게 되는 작업이 사이트맵의 제작이다.
실제로 사이트맵을 제작하는방법은 여러가지가 있다.
내가 임의대로 XML 구조를 이용해서 사이트맵을 제작 후 배포할 수 있으며, 내 사이트 주소를 입력하면 자동으로 링크를 타고들어가 사이트맵을 제작해주는 사이트도 있다. (관련된 사이트에 대해서 리뷰한 글은 여기서 볼 수 있다.
문제 제기
문제는 사이트맵은 정적인 자료라는 것이다.
매번 만들때마다 현재 사이트의 링크를 모아서 파일을 생성한 후 로봇이 접근할 수 있게 사이트 루트 위치에
sitemap.xml
이라는 파일명으로 게시 해놓아야 한다.이게 별 대수냐? 라고 생각할 수 있겠지만, 포트폴리오나 랜딩페이지같은 정적인 사이트 입장에서는 크게 문제는 안되지만 게시판, 포럼, 커뮤니티 사이트의 경우에는 매번 새로 업데이트 되는 글이 지속적으로 생성되기에 이런 글들을 동적으로 반영하는 사이트맵을 구축하기란 여간 힘든일이 아닐 수 없다.
이 상황에서 내가 생각한거는 '아, 자동으로 갱신되는 사이트맵이 있었으면 좋겠다.; 였다.
생각은 쉽지 결국 사이트맵을 구조화 하는 코드를 만들고 이를 반복적으로 실행할 수 있는 프로세스를 만들어야 한다는 문제에 봉착할 수 있다.
가정
일단 사이트맵을 제작하는 것은 결국 XML 형식에 맞는 데이터를 구조화 한 후에 파일을 생성하면 되므로 어찌저찌 하면된다.
문제는 이런 정적인 파일을 어떻게 '동적'인 형태의 파일처럼 보이게 자동으로 만드냐는 것이다.
이부분에서 몇가지 아이디어가 나올 수 있다.
1. 게시글등의 데이터가 써지는 순간 사이트맵을 생성한다.
2. 주기적으로 사이트맵을 생성한다.
1번의 경우에는 거의 실시간으로 사이트맵이 생성될 수 있다. 그야 생성 트리거가 새로운 데이터가 기입되는 순간이기 때문에 데이터와 사이트맵의 갱신차이가 제로에 가깝기 때문이다.
근데 이 방식의 문제는 그게있다. 데이터가 자주 생성되면 매번 사이트맵을 다시 생성해야하고 파일쓰기 작업이 이루어지는 사이트맵 생성 구조상 서버에 과도한 연산을 실행시킬 수 있다는 것이다. 쉽게말해서 동시접속 및 쓰기가 많은 사이트는 거의 불가능한 방법이다.
그럼 차선책은 2번의 경우라고 볼 수있다.
일정주기, 예를들면 하루에 한 번, 한 주에 한 번 사이트맵을 생성하면 되는것이다.
이 방식은 과도한 서버 쓰기를 발생시키지않으며 나름 주기적으로 사이트맵을 교체할 수 있는 차선책이라고 본다.
방안 제시
그럼 여기까지 왔다면 이제 '사이트맵 자동 생성기'의 윤곽은 아래처럼 구조화 할 수 있다.
회색 영역은 라라벨 구조안에서 서비스 클래스와 커맨드 클래스로 구현해볼 예정이고, 주황색 영역은 ubuntu의 crontab 기능을 이용해서 배치해볼 예정이다.
다음 글에 위의 구조를 구현화한 코드를 계속해서 써보겠다.
#개발 #PHP #사이트맵 #Sitemap #Laravel
0
개의 댓글
Collection. PHP 개발 일지
01.
PHP 개행문자(엔터)나 특정 태그를 제거하는 방법
2018
02.
PHP 배열, 다중배열속의 값 검사
2019
03.
PHP 시간 차 계산
2019
04.
PHP 공인 IP 주소 얻어오기
2019
05.
PHP 문자열 중 url만 걸러내서 태그를 씌워 반환
2019
06.
PHP 파일 열고 처음부터 다시 쓰기
2019
07.
PHP 세션 유지시간 변경
2019
08.
PHP 이미지 용량 리사이징
2019
09.
PHP 사이트맵 제작 (1)
2024
10.
PHP 사이트맵 제작 (2)
2024