동적페이지와 정적페이지, 우리는 이 두 개를 잘 알 것이다.
그래도 동작 방식과 차이점에 대해서 정리해두면 좋을 거 같아서 끄적여 본다

동적 페이지와 정적 페이지의 차이점과 동작 방식에 대해서 알아 보겠다.
1. 정적 페이지 처리하기
위의 그림을 보면 쉽게 이해가 될 것이다.
난 spring을 공부하고 있으니, springboot 기준으로 설명하겠다.
springBoot 서버에 html파일을 요청하면 해당 html파일을 static폴더에서 찾아서 반환해준다
혹은 template engine에 뷰를 전달해서 정적페이지를 띄워줄 수 있는데,
static 폴더에 있는 html파일을 localhost:8080/index.html 처럼, 바로 호출할 수 있지만,
이처럼 브라우저에서 바로 접근하는 것이 싫거나, Controller을 통해서 제어하고 싶으면
위 사진처럼 templates 폴더에 정적파일을 추가해서 해당 html파일명을 반환하여 처리할 수 있다
알고계시죠?

2. 동적 페이지 처리하기
동적 페이지 처리는
클라이언트의 요청을 Controller에서 Model로 처리한다
만약 DB 작업이 필요하면 위 그림처럼 DB작업을 거치고 데이터를 Model에 저장한다.
그리고 템플릿 엔진(타임리프 같은거)에게 View(동적 HTML 파일), Model(View에 적용할 정보)을 전달해주면,
템플릿 엔진에서는 View에 Model을 적용해서 동적 웹페이지를 생성해준다.
그리고 그 View(동적 웹페이지)를 전달해준다!
3. 개발할때는 정적/동적 페이지 반환해준 적 없는데요?
그렇다면 서버는 요청을 받아서 html/css/js 파일을 반환해주는 것이 주 업무인가?
아니다. 라고 말하기는 좀 그러니깐
정답은 없다. 하지만 최근 개발 경향은 그렇지 않은데
예전에는 페이지를 처리해서 반환해주는 경우가 있었지만,
웹 개발이 점점 발달 하면서 우리는 프론트엔드와 백엔드로 개발 분야가 나누어지는 것을 확인할 수 있었는데
서로가 따로 발전하게 되면서 우리는 느슨하게 결합하는 방식을 더욱 많이 채택하였고,
그래서 서버가 뷰를 반환하기 보다는 클라이언트의 요청에 걸맞는 데이터를 반환해주는 것을
요즘에는 더 선호하는 편이다.
그 중에서도 우리는 그 데이터를 주로 JSON 형태로 반환한다.
'Back-End > JavaSpring' 카테고리의 다른 글
DDD 기반 프로젝트 패키지 구조 설계 (SpringBoot) (0) | 2025.03.12 |
---|---|
DIP를 통해 반가운(?) 순환참조 해결하기 (springboot) (0) | 2025.03.10 |
Jackson이란? (spring boot) (0) | 2025.02.25 |
Spring MVC 패턴은 무엇이고 왜 사용하지? (1) | 2025.02.24 |
SpringBoot를 잘 알아보자(gradle, apache tomcat, springboot의 탄생배경) - (1) (0) | 2025.02.17 |