AWS VPC ๋ฐ ์๋ธ๋ท ์ค์ & EC2 ์์ฑ AWS VPC ๋ฐ ์๋ธ๋ท ์ค์ ํ๊ธฐ & Public EC2 ์์ฑ ํ ์ธ๋ถ ์ ๊ทผ ํ์ฉ1. VPC ์ง์ ๋ง๋ ํ ์ค์ ํ์ธ1. VPC ์ด๋ฆ (sanghyun-vpc-1) ์ค์ 2. IPv4 CIDR์์ ๊ฐ์ฉ IP๋์ญ (10.0.0.0/16) ์ค์ 3. ์์ฑํ VPC ํ์ธ 2. Subnet ์์ฑํ๊ธฐSubnet์ Public, Private 2๊ฐ์ฉ ๋ง๋ ๋ค.2๊ฐ์ฉ ๋ง๋๋ ์ด์ : ๊ฐ์ฉ์ฑ์ ์ํ Multi AZ ์ค์ → ํ์ชฝ์ AZ์์ ํ์ฌ๋ผ๋๊ฐ ๋คํธ์ํฌ ์ด์ ๋ฑ์ด ๋ฐ์ํ์ ์, ๋ค๋ฅธ ํ์ชฝ์ AZ๋ก ์ปค๋ฒํ๊ธฐ ์ํจ 1. ์์ฑํ ์๋ธ๋ท์ VPC ์ ํ(sanghyun-vpc-1)2. ์๋ธ๋ท ์ด๋ฆ(public-subnet-test1) ์ค์ 3. ๊ฐ์ฉ ์์ญ(ap-northeast-2a..
@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๋ ํด๋ผ์ด์ธํธ..
ViewResolver, @ResponseBody, MessageConverter์น ํ์ด์ง(HTML) ๋ฐํ๊ณผ ์น ๋ฐ์ดํฐ(JSON) ๋ฐํSpring MVC์์ Controller๋ ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ค ,๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค. ์ด๋ ๋ฐํ ํ์
์ ๋ฐ๋ผ DispatcherServlet์ HTML ํ์ด์ง๋ฅผ ๋ ๋๋งํ๊ฑฐ๋, ๋ฐ์ดํฐ๋ฅผ JSON ํ์์ผ๋ก ๋ฐํํ๋ ๋ฑ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋ค. Spring์ ์์๋์ด Controller ์์ ์ฒ๋ฆฌํ ๋ชจ๋ ์๋ต์ Front Controller์๊ฒ ๋ฐํ ํ์
์ ๊ณ ๋ คํด ๋ฐํFront Controller์ธ DistpatcherServlet์ ์์ Controller๊ฐ ๋ฐํํ ํ์
์ ๋ฐ๋ผ View ์์ฑDispatcherServlet์ HandlerAdapter์ ..