๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Java15

Java ํด๋ž˜์Šค ์„ค๊ณ„ ์•ˆ์ „ํ•˜๊ฒŒ ์ž˜ ํ•˜๊ธฐ (feat. ์‘์ง‘๋„) ์ง€๋‚œ ํฌ์ŠคํŒ… Java ํด๋ž˜์Šค ์„ค๊ณ„ ์•ˆ์ „ํ•˜๊ฒŒ ์ž˜ ํ•˜๊ธฐ ํŽธ์—์„œ๋Š” ํด๋ž˜์Šค ์„ค๊ณ„์™€ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ ๋‚ด์šฉ๋“ค์„ ์‚ดํŽด๋ดค์—ˆ๋Š”๋ฐ์š”, ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ •์ƒ์ ์ธ ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ ๋ณ€์ˆ˜๋ฅผ ๋ถˆ๋ณ€์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๋™์ž‘ ์˜ˆ๋ฐฉํ•˜๊ธฐ ๋ถˆ๋ณ€์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋ฉ”์„œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ง€์—ญ ๋ณ€์ˆ˜๋„ ๋ถˆ๋ณ€์œผ๋กœ ๋งŒ๋“ค๊ธฐ ๋ฉ”์„œ๋“œ์— ์ž˜๋ชป๋œ ๊ฐ’์˜ ์ „๋‹ฌ์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์‘์ง‘๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํด๋ž˜์Šค ์„ค๊ณ„์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‘์ง‘๋„๋Š”, 'ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋กœ์ง ์‚ฌ์ด์˜ ๊ด€๊ณ„๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ฐ•ํ•œ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ' ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 1. static ๋ฉ”์„œ๋“œ ์˜ค์šฉ static ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŽธ๋ฆฌํ•จ์ด ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ๋Š” ์‘์ง‘๋„๊ฐ€ ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. static ๋ฉ”์„œ๋“œ.. 2023. 12. 20.
Java ํด๋ž˜์Šค ์„ค๊ณ„ ์•ˆ์ „ํ•˜๊ฒŒ ์ž˜ ํ•˜๊ธฐ ํด๋ž˜์Šค๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ ๋‹จ๊ณ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์—์„œ ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„ค๊ณ„๋ฅผ ์ž˜ ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋– ํ•œ ์ ๋“ค์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ง€ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค ์˜ˆ์ œ๋Š” ๊ธˆ์•ก์„ ๋‚˜ํƒ€๋‚ด๋Š” Money ํด๋ž˜์Šค๋ฅผ ํ† ๋Œ€๋กœ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ •์ƒ์ ์ธ ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ ์œ„์™€ ๊ฐ™์ด ๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์„ ๋ฐ›๋Š” ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ, ์œ„์˜ ๋ฌธ์ œ์ ์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž˜๋ชป๋œ ๊ฐ’์ด ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๊ฒฝ์šฐ ๊ฐ์ฒด๋Š” ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜์—ฌ ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ž˜๋ชป๋œ ๊ฐ’์ด ์œ ์ž…๋˜์ง€ ๋ชปํ•˜๊ฒŒ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธˆ์•ก (amount): 0 ์ด์ƒ์˜ ์ •์ˆ˜ ํ†ตํ™” (currency): null .. 2023. 12. 16.
Java Map - compute(), computeIfAbsent(), computeIfPresent() Map ์ธํ„ฐํŽ˜์ด์Šค์—์„œ Java 8 ๋ฒ„์ „์— ์ถ”๊ฐ€๋œ ์ผ๋ถ€ API์— ๋Œ€ํ•ด ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. putIfAbsent() compute() computeIfPresent() computeIfAbsent() getOrDefault() ํ•ด๋‹น ์ฝ”๋“œ๋Š” Map ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์ฒด์ธ HashMap์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. putIfAbsent(K key, V value) putIfAbsent() ๋ฉ”์„œ๋“œ๋Š” ๋„ค์ด๋ฐ์—์„œ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. Key๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ: Value ๋ณ€๊ฒฝ ์—†์ด ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” Key์˜ Value๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. Key๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ: Key์— ํ•ด๋‹นํ•˜๋Š” Value๋ฅผ ์ €์žฅํ•œ ํ›„ null์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. Map์˜ ๊ตฌํ˜„์ฒด์ธ HashMap์„ ๋ณด๋ฉด putVal() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ง„ํ–‰๋˜๊ณ ,.. 2023. 3. 13.
EasyRandom - Java beans๋ฅผ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๐Ÿ”— EasyRandom - Java beans๋ฅผ ๋žœ๋ค ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ณดํ†ต ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ฐ์ฒด๋ฅผ ์ž„์˜๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ํ•„๋“œ๊ฐ€ 1~2๊ฐœ๋ผ๋ฉด ์ƒ๊ด€์—†๊ฒ ์ง€๋งŒ, ์กฐ๊ธˆ ๋งŽ์•„์ง„๋‹ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์€๊ทผ(?) ๊ท€์ฐฎ์€๋ฐ์š”, ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ฐ ํ•„๋“œ์— ๋งž๋Š” ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฝค๋‚˜ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์„ ๋•Œ, ๊ฐ์ฒด์˜ ํ•„๋“œ๋ฅผ ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ EasyRandom ์ž…๋‹ˆ๋‹ค. (์‚ฌ์šฉ๋ฒ•๋„ ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜๋‹ˆ, ์ž์„ธํ•œ ๊ฑด ๊นƒํ—ˆ๋ธŒ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.) ๐Ÿ”— ์‚ฌ์šฉ๋ฒ• ์˜์กด์„ฑ ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ˆ์ด๋“ค์€ testImplementation์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Member ํด๋ž˜์Šค Post ํด๋ž˜์Šค EasyRandom Cust.. 2023. 1. 27.
[Java DeepDive] - Map(HashMap) 1. ๊ฐœ๋…, ํ•„๋“œ, ์ƒ์„ฑ์ž ๐Ÿ”— Map(HashMap) Java์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” List์™€ Map์ด ์•„๋‹๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋””์—์„œ๋“  ๊ต‰์žฅํžˆ ๋งŽ์ด ํ™œ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ €๋˜ํ•œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ์—๋Š” Map ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋…๊ณผ ์ œ๊ณต๋˜๋Š” API๋“ค, ๊ตฌํ˜„์ฒด์ธ HashMap์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฒ„์ „์€ Java 11์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.) Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” Collection ํ”„๋ ˆ์ž„์›Œํฌ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํ‚ค์™€ ๊ฐ’์„ ํ•˜๋‚˜์˜ ์Œ์œผ๋กœ ์ €์žฅํ•˜๋Š” Key-Value ํ˜•์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. Key๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ฐ’(Value)์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ Map ์ธํ„ฐํŽ˜์ด์Šค์˜ key, value๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. key๋Š” ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, value๋Š” ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ .. 2022. 11. 27.
[Java DeepDive] - List (ArrayList) ๐Ÿ“Ž List (ArrayList) ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Java์˜ Collection Framework ์ค‘ ํ•˜๋‚˜์ธ List์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. List ์ธํ„ฐํŽ˜์ด์Šค๋Š” Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Collection ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์‚ญ์ œ, ์‚ฝ์ž… ๊ธฐํƒ€ ๋“ฑ๋“ฑ์˜ ๋กœ์ง์„ ๋ณด๋‹ค ํŽธํ•˜๊ฒŒ API๋กœ ์ž‘์„ฑํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋„์™€์ฃผ๋Š” ์ž๋ฐ”์˜ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Collection์€ collection hierarchy์˜ ์ตœ์ƒ์œ„ ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ ํ•˜์œ„ ์ธํ„ฐํŽ˜์ด์Šค์ธ List, Queue, Set ๋“ฑ์ด ์ด๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ๊ณ , List ์ธํ„ฐํŽ˜์ด์Šค๋Š” ArrayList, Vector, LinkedList์˜ ๊ตฌํ˜„์ฒด๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” List ์ธํ„ฐํŽ˜.. 2022. 10. 29.
[Java DeepDive] - String (2) ๋‚ด์žฅ ํ•จ์ˆ˜ ๐Ÿ“Ž String (2) - ๋‚ด์žฅ ํ•จ์ˆ˜ ์•ˆ๋…•ํ•˜์„ธ์š”, ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” String - ๋ฌธ์ž์—ด ์ƒ์„ฑ ๊ด€๋ จํ•ด์„œ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ์—๋Š” String ํด๋ž˜์Šค์— ์กด์žฌํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค ์ค‘ ์ผ๋ถ€ ๋ฉ”์„œ๋“œ๋“ค์— ๋Œ€ํ•ด ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฒ„์ „์€ Java 11์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.) String ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉ”์„œ๋“œ๋“ค์€ ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ต‰์žฅํžˆ ๋งŽ์ด ์กด์žฌํ•˜๋Š”๋ฐ์š”, ๊ฐœ์ธ์ ์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ยท String.length() @Stable private final byte[] value; ... static final boolean COMPACT_STRINGS; static { COMPACT_STRINGS = true; } ... public int lengt.. 2022. 10. 23.
[Java DeepDive] - String (1) ๋ฌธ์ž์—ด ์ƒ์„ฑ ๐Ÿ“Ž String (1) - ๋ฌธ์ž์—ด ์ƒ์„ฑ ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ž… ์ค‘ ํ•˜๋‚˜์ธ ๋ฌธ์ž์—ด(String)์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฒ„์ „์€ Java 11์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.) String ๋ฌธ์ž์—ด ์ƒ์„ฑ - new, literal ๋ณดํ†ต ์ž๋ฐ”์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ, String์˜ ๊ฒฝ์šฐ ๋ฆฌํ„ฐ๋Ÿด(literal)์„ ํ†ตํ•ด ๊ฐ’์„ ๋ฐ”๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. public static void main(String[] args) { final String str1 = "JuHyun"; // [1] final String str2 = "JuHyun"; // [2] final String str3 = new String("JuHyun"); .. 2022. 10. 10.
[Java, ๋””์ž์ธ ํŒจํ„ด] - ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด(Singleton Pattern) ๐Ÿ“Ž ๊ธ€๋˜ 6๊ธฐ ํฌ์ŠคํŒ… 1. ๋ฏธ์น˜๋„๋ก ๋”์› ๋˜ 7์›”์˜ ํšŒ๊ณ  2. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•  ๋•Œ์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ 3. Spring AOP - (1) ํ”„๋ก์‹œ ํŒจํ„ด, ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด 4. [MySQL] - ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level) 5. Spring AOP - (2) AOP ๊ฐœ๋… ๋ฐ ์‹ค์Šต 6. ์ธํ…”๋ฆฌ์ œ์ด(IntelliJ) - ๋””๋ฒ„๊น…(Debugging) ํ•˜๊ธฐ 7. [Java, ๋””์ž์ธํŒจํ„ด] - ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด(Singleton Pattern) 8. ์›”๊ฐ„ ์ฝ”๋“œ๋ฆฌ๋ทฐ Ver_0.1: ์ปค๋ฆฌ์–ด ์„ฑ์žฅ CODE ์„ธ๋ฏธ๋‚˜ ์ •๋ฆฌ 9. ํฌ์ŠคํŠธ๋งจ(API ํ…Œ์ŠคํŠธ) ํ™œ์šฉํ•˜๊ธฐ 10. ๋œป๊นŠ์€ 2021๋…„ ํšŒ๊ณ  ๐Ÿ“Ž ๋””์ž์ธ ํŒจํ„ด - ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด(Singleton Pattern) ํฌ์ŠคํŒ…์—์„œ ์ž‘์„ฑํ•œ ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜.. 2021. 10. 24.
[Java] - ๊นŠ์€ ๋ณต์‚ฌ(Deep Copy) vs ์–•์€ ๋ณต์‚ฌ(Shallow Copy) ๐Ÿ“Ž Java ๊นŠ์€ ๋ณต์‚ฌ(Deep Copy)์™€ ์–•์€ ๋ณต์‚ฌ(Shallow Copy) ์•ˆ๋…•ํ•˜์„ธ์š”! ์ด๋ฒˆ์— ์ •๋ฆฌํ•  ๋‚ด์šฉ์€ ์ž๋ฐ”์—์„œ์˜ ๊นŠ์€ ๋ณต์‚ฌ์™€ ์–•์€ ๋ณต์‚ฌ ์ž…๋‹ˆ๋‹ค. ๊นŠ์€ ๋ณต์‚ฌ์™€ ์–•์€ ๋ณต์‚ฌ๋ผ๋Š” ๊ฐœ๋…์€ ํ‰์†Œ์— ์ ‘ํ•œ์ ์ด ๊ฝค ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋Š˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์•„๋ฌด๋Ÿฐ ์˜์‹ฌ์—†์ด(?) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปฌ๋ ‰์…˜ List๋ฅผ ์–•์€ ๋ณต์‚ฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ๊ณ , ์ด์— ๋”ฐ๋ผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋‘ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์–ด ์ƒ๊ฐํ–ˆ๋˜ ์•„์›ƒํ’‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์™€์„œ ์•ฝ๊ฐ„ ์–ด๋ฆฌ๋‘ฅ์ ˆํ•œ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿค” List list = new ArrayList(); ... List temp = list; // shallow copy ํ•ด๋‹น ๋ฌธ์ œ์ ์€ ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ์š”, ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ด์ง€๋งŒ ํ™•์‹คํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ƒ ๊นŠ์€ ๋ณต์‚ฌ.. 2021. 7. 30.
๋ฐ˜์‘ํ˜•