CS/웹

[Web] 정적 컨텐츠에서 스프링까지 (Java를 모르는 내가 스프링에 도달하기까지)

pythaac 2022. 2. 4. 15:32

스프링을 공부하는 중입니다

  저는 소프트웨어를 전공했음에도 웹이라고는 html, javascript(현재는 바닐라 자바스크립트라고 부르는 것 같더군요), php와  LAMP를 이용한 간단한 서버를 만드는 경험이 전부였습니다. 그리고 스프링을 처음 접했을 때 상당히 혼란스러웠습니다. 쉽게 따라할 수 있고 동작은 하는데... 내가 만들던 서버와의 gap이 너무 크게 느껴지는 겁니다. 예를 들면, 분명 서버(Apache 서버)를 설치 안했는데 localhost로 접속이 된다는 것도 신기했구요. 아직 부족함이 많지만, 그 사이의 공백을 채우는 자취로써 간단히 정리해보려합니다.

 


웹이란 무엇인가

https://pythaac.tistory.com/166

 

웹이란 무엇일까?

Web Server와 Web Application Server(WAS)의 차이 웹이란 무엇인가에 대해 고민하게된 계기다. 내가 수업시간에 배웠던 웹은 웹 서버(html, css, php, apache server 등등)에 속해 있었으며, 세상에 많고 많던 컴..

pythaac.tistory.com

  우리는 웹 브라우저를 통해 하나의 페이지를 보게 됩니다. 그리고 버튼, 링크 등을 누르면 다른 페이지로 이동하게 됩니다. 이렇게 페이지와 페이지, 혹은 다른 리소스가 수없이 연결되어있는 모습이 거미줄 같다는 의미로 웹으로 불린다고 합니다. 즉, 리소스들의 연결성을 뜻합니다.

 


리소스는 어떻게 가져오는가

  리소스들은 URL과 같이 각자 고유한 ID를 가지며, 웹도 이러한 ID를 통해 연결이 가능하게됩니다. 인터넷을 통해 이 ID를 요청하면, 인터넷을 통해 서버가 요청을 인식하고, 원하는 리소스를 돌려주는 응답을 줍니다.

  • 클라이언트 -> (요청) -> 서버 -> (응답) -> 클라이언트

 


정적 컨텐츠와 웹 서버

  Hello world가 적힌 간단한 HTML과 같이 변하지 않는 리소스를 정적 컨텐츠라 합니다. 해당 리소스의 내용은 변하지 않기 때문에 서버는 요청한 ID에 대한 리소스를 응답으로 보내주면 되는데, 이러한 역할을 하는 서버를 웹 서버라고 부릅니다.

  그러나 이러한 방식으로는 리소스 제공에 한계가 있습니다. 예를 들어, 새로운 게시물이 올라올 때마다 각 페이지를 나타내는 HTML 문서를 새로 작성하는 batch 처리는 비효율적이며 실시간성도 떨어집니다.

 


동적 컨텐츠와 웹 어플리케이션 서버

https://pythaac.tistory.com/23

 

Web Server와 Web Application Server(WAS)

Spring boot는 WAS 설정이 필요없는 Framework Jhipster를 설치하고 환경세팅하려다가 이러한 문구를 발견하였다[1]. Spring boot : 스프링에서 어려운 설정이나 WAS에 대한 설정없이 바로 개발에 들어갈 수 있

pythaac.tistory.com

https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88

 

웹 컨테이너 - 위키백과, 우리 모두의 백과사전

웹 컨테이너(web container, 또는 서블릿 컨테이너)는 웹 서버의 컴포넌트 중 하나로 자바 서블릿과 상호작용한다. 웹 컨테이너는 서블릿의 생명주기를 관리하고, URL과 특정 서블릿을 맵핑하며 URL

ko.wikipedia.org

  그렇게 요청마다 다른 결과를 가져올 수 있는 동적 컨텐츠가 탄생합니다. php도 이러한 역할을 하며, JSP나 Servlet은 Java를 이용하여 동적 컨텐츠를 생성합니다. Java를 처리하는 웹 어플리케이션 서버는 웹 서버 + 웹 컨테이너로, URL에 따라 리소스를 찾아 응답을 주는 웹 서버의 역할은 그대로지만, URL에 따라 실행할 Java 메서드를 연결하여 동적 컨텐츠를 생성하고 생명주기와 접근권한 등을 웹 컨테이너에서 관리합니다.

 


JSP와 Servlet

https://pythaac.tistory.com/23

 

Web Server와 Web Application Server(WAS)

Spring boot는 WAS 설정이 필요없는 Framework Jhipster를 설치하고 환경세팅하려다가 이러한 문구를 발견하였다[1]. Spring boot : 스프링에서 어려운 설정이나 WAS에 대한 설정없이 바로 개발에 들어갈 수 있

pythaac.tistory.com

  이러한 웹 어플리케이션 서버를 활용하기 위해 JSP와 Servlet이 있습니다. 간단히 보면 JSP는 HTML 문서에 Java를, Servlet은 Java 코드에 HTML을 삽입하는 방식인 듯 합니다. 요청에 따라 삽입된 Java 코드를 웹 컨테이너에서 실행시켜주고, 실행 결과가 요청에 대한 응답으로 작성됩니다.

 


그리고 스프링

  아직 스프링은 공부중이라 작성하기 어렵지만, 분명한 것은 스프링이 이에 더해 해결해준 무언가가 있다는 것입니다. 지금까지 느낀 바로는 (spring boot가) 개발자를 위해 많은 기능을 제공한다라는 것입니다. 이 부분을 채우기 위해 더 공부하고 정리하도록 하겠습니다.

'CS > ' 카테고리의 다른 글

[웹] Spring - NodeJS - Django  (0) 2022.04.19
[웹] JEE (Jakarta Enterprise Edition)  (0) 2022.04.19
[웹] SEO란  (0) 2022.04.18
[인프런][HTTP] URI와 웹 브라우저 요청 흐름  (0) 2022.04.07
[인프런][HTTP] 인터넷 네트워크  (0) 2022.03.30