JDBC API๋ฅผ ๊ฐํธํ๊ฒ โ JDBC Template ๐ Spring JDBC : ๊ฐํธํ JDBC API ์ฌ์ฉ์ ์ํ JDBC Template ์ ๊ณตSpring JDBC๋ ๋ฐ๋ณต์ ์ธ JDBC API ์ฝ๋๋ฅผ ๊ฐ์ํํ์ฌ ํจ์จ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์ง์ํ๋ค. JDBC API๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ ๊ตฌ์กฐ์ ๋ฐ๋ณต ๋ฌธ์ ์ ์์ธ ์ฒ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Spring์ด JdbcTemplate์ ์ ๊ณตํ๋ค.1๏ธโฃ Spring JDBC๊ฐ ํด๊ฒฐํ๋ ๋ฌธ์ 1-1. ๋ฐ๋ณต๋๋ ์ฝ๋ ์ ๊ฑฐJDBC API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฐ๋ณต ์์
์ด ๋ฐ์ํ๋ค.Connection ๊ฐ์ฒด ์์ฑ ๋ฐ ๋ฐํStatement ์์ฑ ๋ฐ ์คํResultSet ์ฒ๋ฆฌ์์ธ์ฒ๋ฆฌ์ ์์ ์ ๋ฆฌJdbcTemplate์ ์ด ๋ชจ๋ ๊ณผ์ ์ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๊ฐ๋จํ๊ณ ๊น๋ํ ์ฝ..
Spring Data JPA ์ฒซ ๋จ์ถ์๋ก Spring Data JPA๋ฅผ ๋ฐฐ์ฐ๊ธฐ์ ์์ ์์์ผ ํ ๋ด์ฉ๋ค์ด ๋ง๋ค.JDBCORMJPAHibernate(JPA ๊ตฌํ์ฒด)Spring Framework ํธ๋์ญ์
์ ์ดํด Spring Data JPA ๊ตฌ์กฐ์ ์ฃผ์ ์ธํฐํ์ด์คํด๋น ๋ด์ฉ๋ค์ ์์ผ๋ก ํ๋์ฉ ํฌ์คํ
ํด๊ฐ๋ฉฐ ์ดํดํ ์์ ์ด๋ค. ์์ํ๊ธฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Spring Boot๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง์ ๋ํด ์์๋ณด์. ์ฌ์ค ๊ด๋ จ ๋ด์ฉ Dockerize๋ฅผ ํตํด ๋ค์ ์ด๋ฏธ ์ธ๊ธํ ๋ฐ ์๋ค. https://1000sang-dev.tistory.com/72 [Docker] Dockerize #2Docker๋ฅผ ํตํ Database ๊ตฌ๋Database: ์ฌ์ฉํ๋ ค๋ DB์ Base Docker Image ๊ธฐ๋ฐ์ ์ถ๊ฐ ์ค์ ๋ชฉ์ : Docker..
@Controller์์ Exception ์ฒ๋ฆฌ@Controller์์ Exception ์ฒ๋ฆฌSpring์์ ์ ๊ณตํ๋ ๋ค์ํ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒSpring์์๋ ์ฌ๋ฌ ๊ฐ์ง ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ฉฐ, ๊ทธ ์ค ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ด ExcepitonHandler, ControllerAdvice, ResponseStatusException ๋ฑ์ ํ์ฉํ๋ ๊ฒ์ด๋ค. ExceptionResolver: Spring(WAS) ๋ด ์์ธ ์ฒ๋ฆฌBasicErrorController: Spring์ ๊ธฐ๋ณธ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์ปจํธ๋กค๋ฌ๋ก, ํ์ด์ง ๊ธฐ๋ฐ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ค.์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํ try-catch๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ๊ณตํต ๊ด์ฌ์ฌ(cross-cutting concerns)๋ฅผ ๋ฉ์ธ ๋ก์ง์์ ๋ถ๋ฆฌSpring์ HandlerException..
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ @Controller๋ฅผ ์ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐSpring ์ ํ๋ฆฌ์ผ์ด์
ฉ๋ ๊ฐ๋ฐํ ๋, ํด๋์ค๋ช
์ ๋๋ฉ์ธ ๊ธฐ๋ฐ ๋ช
์นญ๊ณผ 3๊ณ์ธต ์ํคํ
์ฒ ๋ช
์นญ์ ์กฐํฉํ์ฌ ์์ฑ๋๋ค. ์๋ฅผ ๋ค์ด, PaymentService๋ ๋๋ฉ์ธ์ธ Payment์ ์ญํ ์ธ Service๋ฅผ ์กฐํฉํ ํด๋์ค๋ช
์ด๋ค. ์ด์ ๊ฐ์ด ๊ฐ ํด๋์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๋๋ฉ์ธ๊ณผ ๊ณ์ธต ๊ตฌ์กฐ์๋ฐ๋ผ ๋ช
๋ช
๋๋ค.๋๋ฉ์ธ ๊ธฐ๋ฐ ๋ช
์นญ + 3๊ณ์ธต ์ํคํ
์ฒ ๊ธฐ๋ฐ ๋ช
์นญPaymentService = Payment(๋๋ฉ์ธ) + Service(3๊ณ์ธต ์ํคํ
์ฒ ์ค ์๋น์ค ๊ณ์ธต)UserRepository = User + RepositorryJobpostController = Jobpost + Controllerํด๋์ค๋ฅผ ๋ฐฐ์นํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด์๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค. 1...
MVC ์ํคํ
์ณ ํจํด / 3-Layered ์ํคํ
์ณ ํจํดSpring Boot์ ์์: (1) ์์กด์ฑ ๊ด๋ฆฌ + (2) ์๋ ์ค์ Spring Boot๋ ๋ณต์กํ ์ค์ ์ ์ต์ํํ๊ณ ๊ฐ๋ฐ์๊ฐ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์คํ ์ ์๋๋ก ์ค๊ณ๋ ํ๋ ์์ํฌ์ด๋ค. ์ด๋ React์ CRA(Create-React-App)์ ๋น์ทํ ์ญํ ์ ํ๋ฉฐ, ์ฃผ๋ก ๋ค์ ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ค์ ์ ๋๋ค. 1. ์์กด์ฑ ๊ด๋ฆฌ:spring-boot-starter-web: ์น ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ณต, ๋ด์ฅ๋ Tomcat ์๋ฒ์ ํจ๊ป ์๋ ์ค์ ์ ์ ๊ณตspring-boot-starter-security: ์ธ์ฆ, ์ธ๊ฐ, ๊ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌspring-boot-starter-data-jpa: JPA ๋ฐ Hibernate ๊ด๋ จ ์์กด์ฑsprin..
@PathVariable, @RequestParam, @ModelAttribute, @RequestBody, @Vaild, @JsonIncludeSpring์์ ์ธ๋ถ ์์ฒญ์ผ๋ก ์ธ์
๋๋ ๊ฐ๋คSpring์์๋ ํด๋ผ์ด์ธํธ๊ฐ HTTP ์์ฒญ์ ํตํด ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํ ์ ์๋ค.๊ฐ ์์ฒญ๋ง๋ค ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๊ณ , ๊ทธ์ ๋ฐ๋ผ Model์ด๋ View๋ ๋ค์ํด์ง ์ ์๋ค. Spring์์ ์์ฒญ๊ฐ์ ์ฒ๋ฆฌํ๋ ์ฃผ์ ์ด๋
ธํ
์ด์
์ ๋ํด ์์๋ณด๋๋ก ํ์. @PathVaribale: /api/users/{id}@PathVariable์ URL ๊ฒฝ๋ก์์ ๋์ ์ผ๋ก ๊ฐ์ ์ถ์ถํ ๋ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์์ ID๋ ํน์ ๋ฆฌ์๋์ ๋ํ ๊ณ ์ ๊ฐ์ URL ๊ฒฝ๋ก์์ ์ง์ ์ถ์ถํ ์ ์๋ค.packa..
new ํค์๋ ์์ด ๊ฐ์ฒด๋ฅผ ์์ฑ / ์์กด์ฑ ์ฃผ์
๊ฐ์ฒด ์์ฑ ์๋ฆฌ์คํ๋ง์์ ์ฒ์ ๊ฐ๋ฐ์ ์์ํ๋ฉด `new` ํค์๋๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ง ์์๋๋ฐ @Contoller ๋ฑ ๊ฐ์ฒด๋ค์ด ๋ง๋ค์ด์ง๊น?์ด ์ง๋ฌธ์ ๋ํ ํด๋ต์ Spring์ IoC(์ ์ด๊ถ ์ญ์ , Inversion of Control)์ Spring Container(Applilcation Context)์ ์๋ค. Spring์์ new ํค์๋๊ฐ ๋ณด์ด์ง ์๋ ์ด์ ๋ Spring์ด ๊ฐ๋ฐ์ ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ Bean์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ ๊ณผ์ ์์ Spring์ ์ฑ๊ธํค(Singleton) ํจํด์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ์ฌ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํจ์จ์ ใ
๋ก ๊ด๋ฆฌํ๊ณ ์๋ฒ์ ์ฑ๋ฅ์ ์ต์ ํํ๋ค. Spring Bean ์ด๋?Spring Bean์ด๋ Spring IoC(..
์ง๋ ฌํ / ์ญ์ง๋ ฌํHttpMessageConverter ์ญํ ์ง๋ ํฌ์คํ
์์ Controller์ ์ฒ๋ฆฌ / ๋ฐํ์ ๋ํด MessageConverter๋ฅผ ์ธ๊ธํ์์ง๋ง ์ ํํ๋ "HttpMessageConverter"๋ผ๊ณ ํ๋ค. HttpMessageConverter๋ Spring MVC์์ ์์ฒญ๊ณผ ์๋ต์ HTTP ๋ฉ์ธ์ง ๋ฐ๋๋ฅผ ๋ณํํ๋๋ฐ ์ฌ์ฉ๋๋ค. Spring ์์ฒญ ๋ณธ๋ฌธ์ Java ๊ฐ์ฒด๋ก ์ญ์ง๋ ฌํํ๊ณ , ์๋ต ๋ณธ๋ฌธ์ Java ๊ฐ์ฒด์์ JSON, XML ๋ฑ์ผ๋ก ์ง๋ ฌํํ๋ ๊ณผ์ ์ ์๋์ผ๋ฌ ์ฒ๋ฆฌํ๋ค. Spring์ ๋ค์ํ ๊ธฐ๋ณธ ๊ตฌํ์ฒด๋ฅผ ์ ๊ณตํ์ง๋ง, ํ์์ ๋ฐ๋ผ ๊ฐ๋ฐ์๊ฐ ์ปค์คํ
MessageConverter๋ฅผ ๋ง๋ค ์๋ ์๋ค.HttpMessageConverter ๋์์๋ฆฌHttpMessageConverter๋ ํด๋ผ์ด์ธํธ..
'๐ปDEV-STUDY/Spring' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.