#static-web-page

정적 웹 사이트에 대해 알아보자.

정적 웹 사이트에 대해 알아보자.

최근 S3를 통한 배포를 실습해보면서, 정적 웹 사이트 호스팅을 하였다. 그러면서 정적이라는 단어에 의문이 들었다.

*호스팅 - 서버 컴퓨터의 전체 또는 일부를 임대해주는 서비스

대개 정적 웹 사이트는 ‘모든 상황에서 모든 사용자에게 동일한 정보를 표시하는 웹사이트’, 동적 웹 사이트는 ‘상황에 따라 사용자 별로 다른 정보을 보여주는 웹 사이트’이다.

이번에 프로젝트로 만든 서비스는 사용자가 정보를 입력하면, 입력한 정보에 따라 다른 결과를 보여주는 동적 웹 사이트이다.

그런데 어떻게 S3 서버를 통해 정적 웹 사이트 호스팅가 가능한걸까?

정적 웹 사이트와 동적 웹 사이트

정적 웹 사이트는 앞에서 말한 것 처럼 모든 상황에서 모든 사용자에게 동일한 정보를 표시하는 웹사이트이다.

사용자(혹은 클라이언트)의 요청에 따라 서버에 저장된 파일(HTML, CSS, JavaScript, Image 등)을 그대로 전달해준다. 서버의 데이터가 변경되지 않으면 항상 동일한 페이지가 나타나는 것이다.

정적 웹 사이트는 저장된 정보를 바로 전송해주기 때문에 속도가 빠르지만, 저장된 정보만 보여줄 수 있기 때문에 서비스가 한정적이다.

정적 웹 사이트는 클라이언트의 요청을 받아서 정적인 정보만 제공하면 되기 때문에 *웹 서버만 있으면 된다.

정적 웹 사이트

동적 웹 사이트는 앞에서 말한 것 처럼 상황에 따라 사용자 별로 다른 정보을 보여주는 웹 사이트이다.

사용자(혹은 클라이언트)의 요청에 따라 서버는 데이터를 처리하여 사용자에 맞는 페이지를 생성하여 전달해준다. 요청에 맞는 필요한 데이터를 가져오고 처리하기 때문에 상황에 따라 다른 페이지가 나타나는 것이다.

동적 웹 사이트는 데이터를 조합하고 생성하여 제공할 수 있어서 다양한 서비스가 가능하다. 하지만 데이터를 처리하는 시간이 필요하기 때문에 비교적 속도가 느리다.

동적 웹 사이트는 웹 서버 외에도 웹 서버로부터 요청을 받아서 데이터를 처리하여 동적인 정보를 제공하는 *웹 애플리케이션 서버가 필요하다.

동적 웹 사이트

*웹 서버 - 클라이언트의 요청을 받아 정적인 정보를 클라이언트에 제공한다. 동적인 정보를 요구하는 요청이라면 웹 애플리케이션 서버에 처리를 요청한다. 정적인 정보를 처리해주기 때문에 웹 애플리케이션 서버의 부담을 줄여주는 역할도 한다.

*웹 애플리케이션 서버 - 웹 서버로부터 요청을 받아서 데이터를 처리하여 동적인 정보를 웹 서버에 제공한다. 일반적으로 DB 조회나 다양한 로직을 처리하는 기능을 담당한다.

정적 웹 사이트 호스팅

그렇다면 프론트엔드 서버로 S3 정적 웹 사이트 호스팅이 가능한 이유는 무엇일까?

그 이유는 정적 웹 사이트와 동적 웹 사이트의 서버 구조를 보면 알 수 있다.

앞에서 설명한 것처럼 정적 웹 사이트는 클라이언트의 요청을 받아서 정적인 정보만 제공하면 되기 때문에 웹 서버만으로 배포가 가능하다.

반면 동적 웹 사이트는 클라이언트의 요청에 따라서 정적인 정보를 제공하는 웹 서버와 동적인 정보를 제공하는 웹 애플리케이션 서버가 필요하다.

그런데 여기서 주목할 부분은 동적 웹 사이트에서도 웹 서버가 필요하다는 부분이다. 즉, 동적 웹 사이트는 정적 웹 사이트에 동적인 정보를 추가적으로 제공하는 웹 사이트인 것이다.

이제 결론을 지어보자면, S3 정적 웹 사이트를 호스팅 한다는 말은 서버로부터 HTML, CSS, JavaScript 등의 정적인 정보를 받아올 수 있다는 의미이다.

이는 웹 서버의 역할을 할 수 있다는 것이고, 웹 서버의 역할은 동적 웹 사이트에서도 동일하다.

일반적으로 웹 서버는 프론트엔드 서버이기 때문에, 동적 웹 사이트인 이번 프로젝트에서 S3 정적 웹 사이트 호스팅으로 프론트엔드 서버 배포가 가능했던 것이다.

마무리

이번 시간은 프론트엔드 서버를 배포하면서 헷갈렸던 정적 웹 사이트와 동적 웹 사이트에 대해서 정리할 수 있는 시간이었다.

개발 용어 중에는 다른 단어이지만 비슷한 의미를 갖는 용어들도 많고, 비슷한 단어이지만 다른 의미를 갖는 용어들도 많아서 헷갈리게 되는 것 같다.

혹시 나처럼 위 용어들에 대해 헷갈렸던 분들이 있다면 도움이 되었으면 한다.

참고 자료

위키백과

유튜브

기타