๋จผ์ build.gradle์ ๋ค์ด๊ฐ์ dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.jasypt:jasypt:1.9.3' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:s..
๐ผ๋ฐฑ์ค๋/Spring
์์์ฑ ์ปจํ
์คํธ JPA์์ ๊ฐ์ฅ ์ค์ํ 2๊ฐ์ง๋ฅผ ๊ผฝ์๋ณด๋ฉด 1. ๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋งคํ(ORM) 2. ์์์ฑ ์ปจํ
์คํธ ์ด๊ทธ๋ฆผ์ ์ค๋ช
ํ๋ฉด ์์ฒญ์ด ์ฌ ๋๋ง๋ค EntityManagerFactory๋ฅผ ํตํด EntityManager๋ฅผ ์์ฑํ๊ณ , EntityManager๋ ๋ด๋ถ์ ์ผ๋ก DB ์ปค๋ฅ์
์ ํตํด DB๋ฅผ ์ฌ์ฉํ๋ค. ์์์ฑ ์ปจํ
์คํธ? "์๊ตฌ ์์ฑ ์ ์ฅ" ์ธ๊ฐ? ๋ง๋ค. "์ํฐํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ๋ ํ๊ฒฝ"์ด๋ผ๋ ๋ฏ์ด๋ค. ์์์ฑ ์ปจํ
์คํธ๋ ๋
ผ๋ฆฌ์ ์ธ ๊ฐ๋
์ผ๋ก ๋์ ๋ณด์ด์ง๋ ์๋๋ค. EntityManager๋ฅผ ํตํด์ ์์์ฑ ์ปจํ
์คํธ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. EntityManager.persist(entity); //Entity๋ฅผ DB์ ์ ์ฅํ๋ ์ฝ๋. Entity๋ฅผ ์์์ฑ ์ปจํ
์คํธ์ ์ ์ฅํ๋ ๊ฒ์ด๋ค. EntityManage..
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฉ์ธ JPA๋ ํน์ DB์ ์ข
์๋์ง ์๋๋ค. ๋ฐ๋ผ์ ์์์ ๋ฐ๊ฟ์ค๋ค. 2. JPA๊ตฌ๋ ๋ฐฉ์ Persistence ํด๋์ค๊ฐ META-INF/persistence.xml ์ค์ ํ์ผ์ ์ฝ์ด์ EntityManagerFactory๋ผ๋ ํด๋์ค๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ํ ๋๋ง๋ค EntityManager๋ฅผ ๋ง๋ ๋ค. EntityManagerFactory๋ ํ๋๋ง ์์ฑํด์ ์ ์ฒด์์ ๊ณต์ ํ๊ณ , EntityManager๋ ์ฐ๋ ๋๊ฐ์ ๊ณต์ ํ์ง ์๊ณ ์ฌ์ฉ ํ ๋ฒ๋ฆฐ๋ค. JPA์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ํธ๋์ญ์
์์์ ์คํํ๋ค. ์์์ ์์ ํธ๋์ญ์
์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ด ํ์ํ๋ค. ํ์ํ๋ค๋ฉด ๊ณต๋ถ๋ฅผ ๋ ํ๋๋ก ํ๊ณ , ๊ฐ๋จํ ์๋๊ธ๋ก ๊ฐ๋
๋ง ์ก์๋ณด์ ํธ๋์ญ์
? https://koreatstm.tistory.com/1..
์๋ฐ ORM ํ์ค JPA ๊ธฐ๋ณธํธ ์ธํ๋ฐ ๊น์ํ๋์ '์๋ฐ ORM ํ์ค JPA ๊ธฐ๋ณธํธ' ๊ฐ์ ๋ณด๋ฌ๊ฐ๊ธฐ https://www.inflearn.com/course/ORM-JPA-Basic# ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ ๊ฐ์ - ์ธํ๋ฐ ํ์ฌ๋์ ๋งค์ผ ๋ฐ์ ์์ค์ ํ์์ด๋ผ๋ ๋ค๋๊น ์๊ฐํ๋๋ฐ ๋ง์นจ JPA ๊ฐ์๊ฐ ์๊ฒจ์ ๊ฟ ํ์ด๋ฐ์ด๋ค์. ์ ๋ ์ด ์ ์ JPA ์ฑ
์ ๋ณด๊ณ ๊ณต๋ถ ํ์๋๋ฐ์ ๊ถ๊ธํ๋ ์ , ์
๋ฌด์ ์ ์ฉํ๋ฉฐ ๊ณ ๋ฏผํ๊ณ ํด๊ฒฐํ www.inflearn.com ๊น์ํ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ๋จ์ํ ๊ฐ์ธ ๊ณต๋ถ๋ฅผ ์ํ ๊ฐ์ธ์ ๋ฆฌ๊ธ์ด๋ค. https://dodeon.gitbook.io/study/kimyounghan-orm-jpa/01-jpa-introduction JPA ์๊ฐ -..
๋จผ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์์ฑ์ ํจํด, ์์ ์ ํจํด, ๋น๋ ํจํด ๋ฑ์ ์ฌ์ฉํ๋๋ฐ, ์ ๋น๋ ํจํด์ ์ฌ์ฉํด์ผ ํ ๊น? ๋น๋ ํจํด์ ์์ฑ ํจํด ์ค ํ๋์ด๋ค. ์์ฑํจํด์ด๋? ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ์ ์ฐจ๋ฅผ ์ถ์ํํ๋ ํจํด. ์์๋ฅผ ๋ค์ด๋ณด์ ์๋ธ์จ์ด~! ์๋ธ์จ์ด ์ฃผ๋ฌธ์ ํจํฐ ์ข
๋ฅ์ ์ผ์ฑ๋ฑ์ ๊ณ ๋ฅธ๋ค. ๋๊ตฌ๋ ํ ๋ผํผ๋จ๋ฅผ ๋ฃ๊ณ , ๋๊ตฌ๋ ์๋ ๋ ์น์ฆ๋ฅผ ์ ํํ๋ค. ์ด์ฒ๋ผ ์ ์ฐํ๊ฒ ๋ค์ํ ํ์
์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์์ด, ํด๋์ค์ ์ ํ์ ๋งค๊ฐ๋ณ์๊ฐ ๋ง์ ๊ฒฝ์ฐ์ ์ ์ ํ๋ค. ๋น๋ ํจํด์ ์ฅ์ ์ ์ด๋ ๋ค. 1. ๊ฐ๋
์ฑ์ ๋์ธ๋ค. ์๋์ ๊ฐ์ ์ฝ๋๋ 10,180,50์ด ๋ญ ๋งํ๋์ง ์๊ธฐ ์ฝ์ง ์๋ค. Member member = new Member(20,180,50) ๊ทธ๋ผ ์๋์ ๊ฐ์ ์ฝ๋๋? Member member = Member.b..
Java์์๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํด try-catch๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง try-catch๋ฅผ ๋ชจ๋ ์ฝ๋์ ๋ถ์ด๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ค. Spring์ ์ ์ญ์ ์ผ๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ @ControllerAdvice์ @RestControllerAdvice ์ด๋
ธํ
์ด์
์ ์ง์ํ๋ค. @RestControllerAdvice๋ @ControllerAdvice์ ๋ฌ๋ฆฌ @ResponseBody๊ฐ ๋ถ์ด ์์ด ์๋ต์ Json์ผ๋ก ๋ด๋ ค์ค๋ค๋ ์ ์ด ๋ค๋ฅด๋ค. @ControllerAdvice @ExceptionHandler, @ModelAttribute, @InitBinder ๊ฐ ์ ์ฉ๋ ๋ฉ์๋์ AOP๋ฅผ ์ ์ฉํด Controller ๋จ์ ์ ์ฉํ๊ธฐ ์ํด ๊ณ ์๋ ์ด๋
ธํ
์ด์
@Controller์ ๋ํ ์ ์ญ์ ์ผ๋ก ๋ฐ์ํ ์ ์๋ ์์ธ๋ฅผ ์ฒ๋ฆฌ..
์์กด๊ด๊ณ ์ฃผ์
๋ฐฉ๋ฒ์๋ 4๊ฐ์ง๊ฐ ์๋ค. ์์ฑ์ ์ฃผ์
์์ ์ ์ฃผ์
(setter ์ฃผ์
) ํ๋ ์ฃผ์
์ผ๋ฐ ๋ฉ์๋ ์ฃผ์
1. ์์ฑ์ ์ฃผ์
์์ฑ์๋ฅผ ํตํด ์์กด ๊ด๊ณ๋ฅผ ์ฃผ์
ํ๋ ๋ฐฉ๋ฒ ์์ฑ์ ํธ์ถ์์ ์ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ ๊ฒ์ด ๋ณด์ฅ๋๊ณ , ๋ถ๋ณ,ํ์ ์์กด๊ด๊ณ์ ์ฌ์ฉ๋๋ค. 2.์์ ์์ฃผ์
setter๋ผ ๋ถ๋ฆฌ๋ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ ์์ ์ ๋ฉ์๋๋ฅผ ํตํด ์์กด๊ด๊ณ ์ฃผ์
ํ๋ ๋ฐฉ๋ฒ ์ ํ, ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ด ์๋์์กด๊ด๊ณ์ ์ฌ์ฉ 3. ํ๋์ฃผ์
ํ๋์ ๋ฐ๋ก ์ฃผ์
ํ๋ ๋ฐฉ๋ฒ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ์ง๋ง ์ธ๋ถ์์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํด ํ
์คํธ ํ๊ธฐ๊ฐ ํ๋ค๋ค 4. ์ผ๋ฐ๋ฉ์๋์ฃผ์
ํ๋ฒ์ ์ฌ๋ฌ ํ๋๋ฅผ ์ฃผ์
๋ฐ์ ์ ์์ผ๋, ์ ์ฌ์ฉํ์ง ์๋๋ค. @Service public class UserService { private UserRepository userReposi..
์๋ธ๋ฆฟ์ด ์ด๋ก์ ๋ถ๋ถ ์ ์ธ ๋ชจ๋ ๋ถ๋ถ์ ๋ค ํด์ค HTTP ์์ฒญ์ • WAS๋ Request, Response ๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋ค์ด์ ์๋ธ๋ฆฟ ๊ฐ์ฒด ํธ์ถ • ๊ฐ๋ฐ์๋ Request ๊ฐ์ฒด์์ HTTP ์์ฒญ ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ๊บผ๋ด์ ์ฌ์ฉ • ๊ฐ๋ฐ์๋ Response ๊ฐ์ฒด์ HTTP ์๋ต ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์
๋ ฅ • WAS๋ Response ๊ฐ์ฒด์ ๋ด๊ฒจ์๋ ๋ด์ฉ์ผ๋ก HTTP ์๋ต ์ ๋ณด๋ฅผ ์์ฑ ์๋ธ๋ฆฟ ์ปจํ
์ด๋: ํฐ์บฃ์ฒ๋ผ ์๋ธ๋ฆฟ์ ์ง์ํ๋ WAS๋ฅผ ์๋ธ๋ฆฟ ์ปจํ
์ด๋๋ผ๊ณ ํจ • ์๋ธ๋ฆฟ ์ปจํ
์ด๋๋ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์์ฑ, ์ด๊ธฐํ, ํธ์ถ, ์ข
๋ฃํ๋ ์๋ช
์ฃผ๊ธฐ ๊ด๋ฆฌ • ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ์ฑ๊ธํค์ผ๋ก ๊ด๋ฆฌ(๊ฐ์ฒด ํ๋ ๋ง๋ค์ด์ ๊ณต์ ) Request,response๋ ๊ฐ ์์ฒญ๋ง๋ค ๋ค๋ฅด๊ธฐ์ ์๋ก ๋ง๋๋๊ฒ ๋ง์ง๋ง, helloServlet๊ฐ์ ๊ฒฝ์ฐ๋ ์ฌ..