๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
57
@ModelAttribute ์ WebDataBinder
1. @ModelAttribute (1)๊ธฐ๋ฅ @ModelAttribute๊ฐ ๋ถ์ด ์๋ ์ ์ฉ ๋์์ ์๋์ผ๋ก ๋ชจ๋ธ์ ์ดํธ๋ฆฌ๋ทฐํธ๋ก ๋ฃ์ด์ค๋ค. (2) ์ ์ฉ ๋์ a. Controller Method์ ๋งค๊ฐ ๋ณ์ // ๋งค๊ฐ๋ณ์ ์์ ๋ถ๋๋ค. public String main(@ModelAttribute MyDate date, Model m) { /... } //public String main(@ModelAttribute("myDate") MyDate date, Model m) {/...} ๋ฐ์ ์ฃผ์๋ ์์ ๋์ผํ ๋ป์ด๋ค. ์ด๋
ธํ
์ด์
๋ค ()์ Model ์ Key ๊ฐ์ผ๋ก ์ฐ์ผ ์ด๋ฆ์ ์ง์ ํด ๋ฃ์ ์ ์๋ค. ์ด๋ ์๋ต ๊ฐ๋ฅํ๋ฉฐ, ์๋ตํ๋ฉด, ํด๋์ค์ ์ฒซ๊ธ์๋ฅผ ์๋ฌธ์๋ก ํ ๋ฌธ์์ด์ด Key ๊ฐ์ด ๋๋ค. Model์์..
2023.03.03
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
@RequestParam๊ณผ ์ปจํธ๋กค๋ฌ ๋งค๊ฐ๋ณ์ ๊น๋์ ๋ฆฌํ๊ธฐ
1. @RequestParam (1)@RequestParam ์ด๋? ์์ฒญ์ ํ๋ผ๋ฏธํฐ๋ฅผ Mapping๋ Method์ ๋งค๊ฐ๋ณ์์ ์ฐ๊ฒฐ์ํค๋ ์ด๋
ธํ
์ด์
ํ์ง๋ง ํ์์ ์ฐ๋ฆฌ๋ ํด๋น ์ด๋
ธํ
์ด์
์ ์ฐ์ง ์๊ณ ๋ฐ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ด๋, ๋งค์๋๊ฐ ์๋ํ๋ค. ๊ทธ ์ด์ ๋ @RequestParam ์์ฒด๊ฐ ์๋ต ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ตํด๋ Spring FrameWork๊ฐ ์๋์ผ๋ก ์์ฒญ์ ํ๋ผ๋ฏธํฐ์ ๋งค์๋์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฐ๊ฒฐ์์ผ์ค๋ค. (default: ์ฐ์ธ ์ฐจ๋ก๋๋ก 1๋1) (2) ๊ตฌ์กฐ public String main2(@RequestParam(name="year", requried=false) String year) {...} // ์ฐ๊ฒฐํ ๋งค๊ฐ ๋ณ์ ์์๋ค๊ฐ ์ฐ๊ณ , // @RequestParam(name="์ฐ๊ฒฐํ ์์ฒญ์ ํ๋ผ..
2023.03.02
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
JSP์ ์๋ธ๋ฆฟ(4)
1. JSTL (1) JSTL ์ด๋? JSP Standard Tag Library JSP์์ ์๋ฐ ์ฝ๋ ๋ฌธ์ ํ๊ทธ ํํ๋ก ํํ ํ ๊ฒ (2) ํ์ํ ์ด์ ? JSTL ์ ์ฐ๊ณ JSP์์ ์๋ฐ ์ฝ๋ ๋ฌธ ์ฐ๋ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ผ๋ก ์ธ ๊ฒฝ์ฐ ์์ ๊ฐ์ด ์ฝ๋ ๋ฌธ์ด๋, EL ๋ฌธ์ด๋, ๊ทธ๋ฅ ๋ฌธ์์ด์ด๋ ๋ค ๋ฐ๋ก ๋๋ ์ ์จ์ผํ๋ค. ๋๋ฌด ๋ณต์กํ๋ค. ๊ทธ๋์ HTML ๋ฌธ ๋ต๊ฒ ์๋ฐ์ฝ๋๋ EL์ด๋ ๋ค ํ๊ทธ๋ฌธ๋ฒ์ผ๋ก ์ธ ์ ์๊ฒ ๋ฐ๊พผ ๊ฒ์ด๋ค. (3) ์ฝ๋ ๋ฆฌ๋ทฐ ${i} ${status.count}. arr[${status.index}]=${elem} msg=${param.msg} msg= ๋ฉ์์ง๊ฐ ์์ต๋๋ค. ์ฑ์ธ์
๋๋ค. ์ฑ์ธ์ด ์๋๋๋ค. ๊ฐ์ด ์ ํจํ์ง ์์ต๋๋ค. Server time is (4) ์ค์ค๋ก ์จ๋ณด๊ธฐ ${i} msg=${para..
2023.03.02
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
์๋ธ๋ฆฟ๊ณผ JSP(3)
1.URL ํจํด @WebServlet("/Hello") public class HelloServlet extends HttpServlet{ } ์ฐ๋ฆฌ๋ ์์ ๊ฐ์ด ํ๋์ ํด๋์ค์ ๋ํด ํ๋ฒ์ ๋งตํ๋ง ํด์๋ค. ๋ฐ๋ผ์ HelloServlet์ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ๋ฅผ ์์ฒญํ๋ ค๋ฉด ๋ฌด์กฐ๊ฑด "~~/Hello" ๋ผ๋ ์ ์ผ๋ฌด์ดํ ํต๋ก๋ง ์ด์ฉํด์ผ ํ๋ค. @WebServlet(urlPatterns={"/hello", "/hello/*"}, ;loadOnStartup=1) public class HelloServlet extends HttpServlet{ } ํ์ง๋ง ์์ ๊ฐ์ด ํ๋์ ํด๋์ค์ ๋ํ์ฌ ์ฌ๋ฌ๊ฐ์ง ํต๋ก๋ก ๋งคํํ ์ ์๋ค. urlParttern์ ํ๋์ ํด๋์ค์ ๊ฐ ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ํต๋ก๋ฅผ ๋ฐฐ์ด๋ก์ ๋ํ๋ธ ํํ์ด๋ค. ์์ ์์ ..
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
์๋ธ๋ฆฟ๊ณผ JSP(2) - ์๋ฒ ์์ ์ ์ฅ์์ ๋ํ์ฌ
์์ฒญ์์ ์๋ต๊น์ง์ ๊ณผ์ ์์ ์๋ธ๋ฆฟ๊ณผ JSP๊ฐ ์ฌ์ฉํ๋ 4๊ฐ์ ์ ์ฅ์๊ฐ ์๋ค. ์ด ์ ์ฅ์๋ค์ Map์ ํํ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ๊ฐ ์ ๊ทผ ๋ฒ์์ ์์กด๊ธฐ๊ฐ์ด ์๋ก ๋ค๋ฅด๋ค. ์ด๋ฒ์๋ ์ด 4๊ฐ์ ์ ์ฅ์์ ๊ดํด์ ์์๋ณด๊ฒ ๋ค. ** ์ฐธ๊ณ : ์ ์ฅ์๊ฐ ํ์ํ ์ด์ ** HTTP ๋ ์ํ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ 2๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค๊ณ ํด๋ servlet์ ์ฒซ ๋ฒ์งธ ์์ฒญ๊ณผ ๋ ๋ฒ์งธ ์์ฒญ์ด ๊ฐ์ ์ฌ๋์๊ฒ์ ์๋์ง ์ ๋ฐฉ๋๊ฐ ์๋ค. ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์์ฒญ์ด A ํด๋ผ์ด์ธํธ์ ๋ก๊ทธ์ธ์ด๊ณ , ๋ ๋ฒ์งธ ์์ฒญ์ด A ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์ธ ํ ํ ์ ์๋ ํ๋์ด๋ผ๋ฉด, ์ฒซ ๋ฒ์งธ ์์ฒญ์ด A ํด๋ผ์ด์ธํธ๊ฐ ํ ๊ฒ์ด๊ณ ๊ทธ ์ฌ๋์ด ๋ก๊ทธ์ธ ํ๋ค๋ ์ํ ์ ๋ณด๊ฐ Servlet ์ด๋๊ฐ์๋ ์ ์ฅ๋์ด ์์ด์ผ ํ๋ค. ์ด๋ฌํ ์ํ ์ ๋ณด๋ค์ ์ ์ฅ..
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
์๋ธ๋ฆฟ๊ณผ JSP (1)
1. ์๋ธ๋ฆฟ๊ณผ ์ปจํธ๋กค๋ฌ์ ๋น๊ต 2. ์๋ธ๋ฆฟ์ ์๋ช
์ฃผ๊ธฐ 3.JSP๋? 4. JSP์ ์๋ธ๋ฆฟ์ ๋น๊ต 5.JSP ํธ์ถ ๊ณผ์ 6.JSP์ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋ JSP์ ๋น๊ต 7.JSP์ ๊ธฐ๋ณธ ๊ฐ์ฒด 1. ์๋ธ๋ฆฟ๊ณผ ์ปจํธ๋กค๋ฌ์ ๋น๊ต : ์คํ๋ง ํ๋ ์์ํฌ๋ ์๋ธ๋ฆฟ์์์ ๋ถํธํ ์ ์ ๊ฐ์ ํ ๋ฒ์ ์ด๋ค. ๋์ ์ฐจ์ด์ ์ ๋งํด๋ณด๊ฒ ๋ค. ๋น๊ต ์๋ธ๋ฆฟ ์ปจํธ๋กค๋ฌ Mapping @WebServlet ์ด๋
ธํ
์ด์
์ ์ฌ์ฉ ์ด๋ @Controller์ @RequestMapping์ ๊ธฐ๋ฅ์ด ํฉ์ณ์ง ์ด๋
ธํ
์ด์
์ด๋ค. ํด๋์ค ๋จ์๋ก๋ง ๋งคํ์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ์์ฒญ ๋ง๋ค ํด๋์ค๋ฅผ ์๋ก ๋ง๋ค์ด์ผ ํด์ ์ฌ์ฉ ์ฝ๋๋์ด ์ปค์ง ์ ์๋ค. @Controller๋ก ํด๋์ค๋ฅผ ์๋ฒ์ ๋ฑ๋กํ๊ณ , @RequestMapping์ ์ด์ฉํ์ฌ Method์ ์์ฒญ ์ฃผ์๋ฅผ Mappin..
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
SpringMVC ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ, MVC ํจํด - ์๋ฆฌ (2)
1. methodcall2 package com.fastcampus.ch2; import java.io.File; import java.io.IOException; import java.lang.reflect.Method; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import org.springframework.ui.Model; import org.springframework.validation.support.BindingAwareModelMap; public class MethodCall2 { public static void main(String[] args) throws Exception{ // 1. Yoi..
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ MVC ํจํด์ ์๋ฆฌ(1)
1. ํด๋์ค์ ๋งค๊ฐ๋ณ์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ public class MethodInfo { public static void main(String[] args) throws Exception{ // 1. YoilTeller ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑ // YoilTeller ํด๋์ค์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง ํด๋์ค ๊ฐ์ฒด ์์ฑ (Yoilteller ์ค๊ณ๋ ํ์ณ์ด) Class clazz = Class.forName("com.fastcampus.ch2.YoilTellerMVC"); // ์ ๋ณด๋ค์ ์ด์ฉํด YoilTeller์ ๊ฐ์ฒด๋ฅผ ์์ฑ (์ค๊ณ๋ ์ฌ๋ณธ์ผ๋ก ๊ตฌํ) Object obj = clazz.newInstance(); // 2. YoilTeller์ ๋ชจ๋ ๋งค์๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ ๋ฐฐ์ด์ ์ ์ฅ Method[] methodA..
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ MVC ํจํด (์ค์ต)
MVC ํจํด์ 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์. Controller Method ์ ๋ฐํ ํ์
์ ๋ฐ๋ผ ๋๋จ (1)String ๋ฐํํ //๋
์์ผ์ ์
๋ ฅํ๋ฉด ์์ผ์ ์๋ ค์ฃผ๋ ํ๋ก๊ทธ๋จ @Controller public class YoilTellerMVC { //http://localhost/ch2/getYoilMVC?year=2021&month=10&day=21 @RequestMapping("/getYoilMVC") //String ๋ฐํ ๋ฉ์๋ -> ๋ฐํ์ ์ฌ์ฉํ view๋ฅผ ์ง์ public String main(int year, int month, int day, Model model) throws IOException { // ์ ํจ์ฑ ๊ฒ์ฌ, ๋
์ ์ผ์ด ๋ฐ๋ฅด๊ฒ ์
๋ ฅ๋์ง ์์๋ค๋ฉด, ์๋ฌ๋ฅผ ํ์ํ๋ view๋ฅผ ์ด์ฉํด๋ผ i..
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ MVC ํจํด์ ๋ํด
2023.03.01
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
HTTP์์ Binary File์ ์ ์กํ๊ธฐ ์ํ ๋ฐฉ๋ฒ (MIME, Base64)
1. HTTP์์ ์ ์ผ๋ฐ์ ์ผ๋ก Binary File์ ์ ์กํ ์ ์๋๊ฐ? (1) ํ์ผ ์ข
๋ฅ ๊ตฌ๋ถ Binary ํ์ผ ํ
์คํธ ํ์ผ ์ ์ฅํ๋ ๋ด์ฉ ๋ฌธ์์ ์ซ์ ๋ชจ๋ ์ ์ฅ ๋ฌธ์๋ง ์ ์ฅ ๊ฐ๋ฅ ๋ฐ์ดํฐ ์ฝ์ ๋ ์ ํ ๊ทธ๋๋ก ์ฝ๋๋ค . ๋ฌธ์ -> ๋ฌธ์๋ก ์ฝ์, ์ซ์ -> ์ซ์๋ก ์ฝ์ ์ซ์๋ ๋ฌธ์๋ก ๋ณํ ํด์ ์ฝ๋๋ค. ๋ฌธ์ -> ๋ฌธ์ ์ซ์ -> ๋ฌธ์ ๋ฐ์ดํฐ ์ธ ๋ ์ ํ ๊ทธ๋๋ก ์ด๋ค. ๋ฌธ์ -> ๋ฌธ์ ์ซ์ -> ์ซ์ ์ซ์๋ ๋ฌธ์๋ก ๋ณํ ํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์๋ง ์ด๋ค. ๋ฌธ์ -> ๋ฌธ์ ์์ ์ด๋ฏธ์ง, ๋์์ ํ์ผ, ํ๋ก๊ทธ๋จ ๊ธ๋ก ์ ํ ๊ฒ (2)์ HTTP ์์ Binary file์ ๋ชป ์ฝ๋๊ฐ? HTTP๋ ํ
์คํธ ๊ธฐ๋ฐ์ ํ๋กํ ์ฝ, ์ผ๋ฐ์ ์ผ๋ก ํ
์คํธ ํ์ผ์ ์ฝ๊ธฐ ์ํด ๋์์ธ ๋์๋ค. ๋ฐ๋ผ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ฝ์ผ๋ ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ..
2023.02.28
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
HTTP ์์ฒญ๊ณผ ์ด๋ก
HTTP๋ ๋ฌด์์ธ๊ฐ? ์์ฒญ๋ฉ์ธ์ง์ ์๋ต๋ฉ์ธ์ง์ ๊ตฌ์กฐ, ๋ด์ฉ์ด ์ด๋ป๊ฒ ๋๋๊ฐ? 1. HTTP๋ ๋ฌด์์ธ๊ฐ? HTTP (Hyper Text Transfer Protocol) : ํ
์คํธ ๊ธฐ๋ฐ ์ ์ก ํ๋กํ ์ฝ์ด๋ค. (1) Protocol (ํ๋กํ ์ฝ)์ด๋? Protocol์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์์ ๋ํ ์ฝ์์ด๋ค. ์ฝ์น์ ํฌ์๊ฐ ์ฌ์ธ์ ์ฝ์ํ๋ค๊ณ ์น์. ๋ชจ์๋ ๋ฒํธ ๋๊ธฐ, ์ฝ๋ ํฌ์ ํ๋ผ์ด๋ฅผ ์ณ๋ผ, ๊ท ๋ง์ง๋ฉด ํํธ ์ค ๋ฐ ํด๋ผ ์ด๋ค. ๋ ์ฌ๋์ด ์๋ก ๋ง์ถ ์ฌ์ธ์ด ํ๋กํ ์ฝ์ ์ผ์ข
์ด๋ค. ๋ง์ฝ ํฌ์๊ฐ ์ฌ์ธ๋ค์ ์ ์ธ์ ๋ค๋ฉด ์ฝ์น๊ฐ ์๋ฌด๋ฆฌ ์ฌ์ธ์ ๋ณด๋ด๋ ๋ชป ์์ ๋จน์ ๊ฒ์ด๋ค. ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก, ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ํ๋กํ ์ฝ์ด ์ ๋ง์ถฐ์ ธ ์์ผ๋ฉด, ํด๋ผ์ด์ธํธ์์ ์๋ฌด๋ฆฌ ์์ฒญ์ ๋ณด๋ด๋, ์๋ฒ๋ ๊ทธ ๋ด์ฉ์ ์ฝ์ ์ ์๋ค. (2) ..
2023.02.28
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
์ค์ ํ์ผ - server.xml ๊ณผ web.xml
์๊ฒฉ ํ๋ก๊ทธ๋จ์ ์๋ฒ์ ์ค์น ํ๋ ค๋ฉด 1. ์๋ธ๋ฆฟ์ ํ๋ก๊ทธ๋จ ๋ฑ๋ก 2. URL๊ณผ ๋ฑ๋ก๋ ํ๋ก๊ทธ๋จ ์ฐ๊ฒฐ ์ด ํ์ํ๋ค. ์คํ๋ง์ด ์๋ ์๋ ์๋ ์๋ ์ด ๋ชจ๋ ์์
์ xml์์ ํ๋ค. ์ด ๋ณต์กํ ์์
์ด Spring์ Annotation์ผ๋ก ๋์ฒด ๋ ๊ฒ์ด๋ค. 1. xml ์ค์ ํ์ผ์ ์ข
๋ฅ ์ด๋ฆ ์ญํ ํน์ง ํฐ์บฃ์ค์น๊ฒฝ๋ก/conf/server.xml Tomcat ์๋ฒ ์ค์ ํ์ผ ์คํ๋ง ํ๋ก์ ํธ์ ๋ณด์ด๋ server.xml์ ํฐ์บฃ์ conf ํด๋์ ์๋ server.xml์ ๋ณต์ฌ๋ณธ์ด๋ค. ๋ฐ๋ผ์ ์คํ๋ง ํ๋ก์ ํธ์์ ์ปค์คํฐ ๋ง์ด์ง ํด๋ ๋ณธ์ฒด์๋ ์ํฅ์ด ๊ฐ์ง ์๋๋ค. ์ด๋ฅผ ์ด์ฉํด ํ๋์ ํ๋ก์ ํธ์ ๋ํด ์ฌ๋ฌ๊ฐ์ง ๋ค๋ฅธ ์๋ฒ ์ค์ ์ ํ๊ณ ๋๋ฆด ์ ์๋ค. (ํ
์คํธ ์๋ฒ ์ค์ , ๋ฒ ํ ์๋ฒ ์ค์ ๋ฑ ) ํฐ์บฃ์ค์น๊ฒฝ๋ก/conf/web.x..
2023.02.27
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
ํด๋ผ์ด์ธํธ์ ์๋ฒ
1. ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ์์ ํด๋น ์์ฒญ์ ๋ง๋ ์๋น์ค๋ฅผ ์ด๋ป๊ฒ ์ ๊ณตํ๋์ง ๊ทธ ๊ณผ์ ์ ๋ํด ์์ธํ ๋ค๋ฃธ 2. ์์ฒญ๋ฌธ ์ฟผ๋ฆฌ๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ , ์์ฒญ์์ ๊ฐ์ด ๋ณด๋ด์จ ๊ฐ์ ์ฌ์ฉํ๋ ์๋ฐ ๋ช
๋ น์ด์ ๋ํด ๋ฐฐ์ 1. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ํธ์์ฉ ๊ณผ์ (1) ์๋ฒ ์์ฒญ์ด ํฌํธ์ ๋ค์ด์ค๊ธฐ ๊น์ง Binding : ํ๋์ ํฌํธ๊ฐ ํ๋์ ์๋ฒ์ ์ฐ๊ฒฐ๋์ด ์๋ ์ํ๋ฅผ ๋งํ๋ค. (์๋ฒ์ ํฌํธ๋ 1 ๋ 1 ์ฐ๊ฒฐ๋ง ๊ฐ๋ฅํ๋ค.) listening : ํ๋์ ์๋ฒ๊ฐ ํฌํธ์์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํ๋ฅผ ๋งํ๋ค. ํ์ผ ์๋ฒ๋ ํ์ผ ์๋น์ค ์ ๊ณต, ์ด๋ฉ์ผ ์๋ฒ๋ ์ด๋ฉ์ผ ์๋น์ค ์ ๊ณต, ์น ์๋ฒ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์ ๋ฐ์ ์ ์๋ ๋ชจ๋ ์๋น์ค๋ฅผ ์ ๊ณต ** WAS (Web Application Service)๋? ์น ์ดํ๋ฆฌ์ผ์ด์
์ ์..
2023.02.27
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
HTTP ์์ฒญ๊ณผ ์๋ต (์์ )
1. ๋ธ๋ผ์ฐ์ ์๋ก ๊ณ ์นจ ํ ๋๋ง๋ค ๋๋ค ์ฃผ์ฌ์๊ฐ ๋์ค๋ ์์ package com.fastcampus.ch2; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; // ํด๋น ์๋ฐ ํด๋์ค๋ฅผ ์ปจํธ๋กค๋ฌ๋ก ๋ฑ๋ก // ์ปจํธ๋กค๋ฌ๋ก ๋ฑ๋กํ๋ฉด, ๋ธ๋ผ์ฐ์ (view)์์ ์ด๋ค ์์ฒญ์ด ์์ ๋, // ์ด ํด๋์ค์ ๋ด์ฉ(model)๊ณผ ์ผ์นํ๋ฉด ์ด ํด๋์ค๋ฅผ ์ฐ๊ฒ ๋ค๊ณ ์ ์ธํ๋ ๊ฒ์. // Contr..
2023.02.27
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
HTTP ์์ฒญ์ ๋ํ ์๋ต์ ๋ธ๋ผ์ฐ์ ์ ๋์ฐ๊ธฐ (์์ )
1. ์๋ฆฌ (1) [Local Console์์ ์คํ] main method์ ๊ฐ์ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ใฑ. ์์ค์ฝ๋ import java.util.Calendar; public class main { public static void main(string[] args) { // 1. ์
๋ ฅ String year = args[0]; String month = args[1]; String day = args[2]; // 2. ์ฒ๋ฆฌ //(1) String ๊ฐ์ Int๋ก ๋ฐ๊ฟ. int yyyy = Integer.parseInt(year); int mm = Integer.parseInt(month); int dd = Integer.parseInt(day); //(2) ๋ ์ง ๊ฐ์ฒด ์์ฑ ๋ฐ ๊ฐ์ฒด์ ๊ฐ ๋ฃ์ด์ฃผ๊ธฐ. Ca..
2023.02.24
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
AWS์ ๋ฐฐํฌํ๊ธฐ
1. ๋ง๋ ํ์ผ Export -> ํ์ฅ์ .war ํ์ผ๋ก 2. AWS ์ด๊ณ ์ธ์คํด์ค ์คํ, RDS๋ก ์ด๊ธฐ ์๊ฒฉ ๋ฐ์คํฌํฑ ๋ค์ด๋ก๋(์ธ์คํด์ค ์ค์งํ๋ค ์คํํ๋ฉด ํญ์ ํผ๋ธ๋ฆญ ์ฃผ์๊ฐ ๋ณ๊ฒฝ ๋๊ธฐ ๋๋ฌธ์ ์๊ฒฉ ๋ฐ์คํฌํฑ ๋ค์ ๋ค์ด ๋ฐ์์ผํจ.) 3. ๋ก์ปฌ ์ปดํจํฐ ๋ด์ ์๋ ๋น๋ฐ๋ฒํธ ์ด์ฉํ์ฌ key ์ฐพ๊ณ ์ํธ ์ ๊ธฐ 4. ์๊ฒฉ ์ปดํจํฐ ์ ์ -> Apache ํ์ผ ๋ด Webapps ํด๋์ ์๊น Exportํ ํ์ผ์ ๋ถ์ฌ๋ฃ๊ธฐ 5. ํฐ์บฃ ์คํ 6. ๋ก์ปฌ ์ปดํจํฐ์์ ์ ์ํ๋ฉด ์๊ฒฉ ์ปดํจํฐ์ ํฐ์บฃ์ด ์ผ์ ์คํ ์์ฃผ ๊ธฐ์ด์ ์ธ ๋ผ๋์ด์ง๋ง, a ์ปดํจํฐ์์ ์๋ฒ๋ฅผ ์ด๊ณ b ์ปดํจํฐ์์ ์ ์ํ๋ ๊ฒ์ ํด๋ดค๋ค. ๋๋ ํ ์ ์๋ค ์๋ฐ
2023.02.24
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
์๊ฒฉ ํ๋ก๊ทธ๋จ ์คํํ๊ธฐ
0. ๋ก์ปฌ ํ๋ก๊ทธ๋จ ์คํ vs ์๊ฒฉ ํ๋ก๊ทธ๋จ ์คํ ๋ก์ปฌ ํ๋ก๊ทธ๋จ์ ์ธํฐํ๋ฆฌํฐ๋ ์ปดํ์ผ๋ฌ๋ง ์์ผ๋ฉด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ฉด ์๊ฒฉ ํ๋ก๊ทธ๋จ์ ๋ธ๋ผ์ฐ์ ์ tomcat ๊ฐ์ WAS๊ฐ ์์ด์ผ ์คํํ ์ ์๋ค. ** ์ธํฐํ๋ฆฌํฐ์ ์ปดํ์ผ๋ฌ์ ์ฐจ์ด ๋ ๋ค ๋ฒ์ญ๊ธฐ ์ด๋ค. ์ปดํ์ผ๋ฌ๋ ์์ค ์ฝ๋๋ฅผ ํ๋ฒ์ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊พธ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ (๋ฒ์ญ ์๋๊ฐ ๋น ๋ฆ) ์ธํฐํ๋ฆฌํฐ๋ ์ฝ๋ ํ ํ์ฉ ์ค๊ฐ ์ฝ๋๋ก ๋ฒ์ญํ์ฌ ์คํ python์ด ์ธํฐํ๋ฆฌํฐ ์ฐ๋ ์ธ์ด, C๋ C++์ด ์ปดํ์ผ๋ฌ ์ธ์ด ์๋ฐ๋ ๋ ๊ฐ ๋ค ์์. 1. ์ํ์ ํํ package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotatio..
2023.02.17
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
๊ฐ๋ฐ ๋๊ตฌ ์๊ฐ
JDK๋ ์๋ฐ ๊ฐ๋ฐ ๋๊ตฌ์ ์ค์๋ง Oracle JDK์ Open JDK๋ก ๋๋ ์ ธ ์์๋๋ฐ, ์ค๋ผํด๋ ๋ฌด๋ฃ๋ก ํ๋ฉด์ ํฉ์ณ์ง. Java์ Spec์๋ SE, EE, ME๊ฐ ์๋ค. SE - standard edition์ผ๋ก ์ผ๋ฐ์ ์ธ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. EE - enterprise edition์ผ๋ก ์๋ฒ์ฉ์ด๋ค. ME - micro edition์ผ๋ก ์ํ ๊ธฐ๊ธฐ์ฉ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์ธ Tomcat์ EE์ ๋ถ๋ถ ์งํฉ์ด๋ค. EE ์คํ์ ์ผ๋ถ๋ง ๊ตฌํํ๋ค๋ ์๋ฆฌ์ด๋ค. servlet, jsp, eL, websocket๋ฑ์ ๊ตฌํํ๋ค. vcs๋ ๋ฒ์ ์ปจํธ๋กค ์์คํ
์ด๋ค. ๋ค ๊ฐ์ด ์์
ํ ๋ ์๋ก ํ์ผ ๋ฒ์ ผ์ด ํ๋ฆฐ ๊ฒ์ ๊ด๋ฆฌ ํด์ฃผ๋ ์์คํ
์ด๋ค. git์ด vcs ์ค ํ๋ ์ธ๋ฐ, ๋ฌด๋ฃ์ด์ง๋ง ๋ณต์กํ๋ค. ํ์ง๋ง ๊ฐ๋ ฅํ๋ค. git-hub..
2023.02.10
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
Spring ๊ณต๋ถ ๋ฐฉ๋ฒ (๋จ๊ถ์ฑ์ Spring์ ์ ์)
์คํ๋ง ๊ฐ์ ๋ค์ผ๋ฉด์ ์ ํ๋ธ์ ์ฌ๋ผ์ ์๋ ์๋ฐ์ ์ ์์ ์์นจ,์ ๋
2๋ฐฐ์์ผ๋ก ๋ ๊ฐ์ฉ ๋ค์ด๋ผ. ์คํ๋ง ๊ฐ์๊ฐ ์ด๋ ต๋ค๊ณ ์ง๋ฌธ ํ๋ ์ฌ๋๋ค ๋ณด๋ฉด ๊ฑฐ์ ๋ค ์๋ฐ ๊ธฐ๋ณธ์ ๋ํ ์ง๋ฌธ์ด๋๋ผ. Spring์ด ์ด๋ ค์ด ๊ฒ์ด ์๋๋ผ, ์๋ฐ ๊ธฐ๋ณธ์ด ์ฝํ ๊ฒ์ด๋ค. ๋ฐ๋ณตํด์ ๋ณต์ตํด๋ผ. ์คํ๋ง์ ์๋ฆฌ๋ณด๋จ ์คํ๋ง์ ์ต์ํด์ง๋ ๊ฒ์ด ๋จผ์ ์ด๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ฒ์์ ์๋ฆฌ์ ๊ฐํ์ ๊ณจ๋จธ๋ฆฌ ์ฉํ๋๋ฐ, ์ด๋ ์๋ชป๋ ๋ฐฉ์์ด๋ค. ์๋์ฐจ๋ฅผ ํ ๋ฒ๋ ์ด์ ํด๋ณด์ง ์์ ์ฌ๋์ด ์๋์ฐจ ๋ด๋ถ๋ฅผ ๋ฏ์ด ๊ตด๋ฌ๊ฐ๋ ์๋ฆฌ๋ฅผ ์ดํด ํ๋ ๊ฒ๋ณด๋ค, ์๋์ฐจ ์ด์ ์ ๋ง์ด ํด๋ณธ ์ฌ๋์ด ์๋์ฐจ์ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํจ์ฌ ๋น ๋ฅผ ๊ฒ์ด๋ค. > ์ด ์ ์ ๋ด๊ฐ ๊ทธ ๋์ ๊ณต๋ถ๋ฅผ ์๋ชปํ๊ณ ์์๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค. ๋ ํญ์ ์๋ฆฌ์ ๋จผ์ ์ง์ค ํ์ฌ, ํ ํ๊ธฐ๋์ ์ฑํฐ 2 ์ค๊ฐ๊น์ง๋ง ..
2023.02.09
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
H2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์น
id ~~ generated by defalut as identity ์ ๋ป id ๊ฐ์ด ์ฑ์์ง์ง ์์ ์ฑ null ๊ฐ์ผ๋ก ๋ค์ด์ค๋ฉด DB๊ฐ ์๋์ผ๋ก ๊ฐ์ ์ฑ์์ค
2022.12.02
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC