동적 웹페이지

2022. 7. 18. 17:10·Programming/Web
728x90

정적 웹페이지 vs 동적 웹페이지

  • 정적 웹페이지(static web page)는 서버에 저장 되어있는 HTML + CSS 파일 그대로 보여주는 것이다.
  • 반면 동적 웹페이지(dynamic web page)는 상황에 따라 서버에 저장 되어있는 HTML에 데이터 추가/가공을 해서 보여주는 방법이다.
  • 정적 웹페이지는 추가적인 통신&계산이 필요 없기 때문에 속도가 빠르고 서버에 부담이 적은 반면, 추가/수정/삭제 등 내용 변경이 필요할 때 HTML 자체를 수정해야하기 때문에 번거롭다는 단점이 있다.
  • 동적 웹페이지는 한 페이지에서 상황/시간/사용자요청에 따라 다른 모습을 보여줄 수 있다는 장점이 있지만 상대적으로 보안에 취약하고 모습이 계속 변하기 때문에(많은 경우 주소도 같이 변한다.) 검색 엔진 최적화(search engine optimazation, SEO)가 어렵다.

동적 웹페이지의 종류

Client-side rendering (CSR)

  • 자바스크립트에 데이터를 포함해서 보낸 후, 클라이언트 쪽에서 HTML을 완성하는 방법이다.
  • 서버는 단지 JSON 파일만 보내주고, HTML은 JS가 첫 페이지 로딩이 오래걸린다.
  • 하지만 이후 유저와의 인터랙션이 빠르다.
  • 봇 크롤러들이 JS는 읽지 못해서 SEO 문제가 발생한다.
  • 쿠키말고는 사용자 정보를 담을수 없다.

Server-side rendering (SSR)

  • 서버 쪽에서 템플릿 HTML에 데이터를 끼워넣어 완성된 HTML으 보내주는 방법이다.
  • 요청시마다 새로고침이 일어나며 서버에 새로운 요청을 전달한다.
  • 첫 페이지 로딩이 빠르다.
  • 이후 새 요청마다 새로고침이 되어 매우 비효율적이다.
  • 사용자에 대한 정보를 서버측 세션에 저장한다.

복합적인 방법

  • 클라이언트 쪽에서 Ajax 요청을 보내서 서버에서 데이터를 받아와 HTML을 완성하는 방법이다.

'Programming > Web' 카테고리의 다른 글

[Web] 웹(Network, TCP/IP, Internet, Protocol, Port, DNS)  (0) 2022.10.14
[HTML] [CSS] [Bootstrap] 웹 연습  (0) 2022.09.22
웹 페이지 구성  (0) 2022.06.21
웹의 시작과 성공  (0) 2022.06.21
웹 페이지의 주소, URL/웹 브라우저와 웹 서버 사이의 통신, HTTP  (0) 2022.06.21
'Programming/Web' 카테고리의 다른 글
  • [Web] 웹(Network, TCP/IP, Internet, Protocol, Port, DNS)
  • [HTML] [CSS] [Bootstrap] 웹 연습
  • 웹 페이지 구성
  • 웹의 시작과 성공
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (509)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (71)
        • 공부 (18)
        • 기타 (6)
        • 일 (47)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    타입스크립트
    JavaScript
    array
    자바스크립트
    Python
    Java
    MySQL
    파이썬
    object
    CSS
    변수
    제어문
    리액트
    HTML
    TypeScript
    next.js
    event
    web
    객체
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
동적 웹페이지
상단으로

티스토리툴바