๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กfull stack/JAVA (30)

JiYoung Dev ๐Ÿ–ฅ

[JAVA ๋ณต์Šต] ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ : MVC ํŒจํ„ด, ์ถ”์ƒ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค (2023.05.01)

๐ŸŽˆ MVC ํŒจํ„ด Model. View, Controller๋กœ ์ด๋ฃจ์–ด์ง„ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด ๐ŸŽˆ ์ถ”์ƒ ํด๋ž˜์Šค ๊ตฌ์ฒด์ ์ด์ง€ ์•Š์€ ์ถ”์ƒ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค ์ž์‹ ์˜ ๊ธฐ๋Šฅ๋“ค์„ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ํ™•์žฅ ๋น„์Šทํ•œ ํด๋ž˜์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ • ์ค‘๋ณต ๋ฉค๋ฒ„ ํ†ตํ•ฉ์— ์‚ฌ์šฉ - ๊ฐ ํด๋ž˜์Šค์— ๋˜‘๊ฐ™์€ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์„ ๋•Œ ๋ช…ํ™•ํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๐ŸŽˆ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์— ์ƒ๊ด€์—†์ด, ์›ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋งŒ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋Šฅ ๐ŸŽˆ ๊ฒŒ์ž„๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ DAO vs DTO vs VO ์ฐจ์ด์  1. DAO(Data Access Object) DB์˜ data์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด ์ง์ ‘ DB์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œ, ์กฐํšŒ ๋“ฑ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ MVCํŒจํ„ด์˜ Model์—์„œ ์ˆ˜ํ–‰ 2. DTO..

