[Spring][ํ˜ผ๊ณต] 4. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - (1) ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ์ •๋ฆฌ
ยท
๐Ÿ“ Language/โœ JAVA
ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ 1. ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ์ •๋ฆฌ 1) ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ์ดํ„ฐ: ํšŒ์› ID, ์ด๋ฆ„ ๊ธฐ๋Šฅ: ํšŒ์› ๋“ฑ๋ก, ์กฐํšŒ ๊ฐ€์ƒ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์•„์ง ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๊ฐ€ ์„ ์ •๋˜์ง€ ์•Š์•˜๋‹ค. 2) ์ผ๋ฐ˜์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๊ตฌ์กฐ ์ปจํŠธ๋กค๋Ÿฌ: ์›น MVC์˜ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์ด๋‹ค. ์„œ๋น„์Šค: ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. Ex) ํšŒ์›์€ ์ค‘๋ณต ๊ฐ€์ž…์ด ์•ˆ๋œ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ: DB์— ์ ‘๊ทผ ๋ฐ ๋„๋ฉ”์ธ ๊ฐ์ฒด๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. ๋„๋ฉ”์ธ: ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ๊ฐ์ฒด์ด๋‹ค. Ex) ์ฃผ๋กœ DB์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ํšŒ์›, ์ฃผ๋ฌธ, ์ฟ ํฐ ๋“ฑ 3) ํด๋ž˜์Šค ์˜์กด ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋Š” RDB, NoSQL ๋“ฑ ๋‹ค์–‘ํ•œ ์ €์žฅ์†Œ๋ฅผ ๊ณ ๋ฏผ ์ค‘์ด๋ฉฐ ์•„์ง ์„ ์ •๋˜์ง€ ์•Š์•˜๋‹ค. ์šฐ์„  ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ๋‚˜์ค‘์— ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค. ๊ฐœ๋ฐœ ์ง„ํ–‰์„ ์œ„ํ•ด ์ดˆ๊ธฐ ๊ฐœ..
[Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - API (3)
ยท
๐Ÿ“ Language/โœ JAVA
์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ 3. API MVC๋Š” ๋ณ€ํ™˜๋œ html์„ ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ  (xml) API๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ๊ทธ๋Œ€๋กœ ๋‚ด๋ ค์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. (json) 1) ๋ฌธ์ž ๋ฐ˜ํ™˜ Controller ๊ธฐ์กด์— ๊ตฌํ˜„ํ•œ HelloController ์•ˆ์— ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค. viewResolver๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  HTTP์˜ ์‘๋‹ต body์— ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•  ๊ฒƒ์ด๋‹ค. (@ResponseBody) @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } ์‹คํ–‰ ํ™”๋ฉด ์ด์ „์— ์ž‘์—…ํ–ˆ๋˜ MVC ๋ฐฉ์‹๊ณผ ๋ณ„ ์ฐจ์ด๊ฐ€ ์—†์–ด ๋ณด์ธ๋‹ค. ํ•˜..
[Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„ (2)
ยท
๐Ÿ“ Language/โœ JAVA
์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ 2. MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„ MVC๋ž€ Model, View, Controller๋ฅผ ๋งํ•œ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” Controller์™€ View๊ฐ€ ๋”ฐ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์ง€ ์•Š์•˜๊ณ  View์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค ์ฒ˜๋ฆฌํ–ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ๋ชจ๋ธ 1 ๊ตฌ์กฐ๋ผ๊ณ  ํ•˜๊ณ  JSP์—์„œ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ๊ด€์‹ฌ์‚ฌ๋‚˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. View๋Š” ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š”๋ฐ ์ง‘์ค‘ํ•ด์•ผ ํ•˜๊ณ  Controller๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ ์„œ๋ฒ„๋‚˜ ๋‚ด๋ถ€์ ์ธ ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ•ด์•ผ ํ•˜๊ณ  Model์€ ํ™”๋ฉด์—์„œ ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ์ €์žฅํ•˜๊ณ  ํ™”๋ฉด์— ์ „๋‹ฌํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค. 1) ์ ์šฉ Controller ๊ธฐ์กด์— ๊ตฌํ˜„ํ•œ HelloController ์•ˆ์— ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค. ์ด์ „์— ๊ตฌํ˜„ํ•œ ๋ฉ”์„œ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋ฐ›์•„์™”๋‹ค. ..
[Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - ์ •์  ์ปจํ…์ธ  (1)
ยท
๐Ÿ“ Language/โœ JAVA
์Šคํ”„๋ง ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ ์›น ๊ฐœ๋ฐœ์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ์ •์  ์ปจํ…์ธ  ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—… ์—†์ด ๋‹จ์ง€ ํŒŒ์ผ์„ ์›น๋ธŒ๋ผ์šฐ์ €๋กœ ๋‚ด๋ ค์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. Welcome ํŽ˜์ด์ง€ MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„ ๊ฐ€์žฅ ๋งŽ์ด ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ(C), ๋ชจ๋ธ(M), ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ํ™”๋ฉด(V)์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ…œํ”Œ๋ฆฟ ์—”์ง„(JSP, PHP): HTML์„ ์„œ๋ฒ„์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜์—ฌ ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ๋‚ด๋ ค์ค€๋‹ค. API ์„œ๋ฒ„์—์„œ Json๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํฌ๋งท์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ๋‚˜ ์•„์ดํฐ ๊ฐœ๋ฐœ ์‹œ์— ์‚ฌ์šฉํ•œ๋‹ค. ์„œ๋ฒ„์™€ ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ API ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 1. ์ •์  ์ปจํ…์ธ  ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ์ •์  ์ปจํ…์ธ  ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค. 1) ๋™์ž‘ ๋ฐฉ์‹ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ๋˜์ง€๋ฉด ๋‚ด์žฅ ํ†ฐ์บฃ ์„œ..
[Spring][ํ˜ผ๊ณต] 3. ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ (4)
ยท
๐Ÿ“ Language/โœ JAVA
ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ 3. ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ์ง€๊ธˆ๊นŒ์ง€๋Š” IDE ์•ˆ์—์„œ ์‹คํ–‰ํ•˜์˜€๋Š”๋ฐ ์ด์   ๋นŒ๋“œ๋ฅผ ํ•œ ํ›„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ณผ ๊ฒƒ์ด๋‹ค. 1) ์‹คํ–‰ ์ˆœ์„œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(cmd)๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ํด๋” ์œ„์น˜๋กœ ์ด๋™ํ•œ๋‹ค. (cd ...\hello.spring) gradlew๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค. (gradlew build) ๋งŒ๋“ค์–ด์ง„ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋นŒ๋“œ ํด๋” ์•ˆ์— libs๋กœ ์ด๋™ํ•œ๋‹ค. (cd build/libs) ์ž๋ฐ” ๋ช…๋ น์–ด๋กœ ์‹คํ–‰์‹œํ‚จ๋‹ค. (java -jar hello-spring-0.0.1-SNAPSHOT.jar) ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋นŒ๋“œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. 2) CMD ๋ช…๋ น์–ด dir: ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. gradlew clean: ๋นŒ๋“œ ํด๋”๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. Ctrl+C:..
[Spring][ํ˜ผ๊ณต] 3. ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - View ํ™˜๊ฒฝ ์„ค์ • (3)
ยท
๐Ÿ“ Language/โœ JAVA
ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ 2. View ํ™˜๊ฒฝ ์„ค์ • ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์—๋Ÿฌ ํŽ˜์ด์ง€๋งŒ ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ, ์ด ํŽ˜์ด์ง€๋ฅผ ๋ฐ”๊ฟ”๋ณผ ๊ฒƒ์ด๋‹ค. 1) Welcome ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ Welcome ํŽ˜์ด์ง€๋ž€ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๊ณ  ๋“ค์–ด์™”์„ ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ์ฒซ ํŽ˜์ด์ง€๋ฅผ ๋งํ•œ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” resources/static ํ•ด๋‹น ํด๋” ์œ„์น˜์— index.html๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ Welcome ํŽ˜์ด์ง€๋กœ ์ธ์‹ํ•œ๋‹ค. ์ง€๊ธˆ Welcome ํŽ˜์ด์ง€์˜ ์ƒํƒœ๋Š” ์ •์  ํŽ˜์ด์ง€ ์ƒํƒœ์ธ๋ฐ, html ํŒŒ์ผ์„ ์›น์„œ๋ฒ„๊ฐ€ ์ฝ์–ด๊ฐ„ ํ›„ ๋‹จ์ง€ ๋ณด์—ฌ์ฃผ๊ธฐ๋งŒ ํ•˜๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ชจ์–‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. 2) thymeleaf ํ…œํ”Œ๋ฆฟ ์—”์ง„ ๋™์ž‘ ๋ฐฉ์‹ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ๋˜์ง€๋ฉด ๋‚ด์žฅ ํ†ฐ์บฃ ์„œ๋ฒ„๊ฐ€ ๋ฐ›์•„์„œ ์Šคํ”„๋งํ•œํ…Œ ์ „๋‹ฌํ•œ๋‹ค...