diff --git a/keyword/chapter02/keyword.md b/keyword/chapter02/keyword.md new file mode 100644 index 0000000..a197aed --- /dev/null +++ b/keyword/chapter02/keyword.md @@ -0,0 +1,9 @@ +## ๐ŸŽฏํ•ต์‹ฌ ํ‚ค์›Œ๋“œ + +--- + +***์ด๋ฒˆ ์ฃผ์ฐจ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋”ฑํžˆ ์—†์Šต๋‹ˆ๋‹ค!*** + +--- + + diff --git "a/mission/chapter02/1\354\243\274\354\260\250\353\257\270\354\205\230.png" "b/mission/chapter02/1\354\243\274\354\260\250\353\257\270\354\205\230.png" new file mode 100644 index 0000000..b4a91e3 Binary files /dev/null and "b/mission/chapter02/1\354\243\274\354\260\250\353\257\270\354\205\230.png" differ diff --git a/mission/chapter02/java_mission.md b/mission/chapter02/java_mission.md new file mode 100644 index 0000000..730b9bc --- /dev/null +++ b/mission/chapter02/java_mission.md @@ -0,0 +1,71 @@ +## ๐Ÿ”ฅย ์ถ”๊ฐ€๊ณผ์ œ) ํ•ด๋‹น ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•œ ํ›„ ๊ฐ„๋‹จ์ •๋ฆฌํ›„ ์ œ์ถœ & ๋ฉด์ ‘์งˆ๋ฌธ ์ตœ์†Œ ํ•œ๊ฐœ ๋งŒ๋“ค์–ด์„œ ์ œ์ถœ ํ›„ ์Šคํ„ฐ๋”” ์‹œ๊ฐ„์— ์Šคํ„ฐ๋””์›๋“ค๊ณผ ์งˆ๋ฌธํ•˜๊ธฐ! + +Jvm๊ณผ ํด๋ž˜์Šค๋กœ๋”๋Š” ๋„ˆ๋ฌด ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•˜์‹ค ํ•„์š”๋Š” ์—†๊ณ  static๊ณผ ์–ด๋–ค ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€๋งŒ ๊ณต๋ถ€ํ•ด๋ณด์‹œ๋ฉด ์ข‹์„๊ฑฐ๊ฐ™์•„์š”! +collection๋˜ํ•œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋งŒ ๋ณด๋ฉด ์ข‹์„๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค! +--- + +***1. static & jvm๋ฉ”๋ชจ๋ฆฌ & classloader*** + +- JVM ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ + JVM(Java Virtual Machine)์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ๋จธ์‹ ์ด๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ๊ฒŒ ์„ธ ์˜์—ญ (Method ์˜์—ญ, Heap ์˜์—ญ, Stack ์˜์—ญ) ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•œ๋‹ค. + + - > Method ์˜์—ญ: ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํด๋ž˜์Šค ์ •๋ณด์™€ static ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜๋ฉฐ, ๋ชจ๋“  ์Šค๋ ˆ๋“œ์—์„œ ๊ณต์œ ๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋˜๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๊ณณ์—๋Š” ํด๋ž˜์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(ํด๋ž˜์Šค ์ด๋ฆ„, ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜ ์ •๋ณด), ๊ทธ๋ฆฌ๊ณ  static ๋ณ€์ˆ˜์™€ static ๋ฉ”์„œ๋“œ๊ฐ€ ์ €์žฅ๋œ๋‹ค. + + - > Heap ์˜์—ญ: ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑํ•œ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ Heap์— ์ €์žฅ๋˜๋ฉฐ, ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ํ•œ๋‹ค. Garbage Collector๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ด ์˜์—ญ์„ ๊ฒ€์‚ฌํ•ด ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. + + - > Stack ์˜์—ญ: ๊ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ, ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๋ฉ”์„œ๋“œ์˜ ํ˜ธ์ถœ ์ •๋ณด์™€ ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋˜๊ณ , ๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ œ๊ฑฐ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. Heap ์˜์—ญ๊ณผ ๋‹ฌ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ํ•ด์ œ๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค. + + +- static ๋ณ€์ˆ˜์™€ Method ์˜์—ญ + static ๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค ๋กœ๋”ฉ ์‹œ Method ์˜์—ญ์— ํ• ๋‹น๋œ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ํ•œ ๋ฒˆ๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ , ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๊ณต์œ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ static ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. + + - > ๋˜ํ•œ static ๋ฉ”์„œ๋“œ ์—ญ์‹œ Method ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋ฏ€๋กœ, static ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋‚˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ ๋Œ€์‹ , static ๋ณ€์ˆ˜๋‚˜ ๋‹ค๋ฅธ static ๋ฉ”์„œ๋“œ๋งŒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. + + +- ClassLoader์™€ static์˜ ๊ด€๊ณ„ + ClassLoader๋Š” ์ž๋ฐ” ํด๋ž˜์Šค ํŒŒ์ผ์„ JVM ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ํด๋ž˜์Šค๊ฐ€ ์ฒ˜์Œ ์ฐธ์กฐ๋  ๋•Œ ClassLoader๊ฐ€ ํ•ด๋‹น ํด๋ž˜์Šค ํŒŒ์ผ(.class)์„ ์ฐพ์•„ ๋กœ๋“œํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๊ณผ์ •์—์„œ static ๋ณ€์ˆ˜์™€ static ๋ฉ”์„œ๋“œ๊ฐ€ ํ•จ๊ป˜ Method ์˜์—ญ์— ๋กœ๋“œ๋œ๋‹ค. + + - > ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋˜๋ฉด ๊ทธ๋•Œ๋ถ€ํ„ฐ static ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๊ฒŒ ๋˜๋ฉฐ, ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋ž˜์Šค ๋กœ๋”๊ฐ€ ์ฒ˜์Œ ํด๋ž˜์Šค ํŒŒ์ผ์„ ๋กœ๋“œํ•  ๋•Œ static ์ดˆ๊ธฐํ™” ๋ธ”๋ก๋„ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋ฉฐ, ์ด ์‹œ์ ์—์„œ static ๋ณ€์ˆ˜๋“ค์ด ์ดˆ๊ธฐํ™”๋œ๋‹ค. ๋”ฐ๋ผ์„œ static๊ณผ ClassLoader๋Š” ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. + +--- + + + +***2. Collection interface*** + +์ž๋ฐ”์˜ Collection ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน์„ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. Collection Framework๋Š” ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘, ์ €์žฅ, ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฌ๋Ÿฌ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. + + +- ์ฃผ์š” Collection ์ธํ„ฐํŽ˜์ด์Šค + - 1. List: ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ค‘๋ณต๋œ ์š”์†Œ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ๋ฐฐ์—ด๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ํฌ๊ธฐ๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋ฉฐ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ์œ ์—ฐํ•˜๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„์ฒด๋กœ๋Š” ArrayList์™€ LinkedList๊ฐ€ ์žˆ๋‹ค. + + - > ArrayList๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘๊ฐ„์— ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…์€ ๋Š๋ฆฌ๋‹ค. + + - > LinkedList๋Š” ๊ฐ ์š”์†Œ๊ฐ€ ์ด์ „/๋‹ค์Œ ์š”์†Œ์˜ ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ์ข‹์ง€๋งŒ, ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ ์†๋„๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค. + + + - 2. Set: ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ์š”์†Œ๋“ค์ด ์ˆœ์„œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์œผ๋ฉฐ, ์˜ค์ง ์œ ์ผํ•œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘”๋‹ค. HashSet๊ณผ TreeSet์ด ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„์ฒด์ด๋‹ค. + + - > HashSet์€ ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ๋น ๋ฅธ ๊ฒ€์ƒ‰๊ณผ ์‚ฝ์ž…์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. + + - > TreeSet์€ ์ด์ง„ ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜์—ฌ ์ €์žฅํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. + + + - 3. Queue: ์„ ์ž…์„ ์ถœ(FIFO, First-In-First-Out) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ์ฃผ๋กœ ์ž‘์—… ๋Œ€๊ธฐ์—ด์ด๋‚˜ ๋ฒ„ํผ์™€ ๊ฐ™์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. PriorityQueue๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์š”์†Œ๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ํ๋กœ, ๋‚ด๋ถ€์ ์œผ๋กœ ํž™ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. + + + - 4. Map: ํ‚ค(Key)์™€ ๊ฐ’(Value) ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. HashMap๊ณผ TreeMap์ด ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„์ฒด์ด๋‹ค. + + - > HashMap: ํ‚ค๋ฅผ ํ•ด์‹ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ๋น ๋ฅธ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. + + - > TreeMap์€ ํ‚ค๋ฅผ ์ •๋ ฌํ•˜์—ฌ ์ €์žฅํ•˜๋ฉฐ, ํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํ‚ค ๊ฐ’์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์œ ์šฉํ•˜๋‹ค. + + + + + +***3. ๋ฉด์ ‘ ์งˆ๋ฌธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ*** + + - Q. static ๋ฉ”์„œ๋“œ์™€ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์ ์€? + + static ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด, ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ, static ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ , ์˜ค์ง static ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. \ No newline at end of file diff --git a/mission/chapter02/mission.md b/mission/chapter02/mission.md new file mode 100644 index 0000000..da1d4e2 --- /dev/null +++ b/mission/chapter02/mission.md @@ -0,0 +1,64 @@ +## ๐Ÿ”ฅย ๋ฏธ์…˜ + +--- + +- (1) 1์ฃผ์ฐจ ๋•Œ ์„ค๊ณ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ† ๋Œ€๋กœ ์•„๋ž˜์˜ ํ™”๋ฉด์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑ + +***์ €๋ฒˆ์ฃผ์ฐจ ์„ค๊ณ„ DB*** + + - ![week1](./1์ฃผ์ฐจ๋ฏธ์…˜.png) + +***1. ๋‚ด๊ฐ€ ์ง„ํ–‰ ์ค‘, ์ง„ํ–‰ ์™„๋ฃŒํ•œ ๋ฏธ์…˜์„ ๋ชจ์•„์„œ ๋ณด๋Š” ์ฟผ๋ฆฌ*** + +SELECT H.name, M.mission_num, M.rest_name, M.request +FROM ํšŒ์› H +JOIN ์„ ํ˜ธ์Œ์‹์นดํ…Œ๊ณ ๋ฆฌ C ON H.email = C.email +LEFT JOIN ๋ฏธ์…˜ M ON C.email = M.email +WHERE H.email = 'ํšŒ์›์ด๋ฉ”์ผ' +ORDER BY M.datetime DESC; + +--- + + +***2. ๋ฆฌ๋ทฐ ์ž‘์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ*** + +INSERT INTO ๋ฆฌ๋ทฐ (mission_num, email, star, content, datetime) +VALUES (1234, 'ํšŒ์›์ด๋ฉ”์ผ', 4.5, '์ข‹์€์Œ์‹์ด์—ˆ์–ด์š”~:)', NOW()); + +--- + + +***3. ํ™ˆ ํ™”๋ฉด ์ฟผ๋ฆฌ *** + +- ์ง€์—ญ๋‚ด์—์„œ ์„ฑ๊ณตํ•œ ๋ฏธ์…˜๋“ค +SELECT count(*) +FROM ๋ฏธ์…˜ M +JOIN ์ ํ‘œ J ON M.mission_num = J.mission_num +JOIN ์ง€์—ญ R ON J.์ง€์—ญ id = R.์ง€์—ญ id +WHERE J.request = 1 //์„ฑ๊ณต๋ฏธ์…˜ +AND J.email = 'ํšŒ์›์ด๋ฉ”์ผ' //์ž์‹ ๋ฏธ์…˜ +AND J.์ง€์—ญ_id = "" //์„ ํƒ์ง€์—ญid +ORDER BY M.datetime DESC +LIMIT 10 OFFSET 0; //10๊ฐœ์”ฉ ํŽ˜์ด์ง• + +- ์ง€์—ญ๋‚ด์—์„œ ๋„์ „๊ฐ€๋Šฅ ๋ฏธ์…˜๋“ค +SELECT M.rest_name, M.price, M.datetime +FROM ๋ฏธ์…˜ M +JOIN ์ ํ‘œ J ON M.mission_num = J.mission_num +JOIN ์ง€์—ญ R ON J.์ง€์—ญ id = R.์ง€์—ญ id +WHERE J.request = 0 //์„ฑ๊ณต๋ฏธ์…˜ +AND J.email = 'ํšŒ์›์ด๋ฉ”์ผ' //์ž์‹ ๋ฏธ์…˜ +AND J.์ง€์—ญ_id = "" //์„ ํƒ์ง€์—ญid +ORDER BY M.datetime DESC + +--- + + +***4. ๋งˆ์ด ํŽ˜์ด์ง€ ํ™”๋ฉด ์ฟผ๋ฆฌ*** + +SELECT name, email, address +FROM ํšŒ์› +WHERE email = 'ํšŒ์›์ด๋ฉ”์ผ' //์ž์‹ ํŽ˜์ด์ง€ + + +