๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Study/Java91

[TIL] ๋‹จ์œ„ํ…Œ์ŠคํŠธ ๐Ÿ‘๐Ÿป ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๐Ÿ“ ํ…Œ์ŠคํŠธ - ์–ด๋–ค ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ผ์ • ๊ธฐ์ค€์„ ์ •ํ•ด๋†“๊ณ  ๊ทธ ๋Œ€์ƒ์ด ์ •ํ•ด์ง„ ๊ธฐ์ค€์— ๋ถ€ํ•ฉ ํ•˜๋Š”์ง€ ๋ถ€ํ•ฉํ•˜์ง€ ๋ชปํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ • - ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๋Œ€๋กœ ์ž˜ ๊ฑฐ์ณ์„œ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ์ด ๊ฒ€์ฆ ๊ณผ์ •์— ์ž˜ ํ†ต๊ณผํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ตœ๋Œ€ํ•œ ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ ๐Ÿ“ ํ…Œ์ŠคํŠธ ๋ถ„๋ฅ˜ : ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ > ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ > ์Šฌ๋ผ์ด์Šค ํ…Œ์ŠคํŠธ > ๋‹จ์œ„ ํ…Œ์ŠคํŠธ โ–ช๏ธ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ - ์ฃผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธ - ์ผ๋ฐ˜์ ์œผ๋กœ QA ๋ถ€์„œ, QA ์—…์ฒด์—์„œ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ : ๊ฐœ๋ฐœ์ž ์ด์™ธ ์ œ 3์ž ! - API ํˆด์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊นŒ์ง€ ์—ฐ๊ด€๋˜์–ด ์žˆ์–ด HTTP ํ†ต์‹ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋“ฑ ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋กœ ๋ณผ ์ˆ˜๋Š” ์—†์Œ โ–ช๏ธ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“  ๊ฐœ๋ฐœ.. 2022. 7. 12.
[TIL] ํŠธ๋žœ์žญ์…˜ ๐Ÿ™๐Ÿป ํŠธ๋žœ์žญ์…˜ Transaction - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…๋“ค์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฒ˜๋ฆฌ ๋‹จ์œ„ - ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—… ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ํ•˜๋‚˜์˜ ์ž‘์—…์œผ๋กœ ์ธ์‹ํ•˜์—ฌ ์ „๋ถ€ ์„ฑ๊ณต or ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•จ ( All or Nothing ) → ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ ๐Ÿ“ ํŠธ๋žœ์žญ์…˜ ํŠน์ง• : ACID ์›์น™ โ‘  Atomicity : ์›์ž์„ฑ - ์ž‘์—…์„ ๋” ์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†์Œ - ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์ž‘์—…์œผ๋กœ ์ธ์‹๋˜๋ฉด ์–ด๋–ค ์ž‘์—…์€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์–ด๋–ค ์ž‘์—…์€ ์ฒ˜๋ฆฌ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์‹์œผ๋กœ ์ชผ๊ฐœ์„œ ์ฒ˜๋ฆฌ X → ๋‘˜ ๋‹ค ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์‹คํŒจํ•˜๋Š” ๋“ฑ์˜ ํ•˜๋‚˜๋กœ๋งŒ ์ฒ˜๋ฆฌ๊ฐ€ ๋ณด์žฅ๋˜์–ด์•ผ ํ•จ - ex) ์Œ๋ฃŒ ์ฃผ๋ฌธ์„ ํ•˜๋ฉด ์Œ๋ฃŒ ์ˆ˜ ๋งŒํผ ์Šคํƒฌํ”„ ํšŸ์ˆ˜๊ฐ€ ์ฆ๊ฐ€๋˜๋Š” ์ž‘์—…์ด ์žˆ์„ ๋•Œ ์Œ๋ฃŒ ์ฃผ๋ฌธ๊ณผ ์Šคํƒฌํ”„ ์ฆ๊ฐ€๋Š” ๋‘˜ ๋‹ค ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ๋‘˜ ๋‹ค ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌ ๋˜์–ด์•ผ ํ•จ.. 2022. 7. 12.
[TIL] Spring Data JPA ๐Ÿ™Œ๐Ÿป Spring Data JPA - ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „์†กํ•œ ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์ˆ˜์ •, ์กฐํšŒ, ์‚ญ์ œ๋ฅผ ์ข€ ๋” ์‰ฝ๊ฒŒ ํ•จ - Spring Data ํŒจ๋ฐ€๋ฆฌ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ์จ JPA ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ธฐ์ˆ ์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ๋‹จ์ถ• ๐Ÿ“JPA vs Hibernate ORM vs Spring Data JPA โ–ช๏ธ JPA : ๊ธฐ์ˆ  ๋ช…์„ธ - Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ•ด ๋†“์€ ํ‘œ์ค€ ์ŠคํŽ™ - ORM ๊ธฐ์ˆ  ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ชจ์Œ → ์ด ๊ธฐ์ˆ ์€ ๋ฌด์—‡์ด๊ณ  ์ด ๊ธฐ์ˆ ์€ ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ผ ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ (1) ๋ฐ˜๋ณต์ ์ธ CRUD SQL ์ฒ˜๋ฆฌ - JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ๋•Œ ์ง์ ‘ SQL ์ž‘.. 2022. 7. 12.
[TIL] JPA ๋งคํ•‘ โœ๐Ÿป JPA๋ฅผ ํ†ตํ•œ DB์˜ ํ…Œ์ด๋ธ”๊ณผ ์ƒํ˜ธ์ž‘์šฉ(์ €์žฅ, ์ˆ˜์ •, ์กฐํšŒ, ์‚ญ์ œ ๋“ฑ) → ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”๊ณผ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ๊ฐ„ ๋งคํ•‘ ์ž‘์—…์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•จ ( Spring Data JDBC๋Š” ๋‹จ๋ฐฉํ–ฅ ๋งคํ•‘๋งŒ ์ง€์› / JPA๋Š” ๋‹จ๋ฐฉํ–ฅ + ์–‘๋ฐฉํ–ฅ ๋ชจ๋‘ ์ง€์› ) ๐Ÿ“ ์—”ํ‹ฐํ‹ฐ ๋งคํ•‘ ์ž‘์—… โ‘  ์—”ํ‹ฐํ‹ฐ์™€ ํ…Œ์ด๋ธ” ๊ฐ„ ๋งคํ•‘ : @Entity๋ฅผ ๋ถ™์ด๋ฉด JPA๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋Œ€์ƒ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋จ @Table์„ ๋ถ™์ด๋ฉด ์—”ํ‹ฐํ‹ฐ์™€ ๋งคํ•‘ํ•  ํ…Œ์ด๋ธ” ์ง€์ • @Entity @Table public class Coffee{ @Id private Long coffeeId; } - @Entity(name = "BEVERAGE")๋กœ ์ง€์ •ํ•˜๋ฉด ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ → ๋งŒ์•ฝ name๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ํด๋ž˜์Šค ์ด๋ฆ„์„ ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ - @T.. 2022. 7. 5.
[TIL] JPA ๐Ÿซฐ๐Ÿป JPA (Java Persistence API) - Java ์ง„์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ORM ๊ธฐ์ˆ ์˜ ํ‘œ์ค€ ์‚ฌ์–‘ - ์ฆ‰, JPA ํ‘œ์ค€ ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด - Hibernate ORM, EclipseLink, DataNucleus ๋“ฑ ๐Ÿ“ Hibernate ORM - JPA์—์„œ ์ •์˜ํ•ด ๋‘” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด ๐Ÿ“ JPA์˜ P : Persistence ๐Ÿ’ก Persistence : ์˜์†์„ฑ, ์ง€์†์„ฑ - ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ธˆ๋ฐฉ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ์˜ค๋ž˜ ์ง€์†๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ ๐Ÿ’ก ORM - ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์˜ ๋งคํ•‘์„ ํ†ตํ•ด ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ๊ฐ์ฒด ์•ˆ์— ํฌํ•จ๋œ ์ •๋ณด๋ฅผ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๋Š” ๊ธฐ์ˆ  ๐Ÿ’ก Persistence Context : ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ - ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘ ๋˜๋Š” ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด ์ •๋ณด๋ฅผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ผ๋Š” ๊ณณ์— ๋ณด๊ด€ํ•ด์„œ ์• ํ”Œ.. 2022. 7. 5.
[TIL] Spring Data JDBC ๊ตฌํ˜„ ๐Ÿ’ก Spring Data JDBC ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค ๊ณ„์ธต ์—ฐ๋™์„ ์œ„ํ•ด ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๊ณผ ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์˜ ์„ค๊ณ„ ๐Ÿ“ DDD(Domain Driven Design) : ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ : ๋„๋ฉ”์ธ ์œ„์ฃผ์˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• ๐Ÿ”ธ Domain : ๋„๋ฉ”์ธ - ์ฃผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค์ ์ธ ์–ด๋–ค ์—…๋ฌด ์˜์—ญ = ํ˜„์‹ค์„ธ๊ณ„์—์„œ ์ ‘ํ•˜๋Š” ์—…๋ฌด์˜ ํ•œ ์˜์—ญ - ๋„๋ฉ”์ธ ์ง€์‹๋“ค์„ ์„œ๋น„์Šค๊ณ„์ธต์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์œผ๋กœ ๊ตฌํ˜„ - ex) ๋ฐฐ๋‹ฌ์ฃผ๋ฌธ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๊ฒฝ์šฐ ๋„๋ฉ”์ธ : ํšŒ์› / ์ฃผ๋ฌธ / ์Œ์‹ / ๊ฒฐ์ œ ๐Ÿ”ธ Aggregate : ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ - ๋น„์Šทํ•œ ์—…๋ฌด ๋„๋ฉ”์ธ์˜ ๋ฌถ์Œ - ex) ํšŒ์› ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ : ํšŒ์› ์ •๋ณด / ํšŒ์› ํฌ์ธํŠธ ์ฃผ๋ฌธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ : ์ฃผ๋ฌธ ์ •๋ณด / ๋ฐฐ๋‹ฌ ์Œ์‹ ์ •๋ณด / ๋ฐฐ๋‹ฌ ์ฃผ์†Œ ์ •๋ณด / ๋ฐฐ๋‹ฌ ์ฃผ๋ฌธ์ž ์ •๋ณด ๊ฒฐ์ œ .. 2022. 7. 4.
[TIL] JDBC ๐Ÿ‘๐Ÿป JDBC ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค ๊ณ„์ธต ๐Ÿ“ JDBC : Java Database Connectivity - Java ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ ๋ฐ ์—…๋ฐ์ดํŠธ ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ Java ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ‘œ์ค€ API - Java ๊ฐœ๋ฐœ์ž๋Š” JDBC API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์–‘ํ•œ ๋ฒค๋”(Oracle, MS SQL, MySQL ๋“ฑ) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™ ๊ฐ€๋Šฅ ๐Ÿ‘‰๐Ÿป JDBC API๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š” Spring Data JDBC๋‚˜ Spring Data JPA ๊ธฐ์ˆ ๋กœ ๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค ๋กœ์ง์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๐Ÿ’ก Connection Pool : Connectio์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋ณด๊ด€ํ•˜๊ณ  ํ•„์š”์‹œ Connection์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ด€๋ฆฌ์ž - JDBC.. 2022. 6. 30.
[TIL] ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๐Ÿ’ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์—์„œ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ โ‘  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ โ‘ก ์„œ๋น„์Šค ๊ณ„์ธต์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ๋˜์ ธ์ง€๋Š” ์˜๋„๋œ ์˜ˆ์™ธ โ‘ข ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์ค‘์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ ๐Ÿ™Œ๐Ÿป Spring MVC ์˜ˆ์™ธ์ฒ˜๋ฆฌ โ–ช๏ธ @ExceptionHandler๋ฅผ ์ด์šฉํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - Spring ์—์„œ์˜ ์˜ˆ์™ธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฌธ์ œ ๋ฐœ์ƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์‹คํŒจ ์‹œ์—๋„ ํ•˜๋‚˜์˜ ์˜ˆ์™ธ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์œ ๋„ @ExceptionHandler public ResponseEntity handleException(MethodArgumentNotValidException e) { final List fieldErrors = e.getBindingResult().getFieldErrors().. 2022. 6. 29.
[TIL] MVC : ์„œ๋น„์Šค ๊ณ„์ธต ๐Ÿ‘๐Ÿป Spring MVC : ์„œ๋น„์Šค ๊ณ„์ธต ๐Ÿ“ ์„œ๋น„์Šค ๊ณ„์ธต - API ๊ณ„์ธต์—์„œ ์ „๋‹ฌ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์งˆ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณ„์ธต - Spring DI๋ฅผ ํ†ตํ•ด API ๊ณ„์ธต๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต ์—ฐ๋™ - API ๊ณ„์ธต์—์„œ ์ „๋‹ฌ๋ฐ›์€ DTO ๊ฐ์ฒด๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต์˜ ๋„๋ฉ”์ธ ๋ชจ๋ธ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ „๋‹ฌ ๐Ÿ’ก Spring MVC - ์›น ๊ณ„์ธต์„ ๋‹ด๋‹นํ•˜๋Š” ๋ชจ๋“ˆ๋กœ ์„œ๋ธ”๋ฆฟ API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ - ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ - Model : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ - View : Model ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด ์›น ๋ธŒ๋ผ์šฐ์ € ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๋Š” ๋ฆฌ์†Œ์Šค ์ œ๊ณต - Controller : ํด๋ผ์ด์–ธํŠธ ์ธก ์š”์ฒญ์„ ์ง์ ‘ ๋ฐ›๋Š” ์—”๋“œํฌ์ธํŠธ๋กœ Mo.. 2022. 6. 27.