서버 사이드 랜더링(SSR) 서버 사이드 랜더링은 서버에서 클라이언트에 보여질 화면을 결정하는 것이다. 즉, HTML을 서버에서 모두 만들어서 웹 브라우저에 전달하면 웹 브라우저는 HTML을 표시만 해주면 된다. 서버에서 HTML을 생성하게 되면 이용자가 많아질 수록 서버에 부담이 갈 수 밖에 없다. 따라서 서버 비용이 비싸므로 이는 주로 정적인 화면에만 사용된다. 물론 동적으로 변경 가능하지만, 서버에 부담이 가므로 권장되지 않는다. Thymleaf와 같은 것이 이렇게 작동한다. 모든 HTML이 이미 세팅되어 있고 특정 문자열만 변경이 필요한다던지 할 때 이 방식을 사용한다. SSR 동작 방식 클라이언트에서 서버로 HTML 요청 서버에서 응답하여 클라이언트에 HTML 내려줌 클라이언트는 서버에서 받은 ..
Spring
웹서버의 특징 HTTP를 기반으로 동작 HTTP를 기반으로 동작하기 때문에 HTTP프로토콜을 기반으로 정적 리소스를 요청자에게 제공한다. 정적 리소스는 HTML, CSS, 이미지, 영상 등이 있을 수 있다. 정적인 파일만 제공 정적인 파일만 제공하기 때문에 사용자에 따라 다른 결과의 제공이 불가하다. 플러그인 설치 등으로 제공되기도 하지만, 이해를 위해 이는 논외로 하자. 대표적인 웹서버 APACHE 웹 애플리케이션 서버(WAS)란? HTTP를 기반으로 동작 웹서버와 마찬가지로 HTTP를 기반으로 동작하기 때문에 정적 리소스의 제공이 가능하다. 동적인 로직 수행해서 제공 하지만, 웹서버와 다른 점은 웹 애플리케이션 서버는 프로그래밍이 가능하기 때문에 사용자에 따라 다른 결과의 제공이 가능하다. 우리가 쓰..
Controller란? Controller란 서버의 진입점이자, 사용자의 요청(Request)을 받아들인 후 어떤 처리를 해야할지 결정하는 부분이다. 이렇게 말하면 너무 추상적이니 예시와 함께 알아보도록 하자. 사용자는 사용하는 웹사이트에 대한 HTTP통신을 통해 홈페이지에 접속한다. https://kotlinworld.com/category/Kotlin 예를 들어 위의 주소를 웹브라우저의 검색 창에 치면 kotlinworld.com을 처리하는 서버는 /category/Kotlin에 대한 결과값을 사용자에게 View로 만들어 반환한다. 그 결과는 아래와 같다. 이것이 가능한 이유는 서버에서 /category/Kotlin에 대한 요청을 의 View를 반환하도록 처리 하였기 때문이다. Spring에서 Con..
MVC란? Spring MVC란 가장 많이 사용되고 있는 웹 아키텍처로, 스프링에서 웹 모듈 형태로 제공된다. 웹 개발 시 Model, View, Controller 단의 관심사를 분리함으로써 각각 독립적으로 개발될 수 있게 하여 각 구성요소 간의 의존성을 낮춘 것이 특징이며, 사용자 요청이라는 단일 진입점을 가진 웹 환경에서 사용되고 있는 아키텍처이다. * 관심사 분리: 관심사 분리는 컴퓨터 프로그램의 디자인 원칙으로, 분리시킬수 있는 부분을 분리시키는 원칙이다. * 관심사 분리가 중요한 이유는 관심사 분리가 되지 않을 경우 프로그램 내부의 코드간 의존성이 너무 커져서 하나를 고치거나 기능을 추가할 때 의존성이 있는 부분을 모두 고쳐야 하는 상황이 생기기 때문이다. MVC 개요 MVC 아키텍처를 채택한..
Intellij 무료 버전 1. https://start.spring.io/ 에 접속해서 과 같이 세팅한다. Project의 빌드 시스템을 Gradle로 바꾼다 : Gradle Project Project에서 사용할 Language를 Kotlin으로 바꾼다 : Kotlin Spring Boot의 Version을 Stable한 버전으로 세팅한다 : 2.5.4 ADD DEPENDENCIES를 눌러 Spring Web, Thymleaf(타임리프), Spring Boot DevTools를 추가한다. 2. 위 에서 Generate 버튼을 누르면 아래와 같이 demo.zip 파일이 생성된다. 해당 파일의 압축을 푼다, 3. 다음의 과정을 통해 생성한 프로젝트를 연다 Intellij를 켠 후 File-Open을 누른..