Appendix C: 동적 페이지 주의사항

동적 페이지란 웹 프로그래밍 언어(JSP, PHP 등)로 개발된 웹 페이지를 의미하며, 주로 클라이언트 요청에 따라 내용이 변경되는 특징을 가진다. 다음과 같은 동적 페이지를 적당 시간동안 캐싱하면 웹서버/WAS/데이터베이스의 부하를 획기적으로 감소시킬 수 있다.

  • 실시간 순위 (실시간 검색어 또는 랭킹)
  • 검색 결과
  • 조회 용 API
  • 상품 상세 페이지 (재고)

캐싱해서는 안되는 페이지는 다음과 같다.

  • 개인계정

    캐싱한다는 의미는 내가 열람한 페이지가 다른 사람에게도 공유된다는 의미이다. 누구도 내 개인 정보가 다른 사람에게 노출되는 것을 원하지 않는다. 기술적으로 대부분의 웹 사이트에서 개인정보는 로그인 후에 사용이 가능하다. 웹 서버에서 로그인 여부를 확인하는 조건을 STON에 ‘바이패스’하도록 설정해야 한다.

  • 결제

    비로그인 상태에서 결제가 가능한 서비스도 있다. 결제 단계의 모든 페이지는 캐싱 예외 조건으로 설정해야 한다.

  • Cookie 생성

    Cooike는 클라이언트 고유의 정보를 담고 있는 경우가 많다. A사용자를 위해 생성된 Cookie가 B사용자에게 전달되면 큰 사고로 이어진다. 이 때문에 STON은 원본서버가 제공하는 Cookie헤더를 무시하도록 개발되었다.

  • ‘쓰기(Write)’ API

    읽기 API는 1초만 캐싱해도 효과가 있지만 ‘쓰기’ API를 캐싱할 경우 유효하지 않은 결과 값이 리턴되어 오동작할 수 있다.

  • 번호표 발급

    콘서트 티켓처럼 선착순으로 예매가 진행되는 경우를 의미한다. 보통 WAS나 전용 장비를 써서 진행되는 경우가 많다.