2021/05 19

F015 - Set (์ž‘์„ฑ ์ค‘)

โœ๏ธ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Set๊ณผ Queue ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ , ๊ฐ ํด๋ž˜์Šค ๋ณ„๋กœ ์–ด๋–ป๊ฒŒ ํ•ด๋‹น ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€, ํŠน์ง•์€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋ ค ํ•œ๋‹ค. Set ์ˆ˜ํ•™์—์„œ์˜ ์ง‘ํ•ฉ์˜ ๊ฐœ๋…๊ณผ ๋™์ผํ•˜๊ฒŒ ์ค‘๋ณต ์ง‘ํ•ฉ์„ ์ œ์™ธํ•˜๊ณ  ์ง‘ํ•ฉ ๋‚ด ์กด์žฌํ•˜๋Š” ์›์†Œ๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ™์€ ์›์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌ ํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Set ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ์ฒด ๋‚ด์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ, Set ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š”๋‹ค. ๋•Œ๋ฌธ์— ํŠน์ • ์ˆœ์„œ์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด์–ด ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ๊ฐ์ฒด ๋‚ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋Ÿฌํ•œ Set ์ธํ„ฐํŽ˜์ด์Šค๋Š” Collection ์ธํ„ฐํŽ˜์ด..

Programming/Java 2021.05.31

F014 - List (ArrayList, LinkedList, Vector, Stack)