full stack/JAVA 2023. 5. 2. 01:32
[์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (2023.04.04)

๐ŸŽˆ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์›์†Œ๋“ค์„ ์ผ์ •ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์—ด๊ฑฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ“– ์‚ฝ์ž…์ •๋ ฌ ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋Š” ์ •๋ ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฑฐ์˜ ์ •๋ ฌ ๋˜์–ด ์žˆ์„ ๋•Œ ํšจ์œจ์  ๐Ÿ“– ๋ณ‘ํ•ฉ์ •๋ ฌ ์ฃผ์–ด์ง„ ์ž๋ฃŒ๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐ  ๋’ค ํ•ฉ์น˜๋Š” ๊ณผ์ •์—์„œ ์ •๋ ฌ ๐Ÿ“– ํ€ต์ •๋ ฌ ๊ธฐ์ค€ ํ‚ค(pivot)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€๊ฐ’์„ ์ง€๋‹Œ ๋ฐ์ดํ„ฐ๋Š” ์•ž์œผ๋กœ, ํฐ ๊ฐ’์„ ์ง€๋‹Œ ๋ฐ์ดํ„ฐ๋Š” ๋’ค๋กœ ๊ฐ€๋„๋ก ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•ด๊ฐ€๋ฉฐ ์ •๋ ฌ ์™ผ์ชฝ์—์„œ ์‹œ์ž‘ํ•œ ํ‚ค๋Š” ๊ธฐ์ค€ํ‚ค๋ณด๋‹ค ํฌ๋ฉด, ์˜ค๋ฅธ์ชฝ์—์„œ ์‹œ์ž‘ํ•œ ํ‚ค๋Š” ๊ธฐ์ค€ํ‚ค๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋ฉˆ์ถค ๋‘ ๊ฐœ์˜ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟˆ ๋‘ ๊ฐœ์˜ ์ปค์„œ๊ฐ€ ๋งŒ๋‚˜๋ฉด ์™ผ์ชฝ์œผ๋กœ๋Š” ๊ธฐ์ค€ํ‚ค๋ณด๋‹ค ์ž‘์€ ๊ฐ’๋งŒ, ์˜ค๋ฅธ์ชฝ์—๋Š” ๊ธฐ์ค€ํ‚ค๋ณด๋‹ค ํฐ ๊ฐ’๋งŒ ๋‚จ์Œ ๐Ÿ“– ๋ฒ„๋ธ”์ •๋ ฌ ๋‘ ์ธ์ ‘ํ•œ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•œ ํ„ด๋งŒ ๋๋‚˜๋„ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๊ฐ€ ์ œ์ผ ๋’ค์— ์žˆ์Œ ์‹œ์ž‘์€ ์ธ๋ฑ์Šค 0, 1๋ถ€ํ„ฐ > 1, 2 ..

full stack/JAVA 2023. 4. 23. 18:25
[JDBC] ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ดํด๋ฆฝ์Šค ์—ฐ๋™ (2023.04.17)

๐ŸŽˆ JDBC(Java DataBase Connectivity) ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ” API JDBC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Java์—์„œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•˜๊ณ  SQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ ๐Ÿ“– JDBC Driver JDBC๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜๋‚˜ ๋ฒค๋”์— ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Œ. ๐Ÿ“– JDBC ํ๋ฆ„ ์ˆœ์„œ โš™๏ธ JDBC Driver ๋กœ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒค๋”๊ฐ€ ์ œ๊ณตํ•˜๋Š” JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋กœ๋“œํ•จ. ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•˜๊ณ , JDBC API๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋“ค์˜ ์ง‘ํ•ฉ โ‘  ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ : ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ > Build Pat..

full stack/JAVA 2023. 4. 17. 20:10
[Git & Git Hub] GitHub๋ฅผ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ๊ตฌ์ถ•ํ•˜๊ธฐ (2023.04.14)

์ปดํ“จํ„ฐ ํŒŒ์ผ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ ๋‹จ์  : ๋ณด์•ˆ ๋‚ด ์ปดํ“จํ„ฐ์— ๊นƒํ—ˆ๋ธŒ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋งŒ๋“ฆ → ๋กœ์ปฌ ์ €์žฅ์†Œ(local repository) ์ดํด๋ฆฝ์Šค์—์„œ ์ž‘์—…ํ•œ ๋‚ด์šฉ(์ž‘์—…๋ฌผ)์„ ๋กœ์ปฌ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—… : commit commit ์ž‘์—…์ด ์„ ํ–‰๋œ ํ›„ push, pull ์ž‘์—…์ด ์ง„ํ–‰๋จ ๊นƒํ—ˆ๋ธŒ์— ๋จผ์ € ๊ณต์œ ๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๊นƒํ—ˆ๋ธŒ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋จผ์ € ๋‚ด๋ ค๋ฐ›์€ ํ›„ ํ‘ธ์‰ฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•จ โ‘  commit - pull โ‘ก commit - push โš™ GitHub ํ™œ์šฉ์‹œ ์ง€์ผœ์•ผ ํ•˜๋Š” ๊ทœ์น™ 1. ์ˆ˜์ •์„ ํ•  ๋•Œ ๊ฐ™์€ ํŒŒ์ผ์„ ๋™์‹œ์— ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ธฐ > ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ > ์ถฉ๋Œ ๋ฐœ์ƒ ์˜ˆ๋ฐฉ์„ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ์‚ฌ๋ณธ ๋งŒ๋“  ํ›„ ๊ฑฐ๊ธฐ์„œ ์ž‘์—… ๊ทธ ํ›„ push/pull 2. pull, push ์ž‘์—…์„ ํ•  ๋•Œ ๊ผญ commit์„ ..

full stack/JAVA 2023. 4. 14. 18:07
[๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ] ์ธํ„ฐํŽ˜์ด์Šค (2023.04.13)

๐ŸŽˆ์ธํ„ฐํŽ˜์ด์Šค 1. ํด๋ž˜์Šค๋“ค์ด ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ณตํ†ต๋˜๋Š” ๊ธฐ๋Šฅ ์ง€์ • 2. ์ž‘์—…๋ช…์„ธ์„œ ๋˜๋Š” ํ”„๋กœ์ ํŠธ ์„ค๊ณ„๋„ 3. ๊ธฐ๋Šฅ๋งŒ ์ •์˜ํ•จ์œผ๋กœ์จ ๊ตฌํ˜„ ๊ฐ์ฒด์˜ ๊ฐ™์€ ๋™์ž‘ ๋ณด๊ฐ• (๊ตฌํ˜„ ๊ฐ•์ œ) ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ถ”์ƒ ํด๋ž˜์Šค๋ณด๋‹ค ๋” ๊ฐ•ํ•œ ๊ฐ•์ œ๋ ฅ์„ ๊ฐ€์ง„๋‹ค. ๐Ÿ“– ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ ๐Ÿ“– ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์† ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์† ํ‚ค์›Œ๋“œ : implements ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์ค‘ ์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค! ์•ž์œผ๋กœ ๋ฐฐ์šธ ๋‚ด์šฉ >> JDBC ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ์žฌ์‹คํ–‰์‹œํ‚ค๋ฉด ์‚ฌ๋ฆฌ์ง€๋Š” ๋ฐ์ดํ„ฐ > ํœ˜๋ฐœ์„ฑ ๋ฐ์ดํ„ฐ ์žฌ์‹คํ–‰์„ ์‹œ์ผœ๋„ ๋‚จ์•„์žˆ๋Š” ๋ฐ์ดํ„ฐ > ๋น„ํœ˜๋ฐœ์„ฑ ๋ฐ์ดํ„ฐ ํœ˜๋ฐœ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„ํœ˜๋ฐœ์„ฑ ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ ๋ฐฉ๋ฒ• 1. ๋ฌธ์„œํ™” (๋ฉ”๋ชจ์žฅ, ์—‘์…€, ํ•œ๊ธ€ํŒŒ์ผ) ๋ฐฉ๋ฒ• 2. ์„œ๋ฒ„์— ์ €์žฅ ๋ฐฉ๋ฒ• 3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ ์ž๋ฐ”์—์„œ ์ฝ˜์†”์ฐฝ์— ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š”..

full stack/JAVA 2023. 4. 13. 18:27
[JAVA] ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น, ์“ฐ๋ ˆ๋“œ, ์†Œ์ผ“ํ†ต์‹  (2023.04.13)

๐ŸŽˆ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ๋‹ค์ˆ˜์˜ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ์˜ˆ : ์˜์ƒ์ถœ๋ ฅ + ์†Œ๋ฆฌ์ถœ๋ ฅ + ์Œ๋Ÿ‰์กฐ์ ˆ + ์˜์ƒ์žฌ์ƒ/๋ฉˆ์ถค ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ ๋ณดํ†ต ์ž‘์—…์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋™์‹œ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ๐ŸŽˆ์“ฐ๋ ˆ๋“œ(Thread) ์ž‘์—…์„ ํ•  ๋•Œ ํ•„์š”ํ•œ ํ•˜๋‚˜์˜ ์‹ค(์ œ์–ด) ํ•œ ๊ฐ€์ง€ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋‚˜์˜ ์ œ์–ด ์“ฐ๋ ˆ๋“œ ํ•˜๋‚˜ ๊ฐ€์ง€๊ณ ๋Š” ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ๊ฐ€๋Šฅ ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž‘์—…์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋กœ๊ทธ์ธ A์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์ œ์–ด - ์ž‘์—… 1๊ฐœ, ๋กœ๊ทธ์ธ B์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ์ œ์–ด - ์ž‘์—… 1๊ฐœ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด๋”๋ผ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋™์‹œ ์ž‘์—…์ด๋‹ค >> ์“ฐ๋ ˆ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ํ•„์š”ํ•˜๋‹ค. ์“ฐ๋ ˆ๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์„ธ์Šค์™€ ํ”„๋กœ๊ทธ๋žจ ๋‹จ์–ด์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์“ฐ๋ ˆ๋“œ, ํ”„๋กœ์„ธ์Šค, ํ”„๋กœ๊ทธ๋žจ 3๊ฐœ๋Š” ์„ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค์™€..

full stack/JAVA 2023. 4. 13. 18:24
[๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ๋‚ด์šฉ ์ •๋ฆฌ + ์ ‘๊ทผ์ œํ•œ์ž protected, ๋ถ€๋ชจํด๋ž˜์Šค ์ƒ์„ฑ์ž super(); (2023.04.12)

๐ŸŽˆ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ ๐Ÿ“–๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง• 1. ์บก์Šํ™”(์ •๋ณด์€๋‹‰) 2. ์ƒ์† ๊ฐ™์€ ๊ธฐ๋Šฅ, ๊ฐ™์€ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ์ƒ์†์„ ํ™œ์šฉ ์ƒ์†์˜ ์˜ˆ. ๋งˆ์šฐ์Šค Class์˜ ๊ธฐ๋Šฅ : ์šฐํด๋ฆญ, ์ขŒํด๋ฆญ, ๋“œ๋ž˜๊ทธ ํœ ๋งˆ์šฐ์Šค Class์˜ ๊ธฐ๋Šฅ : ์šฐํด๋ฆญ, ์ขŒํด๋ฆญ, ๋“œ๋ž˜๊ทธ → ๋งˆ์šฐ์Šค์—์„œ ์ƒ์† + ์Šคํฌ๋กค ์ธ์ฒด๊ณตํ•™ ๋งˆ์šฐ์Šค Class์˜ ๊ธฐ๋Šฅ : ์šฐํด๋ฆญ, ์ขŒํด๋ฆญ, ๋“œ๋ž˜๊ทธ → ๋งˆ์šฐ์Šค์—์„œ ์ƒ์† + ํ”ผ๋กœ๊ฐ์†Œ public class ํœ ๋งˆ์šฐ์Šค extends ๋งˆ์šฐ์Šค { // ์ž์‹ํด๋ž˜์Šค extends ๋ถ€๋ชจํด๋ž˜์Šค //์ž์‹ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ, ํ•„๋“œ๋ฅผ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค. } ์ปดํŒŒ์ผ์‹œ ๋ฐ์ดํ„ฐ(๊ธฐ๋Šฅ)๋ฅผ ํƒ์ƒ‰ํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉํ–ฅ : ์ž์‹ ํด๋ž˜์Šค → ๋ถ€๋ชจ ํด๋ž˜์Šค ๋™๋ฌผ(๋จน๋‹ค, ์ž๋‹ค, ์›€์ง์ด๋‹ค) ์กฐ๋ฅ˜(๋จน๋‹ค, ์ž๋‹ค, ์›€์ง์ด๋‹ค) → ๋™๋ฌผ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์Œ ์›€์ง์ด๋‹ค์˜ ๊ตฌํ˜„๋‹จ์„ ..

full stack/JAVA 2023. 4. 12. 23:48
[MVC ํŒจํ„ด] MVC ํŒจํ„ด์œผ๋กœ ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ์„ค๊ณ„ํ•˜๊ธฐ (2023.04.12)

๐ŸŽˆ๋””์ž์ธ ํŒจํ„ด(Design Pattern) ์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™์˜ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ์—์„œ ํŠน์ • ๋ฌธ๋งฅ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ… ์†Œ์Šค๋‚˜ ๊ธฐ๊ณ„ ์ฝ”๋“œ๋กœ ๋ฐ”๋กœ ์ „ํ™˜๋  ์ˆ˜ ์žˆ๋Š” ์™„์„ฑ๋œ ๋””์ž์ธ์€ ์•„๋‹ˆ๋ฉฐ ๋‹ค๋ฅธ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ์— ์“ฐ์ด๋Š” ํ…œํ”Œ๋ฆฟ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์‹œ์Šคํ…œ์„ ๋””์ž์ธํ•  ๋•Œ ๊ณตํ†ต๋œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ์— ์“ฐ์ด๋Š” ํ˜•์‹ํ™”๋œ ๊ด€ํ–‰ ๊ณผ๊ฑฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌ๋œ ์„ค๊ณ„์˜ ๋…ธํ•˜์šฐ๋ฅผ ์ถ•์ ํ•˜์—ฌ ๊ทธ ๋ฐฉ๋ฒ•์— ์ด๋ฆ„์„ ๋ถ™์ด๊ณ  ์ดํ›„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ํ˜•ํƒœ๋กœ ํŠน์ • ๊ทœ์•ฝ์„ ๋งŒ๋“ค์–ด ์ •๋ฆฌํ•œ ๊ฒƒ. ์ฆ‰, "ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก " ๐ŸŽˆMVC ํŒจํ„ด (M : model, V : view, C : controller) ๋””์ž์ธ ํŒจํ„ด(Design Pattern)์˜ ํ•œ ์ข…๋ฅ˜๋กœ ..

full stack/JAVA 2023. 4. 12. 23:33
[๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ] ์ƒ์†, ์ถ”์ƒํด๋ž˜์Šค (2023.04.11)

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง• 1. ์บก์Šํ™”(Encapsulation) : ์ •๋ณด์€๋‹‰ 2. ์ถ”์ƒํ™”(Abstract) 3. ์ƒ์†(inheritance) โ˜…โ˜…โ˜…โ˜…โ˜…โ˜… ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ์ ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ƒ์† ํŠน์ง•์œผ๋กœ๋ถ€ํ„ฐ ๋‚˜์˜จ๋‹ค. 5. ๋‹คํ˜•์„ฑ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๋ฌธ์ œ. ๋‹ค์Œ ์ค‘ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง•์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€? 1. ์บก์Šํ™” 2. ์ถ”์ƒํ™” 3. ์ •๋ณด์€๋‹‰ 4. ์ƒ์† ์ •๋‹ต 3๋ฒˆ → ์ •๋ณด์€๋‹‰์€ ์บก์Šํ™”์— ํฌํ•จ ๐ŸŽˆ ์ƒ์† ์‚ฌ์ „์  ์ •์˜ : ๋ฌผ๋ ค๋ฐ›๋‹ค, ์ด์–ด๋ฐ›๋‹ค, ๋’ค๋ฅผ ์ž‡๋‹ค ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•„๋“œ, ๊ธฐ๋Šฅ์„ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค๋Š” ๋œป ๋ถ€๋ชจ ํด๋ž˜์Šค(์ˆ˜ํผ ํด๋ž˜์Šค)๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ž์‹ ํด๋ž˜์Šค(์„œ๋ธŒ ํด๋ž˜์Šค)๊ฐ€ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ์กด์˜ ํด๋ž˜์Šค์˜ ๋ณ€์ˆ˜(๋ฐ์ดํ„ฐ)์™€ ๋ฉ”์„œ๋“œ(๋กœ์ง, ์ฝ”๋“œ)๋ฅผ ๋ฌผ๋ ค๋ฐ›์•„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ ๊ทธ๋ฆผ..

full stack/JAVA 2023. 4. 11. 17:57
[์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํ˜•๊ตฌ์กฐ - ์Šคํƒ, ํ, ๋ฐํฌ, ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ (2023.04.07)

๐ŸŽˆ ์Šคํƒ(stack) ์˜์–ด ๋œป : ์Œ“๋‹ค ์ž๋ฃŒ๊ฐ€ ์Œ“์•„์ ธ ์žˆ์Œ. ๋งจ ์•„๋ž˜์— ์žˆ๋Š” ์• ๋“ค์€ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›€. ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์Œ“์•„ ๋†“๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊บผ๋ƒ„ (ํ›„์ž…์„ ์ถœ Last In First Out) ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‹คํ–‰ํ•  ๋•Œ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ ํ‘ธ์‰ฌ(push)์™€ ํŒ(pop)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃธ โ‘  ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ → main ๋ฉ”์„œ๋“œ push → main ๋ฉ”์„œ๋“œ๋ฅผ ์Šคํƒ์— ๋„ฃ์Œ (main push) โ‘ก main์•ˆ์—์„œ z๋ผ๋Š” ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ(push) → z ๋ฉ”์„œ๋“œ๋ฅผ ์Šคํƒ์— ๋„ฃ์Œ โ‘ข z ๋ฉ”์„œ๋“œ ์•ˆ์— x์™€ y ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ → x ํ˜ธ์ถœ(push) > ๋งˆ๋ฌด๋ฆฌ(pop) → y ํ˜ธ์ถœ(push) > ๋งˆ๋ฌด๋ฆฌ(pop) โ‘ฃ z ํŒ โ‘ค main ํŒ ์Šค..

full stack/JAVA 2023. 4. 9. 12:05