Appendix D: 동적 페이지 주의사항¶
동적 페이지란 웹 프로그래밍 언어(JSP, PHP 등)로 개발된 웹 페이지를 의미하며, 주로 클라이언트 요청에 따라 내용이 변경되는 특징을 가진다. 다음과 같은 동적 페이지를 적당 시간동안 캐싱하면 웹서버/WAS/데이터베이스의 부하를 획기적으로 감소시킬 수 있다.
- 실시간 순위 (실시간 검색어 또는 랭킹)
- 검색 결과
- 조회 용 API
- 상품 상세 페이지 (재고)
캐싱해서는 안되는 페이지는 다음과 같다.
개인계정
캐싱한다는 의미는 내가 열람한 페이지가 다른 사람에게도 공유된다는 의미이다. 누구도 내 개인 정보가 다른 사람에게 노출되는 것을 원하지 않는다. 기술적으로 대부분의 웹 사이트에서 개인정보는 로그인 후에 사용이 가능하다. 웹 서버에서 로그인 여부를 확인하는 조건을 STON에 ‘바이패스’하도록 설정해야 한다.
결제
비로그인 상태에서 결제가 가능한 서비스도 있다. 결제 단계의 모든 페이지는 캐싱 예외 조건으로 설정해야 한다.
Cookie 생성
Cooike는 클라이언트 고유의 정보를 담고 있는 경우가 많다. A사용자를 위해 생성된 Cookie가 B사용자에게 전달되면 큰 사고로 이어진다. 이 때문에 STON은 원본서버가 제공하는 Cookie헤더를 무시하도록 개발되었다.
‘쓰기(Write)’ API
읽기 API는 1초만 캐싱해도 효과가 있지만 ‘쓰기’ API를 캐싱할 경우 유효하지 않은 결과 값이 리턴되어 오동작할 수 있다.
번호표 발급
콘서트 티켓처럼 선착순으로 예매가 진행되는 경우를 의미한다. 보통 WAS나 전용 장비를 써서 진행되는 경우가 많다.