โœ๏ธ ์ง€๊ธˆ๊นŒ์ง€ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ชจ๋ฅธ ์ฑ„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ์ƒํ™ฉ๋“ค ์†์—์„œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚จ๋“ค์ด ์“ฐ๋‹ˆ๊นŒ ๋”ฐ๋ผ ์“ฐ๊ณ , ๋‚ด๊ฐ€ ์ต์ˆ™ํ•˜๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ์“ฐ๋Š” ๊ฒƒ์ด ๋ฒ„๋ฆ‡์ด ๋๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์„ ํ†ตํ•ด ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” List ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ArrayList์™€ LinkedList์˜ ์ฐจ์ด๋ฅผ ํ™•์ธํ•ด๋ณด์ž. List List(์ดํ•˜ ๋ฆฌ์ŠคํŠธ)๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณตํ•˜์—ฌ ๋‹ด์„ ์ˆ˜ ์žˆ๊ณ , ๊ฐ์ฒด์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธฐ๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง• ๋•๋ถ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์กฐํšŒํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋ฅผ ํ™•์žฅํ•œ ํด๋ž˜์Šค๋กœ๋Š” Vector, ArrayList, LinkedList๊ฐ€ ์กด์žฌํ•œ๋‹ค. Method ๋ฉ”์†Œ๋“œ ์„ค๋ช… add(..

Programming/Java 2021.05.30

Week 4

Week 4 : ์ •์‹ ์—†์ด ์ง€๋‚˜๊ฐ„ ํ•œ ์ฃผ โœ๏ธ ๋ฒŒ์จ F-Lab์„ ์‹œ์ž‘ํ•œ์ง€ 4์ฃผ์ฐจ๊ฐ€ ๋˜์—ˆ๋‹ค. 4์ฃผ์ฐจ๋ผ๋ฉด ์–ด๋–ค ์˜๋ฏธ๋กœ ์ค‘์š”ํ•œ ์ฃผ์ธ๋ฐ, ๋‚˜๋Š” ๊ทธ ์ค‘์š”ํ•œ ํ•œ ์ฃผ๋ฅผ ์•ผ๊ทผ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์„ ๋ณด๋ƒˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ด์œ ๋กœ ๊ณ„ํš์˜ 2/5๋„ ํ•ด๋‚ด์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ์ •๋ง ๋งŽ์ด ์•„์‰ฌ์šด ํ•œ ์ฃผ๋‹ค. ๊ทธ๋งŒํผ ํ•™์Šตํ•œ ๋‚ด์šฉ์ด ๋ถ€์กฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ˜ํ† ๋ง ์ดˆ๋ฐ˜์—๋Š” ๋Œ€๋ถ€๋ถ„ ๊ฟ€ ๋จน์€ ๋ฒ™์–ด๋ฆฌ๊ฐ€ ๋˜์—ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๋ฉ˜ํ† ๋ง ํ›„๋ฐ˜์— ๋ณต์Šต ์ฐจ์›์œผ๋กœ ์˜ˆ์ „์— ํ•™์Šตํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์งˆ๋ฌธ ์ฃผ์…จ์„ ๋•Œ ๋‚˜๋ฆ„๋Œ€๋กœ ์ •๋ฆฌํ•ด์„œ ๋‹ต๋ณ€ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์ ์€ ์ข‹์€ ์ˆ˜ํ™•์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค! 1. ArrayList Java Collection Framework์— ์†ํ•˜๋ฉฐ, List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์ด๋‹ค. ArrayList ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด๋Š”๋ฐ, ๊ฐ ๊ณต๊ฐ„์— ์ธ๋ฑ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ์ธ..

์‚ถ/F-Lab 2021.05.27

F013 - Generic

โœ๏ธ ๊ตญ๋น„ ํ•™์›์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ Map ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋ญ”์ง€๋„ ๋ชฐ๋ž๋˜ ์‹œ์ ˆ, ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ Object ๋ฐฐ์—ด์— ๋‹ด์•„ ์ง์ ‘ ํ˜•๋ณ€ํ™˜์„ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋Š”๋ฐ, ์ด ๋•Œ ํ˜•๋ณ€ํ™˜์„ ์ž๊พธ ์ž˜๋ชปํ•ด์„œ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๊ณ„์† ๋‚ฌ๋˜ ๊ฒฝํ—˜์ด ์ƒ๊ฐ๋‚ฌ๋‹ค. ๊ณผ๊ฑฐ์— ๋งˆ์ฃผํ–ˆ๋˜ ๋ฌธ์ œ๋“ค์„ ์ƒ๊ธฐํ•˜๊ณ , ์™œ ํ•ด๋‹น ๊ฐœ๋…์ด ํ•„์š”ํ•œ์ง€ ์ด๋ฒˆ ํ•™์Šต์„ ํ†ตํ•ด ์•Œ์•„๊ฐ€๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์ž. Generic Generic์ด๋ž€ ๋‹จ์–ด์˜ ์‚ฌ์ „์  ์˜๋ฏธ๋Š” 'ํฌ๊ด„์ ์ธ' ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋‹จ์–ด ๋œป ๊ทธ๋Œ€๋กœ ํด๋ž˜์Šค์— ๋‹ด๊ธธ ๊ฐ์ฒด๋‚˜ ๋ฉ”์†Œ๋“œ, ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋ฅผ ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํฌ๊ด„์ ์ธ ์˜๋ฏธ์˜ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ด๊ธธ ๊ฐ์ฒด์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์—ด์–ด๋‘”๋‹ค๋Š” ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, Generic์€ ์ปดํŒŒ์ผ ํƒ€์ž„์—์„œ ํด๋ž˜์Šค์— ๋‹ด๊ธธ ๊ฐ์ฒด์˜ ํ˜•ํƒœ์— ํ•ด๋‹น ํด๋ž˜..

Programming/Java 2021.05.26

F012 - Annotation

โœ๏ธ ์ž๋ฐ”์˜ ์‹  ํ›„๋ฐ˜๋ถ€์— Annotation์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. 3์ฃผ์ฐจ ๋ฉ˜ํ† ๋ง ์ค‘, ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ Lombok์ด ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ์— ์–ด๋–ป๊ฒŒ ๊ฐœ์ž…ํ•˜๋Š”์ง€ ์—ฌ์ญค๋ณด์…จ๋Š”๋ฐ ์‘์šฉ์ด ๋˜์ง€ ์•Š์•„์„œ ๋Œ€๋‹ต๋„ ๋ชปํ•˜๋Š” ๊ฟ€๋จน์€ ๋ฒ™์–ด๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Annotation์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์ž! Annotation ์–ผ๋งˆ ์ „ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ ์ค‘, @Override Annotation(์ดํ•˜ ์–ด๋…ธํ…Œ์ด์…˜)์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. @Override ์–ด๋…ธํ…Œ์ด์…˜์€ ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ ์ƒ์„ฑ์ž ํ˜น์€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†๋ฐ›๋Š” ์ž์‹ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ ํ•  ๋•Œ, ํ•ด๋‹น ์ƒ์„ฑ์ž ํ˜น์€ ๋ฉ”์†Œ๋“œ๋Š” ์žฌ์ •์˜๋œ ์ƒํƒœํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด, @Override ์–ด๋…ธํ…Œ์ด์…˜์€ 1. ๋ฉ”์†Œ๋“œ ์˜์—ญ์—์„œ ์‚ฌ์šฉ ํ• ..

Programming/Java 2021.05.24

Week 3

Week 3 : ํŒŒ๋ฉด ํŒ” ์ˆ˜๋ก ์–ด๋ ค์šด ๊ฒƒ โœ๏ธ ์ด๋ฒˆ ์ฃผ๋Š” ์ฑ…์„ ํ†ตํ•ด ์ƒˆ๋กญ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ธฐ๋ณด๋‹จ 2์ฃผ์ฐจ์—์„œ ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์งˆ๋ฌธ ์ฃผ์…จ๋˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์˜๋ฌธ์ด ๋“ ๋‹ค. '๊ณผ์—ฐ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•œ ๊ฒƒ๋“ค์ด ๋‚ด ๊ฒƒ์ด ๋˜์—ˆ์„๊นŒ?' ์Šค์Šค๋กœ์—๊ฒŒ ๋ฌผ์—ˆ์„ ๋•Œ, ๋ฐ˜์€ ๋งž๊ณ  ๋ฐ˜์€ ํ‹€๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค. ํ‹€๋ ธ๋‹ค์˜ ์˜๋ฏธ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ ‘ํ•ด์„œ ์กฐ๊ธˆ์”ฉ ๋จธ๋ฆฌ์— ๊ทธ๋ ค์ง€๊ธฐ ์‹œ์ž‘ํ•œ ๋‹จ๊ณ„๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋“ค์—ฌ๋ด์•ผ ๋‚ด ๊ฒƒ์ด ๋  ์ˆ˜ ์žˆ์„๊นŒ?!๐Ÿฅฒ ์กฐ๊ธ‰ํ•ด์ง€์ง€๋ง๊ณ  ๋‹จ๋‹จํ•˜๊ฒŒ ์„ฑ์žฅ ํ•  ์ˆ˜ ์žˆ๋„๋ก, 4์ฃผ์ฐจ๋„ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค! 1. String ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ทธ ์ฐจ์ด String ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค. ๐Ÿ“ Literal๋กœ ์ง์ ‘ ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•˜์—ฌ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ๐Ÿ“ new ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑ์ž์— ..

์‚ถ/F-Lab 2021.05.20

F011 - java.lang.ref

โœ๏ธ ์ด์ „ ์‹œ๊ฐ„์— Garbage Collector์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ Strong, Weak, Soft, Phantom Reference ์— ๋Œ€ํ•ด ์ž ๊น ์Šค์ณ ์ง€๋‚˜๊ฐ”๋‹ค. ์ด๋•Œ, ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๊ณต๋ถ€ํ•˜์ง€ ๋ชปํ–ˆ๊ณ , ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ static์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค์€ ์–ด๋–ป๊ฒŒ GC ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š”์ง€, ์–ด๋–ป๊ฒŒ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์งˆ๋ฌธํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” GC๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ, ์œ„์˜ 4 ๊ฐ€์ง€๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์ž! java.lang.ref Java์—์„œ๋Š” ๊ฐ์ฒด์˜ ์ฐธ์กฐ์— ๋Œ€ํ•œ ์œ ํ˜•์„ 4๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ๋ถ„ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ GC๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ •๋ฆฌํ•ด์•ผ ํ• ์ง€ ์•ˆํ• ์ง€๋ฅผ ํŒ๋‹จํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ด๋‹น ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด GC ์ˆ˜ํ–‰์— ์–ด๋Š์ •๋„ ๊ด€์—ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ „์— Garbag..

Programming/Java 2021.05.19

F010 - System.out.println(), Logger

โœ๏ธ ์ฒ˜์Œ Java๋ฅผ ๊ณต๋ถ€ ํ•  ๋•Œ, "Hello World" ๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ฝ˜์†”์ฐฝ์— ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ๊ทผ๊นŒ์ง€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด System.out.println() ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ CTO๋‹˜๊ป˜์„œ System.out.println()๋ฅผ ์ง€์–‘ํ•˜๊ณ  Log ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์จ์„œ ํ™•์ธํ•˜๋ผ๊ณ  ํ•˜์…”์„œ ๋ฌป์ง€๋„ ๋”ฐ์ง€์ง€๋„ ์•Š๊ณ  Log ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ตœ๊ทผ ๋ฉ˜ํ† ๋ง ์ค‘์— ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์™œ ์‹ค์ œ ๊ฐœ๋ฐœ ์‹œ์— System.out.println()์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š”์ง€, ์™œ Log ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์งˆ๋ฌธํ•ด์ฃผ์…จ๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฐ์ง€ ์•Œ์•„๋ณด์ž! System.out.println() ํ•ด๋‹น ๋ช…๋ น์–ด๋Š” java.lang ํŒจํ‚ค์ง€์— ์†ํ•œ System ํด๋ž˜์Šค์˜ ํด๋ž˜์Šค..

Programming/Java 2021.05.19

F009 - Inheritance, Composition

โœ๏ธ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์งˆ๋ฌธํ•ด์ฃผ์…จ๋˜ ์ƒ์†๊ณผ ์กฐํ•ฉ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณผ๊นŒ ํ•œ๋‹ค. ์‚ฌ์‹ค Java ๋ผ๋Š” ์–ธ์–ด๊ฐ€ ์™œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ธ์ง€, ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ํ†ตํ•ด ๊ฐ€์ง€๋Š” ์ด์ ๊ณผ ๋‹จ์ , ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ๋Š”์ง€ ์ œ๋Œ€๋กœ ์•Œ์ง€ ๋ชปํ•œ ์ฑ„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. (์ง€๊ธˆ๊นŒ์ง€๋„!) ์ด๋ฒˆ ๊ธฐ๋ก์„ ํ†ตํ•ด ์ƒ์†๊ณผ ๊ตฌํ˜„, ๊ทธ๋ฆฌ๊ณ  ์กฐํ•ฉ(Composition)์„ ํŒŒํ—ค์ณ๋ณด์ž! ์ƒ์† (Inheritance) ์ƒ์†์€ ํด๋ž˜์Šค ๋ช… ์šฐ์ธก์— extends ๋ผ๋Š” ์˜ˆ์•ฝ์–ด๋ฅผ ํ†ตํ•ด ์ƒ์† ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , 1๊ฐœ์˜ ํด๋ž˜์Šค๋งŒ ์ƒ์† ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ™•์ธํ•ด๋ณด์ž. ๋จผ์ € Animal ํด๋ž˜์Šค๊ฐ€ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค๋กœ ์กด์žฌํ•˜๊ณ  ๊ทธ ์•„๋ž˜์— Mammal, Bird ํด๋ž˜์Šค, ์ด ๋‘ ํด๋ž˜์Šค์˜ ๊ฐ๊ฐ ์•„๋ž˜์— Dog, Whale, Eagle, Kiwi ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค..

Programming/Java 2021.05.18

F008 - Garbage Collector

โœ๏ธ ์ €๋ฒˆ ์‹œ๊ฐ„์— ๊ณต๋ถ€ํ–ˆ๋˜ JVM ๋‚ด์šฉ๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ์ด์œ ๋กœ Garbage Collector(์ดํ•˜ GC)์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Reference Type ๊ณผ Heap Memory๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ Heap Memory ๋‚ด์— ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ณณ์ด ์—†์„ ๋•Œ GC๊ฐ€ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์€ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์ดํ•ดํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ์‹œ์ ์—, ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ GC๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•ด์ฃผ๋Š”๊ฑธ๊นŒ? ์ด๋ฒˆ ์‹œ๊ฐ„์„ ํ†ตํ•ด ์•Œ์•„๋ณด์ž! Un-Managed Language, Managed Language ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค์€ Mangaed Language, Un-Managed Language ๋กœ ๋‚˜๋‰˜์–ด ๊ตฌ๋ถ„๋  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋‘˜์˜ ์˜๋ฏธ๋Š” ๋ฌด์—‡์„ ๋œปํ•˜๋Š”๊ฑธ๊นŒ? ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€์—ฌํ•ด์•ผ ํ•œ๋‹ค๋ฉด Un-Managed Language, ..

Programming/Java 2021.05.16