F-Lab 32

F016 - File, I/O, Stream

โœ๏ธ ์‹ค๋ฌด์—์„œ ์—‘์…€์ด๋‚˜ CSV ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์—…๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ๋Š”๋ฐ, ์—‘์…€์˜ ๊ฒฝ์šฐ Apache ์žฌ๋‹จ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ–ˆ๊ณ , CSV์˜ ๊ฒฝ์šฐ ByteArrayInputStream ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์‹œ์—๋Š” ๊ทธ๋ƒฅ ์ด ํด๋ž˜์Šค๋ฅผ ์“ฐ๋ฉด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ/์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ์–ด๋–ป๊ฒŒ ๋‹ค์šด๋กœ๋“œ/์—…๋กœ๋“œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์ง€ ๋ชปํ–ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์„ ํ†ตํ•ด I/O, File, I/O Stream ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž! File java.io ํŒจํ‚ค์ง€์— ์†ํ•˜๋Š” ํด๋ž˜์Šค๋กœ ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ํฌ๊ด„์ ์ธ ํด๋ž˜์Šค์ด๋‹ค. ๋•Œ๋ฌธ์— ๋ชฉ์ ์˜ ๋ชจํ˜ธ์„ฑ ๋•Œ๋ฌธ์— Java 7 ๋ถ€ํ„ฐ NIO2 ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ Files ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€๋˜๋Š”๋ฐ, ์ด๋Š” File ํด๋ž˜์Šค ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”์†Œ..

Programming/Java 2021.06.14

Week 6

Week 6 : ๋ถ€์กฑํ•œ CS โœ๏ธ 6์›” ๋‘˜์งธ ์ฃผ ๋ฉ˜ํ† ๋ง์„ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋Š” ์ž๋ฐ”์˜ ์‹ ์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์˜€๋Š”๋ฐ, ๊ฐ€์กฑ ์—ฌํ–‰์ด๋ž‘ ์ผ์ •์ด ๊ฒน์ณ์„œ ์ตœ๋Œ€ํ•œ ์—ฌํ–‰์ง€์—์„œ ๊ณต๋ถ€ํ–ˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ–ˆ๋˜ ํ•œ ์ฃผ์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ ์ฑ•ํ„ฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ CS ์ง€์‹๊ณผ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ๋น ๋ฅด๊ฒŒ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ด๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ํ•œ ๋ฒˆ์— ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ํ•ด๋‹น ์ฑ•ํ„ฐ์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š” ๋๋‹ค. ๊ทผ๋ฐ ์ •์ž‘ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๋“ค์ด ๋‹ค ๋‚ด ๊ฒƒ์ด ๋˜์—ˆ๋‚˜? ๋˜๋Œ์•„๋ณด๋ฉด ๋˜ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜๋„ ์˜ค๋Š˜ ๋ฉ˜ํ† ๋ง ๋‚ด์šฉ์„ ์žŠ์ง€ ์•Š๋„๋ก ์ •๋ฆฌํ•ด๋ณด์ž! 1. Synchronized ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ํ•ด๋‹น ์ œ์–ด์ž๊ฐ€ ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ๋‚˜ ๋ธ”๋ก์— ์ ‘๊ทผ ์‹œ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์Šค๋ ˆ๋“œ ๊ฐ„ ๋™..

์‚ถ/F-Lab 2021.06.11

Week 5

Week 5 : ์ดํ•ดํ•˜๋Š”๋ฐ ํ•œ ์„ธ์›” โœ๏ธ 6์›” ์ฒซ์งธ ์ฃผ ๋ฉ˜ํ† ๋ง์„ ์‹œ์ž‘ํ–ˆ๋‹ค! ์ง€๊ธˆ๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ดํ•ด์˜ ๋น„์ค‘๋ณด๋‹ค๋Š” ๋ธ”๋กœ๊ทธ์™€ ๋…ธ์…˜์— ๊ธ€์„ ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค๋Š” ๊ฐ•๋ฐ•์ด ์ ์  ์‹ฌํ•ด์ง€๋Š” ๊ฒƒ์„ ๋Š๊ปด์„œ ์ด๋ฒˆ ์ฃผ์—๋Š” ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ๋ณด๋‹จ ์•„์ดํŒจ๋“œ์— ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ์กฐ๊ธˆ ๋” ์ดํ•ดํ•œ ๋’ค์— ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ํ•œ ์ฃผ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒŒ์‹œ๊ธ€๋„ ํ•˜๋‚˜๋ฐ–์— ์ž‘์„ฑํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ, ๊ทธ ๊ธ€๋„ ์ˆ˜์ •ํ•  ๋‚ด์šฉ์ด ์‚ฐ๋”๋ฏธ๋‹ค. ์ฑ…์„ ๋น ๋ฅด๊ฒŒ ์ฝ์œผ๋ฉด์„œ 5์ฃผ์ฐจ์— ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค! ์ด๋ฒˆ ์ฃผ๋Š” Collection Framework์— ๋Œ€ํ•ด ์ง‘์ค‘์ ์œผ๋กœ ๊ณต๋ถ€ํ–ˆ๊ณ , Set๊ณผ Map ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค. (์Šค๋ ˆ๋“œ๋Š” ๋ง›๋ณด๊ธฐ ์Šคํ‘ผ์ •๋„๋งŒ) 1. Generic Type Erasure ๊ธฐ์กด์—๋Š” ํƒ€์ž… ์ฒดํฌ๋ฅผ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์—์„œ ์ˆ˜ํ–‰ํ•ด์„œ ์ž˜๋ชป๋œ ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ… ํ–ˆ์„ ๊ฒฝ์šฐ Cla..

์‚ถ/F-Lab 2021.06.03

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