์ „์ฒด ๊ธ€

ํ”Œ๋ž˜ํ‹ฐ๋„˜!๐Ÿ’Ž ์ง„์งœ ์–ด๋ ค์› ๋‹ค.... ๋ช‡ใ…Ž์‹œ๊ฐ„ ๋ถ™์žก๊ณ  ์žˆ์–ด๋„ ์•ˆํ’€๋ ค์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ–ˆ์ง€๋งŒ,,,,, ๊ณ„์†๋˜๋Š” ์‹คํŒจ!!! ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ์šฐ์„  ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•ด๋ณด๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค,..... ์ฒ˜์Œ์— ์ด๊ฑฐ ๋ฌด์กฑ๊ถŒ ์‹œ๊ฐ„์ดˆ๊ณผ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์–ด๋ผ...? ํ†ต๊ณผ!@!!!@!@!@!@! ๋‚˜์ต์ˆ˜!!! ํ’€์ด ์ฃผ์–ด์ง„ N๊ฐœ์˜ ์ˆซ์ž๋Š” 1,2,3,4,...., N ์„ ์™ผ์ชฝ์œผ๋กœ k1๋ฒˆ ๋ฐ€๊ธฐ p~q ๊ตฌ๊ฐ„ ๋’ค์ง‘๊ธฐ ์™ผ์ชฝ์œผ๋กœ k2๋ฒˆ ๋ฐ€๊ธฐ ๊ณผ์ •์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์„ ๋ฐ˜๋Œ€๋กœ!! ์ง„ํ–‰ ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ 1 candidates ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ตฌ๊ฐ„ ์œ„์น˜(p, q)์™€ ์ด๋™์‹œํ‚จ ํšŸ์ˆ˜(k2)๋ฅผ ํ•จ๊ป˜ ์ €์žฅ candidates๋ฅผ ๋ชจ๋‘ ๋Œ๋ฉด์„œ (p, q) ๋ถ€๋ถ„์„ ๋’ค์ง‘์€ ํ›„์— 1~N-1๋ฒˆ์˜ ์ด๋™์œผ๋กœ ์›๋ž˜ ์ˆœ์„œ 1,2,3,......
IoC(์ œ์–ด์˜ ์—ญ์ „), DI(์˜์กด์„ฑ ์ฃผ์ž…) IoC๋Š” ์„ค๊ณ„์›์น™์— ํ–‰๋‹นํ•˜๊ณ , DI๋Š” ๋””์ž์ธ ํŒจํ„ด์— ํ•ด๋‹น ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์œ„ํ•œ Spring์˜ IoC์™€ DI ๐Ÿ™‹‍โ™€๏ธ ์ข‹์€ ์ฝ”๋“œ๋ž€? ๊ฐ„๋‹จํ•œ ๋…ผ๋ฆฌ ์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ณ  ๋ช…ํ™•ํ•œ ํ‘œํ˜„ ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ๋ณด๋Š” ์‚ฌ๋žŒ๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ˆ˜์ • ๊ฐ€๋Šฅ ์˜์กด์„ฑ์„ ์ตœ์†Œํ™” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋”๋ผ๊ณ  ํฌ๊ฒŒ ๊ตฌ์กฐ ๋ณ€๊ฒฝ โŒ .... IoC์— ๋Œ€ํ•ด IoC๋Š” DI๋กœ๋„ ์•Œ๋ ค์ ธ ์žˆ๋‹ค๋ผ๊ณ  ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Œ == DI ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ IoC ์„ค๊ณ„ ์›์น™์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋‹ค ์˜์กด์„ฑ? public class Consumer { void eat() { Chicken chicken = new Chicken(); chicken.eat(); } public static void main(String[] args) { Consumer con..
Layer Architecture Spring์˜ 3 Layer Architecture ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋“ค์€ ์„œ๋ฒ„์—์„œ์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์ด ๋Œ€๋ถ€๋ถ„ ๋น„์Šทํ•จ์„ ๊นจ๋‹ซ๊ณ , ์ฒ˜๋ฆฌ๊ณผ์ •์„ ํฌ๊ฒŒ Controller, Service, Repository 3๊ฐœ ๋ถ„๋ฆฌ 1. Controller ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์Œ ์š”์ฒญ์— ๋Œ€ํ•œ ๋กœ์ง ์ฒ˜๋ฆฌ๋Š” Service์—๊ฒŒ ์ „๋‹ด Reuqest ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•จ๊ป˜ ์ „๋‹ฌ Service์—์„œ ์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต 2. Service ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌ(๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง) ํ˜„์—…์—์„œ๋Š” ์„œ๋น„์Šค ์ฝ”๋“œ๊ฐ€ ๊ณ„์† ๋น„๋Œ€ํ•ด์ง€๊ณ  ์žˆ์Œ DB ์ €์žฅ ๋ฐ ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” Repository์—๊ฒŒ ์š”์ฒญ 3. Repository DB ๊ด€๋ฆฌ(์—ฐ๊ฒฐ, ํ•ด์ œ, ์ž์› ๊ด€๋ฆฌ) DB CRUD ์ž‘์—…์„ ์ฒ˜๋ฆฌ
Spring ์ž…๋ฌธ ๊ฐ•์˜ ์˜ค๋Š˜ 1์ฃผ์ฐจ ์™„๊ฐ•! ๊ธฐ๋ณธ์ ์ธ Spring MVC ํŒจํ„ด๊ณผ Database์— ๊ด€ํ•ด ํ•™์Šตํ–ˆ๋‹ค. ๊ฐ•์˜ ์ค‘ ๋ฉ”๋ชจ์žฅ ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ฐ„๋‹จํ•˜๊ฒŒ entity, dto, controller ๋ถ€๋ถ„๋งŒ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฑฐ์˜€๋‹ค. ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๋‹ค์ง€๋ฉฐ ์˜ฌ๋ผ๊ฐ€๊ธฐ ์ข‹์€ ๋“ฏ! https://hyeyun.tistory.com/entry/Spring-%EC%9E%85%EB%AC%B8-1%EC%A3%BC%EC%B0%A8-Spring-MVC Spring ์ž…๋ฌธ 1์ฃผ์ฐจ : Spring MVC Spring MVC MVC ๋””์ž์ธ ํŒจํ„ด MVC๋ž€ Model-View-Controller์˜ ์•ฝ์ž๋กœ, ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜ MVC ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋“ค์„ Model, View, Controller๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ..
JDBC ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ DB์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ž‘์—…์ด ํ•„์š” DB์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ SQL์„ ์ž‘์„ฑํ•œ ํ›„ ์ปค๋„ฅ์…˜์„ ํ†ตํ•ด SQL ์š”์ฒญ ์š”์ฒญํ•œ SQL์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ต ๋ฐ›์Œ ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ MySQL ์„œ๋ฒ„๋ฅผ PostgreSQL ์„œ๋ฒ„๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๋ฉด? ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•, SQL ์ „๋‹ฌ ๋ฐฉ๋ฒ•, ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ต๋ฐ›๋Š” ๋ฐฉ๋ฒ• ๋ชจ๋‘ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ์ž‘์„ฑํ–ˆ๋˜ DB ์—ฐ๊ฒฐ ๋กœ์ง์„ ์ „๋ถ€ ์ˆ˜์ •ํ•ด์•ผ ํ•จ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด JDBC ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์žฅ JDBC๋Š” Java Database Connectivity๋กœ DB์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก Java์—์„œ ์ œ๊ณตํ•˜๋Š” API JDBC์— ์—ฐ๊ฒฐํ•ด์•ผํ•˜๋Š” DB์˜ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋ฉด DB ์—ฐ๊ฒฐ ๋กœ์ง์„ ๋ณ€๊ฒฝํ•  ํ•„์š”์—†์ด DB ๋ณ€..
Spring MVC MVC ๋””์ž์ธ ํŒจํ„ด MVC๋ž€ Model-View-Controller์˜ ์•ฝ์ž๋กœ, ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜ MVC ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋“ค์„ Model, View, Controller๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌ Model ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ View ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋‹ด๋‹น Controller Model๊ณผ View ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์ •ํ•˜๊ณ  ์ œ์–ด ์ž…๋ ฅ์„ ๋ฐ›์•„ Model์— ์ „๋‹ฌํ•˜๊ณ , Model์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ View๋ฅผ ์—…๋ฐ์ดํŠธ MVC ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋“ค์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ณ , ๊ฐœ๋ฐœ์ž๋“ค ๊ฐ„์˜ ํ˜‘์—…์„ ์šฉ์ดํ•˜๊ฒŒ ํ•จ. ๋”ฐ๋ผ์„œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ• , MV..
์„œ๋ฒ„๋ž€? ๋„คํŠธ์›Œํฌ๋ž€? ๋„คํŠธ์›Œํฌ๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ ๋˜๋Š” ์žฅ๋น„๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ธฐ์ˆ  ์ปดํ“จํ„ฐ, ๋ผ์šฐํ„ฐ, ์Šค์œ„์น˜, ํ—ˆ๋ธŒ ๋“ฑ์˜ ์žฅ๋น„๋“ค์ด ๊ฐ๊ฐ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์Œ ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” IP ์ฃผ์†Œ, ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ, ๊ฒŒ์ดํŠธ์›จ์ด๋“ฑ์˜ ์ •๋ณด๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ํ•จ Client์™€ Server client ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„์— ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ณผ์ • ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ›์Œ ์ด๋•Œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ์„œ๋ฒ„์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์„œ๋ฒ„์˜ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•จ ์„œ๋ฒ„์˜ ์ •๋ณด == IP ์ฃผ์†Œ(๊ฑฐ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ๋ง์—์„œ ๊ฐ ์ปดํ“จํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์œ„์น˜ ์ฃผ์†Œ, ์†ก/์ˆ˜์‹ ์€ ์ด ์ฃผ์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฃจ์–ด์ง) ์›น ์„œ..
๋‚ด๋ฐฐ์บ  ์Šคํ”„๋ง ์ž…๋ฌธ ๊ฐ•์˜ ๋“ฃ๊ธฐ ์˜ค๋Š˜์€ ์Šคํ”„๋ง ์ž…๋ฌธ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค. .. ์‚ฌ์‹ค ๋‹ค๋ฅธ๊ฑฐ ํ•  ๊ฒŒ ์ข€ ์žˆ์–ด์„œ ๋งŽ์ด ๋ชป๋“ค์—ˆ๋‹ค..... ์•„์ง ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ๋„ ๋œ ํ–ˆ๋‹คใ…ใ…ใ… ๊ทธ๋ž˜์„œ ์ž„์‹œ์ €์žฅ์ƒํƒœใ… ใ… ใ…  ๊ทธ๋ž˜๋„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ API์— ๋Œ€ํ•ด ์ข€ ๋” ๋น„์œ ๋ฅผ ๋“ค์–ด์„œ ํ™•์‹คํžˆ ๋ฝ! ๊นŒ์ง„ ์•„๋‹ˆ์—ฌ๋„ ์ดํ•ด๋ฅผ ํ–‡๋‹น\ API๋ž€ใ…‹ ๋‚ด์ผ์€ ๊ผญ 1์ฃผ์ฐจ ๋‹ค ์™„๊ฐ•ํ•ด์•ผ์ง€!! ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์ถœ์‹œ???ํ•œ ์ž๊ฒฉ์ฆ ์‹ ์ฒญ PCCP ์‹œํ—˜ ์‹ ์ฒญํ–‡๋‹ค.! ๊ฝค๋‚˜ ๋งŽ์€ ๊ณณ์—์„œ ์ธ์ •ํ•ด์ฃผ๊ณ  ์žˆ์–ด์„œ ๋”ฐ๋†“์œผ๋ฉด ์ข‹์„๊ฑฐ๊ฐ™๋‹น ๋‚ด ํ˜„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹ค๋ ฅ๋„ ์•Œ๊ณ ์‹ถ๊ณ ์˜ค์˜ค์˜ฟใ…Ž ๋ชจ์˜๊ณ ์‚ฌ๋„ ํ’€์–ด๋ดฃ๋‹ค. 1๋ฒˆ 2๋ฒˆ ํ’€์—ˆ๋Š”๋ฐ 1๋ฒˆ. ์™ธํ†จ์ด ๋ฌธ์ž ๊ฝค๋‚˜ ์–ด๋ ค์šด๋“ฏํ–ˆ์ง€๋งŒ ๊ฝค๋‚˜ ์‰ฌ์› ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ ๋‚˜์˜ค๋Š”๋ฐ ๋–จ์–ด์ ธ์žˆ์œผ๋ฉด ์™ธํ†จ์ด ๋ฌธ์ž์ด๋‹ค ์ด ์™ธํ†จ์ด ๋ฌธ์ž๋“ค๋งŒ ์—ฐ๊ฒฐํ•ด์„œ ์ถœ๋ ฅ! ์—†๋‹ค๋ฉด N ์ถœ๋ ฅ ๋‚˜๋Š” MAP์„ 2๊ฐœ ์‚ฌ์šฉํ•ด์„œ, ..
KIMHYEYUN
๐Ÿ’