목록Inflearn (35)
yeon's blog
본 내용은 인프런 사이트에서 김영한 선생님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 🌱 HttpServletRequest 💡 개요 1. HttpServletRequest 역할 Http 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아 제공한다. 2. HTTP 요청 메시지 ``` POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=min..
본 내용은 인프런 사이트에서 김영한 선생님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 🌱 Hello 서블릿 💡 스프링 부트 서블릿 환경 구성 @ServletComponentScan: 서블릿을 직접 등록해 사용할 수 있도록 해주는 어노테이션 ServletApplication.java 전체코드 package hello.servlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @S..
본 내용은 인프런 사이트에서 김영한 선생님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 🌱 프로젝트 생성 💡 프로젝트 환경 Project: Gradle Language: Java Spring Boot: 3.2.1 Packaging: War Java: 17 Dependencies : Spring Web, Lombok Spring Web: 톰캣 서버를 내장하여 별도의 서버 없이 웹 어플리케이션 실행 가능 Lombok: annotation을 사용하여 getter와 setter를 작성하지 않아도 사용 가능 💡 Jar & War Jar Jar를 사용하면 항상 내장 서버( 톰캣 등 )를 사용하고, webapp 경로도 사용하지 않고 내장 서버 사용에 최적화 되어 있는 기능 J..
본 내용은 인프런 사이트에서 김영한 선생님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 🌱 HTML, HTTP API, CSR, SSR 💡 정적 리소스 (Static Resource) 정적 리소스 파일을 제공하는 경우, 주로 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 웹 브라우저에 제공한다. 💡 HTML 페이지 주문 내역 페이지처럼 동적인 HTML 페이지를 요청하는 경우, WAS(애플리케이션 로직을 수행하는 서버)가 DB를 통해 주문 정보를 조회한 후 동적으로 HTML 파일을 생성(주문 정보들 포함)해 웹 브라우저에 제공한다. 웹 브라우저는 받은 HTML을 해석해 클라이언트에게 화면을 띄워준다. 💡 HTML API 위의 경우처럼 HTML 파일을 생..
본 내용은 인프런 사이트에서 김영한 선생님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 🌱 서블릿 💡 서블릿(Servlet) 이란? 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 ex. 사용자가 아이디와 비밀번호를 입력하고 로그인 버튼을 눌렀을 때, 서버가 아이디와 비밀번호를 확인한 후 다음 페이지를 띄워 줘야 한다. 이러한 역할을 수행하는 것이 바로 서블릿(Servlet)이다!! 💡 HTML Form 데이터 전송 (POST 전송) 클라이언트가 웹 페이지에서 username, age를 입력하고 전송 버튼을 누르면, 위와 같이 웹 브라우저가 요청 HTTP 메시지를 생성해 서버로 전송한다. WAS를..
본 내용은 인프런 사이트에서 김영한 선생님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 강의 내용을 정리한 것입니다. 🌱 웹 서버, 웹 애플리케이션 서버 💡 웹 - HTTP 기반 웹 브라우저(클라이언트)에서 URL을 입력하면 인터넷을 통해 서버에 접근하고, 서버에서는 HTML을 만들어 클라이언트에게 전달해 우리에게 화면을 띄워준다. 이러한 과정은 전부 HTTP 프로토콜을 기반으로 동작하게 된다. 💡 모든 것이 HTTP HTTP 메세지에 모든 것(거의 모든 형태)을 전송할 수 있다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 💡 웹 서버 (Web Server) HTTP 기반으로 동작하는 서버이고, 정적 ..
🌱 캐시의 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저의 로딩 속도가 느리다. 이로 인해 느린 사용자 경험이 발생한다. 캐시 적용 cache-control header를 작성해 일정 시간동안 캐시에 유지할 수 있다. 이렇게 캐시를 적용하게 되면, 일정 시간 동안 같은 요청을 보낼 때, 네트워크를 통해서 결과를 받아오지 않고 브라우저 캐시에 접속해서 결과를 받아오기 때문에 이 과정에서 시간이 크게 단축된다. 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험을 만들어준다. 웹 브라우저 이용시..
🌱 HTTP 헤더 개요 HTTP 헤더 header-field = field-name ":" OWS field-values OWS (OWS: 띄어쓰기 허용) HTTP 전송에 필요한 모든 부가정보를 넣는다. 예를 들어 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리정보.. 등... 표준 헤더는 굉장히 많고, 필요 시 임의의 헤더 추가가 가능하다. 과거의 HTTP 헤더 분류는 생략! 🌱 표현 #표현: 메타 데이터와 표현 데이터를 합친 것 HTTP BODY - RFC7230 메시지 본문을 통해 요청이나 응답에서 전달할 실제 데이터를 표현 데이터 전달 하는데 사용한다. 메시지 본문을 페이로드라고 부른다. Content-Type 클라이언트랑 서버 간에 실제 데이터를..
🌱 HTTP 상태코드 소개 상태코드: 클라이언트가 서버로 요청을 보냈을 때, 요청의 처리 상태를 응답해주는 기능 👉 1xx (Informational): 요청이 수신되어 처리중 ➡️ 거의 사용되지 X 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 🌱 2xx - 성공 200 OK 클라이언트의 요청이 정상적으로 처리되었음을 알리는 상태코드 201 Created POST로 요청을 보내면 리소스 URI를 서버에서 생성하는 상태코드 HTTP Header Loca..
🌱 HTTP API 설계 예시 API 설계 - POST 기반 등록 👉 회원 관리 시스템 1. 회원 목록: /members ➡️ GET 2. 회원 등록: /members ➡️ POST 3. 회원 조회: /members/{id} ➡️ GET 4. 회원 수정: /members/{id} ➡️ PATCH, PUT, POST 5. 회원 삭제: /members/{id} ➡️ DELETE 신규 자원 등록 특징 클라이언트는 등록될 리소스의 URI를 모른다. 회원 등록 /members → POST POST /members 서버가 새로 등록된 리소스 URI를 생성해준다. HTTP/1.1 201 Created Location: /member/100 컬렉션(Collection) 서버가 관리하는 리소스 디렉토리 서버가 리소스의 ..