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

๐Ÿ“š์ฝ์€ ์ฑ… ์ •๋ฆฌ

(39)
[์ž๋ฐ” ๋งˆ์Šคํ„ฐ๋ถ] 9์žฅ ๋‚ ์งœ ์ฒ˜๋ฆฌ ๊ณต๋žตํ•˜๊ธฐ 9.1 Date์™€ Calendar ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ Date๋Š” ์ผ์‹œ, ํŠน์ •์˜ ์‹œ๊ฐ„์„ ๋ณด๊ด€ํ•˜๋Š” ํด๋ž˜์Šค์ด๊ณ  Calendar๋Š” ์—ฐ, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ ๋‹จ์œ„๋กœ ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ค์ •/์ทจ๋“/๊ฐ€์‚ฐ/๊ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค์ด๋‹ค. Date ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ //1 Date date1 = new Date(); System.out.println(date1); //2 Date date2 = new Date(5000); System.out.println(date2); 1๋ฒˆ ์ฝ”๋“œ๋Š” ํ˜„์žฌ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•˜๊ณ  2๋ฒˆ ์ฝ”๋“œ๋Š” 1970๋…„์—์„œ 5000ms ์ง€๋‚œ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•œ๋‹ค. Dateํด๋ž˜์Šค๋Š” setTime์œผ๋กœ ์‹œ๊ฐ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ถˆ๋ณ€๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ค. Calendar ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ Calendar calendar = Calendar.get..
[์ž๋ฐ” ๋งˆ์Šคํ„ฐ๋ถ] 6์žฅ ์˜ˆ์™ธ ๊ณต๋žตํ•˜๊ธฐ 6.1 ์˜ˆ์™ธ์˜ ๊ธฐ๋ณธ 6.1.1 ์˜ˆ์™ธ์˜ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜ 1) ๊ฒ€์‚ฌ ์˜ˆ์™ธ (Exception) ์ฃผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ ์‹œ์— ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์ •์ƒ ์ƒํƒœ๋ฅผ ํ†ต์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ž… ์ž…์ถœ๋ ฅ์ด ์‹คํŒจํ•  ๊ฒฝ์šฐ IOException์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ์˜ˆ์ƒํ•˜๊ณ  ๋ฏธ๋ฆฌ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ง€ catchํ•˜๊ฑฐ๋‚˜ throwํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ •์˜ํ•ด์•ผํ•˜๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋งŽ์•„์ง€๊ณ  ๋ณต์žกํ•ด์ง€๋ฏ€๋กœ '์‹คํ–‰ ์‹œ ์˜ˆ์™ธ'๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค. 2) ์‹คํ–‰ ์‹œ ์˜ˆ์™ธ (RuntimeException) ์ฃผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ ์‹œ์— ์˜ˆ์ƒํ•  ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜๋ฅผ ํ†ต์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. '๊ฒ€์‚ฌ ์˜ˆ์™ธ'์™€๋Š” ๋‹ฌ๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํฌ์ฐฉํ•˜์ง€ ์•Š์•„๋„ ๋”ฐ๋กœ '์ปดํŒŒ์ผ ์˜ค๋ฅ˜'๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค...
[์ž๋ฐ” ๋งˆ์Šคํ„ฐ๋ถ] 1์žฅ๋ถ€ํ„ฐ 5์žฅ.. ๋žŒ๋‹ค์‹๊ณผ Stream API๊นŒ์ง€. 1.1 ์ž๋ฐ”๋ž€? 1.1.1 ์ž๋ฐ”์˜ ํŠน์ง• ๊ฐ์ฒด ์ง€ํ–ฅ ํด๋ž˜์Šค์™€ ์ƒ์† ๊ตฌ์กฐ๋ฅผ ํ™”์šฉํ•˜์—ฌ ํ™•์žฅ์„ฑ์ด ์šฐ์ˆ˜ํ•˜๋ฉฐ ์žฌํ•˜์šฉํ•˜๊ธฐ ์‰ฌ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•จ. ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๋Š” ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Œ. ๋›ฐ์–ด๋‚œ ์—์ฝ” ์‹œ์Šคํ…œ ์šฐ์ˆ˜ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฏธ๋“ค์›จ์–ด(DBMS ๋“ฑ)๊ฐ€ ๋‹ค์ˆ˜ ์กด์žฌํ•จ์œผ๋กœ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 1.1.3 ์ž๋ฐ”๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ˆœ์„œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ๊นŒ์ง€์˜ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํ๋ฆ„ ์„ค๋ช… 1. ์ž๋ฐ”์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ 2. javac ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  `ํด๋ž˜์Šค ํŒŒ์ผ`์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ค‘๊ฐ„์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 3. javac ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ java vm์ด ํด๋ž˜์Šค ํŒŒ์ผ์„ ํ•ด์„ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค. 2.4 ๋ช…๋ช… ๊ทœ์น™ 2.4.1 ํด๋ž˜์Šค์™€ ๋ณ€์ˆ˜๋Š” '์นด..
[JAVA ๊ฐ์ฒด ์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด] 4์žฅ : ๋””์ž์ธ ํŒจํ„ด 4.1 ๋””์ž์ธ ํŒจํ„ด์˜ ์ดํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์ตํž ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ?? ๋ฐ”๋กœ ํ›Œ๋ฅญํ•œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด๋‹ค!! ๊ทธ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ˆ˜๋…„๊ฐ„ ๊ณ ์ƒํ•˜๋ฉด์„œ ์Œ“์•„๋†“์€ ๊ฒฝํ—˜ ๋“ฑ์ด ๊ณ ์Šค๋ž€ํžˆ ๋…น์•„์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ํ›Œ๋ฅญํ•œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ๋งŒ๋“ค์–ด๋†“์€ ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์‚ฌ์šฉํ•˜๊ณ  ์‘์šฉํ•˜๋ฉด ๋งค์šฐ ์ข‹์„ ๊ฒƒ์ด๋‹ค. ๋””์ž์ธ ํŒจํ„ด์ด๋ž€? ๊ฒฝํ—˜์ด ๋งŽ์€ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋“ค์ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์˜ ํ•ด๋ฒ•๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฒƒ! ๋””์ž์ธ ํŒจํ„ด์˜ ๊ตฌ์กฐ ๋””์ž์ธ ํŒจํ„ด์˜ ๊ตฌ์กฐ๋Š” 3๊ฐœ์˜ ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ฝ˜ํ…์ŠคํŠธ : ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ์„ ๊ธฐ์ˆ  (์ฆ‰, ํŒจํ„ด์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ) ๋ฌธ์ œ(Problem) : ํŒจํ„ด์ด ์ ์šฉ๋˜์–ด ํ•ด๊ฒฐ๋  ํ•„์š”๊ฐ€ ์žˆ๋Š” ..
[JAVA ๊ฐ์ฒด ์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด] 3์žฅ : SOLID ์›์น™ 3.1 ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (SRP) 3.11 ์ฑ…์ž„์˜ ์˜๋ฏธ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„๊ด€์ ์—์„œ ์ฑ…์ž„์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋Š” ๋ฐ”๋กœ '๊ฐ์ฒด'์ด๋‹ค. (์ด '๊ฐ์ฒด'๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค) ํ•™์ƒ '๊ฐ์ฒด'๊ฐ€ ์—ฌ๋Ÿฌ ์ฑ…์ž„(์ˆ˜์—…๋“ฃ๊ธฐ + ์•Œ๋ฐ”ํ•˜๊ธฐ)์„ ๊ฐ€์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. public class Student { public void getCourses() {...} public void addCourses() {...} public void save() {...} public Student load() {...} public void printOnReport() {...} public void printOnBook() {...} } ํ•™์ƒ ๊ฐ์ฒด๋Š” ์ˆ˜์—…์— ๊ด€ํ•œ ์ฑ…์ž„๋งŒ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ์ข‹๊ณ  ์ด์™ธ์˜ ์ฑ…์ž„์€ ์ด๋ฅผ ๋” ์ž˜ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด..
[JAVA ๊ฐ์ฒด์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด] 2์žฅ : ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์›๋ฆฌ ์ถ”์ƒํ™” ์–ด๋–ค ์˜์—ญ์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์†์„ฑ์ด๋‚˜ ํ–‰๋™์„ ์ถ”์ถœํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ์ฒด์˜ ๊ณตํ†ต๋œ ํŠน์ง•์„ ํŒŒ์•…ํ•ด ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ผ๋ฐ˜ํ™”ํ•˜๊ฒŒ ๋œ๋‹ค. ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ ๊ฐœ์ฒด์˜ ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋…์— ์˜์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ค๊ณ„๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ex) ์ž๋™์ฐจ๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ž๋™์ฐจ๋“  ์ƒ๊ด€ ์—†์ด ์—”์ง„์˜ค์ผ์„ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์บก์Šํ™” ์บก์Šํ™”๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ์€ ๋‹น์—ฐํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ! ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์บก์Šํ™”๋Š” ์ •๋ณด ์€๋‹‰์„ ํ†ตํ•ด ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„์™€ ๋†’์€ ์‘์ง‘๋„๋ฅผ ๊ฐ–๋„๋ก ํ•œ๋‹ค. -> ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•ด๋„ ์˜ํ–ฅ์ด ์ ์Œ ์ •๋ณด ์€๋‹‰ : ์™ธ๋ถ€์—์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋Š” ๋‚ด๋ถ€ ์ •๋ณด์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ ex) ์ž๋™์ฐจ์˜ ๊ฐ€์† ํŽ˜๋‹ฌ์„ ๋ฐ์œผ๋ฉด ์†๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ ๊ทธ ์•ˆ์— ์–ด๋–ค ๊ณผ์ •์ด ์žˆ๋Š”์ง€ ๋ชฐ๋ผ๋„ ์ง€์žฅ์ด ์—†์Œ ์‘์ง‘๋„..
[JAVA ๊ฐ์ฒด์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด] 1์žฅ : ๊ฐ์ฒด์ง€ํ–ฅ ๋ชจ๋ธ๋ง 1.1 ๋ชจ๋ธ๋ง ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๋ชจ๋ธ์˜ ์—ญํ•  ์„œ๋กœ์˜ ํ•ด์„์„ ๊ณต์œ ํ•ด ํ•ฉ์˜๋ฅผ ์ด๋ฃจ๊ฑฐ๋‚˜ ํ•ด์„์˜ ํƒ€๋‹น์„ฑ์„ ๊ฒ€ํ†  ํ˜„์žฌ์˜ ์‹œ์Šคํ…œ ๋˜๋Š” ์•ž์œผ๋กœ ๊ฐœ๋ฐœํ•  ์‹œ์Šคํ…œ์˜ ์›ํ•˜๋Š” ๋ชจ์Šต์„ ๊ฐ€์‹œํ™” ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์™€ ํ–‰์œ„๋ฅผ ๋ช…์„ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ํ‹€์„ ์ œ๊ณต ๋ชจ๋ธ์€ ์ถ”์ƒํ™”์— ๊ธฐ๋ฐ˜์„ ๋‘”๋‹ค. ํŠน์ • ๊ด€์ ์—์„œ ๊ด€๋ จ์ด ์žˆ๋Š” ์ ์€ ๋ถ€๊ฐ์‹œํ‚ค๊ณ  ๊ด€๋ จ ์—†๋Š” ๋ฉด์€ ๋ฌด์‹œํ•œ๋‹ค. ex) ๋Œ€ํ•™๊ต ํ•™์‚ฌ ์ง€์› ์—…๋ฌด -> ํ•™์ƒ์˜ ๋จธ๋ฆฌ์นด๋ฝ ์ˆ˜, ๋จธ๋ฆฌ ์ƒ‰๊น”์€ ํ•™์‚ฌ ์ง€์›๊ณผ ์ „ํ˜€ ๋ฌด๊ด€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€์‹ฌ์žˆ๋Š” ์˜์—ญ์—์„œ ์ œ์™ธ (์ถ”์ƒํ™”์—์„œ ์ œ์™ธ) -> ํ•™์ƒ์˜ "ํ•™๋ฒˆ, ์ด๋ฆ„, ์ˆ˜๊ฐ•๊ณผ๋ชฉ"์€ ํ•™์‚ฌ ์ง€์› ํ•„์ˆ˜์ ์ด๋ฏ€๋กœ ๊ด€์‹ฌ์˜์—ญ์— ํฌํ•จ์‹œํ‚จ๋‹ค. ์‚ฌ๋žŒ์˜ ๋ชจ๋“  ์†์„ฑ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ด€์‹ฌ์žˆ๋Š” ์˜์—ญ์˜ ํ•„์š”ํ•œ ์†์„ฑ๋งŒ ๊ฐ€์ง€๊ณ  ๊ฐ€๋Š” ๊ฒƒ (์ถ”์ƒํ™”) 1.2 UML ๋ชจ๋ธ๋ง ์–ธ์–ด : ์›ํ•˜๋Š” ์‹œ์Šค..
[์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด] 7์žฅ : ์Šคํ”„๋ง ์‚ผ๊ฐํ˜•๊ณผ ์„ค์ • ์ •๋ณด ์Šคํ”„๋ง์„ ์ดํ•ดํ•˜๋ ค๋ฉด POJO๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ”„๋ง ์‚ผ๊ฐํ˜•์ด๋ผ๋Š” ์• ์นญ์„ ๊ฐ€์ง„ IoC/DI, AOP, PSA๋ผ๊ณ  ํ•˜๋Š” ์Šคํ”„๋ง์˜ 3๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์— ๋Œ€ํ•ด ์ดํ•ด๊ฐ€ ํ•„์ˆ˜๋‹ค. ์Šคํ”„๋ง ์‚ผ๊ฐํ˜•์„ ์ดํ•ดํ•˜๋ฉด ๊ทธ ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜๋งŽ์€ ๋ณต์žกํ•œ ๋ถ€๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํ”„๋ง ์‚ผ๊ฐํ˜•์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์•Œ์•„๋ณด์ž. IoC/DI - ์ œ์–ด์˜ ์—ญ์ „/์˜์กด์„ฑ ์ฃผ์ž… ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์˜์กด์„ฑ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ex) ์šด์ „์ž๊ฐ€ ์ž๋™์ฐจ๋ฅผ ์ƒ์‚ฐํ•œ๋‹ค. -> ์ž๋™์ฐจ๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ํƒ€์ด์–ด๋ฅผ ์ƒ์‚ฐํ•œ๋‹ค. (์šด์ „์ž -> ์ž๋™์ฐจ -> ํƒ€์ด์–ด) ์˜์กด -> ์ „์ฒด(์˜์กดํ•˜๋Š” ๊ฐ์ฒด)๊ฐ€ ๋ถ€๋ถ„(์˜์กด๋˜๋Š” ๊ฐ์ฒด)์— ์˜์กดํ•œ๋‹ค. ์ง‘ํ•ฉ(Aggregation) ๊ด€๊ณ„: ๋ถ€๋ถ„์ด ์ „์ฒด์™€ ๋‹ค๋ฅธ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ตฌ์„ฑ(Compostion) ๊ด€๊ณ„: ๋ถ€๋ถ„์€ ์ „์ฒด์™€ ๊ฐ™์€ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ..

๋ฐ˜์‘ํ˜•