-> 프레임워크
🔷 프레임워크?
-> 내가 무언가의 작업을 하려고 할때 필요한 구성요소들을
대신 제공해주는 뼈대 (빵 구매하려고 할때 빵집 같은 느낌 )
스프링 프레임워크
-> 동적인 웹사이트를 개발하기 위한 여러가지 서비스를 제공 + 프레임워크 개념
🔷 자바의 웹 프레임워크로 기존 스프링 프레임워크(Spring Framework)에
톰캣 서버를 내장하고 여러 편의 기능들을 추가하여
꾸준한 인기를 누리고 있는 프레임워크
(기존의 스프링 프레임워크는 개발자가 제어해야 할 것들이(설정,세팅) 많은데
이런 부분을 알아서 해주는 진화된 뼈대)
But, 제이쿼리 사례처럼 스프링부트 사용법만 알고 스프링을 모르면
안됨!
리퀘스트(요청) & 리스폰(응답)?
리엑트?
타임리프(Thymeleaf)?
템플릿 엔진 : 지정된 템플릿 양식에 데이터 모델을 전달하여
동적 컨텐츠를 만들어주는 소프트웨어
🔷 www.naver.com -> 네이버 서버 (네이버 페이지) 보고 싶다!
🔷 과정
① - 브라우저에 www.naver.com 입력 엔터!
② - www.naver.com 요청을 정말로 웹서버에 전달할 수 있게 통신
③ - 웹서버는 WAS (Web Application Servar) 요청을 전달
④ - WAS는 요청에 따라 응답을 만들어내기 위해 일처리
⑤ - 만들어낸 응답을 웹서버에 전달
⑥ - 웹서버는 브라우저에게 응답을 넘긴다
⑦ - 화면에 띄어준다!
🔷간결 정리
브라우저(요청 전달) -> 웹서버 -> WAS -> 웹서버 -> 브라우저
@어노테이션을 제공하고 훈련에서 자동으로 개발자가 원하는 것을
생성/주입 방식으로 동작하는 서버입니다.
lombok 역할 : getter(게터)와 setter(세터)를 자동으로 만들어줌
클래스 안에 직접 안 만들어도 실제로 있는것처럼
tmi) 스프링 부트 프로젝트 생성 시 오류 생기면
높은 확률로 롬복때문이어서 롬복 체크 해제 하고
다시 만들어보자!
.xml-> 태그로 이루어진 문서
스프링 부트 프로젝트 생성시
gradle, maven
① 프로젝트의 패키징의 목적
② 의존성 처리에 대한 설정
③ 배포에 도움을 주는 역할
④ 목적, 역할은 같다
gradle과 maven의 차이
maven이 더 오래됨
gradle이 더 신식
둘의 사용방법이 다르다 -> 기존에 만들어져 있는 maven으로
되어있는 녀석들은 gradle만 알면 이해가 안된다
스프링 부트 프로젝트 생성시 패키징
(패키지와 다름 -> 묶는것(압축의 의미)
jar , war 패키징
기존의 웹들은 jar패키징을 하면 x
웹서버에 배포가 안됐었음
그래서 기존의 웹은 무조건 war
but 웹 환경이 점점 개선되면서 둘 다 상관 x
(jar가 war보다 더 가벼움)
Spring boot의 부가설정

Dependencies - 의존성들
-- project 생성시에 Dependencies를 추가할 때 넣는 요소들
Dependency - 의존성
DI -> 의존성 주입
의존성을 주입(lombok의 예)
의존성 주입방식
필드(변수-전역) 주입
= 간편, 생략된게 많아서 꼬이는 현상이 발생(필드주입 방식 권장 x)
생성자 주입
= 조금은 번거롭긴하다, 생략된게 적어서 꼬이는 현상이 없다(적다) -> 객체 생성시 생성
세터 메서드 주입
= 조금은 번거롭긴하다, 생략된게 적어서 꼬이는 현상이 없다(적다) - > 메서드 호출시 생성
IoC -> 제어의 역전
개발자가 직접 객체를 직접 만들지 않고
(개발자가 직접 객체 만들던 방식인 new 안씀!)
필요한 객체를 spring이 대신 만든다
개발자에게 뭐가 필요한지 알고 스프링이 객체를 알아서 만들지?
-> 어노테이션을 통해
스프링에 들어가면 어노테이션이 되게 중요해진다
spring이 만들어내는 객체 -> bean
🔷 스프링 부트 게시판 제작
컨트롤러의 역할
0:00~ 11:00
브라우저는 웹서버에게 요청 -> 웹서버가 컨트롤러에게 요청
-> 컨트롤러가 하는 응답은 웹 서버로 -> 웹서버는 브라우저에게 응답을 전달
클래스위에 @Controller이라는 어노테이션 생성하면 됨
내가 작성한걸 웹페이지에 띄우기
@Controller
public class UsrHomeController {
@GetMapping("/usr/home/main")
@ResponseBody
public String showMain() {
return "안녕하세요";
}
}
쿼리스트링 : 이름이 중요
어노테이션
🔷 어노테이션 정리
@autowired
(생성자 주입시는 쓸 필요 x ??-> 이부분 다시 찾아보기(5/14))
-스프링의 의존성 주입(DI) 기능을 지원하는 어노테이션
-사용시 스프링이 자동으로 필요한 의존성을 주입하여
객채 간의 관계를 설정한다
-생성자, 필드, 세터 메서드에 적용할 수 있으며 스프링은
해당 위치에 알맞은 의존성을 주입
@autowired(오토 와일드) 참고자료