user-img
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SpringMVC 57
thumbnail
@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
thumbnail
@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
thumbnail
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
thumbnail
์„œ๋ธ”๋ฆฟ๊ณผ 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
thumbnail
์„œ๋ธ”๋ฆฟ๊ณผ JSP(2) - ์„œ๋ฒ„ ์•ˆ์— ์ €์žฅ์†Œ์— ๋Œ€ํ•˜์—ฌ
์š”์ฒญ์—์„œ ์‘๋‹ต๊นŒ์ง€์˜ ๊ณผ์ •์—์„œ ์„œ๋ธ”๋ฆฟ๊ณผ JSP๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” 4๊ฐœ์˜ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋“ค์€ Map์˜ ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ๊ฐ ์ ‘๊ทผ ๋ฒ”์œ„์™€ ์ƒ์กด๊ธฐ๊ฐ„์ด ์„œ๋กœ ๋‹ค๋ฅด๋‹ค. ์ด๋ฒˆ์—๋Š” ์ด 4๊ฐœ์˜ ์ €์žฅ์†Œ์— ๊ด€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ๋‹ค. ** ์ฐธ๊ณ : ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ** HTTP ๋Š” ์ƒํƒœ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ 2๋ฒˆ์˜ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๊ณ  ํ•ด๋„ servlet์€ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ๊ณผ ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์ด ๊ฐ™์€ ์‚ฌ๋žŒ์—๊ฒŒ์„œ ์™”๋Š”์ง€ ์•Œ ๋ฐฉ๋„๊ฐ€ ์—†๋‹ค. ํ•˜์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์ด A ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ์ด๊ณ , ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์ด A ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธ ํ›„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์ด๋ผ๋ฉด, ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์ด A ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•œ ๊ฒƒ์ด๊ณ  ๊ทธ ์‚ฌ๋žŒ์ด ๋กœ๊ทธ์ธ ํ–ˆ๋‹ค๋Š” ์ƒํƒœ ์ •๋ณด๊ฐ€ Servlet ์–ด๋”˜๊ฐ€์—๋Š” ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํƒœ ์ •๋ณด๋“ค์„ ์ €์žฅ..
2023.03.01
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SpringMVC
thumbnail
์„œ๋ธ”๋ฆฟ๊ณผ 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
thumbnail
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
thumbnail
๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์™€ 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
thumbnail
๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์™€ 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
thumbnail
๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ์™€ MVC ํŒจํ„ด์— ๋Œ€ํ•ด
2023.03.01
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SpringMVC
thumbnail
HTTP์—์„œ Binary File์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• (MIME, Base64)
1. HTTP์—์„œ ์™œ ์ผ๋ฐ˜์ ์œผ๋ก  Binary File์„ ์ „์†กํ•  ์ˆ˜ ์—†๋Š”๊ฐ€? (1) ํŒŒ์ผ ์ข…๋ฅ˜ ๊ตฌ๋ถ„ Binary ํŒŒ์ผ ํ…์ŠคํŠธ ํŒŒ์ผ ์ €์žฅํ•˜๋Š” ๋‚ด์šฉ ๋ฌธ์ž์™€ ์ˆซ์ž ๋ชจ๋‘ ์ €์žฅ ๋ฌธ์ž๋งŒ ์ €์žฅ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ ์ฝ์„ ๋•Œ ์ ํžŒ ๊ทธ๋Œ€๋กœ ์ฝ๋Š”๋‹ค . ๋ฌธ์ž -> ๋ฌธ์ž๋กœ ์ฝ์Œ, ์ˆซ์ž -> ์ˆซ์ž๋กœ ์ฝ์Œ ์ˆซ์ž๋Š” ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ•ด์„œ ์ฝ๋Š”๋‹ค. ๋ฌธ์ž -> ๋ฌธ์ž ์ˆซ์ž -> ๋ฌธ์ž ๋ฐ์ดํ„ฐ ์“ธ ๋•Œ ์ ํžŒ ๊ทธ๋Œ€๋กœ ์“ด๋‹ค. ๋ฌธ์ž -> ๋ฌธ์ž ์ˆซ์ž -> ์ˆซ์ž ์ˆซ์ž๋„ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž๋งŒ ์“ด๋‹ค. ๋ฌธ์ž -> ๋ฌธ์ž ์˜ˆ์‹œ ์ด๋ฏธ์ง€, ๋™์˜์ƒ ํŒŒ์ผ, ํ”„๋กœ๊ทธ๋žจ ๊ธ€๋กœ ์ ํžŒ ๊ฒƒ (2)์™œ HTTP ์—์„  Binary file์„ ๋ชป ์ฝ๋Š”๊ฐ€? HTTP๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœํ† ์ฝœ, ์ผ๋ฐ˜์ ์œผ๋กœ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฝ๊ธฐ ์œ„ํ•ด ๋””์ž์ธ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ์ฝ์œผ๋ ค๋ฉด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ํ•„..
2023.02.28
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SpringMVC
thumbnail
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
thumbnail
ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„
1. ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ์š”์ฒญ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์ œ๊ณตํ•˜๋Š”์ง€ ๊ทธ ๊ณผ์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋‹ค๋ฃธ 2. ์š”์ฒญ๋ฌธ ์ฟผ๋ฆฌ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ณ , ์š”์ฒญ์—์„œ ๊ฐ™์ด ๋ณด๋‚ด์˜จ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฐ” ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ๋ฐฐ์›€ 1. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ƒํ˜ธ์ž‘์šฉ ๊ณผ์ • (1) ์„œ๋ฒ„ ์š”์ฒญ์ด ํฌํŠธ์— ๋“ค์–ด์˜ค๊ธฐ ๊นŒ์ง€ Binding : ํ•˜๋‚˜์˜ ํฌํŠธ๊ฐ€ ํ•˜๋‚˜์˜ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. (์„œ๋ฒ„์™€ ํฌํŠธ๋Š” 1 ๋Œ€ 1 ์—ฐ๊ฒฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.) listening : ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ํฌํŠธ์—์„œ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. ํŒŒ์ผ ์„œ๋ฒ„๋Š” ํŒŒ์ผ ์„œ๋น„์Šค ์ œ๊ณต, ์ด๋ฉ”์ผ ์„œ๋ฒ„๋Š” ์ด๋ฉ”์ผ ์„œ๋น„์Šค ์ œ๊ณต, ์›น ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ** WAS (Web Application Service)๋ž€? ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„œ..
2023.02.27
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SpringMVC
thumbnail
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
thumbnail
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
thumbnail
์›๊ฒฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ํ•˜๊ธฐ
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
thumbnail
H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜
id ~~ generated by defalut as identity ์˜ ๋œป id ๊ฐ’์ด ์ฑ„์›Œ์ง€์ง€ ์•Š์€ ์ฑ„ null ๊ฐ’์œผ๋กœ ๋“ค์–ด์˜ค๋ฉด DB๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐ’์„ ์ฑ„์›Œ์คŒ
2022.12.02
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SpringMVC