๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (454)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Java] ๋žŒ๋‹ค์‹, ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค

๋žŒ๋‹ค ์ฐธ๊ณ  : ''์ž๋ฐ”์˜ ์ •์„'' ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋žŒ๋‹ค์‹ Lambda expression JDK1.8๋ถ€ํ„ฐ ๋„์ž…๋œ ๊ฐœ๋…์ด๋‹ค. ๋žŒ๋‹ค์‹์˜ ๋„์ž…์œผ๋กœ ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์ธ ๋™์‹œ์— ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๊ฐ€ ๋˜์—ˆ๋‹ค. ๋žŒ๋‹ค์‹์ด๋ž€? : ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ์‹(expression)์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ. ๋žŒ๋‹ค์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋žตํ•œ ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋žŒ๋‹ค์‹์€ ์ต๋ช…ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์™€ ๋™๋“ฑํ•˜๋‹ค) ๋ฉ”์„œ๋“œ๋ฅผ ๋žŒ๋‹ค์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋ฉ”์„œ๋“œ ์ด๋ฆ„๊ณผ ๋ฆฌํ„ด๊ฐ’์ด ์—†์–ด์ง„๋‹ค. ๋•Œ๋ฌธ์— ๋žŒ๋‹ค์‹์„ '์ต๋ช… ํ•จ์ˆ˜ anonymous function' ๋ผ๊ณ ๋„ ํ•œ๋‹ค. (i) -> (int)(Math.random()*5)+1; int method() { return (int)(Math.random()*5) + 1; } ์œ„์˜ ๋žŒ๋‹ค์‹..

[Java] StringBuffer, StringBuilder ๊ทธ๋ฆฌ๊ณ  String / StringBuffer ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ / Buffer์˜ ๊ฐœ๋…

StringBuilder, StringBuffer ๊ทธ๋ฆฌ๊ณ  String ์ฐธ๊ณ  : ์ž๋ฐ”์˜ ์‹ , ์ž๋ฐ”์˜ ์ •์„ ์ž๋ฐ”API (๋กœ์น˜์˜ ์ถ”์ฒœ๐Ÿ‘), ๊ตฌ๊ธ€๋ง String๊ณผ StringBuilder, StringBuffer์˜ ์ฐจ์ด์  String์€ immutableํ•œ ๊ฐ์ฒด, ์ฆ‰ ๋ถˆ๋ณ€๊ฐ์ฒด์ด๋‹ค. ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด์ง€๋ฉด ๋” ์ด์ƒ ๊ทธ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด String๋ฌธ์ž์—ด A์— B๋ฅผ ๋”ํ•˜๋ฉด, A์— B๋ฅผ ๋”ํ•ด AB๊ฐ€ ๋œ๋‹ค (โŒ) AB๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ธฐ์กด ๊ฐ์ฒด A๋Š” ๋ฒ„๋ ค์ง„๋‹ค . (โญ•) ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ๋งŒ์•ฝ ํ•˜๋‚˜์˜ String์— ๊ณ„์† ๋”ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค๋ฉด ๊ณ„์† ๋ฒ„๋ ค์ง€๋Š” ์“ฐ๋ ˆ๊ธฐ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ String์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด StringBuffer์™€ StringBuilder์ด๋‹ค. Stri..

[Java] Value Object (VO) ๊ฐ’ ๊ฐ์ฒด

์ž๋ฐ” Value Object (VO) ๊ฐ’ ๊ฐ์ฒด ValueObject๋ž€?์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ValueObject๋Š” ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ฐ์ฒด์ด๋‹ค. ์ •ํ™•ํ•œ ์˜๋ฏธ๋Š” Value Object Pattern ์œผ๋กœ, ๊ฐ์ฒด๋ฅผ ๊ฐ’์ฒ˜๋Ÿผ ์“ธ ์ˆ˜ ์žˆ๋‹ค. Primitive Obsession - ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธํƒ€์ž…์„ ์“ฐ๋Š” ๋‚˜์œ ๊ด€์Šต. ๊ฐ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์กด ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ ๊ทธ ๊ฐ์ฒด๋ฅผ ์œ„ํ•œ ์ž๋ฃŒํ˜•์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. Value Object๋„ ๊ทธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. Value Object ๊ฐ’ ๊ฐ์ฒด ๋Š”.. ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์„ค์ •๋œ ํ›„์—๋Š” ๊ฒฐ์ฝ” ๋ณ€ํ•˜์ง€ ์•Š์Œ์„ ๋ณด์žฅํ•จ. (๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ) uniqueํ•œ ๊ตฌ๋ถ„์ž๊ฐ€ ์—†๋‹ค. ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒŒ ๋ฌด์˜๋ฏธํ•˜๊ธฐ ๋–„๋ฌธ. (๋‹จ์ˆœํ•œ ''๊ฐ’''์ด๊ธฐ ๋•Œ๋ฌธ์—..