브라우저에 www.naver.com 입력 -> 엔터
-> www.naver.com 정말로 웹서버로 전달할 수 있게 통신
-> 웹서버는 WAS(Web Application Server) 요청을 전달
-> WAS는 요청에 따라 응답을 만들어내기 위해 일처리
-> 만들어낸 응답을 웹서버에게 전달
-> 웹서버는 브라우저에게 응답을 남김
-> 화면에 띄어줌
브라우저(요청 전달) -> 웹서버 -> WAS(응답) -> 웹서버 -> 브라우저
웹서버
브라우저의 요청을 받는 녀석
nginx, tomcat, jeus
jsp
jspf : jsp 조각 파일
-> 모든 화면에 전부 불러올 jsp 파일은 jspf로 만들고 설정을 통해 처리
화면마다 jsp를 처음부터 끝까지 전부 구성하지는 않음

Type에서
gradle
maven
둘의 목적, 역할은 같다
프로젝트의 패키징의 목적
의존성 처리에 대한 설정
배포에 도움을 주는 역할
meven이 오래된 것
gradle이 더 신식
사용 방법이 다르다
기존에 meven으로 만들어져있는 녀석들은 gradle만 알면 이해가 안된다
Packaging에서
패키징(압축), 묶는 거
jar
war
우리가 만들 프로젝트의 패키징 확장자를 정하는 방식
기존의 웹들은 jar패키징을 하면 안 됐다
웹서버에 배포가 안됐었다
그래서 기존의 웹은 무조건 war
지금은 시대가 많이 흐르면서 jar도 가능

Dependencies -> 의존성들
DI -> 의존성 주입
1. 필드 주입 : 전역변수에 직접적으로 주입을 하겠다 -> 간편, 생략된 게 많아서 꼬이는 현상이 발생
2. 생성자 주입 : 생성자를 통해서 주입을 하겠다 -> 조금은 번거롭긴 하지만 생략된 게 적어서 꼬이는 현상이 없음
3. 세터 메서드 주입 : 셋 ~~ 메서드를 통해서 주입을 하겠다 -> 조금은 번거롭긴 하지만 생략된 게 적어서 꼬이는 현상이 없음
우리는 생성자 주입 방식을 사용할 거임
IoC -> 제어의 역전
개발자가 객체를 직접 만들지 않고, 필요한 객체를 spring이 만듦
우리한테 뭐가 필요한지 알고 spring이 객체를 만들지 ?
-> 어노테이션을 통해서 처리
spring에 들어가려면 어노테이션이 되게 중요해짐
spring이 만들어내는 객체 -> bean
프로젝트가 생성되다가 에러박스가 뜰 경우 lombok를 뺌
그 다음 lombok를 추가할 것
.xml -> 태그로 이루어진 문서
컨트롤러의 역할
브라우저는 웹서버에게 요청 -> 웹서버가 컨트롤러에게 요청 -> 컨트롤러가 하는 응답은 웹서버로
-> 웹서버는 브라우저에게 응답을 전달
내장되어 있는 웹서버 - tomcat
Request - 요청
요청방식
1.GET
2.POST
브라우저가 웹서버에 요청을 전달하는 방법
-웹서버가 가진 ip를 입력, port도 입력
ip : localhost
port : 8080
localhost:8080 -> 웹서버를 찾아가는 방법
/usr/home/main -> 웹서버 내의 컨트롤러를 찾아가는 방법
localhost:8080/usr/home/main
서버 바꾸는 방법
spring.applic정도까지 치고 자동완성
server.port치고 자동완성
context path
서버ip:port번호/context path/usr/home/main
context path 바꾸는 방법
HTTP Status 404 - Not Found
200 -> 성공
500 -> 웹서버, 인터넷
403 -> forbidden
HTTP 상태코드
쿼리스트링은 이름을 따라감
string Boot에서 줄바꿈을 하려면 <.br /> 사용할 것
.은 제거