![Thumbnail](https://cdn.inflearn.com/public/courses/326277/cover/52d4f143-b470-4109-96cb-a0b146fb42ed/http.png)
44,000원
초급자를 위해 준비한
[웹 개발, 개발 · 프로그래밍] 강의입니다.
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다.
이런 걸
배워요!
📣 확인해주세요!
본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 로드맵을 먼저 확인해주세요. (바로가기)
모든 것이 HTTP 기반
지금 시대는 모든 것을 HTTP로 전송합니다. 우리가 잘 아는 HTML, 이미지, 영상, 파일뿐만 아니라 API로 앱과 서버가 통신할 때, 또 서버와 서버가 통신할 때도 대부분 HTTP를 사용합니다.
그래서 모바일 앱 개발자, 웹 프론트엔드 개발자, 백엔드 개발자는 모두 HTTP를 필수로 잘 알고 사용해야 합니다. 특히 백엔드 개발자는 스프링(Spring) 웹 MVC, JSP, PHP, ASP.NET, Node.js, 파이썬 장고, 루비 온 레일즈와 같은 웹 프레임워크나 기술들을 사용하는데, 이러한 웹 기술들은 모두 HTTP를 기반으로 구현되어 있습니다.
처음 웹 기술을 공부하는 개발자
HTTP를 제대로 이해하지 못한 상태에서 처음 웹 기술들을 공부하면, 깊이있게 원리를 이해하기 쉽지 않습니다. 왜냐하면 해당 기술들은 여러분이 이미 HTTP를 잘 알고 있다고 가정하고, 기능 사용법 위주로 설명하기 때문입니다. 예를 들어 스프링 웹 MVC를 처음 학습하면 HTTP와 관련된 수많은 기능과 용어가 등장하는데, 이런 기능이 왜 필요한지, 이런 용어들이 어디에서 어떤 이유로 나왔는지 명확하게 이해하기 어렵습니다. 그래서 깊이있는 이해보다는 단순히 기능 사용법 위주로 학습하게 됩니다.
실무에서 웹 기술을 사용하는 개발자
실무에서 웹 기술을 사용하며 오랜 기간 개발을 해도, 고민의 연속입니다. API URL을 이렇게 설계하는 게 맞을까? 언제 POST를 사용하고 PUT를 사용해야 할까? HTTP 상태코드는 어떤 것을 선택하는 게 좋을까? 이런 고민을 계속 하게 됩니다.
실무 개발에 꼭 필요한 HTTP 핵심 내용을 학습하고 기준을 세우고 싶은데, 인터넷 자료들은 조각조각 흩어져 있거나 잘못된 내용들이 많습니다. 그렇다고 HTTP 스펙이나 시중의 책들로 학습하기에는 실무에 꼭 필요하지 않은 내용도 많고, 학습량도 부담됩니다.
강의 목표
여러분은 평생 HTTP 기반 위에서 개발하게 됩니다. 그래서 언젠가 한번은 HTTP를 진지하게 학습하고 정리해야 합니다. 이 강의의 학습 목표는 다음과 같습니다.
- HTTP의 전체 흐름을 이해할 수 있습니다.
- 실무에 꼭 필요한 핵심 내용 위주로 설명합니다.
- 최대한 쉽게 설명하기 위해 많은 그림과 예시를 활용해서 설명합니다.
이 강의를 통해 여러분은 실무에 꼭 필요한 HTTP 기본 지식을 모두 습득할 수 있습니다.
강의 대상
![4](https://cdn.inflearn.com/public/files/courses/326277/4145c15e-bb96-4bc1-8f53-de222979c7ba/326277-mark-3.png)
백엔드
서버 개발자
![4](https://cdn.inflearn.com/public/files/courses/326277/4145c15e-bb96-4bc1-8f53-de222979c7ba/326277-mark-3.png)
웹 프론트엔드
클라이언트 개발자
![4](https://cdn.inflearn.com/public/files/courses/326277/4145c15e-bb96-4bc1-8f53-de222979c7ba/326277-mark-3.png)
모바일 프론트엔드
클라이언트 개발자
![4](https://cdn.inflearn.com/public/files/courses/326277/4145c15e-bb96-4bc1-8f53-de222979c7ba/326277-mark-3.png)
웹기술을 다루는
모든 개발자
여러분이 웹 또는 모바일 앱 프론트엔드, 백엔드와 같이 HTTP 기술을 사용하는 개발 직군이라면 이 강의를 통해 HTTP를 깊이있게 이해할 수 있습니다. 그중에서도 직접 HTTP API를 설계하고, 제공해야 하는 웹 애플리케이션을 개발하는 백엔드 개발자에게 가장 큰 도움이 됩니다.
강의 구성
![5](https://cdn.inflearn.com/public/files/courses/326277/4da13649-3630-4712-998a-11583e967deb/326277-1-b.jpg)
1. 인터넷 네트워크
강의는 먼저 인터넷 네트워크부터 설명합니다.
HTTP도 결국에는 TCP/IP나 UDP 기반 위에서 동작하기 때문에 아주 기본적인 인터넷 네트워크를 이해해야 합니다.
![6](https://cdn.inflearn.com/public/files/courses/326277/acc0611e-4744-4f61-b1bc-f335f9495915/326277-2-b.jpg)
2. URI와 웹 브라우저 요청 흐름
URI와 URL의 개념을 확실하게 정리합니다.
그리고 웹 브라우저 요청 흐름을 통해 HTTP 메시지가 어떻게 TCP/IP 메시지로 변하고, 네트워크를 통해 목적지까지 도착하는지, 그리고 HTML 응답을 받아와서 웹 브라우저에 렌더링 되는 과정을 설명합니다. 이를 통해 HTTP와 네트워크의 전체 사이클을 이해합니다.
![7](https://cdn.inflearn.com/public/files/courses/326277/20d2d851-bda8-4a89-8966-d3aaa1f3f9a0/326277-3.jpg)
3. HTTP 기본
HTTP의 기본 동작과 특징들을 알아봅니다. 특히 상태유지(Stateful), 무상태(Stateless)의 개념과 HTTP 메시지에 대해서 자세히 알아봅니다.
![8](https://cdn.inflearn.com/public/files/courses/326277/5a07fe3e-61c8-47ee-8783-9dd0d2b0cd78/326277-4-b.jpg)
4. HTTP 메서드
먼저 HTTP API를 무작정 한번 설계해 봅니다. 어떤 문제가 있는지 살펴보고, 왜 HTTP 메서드가 필요한지 학습합니다.
다양한 HTTP 메서드들을 학습하고, GET, POST, PUT, PATCH, DELETE 같은 주요 HTTP 메서드들을 언제 어떻게 사용해야 하는지 기본기를 다집니다.
![9](https://cdn.inflearn.com/public/files/courses/326277/51d6dbc6-7df3-4d30-b7c8-8dce7a777f9e/326277-5-b.jpg)
5. HTTP 메서드 활용
실무에서 주로 사용하는 기본 활용법을 배웁니다. HTML form을 통해 메시지를 전송하는 방법, API를 통해 전송하는 방법 등을 학습합니다. 그리고 HTTP API URL을 올바르게 설계하는 방법을 예시를 통해서 학습합니다. 이론과 실무의 한계를 극복하는 방안들도 설명합니다.
![10](https://cdn.inflearn.com/public/files/courses/326277/1cc5c4c2-4e22-4e9c-a620-dc586c44e31c/326277-6-b.jpg)
6. HTTP 상태코드
HTTP 상태코드에 대해 설명합니다. 어떤 상태코드를 주는게 올바른 방법인지 그리고 2xx, 3xx, 4xx, 5xx의 제대로 된 의미와 사용법을 배웁니다.
![11](https://cdn.inflearn.com/public/files/courses/326277/424d4063-61cd-4289-aefc-759ea2d50bac/326277-7-b.jpg)
7. HTTP 헤더 - 일반 헤더
HTTP에는 수많은 헤더가 있습니다. 여기서는 표현, 콘텐츠 협상, 전송 방식, 쿠키 등을 단순한 기능 설명이 아니라 예시와 사례를 통해 학습합니다.
![12](https://cdn.inflearn.com/public/files/courses/326277/ca92c4a8-2a2b-4a58-a077-c72511d2f829/326277-8-b.jpg)
8. HTTP 헤더 - 캐시
HTTP 캐시에 관한 기본 내용을 학습합니다. 캐시가 필요한 이유부터 브라우저 캐시, 프록시 캐시, 조건부 요청, 캐시 무효화 방법 등을 학습합니다.
앞으로 이어질
스프링 완전 정복 시리즈
스프링을 완전히 마스터할 수 있는 시리즈를 준비하고 있습니다. 실제 실무에서 사용하는 핵심 스프링 기능을 중심으로, 실무에서 쓰이지 않거나 오래된 기능은 과감하게 생략한 실무 노하우를 전수해드릴 예정입니다.
강의 순서
- 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
- 스프링 핵심 원리 - 기본편
- 모든 개발자를 위한 HTTP 웹 기본 지식 현재 강의
- 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
- 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
- 스프링 DB 1편 - 데이터 접근 핵심 원리
- 스프링 DB 2편 - 데이터 접근 활용 기술
- 스프링 핵심 원리 - 고급편
- 실전! 스프링 부트 출시 예정
실전! 스프링 웹 MVC - 1편
- 목표: 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 완성하는 것을 목표로 하는 강의입니다.
- 웹 기초부터 실무까지: 실무 개발을 위한 내용이 많지만, 웹 애플리케이션 개발 경험이 없는 개발자도 적응할 수 있게 구성하였습니다.
- 자바 웹 기술 이야기: 서블릿, 필터 등 자바 기본 웹 기술부터 시작해 왜 스프링 MVC가 나오게 되었는지를 설명합니다.
- 실무 예제 중심: 실무에서 스프링으로 웹 애플리케이션을 개발할 때 필요한 모든 과정을 예제를 통해 자연스럽게 학습하며, 실무에서의 Best Practice를 전수해드립니다.
- 간결함: 실무에서 사용하지 않는 오래된 기능은 과감하게 제외했습니다. 최신 실무에 주로 사용하는 내용을 위주로 설명합니다.
연관 로드맵
스프링 똑똑하게 시작하기, 핵심 원리부터 실전 활용
이런 분들께 추천드려요!
학습 대상은
누구일까요?
김영한 입니다.
교육자
전: 우아한형제들 기술이사, 카카오, SK플래닛