본문 바로가기

전체 글60

[환경세팅] ① IntelliJ 환경세팅 및 프로젝트 생성 프로젝트 생성 전에 IntelliJ 설치를 해야한다. 필자는 IntelliJ Ultimate 버전(유료)을 쓰고 있으니 참고바란다 글 작성시점 기준으로 2022.01 버전을 사용하고 있다 Spring Boot에서는 프로젝트를 쉽게 생성할 수 있도록 Spring Boot Starter라는 것을 제공하고 있다 이 글에서는 Spring Boot Starter를 이용하여 프로젝트를 생성하겠다 먼저, 아래 페이지에 접속한다. https://start.spring.io/ 아래와 같이 선택 및 입력한다 필자는 Java 11을 사용하고 있으므로 Java 11을 선택했다 Dependencies의 경우 아래 항목을 선택한다 Spring Web(웹 Application에 대한 기본적인 모듈 제공) Thymeleaf(뷰 템플.. 2022. 8. 9.
HTTP 헤더 - 캐시②(캐시 제어 헤더) 캐시 제어 헤더는 다음과 같이 존재한다 Cache-Control: 캐시 제어 Pragma: 캐시 제어(하위 호환) Expires: 캐시 유효 기간(하위 호환) 다음은 위 헤더의 상세설명이다 Cache-Control - 캐시 지시어(directives) Cache-Control: max-age 캐시 유효시간(초 단위) Cache-Control: no-cache 캐시 가능하지만, 항상 원(Origin)서버에 검증하고 사용 Cache-Control: no-store 데이터에 민감한 정보가 있으므로 저장하면 안됨 (메모리에서 사용하고 최대한 빨리 삭제) Pragma - 캐시 제어(하위 호환) Pragma: no-cache 항상 원(Origin) 서버에 검증하고 사용하도록 함 HTTP 1.0 하위 호환 현재 거의.. 2022. 8. 7.
HTTP 헤더 - 캐시①(캐시와 조건부 요청) 이번 글에서는 캐시와 관련된 해더에 대해 이야기 하겠다. 먼저 캐시에 대한 설명을 하자면 다음과 같다. 캐시 리소스(데이터)의 복사본을 클라이언트에 저장하는 것 리소스는 HTTP 문서, 이미지, 파일, JSON 등이 될 수 있다. 유효시간 동안 사용가능하며, 유효시간 만료 시 서버에 새로운 리소스를 요청해야함 그렇다면 캐시를 사용하는 이유는 뭘까? 캐시를 사용할 때와 사용하지 않을 때를 비교해보겠다 캐시를 사용하지 않을 때 데이터 내용이 변경되지 않아도 매번 네트워크를 통해서 리소스를 요청해야 한다 인터넷 네트워크는 매우 느리고 비싸다 브라우저 로딩 속도가 느리다 캐시를 사용할 때 캐시 유효시간 동안 네트워크를 사용하지 않아도 된다 비싼 네트워크 사용량을 줄일 수 있다 브라우저 로딩 속도가 빠르다 캐시에.. 2022. 8. 7.
HTTP 헤더 - 기본헤더 이번 글에서는 HTTP 기본헤더에 대해 이야기하고자 한다. 헤더에 대한 이해를 높이기 위해 HTTP Message에 대한 이야기를 하고 넘어가겠다. HTTP로 데이터를 주고 받을 때, HTTP Message를 이용한다. HTTP Message를 간략하게 보자면 아래와 같이 구성되어 있다. 메세지 본문(Message Body)을 통해 표현 데이터 전달 메시지 본문 = 페이로드(Payload) 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 예) 데이터 유형(html, json), 데이터 길이, 압축 정보 등등 표현 헤더 표현 헤더는 아래와 같이 구성되어 있다. Content-Type: 표현 데이터의 형식 Content-Encoding: 표현 데이터의 압축 .. 2022. 8. 2.