오늘 정적파일의 정의와 그 반댓말을 공부하다가 많은 사람들이 잘못이해하고 게시글에서 오용하고 있는 글을 봐서 이에 대해서 올바르게 정의내리고 이해하기 위해서 글을 쓴다.
정적파일
정적파일(Static file)의 정의는 다음과 같다.
1. Javascript, CSS, Image 등 웹 서비스에서 사용하기 위해 미리 서버에 저장해 놓은 파일이다.
- 파일 자체가 고정되어 있고, 서비스 중에도 추가되거나 변경되지 않는다.
우리가 페이지를 만들 때 쓰임이 정해져있는 파일들이기 때문에 개발하는 단계에서 이러한 파일들을 관리한다.
2. 외부 환경에 관계 없이 일정한 결과값을 제공해주는 걸 의미한다.
3. 정적웹페이지
• 웹서버에 미리 저장된 파일(HTML, Image, JavaScript 파일 등)이 그대로 전달되는 웹 페이지
• 서버는 사용자가 요청(Request)에 해당하는 저장된 웹 페이지를 보냄
• 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹 페이지를 보게 됨
동적파일x -> 동적웹페이지
사실 동적파일이라는 말을 구글링해서 찾아보았을 때 딱히 정의된 말을 찾아 볼 수 없었다.사람들은 정적파일 vs 동적파일이라는 말보다는 정적웹페이지 vs 동적웹페이지라는 말로 주로 비교했다.그랬기에 여기서도 동적 웹페이지를 통해 비교하고자 한다.
1. 동적 웹페이지
• 웹서버에 있는 데이터들을 스크립트에 의해 가공처리 한 후 생성되어 전달되는 웹 페이지
• 웹서버는 사용자의 요청(Request)을 해석하여 데이터를 가공한 후 웹 페이지에 보냄
• 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됨
동적 웹은 클라이언트의 요청에 따라 다양한 화면을 제공해 준다. 우리가 로그인을 한 후 마이페이지를 들어가면 각기 다른 정보를 확인할 수 있다. 그리고 상품 페이지에 들어갈 때 각각 다른 화면을 제공받을 수 있다. 이 경우에 웹 서버에서는 단순히 HTML, CSS, JAVASCRIPT 파일만 제공해주는 게 아니라 웹 어플리케이션 서버(WAS)와 직접 통신을 한다.
웹 어플리케이션 서버(WAS)는 복잡한 비즈니스 로직, 데이터 베이스와 통신 등을 책임진다(백엔드 개발자가 담당) 웹 서버는 WAS와 통신해서 얻은 결과 값을 바탕으로 가공 작업을 거친다. 최종적으로 만들어진 동적인 웹 파일을 클라이언트에게 전달해 준다. 기본적으로 동적 웹은 정적 웹에 비해 복잡한 로직들과 리소스를 필요로 한다고 보면 된다.
[참고]
웹 어플리케이션 서버는 일종의 API 서버라고 볼 수 있다.
데이터베이스와 통신하며 데이터를 가공하고 전달해주는 역할도 하기 때문이다.
그러나 사실 정적 웹을 다운받는 방식으로도 복잡한 어플리케이션을 구현할 수 있다.
일례로 정적인 웹을 다운받은 후 클라이언트(브라우저)에서 다른 서버와 통신을 통해 로그인, 상품 정보 불러오기, 결제하기 등의 작업을 수행할 수 있기 때문이다.
즉 웹 서버에서 단순하게 웹 껍데기를 다운받은 후 브라우저에서 핵심 작업들을 전부 수행하는 것이다.
이런 작업 방식을 Client Side Rendering(CSR)이라고 부른다.
현재 웹 개발에 많이 사용되는 웹 프레임워크 React, Vue 등은 해당 방식으로 동작한다.
미디어 파일(Media file)
사실 정적파일의 반댓말을 찾을 떄 동적파일이 아닌 미디어 파일이 주로 나왔다.
그 정의를 명확히 알아보자.
웹사이트 사용자가 웹에서 올리는 파일
- 파일 자체는 고정되어 있지만, 언제 어떤 파일이 정적 파일로 제공되고 준비되는지 예측할 수 없음
미디어 파일은 정적 파일과는 다르게 사용자가 업로드하는 파일이다.
따라서 이는 개발하는 단계에서 관리할 수 없는 파일들이기 때문에 따로 분류하여 관리하게 된다.
Reference:
정적파일 동적파일(동적웹사이트)
https://maily.so/grabnews/posts/ce76c9
https://dololak.tistory.com/78
정적파일 미디어파일
https://chagokx2.tistory.com/61
https://opentutorials.org/module/4034/24663
'CS > 자료' 카테고리의 다른 글
[CS] SSG, SSR의 차이점 with Next Js (0) | 2022.01.07 |
---|---|
[CS] 쿠키, 세션스토리지, 로컬스토리지 (0) | 2021.12.15 |
node.js, 웹서버, WAS, 웹컨테이너, 리버스프록시 (0) | 2021.11.11 |
CSR , SSR에 대해 알아보자 (0) | 2021.11.05 |
인증 & 인가 (0) | 2021.06.29 |