728x90
반응형
웹 애플리케이션의 구성 방식: MPA와 SPA
MPA (Multi-Page Application):
- 여러 개의 페이지로 구성된 웹 애플리케이션입니다.
- 각 페이지는 별도의 HTML 파일로 존재하며, 사용자가 페이지를 요청할 때마다 서버로부터 새로운 HTML 파일을 받아옵니다.
- 예를 들어, 사용자가 다른 페이지로 이동할 때마다 전체 페이지가 새로 고침됩니다.
SPA (Single Page Application):
- 하나의 페이지로 구성된 웹 애플리케이션입니다.
- 초기 로딩 시 단일 HTML 파일이 로드되고, 이후 모든 페이지 전환 및 데이터 로딩은 JavaScript를 통해 동적으로 이루어집니다.
- 예를 들어, 사용자가 다른 "페이지"로 이동해도 실제로는 새로운 HTML 파일을 요청하는 것이 아니라, JavaScript가 DOM을 업데이트하여 페이지가 전환된 것처럼 보이게 합니다.
렌더링 방식: SSR과 CSR
* 렌더링(Rendering)은 컴퓨터 그래픽스와 웹 개발에서 주로 사용되는 용어로, 데이터나 코드로부터 화면에 보이는 시각적인 결과물을 생성하는 과정을 의미합니다. 웹 개발 문맥에서는 주로 HTML, CSS, JavaScript 등을 사용하여 브라우저가 웹 페이지를 표시하는 과정에 대해 이야기할 때 사용됩니다.
SSR (Server-Side Rendering):
- 서버에서 HTML을 렌더링하여 클라이언트에게 전달합니다.
- 사용자가 페이지를 요청하면, 서버는 해당 페이지의 HTML을 생성하여 클라이언트에게 반환합니다.
- 주로 초기 로딩 속도가 빠르고, SEO에 유리합니다.
CSR (Client-Side Rendering):
- 클라이언트(브라우저)에서 JavaScript를 사용하여 HTML을 렌더링합니다.
- 초기 로딩 시에는 최소한의 HTML과 JavaScript 파일을 로드하고, 이후 필요한 데이터를 API를 통해 서버에서 받아와 클라이언트 측에서 페이지를 동적으로 구성합니다.
- 사용자가 상호작용하는 동안 필요한 부분만 업데이트하여 빠른 사용자 경험을 제공합니다.
SPA (Single Page Application)와 CSR(Client-Side Rendering),
MPA(Multi-Page Application)와 SSR(Server-Side Rendering) 의 관계
- SPA가 반드시 CSR인 것은 아닙니다. SPA는 클라이언트 측에서 페이지를 동적으로 구성하지만, SSR을 활용할 수도 있습니다. 예를 들어, 초기 페이지 로딩 시에는 서버에서 HTML을 렌더링한 후 클라이언트에게 전달하고, 이후의 상호작용은 CSR 방식으로 처리하는 혼합형 방식(예: Next.js의 getServerSideProps)도 가능합니다.
- MPA가 반드시 SSR인 것도 아닙니다. MPA는 여러 페이지로 구성된 애플리케이션이지만, 각 페이지의 일부를 클라이언트 측에서 동적으로 구성할 수도 있습니다. 예를 들어, 각 페이지의 일부 데이터를 클라이언트 측에서 Ajax 요청을 통해 받아와 업데이트하는 방식도 사용할 수 있습니다.
요약
- MPA와 SPA는 웹 애플리케이션의 구조를 나타내며, 여러 페이지로 구성된 애플리케이션인지 하나의 페이지로 구성된 애플리케이션인지를 구분합니다.
- SSR과 CSR은 렌더링 방식을 나타내며, HTML을 서버에서 렌더링하는지 클라이언트에서 렌더링하는지를 구분합니다.
- SPA는 CSR 방식을 주로 사용하지만 SSR 방식과도 결합될 수 있습니다.
- MPA는 SSR 방식을 주로 사용하지만 CSR 방식의 요소를 포함할 수도 있습니다.
정보처리기사 필기, 시나공과 함께 시작하세요!
IT 자격증 시험 준비의 표준, 시나공은 믿을 수 있는 파트너입니다. 정보처리기사 필기를 대비하는 가장 효율적이고 효과적인 방법을 찾고 있다면, 시나공 시리즈가 최선의 선택입니다.
정보처리기사 필기 시나공으로 시작하세요!
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기' 카테고리의 다른 글
API란 무엇인가? 초보자를 위한 API 개념과 활용 가이드 (0) | 2024.07.19 |
---|---|
코드 실행 방식 이해하기: 컴파일러와 인터프리터의 차이점 (0) | 2024.07.11 |
정적 웹사이트 (Static Website) VS 동적 웹사이트 (Dynamic Website) (0) | 2024.06.27 |
BTS(Bug Tracking System)란? : BTS 도입으로 결함 관리 효율성 극대화하기 (0) | 2024.06.24 |
Regression Test 회귀 테스트 : IT QA 테스트 용어 정리 (0) | 2024.06.24 |