해당 글은 김영한 님의 HTTP 강의를 듣고 기록하기 위해 작성하는 글입니다. 1️⃣ 캐시 시간 초과 캐시 유효 시간이 초과했을 때, 서버에 다시 요청할 시 다음 두 가지 상황이 발생할 수 있다. 서버에서 기존 데이터를 변경한 경우 서버에서 기존 데이터를 변경하지 않은 경우 이때 데이터를 재전송하는 대신에 저장해 두었던 캐시를 재사용할 수 있다. 단, 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 방법이 필요하다. 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 어떻게 확인할 수 있을까? 2️⃣ 검증 헤더와 조건부 요청 헤더 검증 헤더 (Validator) ETag: "v1.0", ETag: "asid93jkrh2l" Last-Modified: Thu, 04 Jun 2020 07:19:2..
해당 글은 김영한 님의 HTTP 강의를 듣고 기록하기 위해 작성하는 글입니다. 1️⃣ 쿠키란? 🍪🍪 쿠키란 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 사용자의 웹 브라우저를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 말한다. Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달 쿠키를 사용하지 않으면? HTTP는 무상태(Stateless) 프로토콜이다. 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어진다. 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다. 클라이언트와 서버는 서로 상태를 유지하지 않는다. 무상태(Stateless) 프로토콜에 대해서는 다음 게시글을..
1️⃣ 타임리프(Thymeleaf) 타임리프는 스프링 부트에서 공식적으로 지원하는 View 템플릿 엔진이다. 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 구성해 준다. 🔹 타임리프 대표적인 특징 JSP와 달리 Thtmeleaf 문서는 HTML 확장자를 가지고 있어 서버상에서 동작하지 않아도 파일의 내용을 확인할 수 있다. 순수 HTML 구조를 유지한다. 따라서 Natural Template이라고도 불린다. 화면 구성을 서버 가동 없이 쉽게 파악할 수 있기 때문에 개발에 용이하다. 2️⃣ 타임리프 사용 🔹 라이브러리 추가 타임리프 사용을 위해 build.gradle에 의존성을 추가해야 한다. implementation 'org.springframework.boot:spring-boot-starter..
해당 글은 스프링 부트와 AWS로 혼자 구현하는 웹 서비스라는 책을 읽고 핵심 내용을 정리하기 위해 작성하는 글입니다. 03장 스프링 부트에서 JPA로 데이터베이스 다뤄보자 1️⃣ JPA 의존성 추가하기 JPA를 사용하기 위해 build.gradle에 의존성을 추가해야 한다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.h2database:h2' spring-boot-starter-data-jpa: 스프링 부트용 Spring Data Jpa 추상화 라이브러리 h2: 인메모리 관계형 데이터베이스로 별도의 설치가 필요 없이 프로젝트 의존성만으로 관리할 수 있음. 2️⃣ JPA를 이용하여 En..