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

์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ•2

[Chap 5] ์ฝ”ํ‹€๋ฆฐ์˜ ์œ ์šฉํ•œ ๊ธฐ๋ฒ• ๋žŒ๋‹ค ํ•จ์ˆ˜์™€ ๊ณ ์ฐจ ํ•จ์ˆ˜ ๋žŒ๋‹ค ํ•จ์ˆ˜(๋žŒ๋‹ค์‹) - ์ต๋ช… ํ•จ์ˆ˜(anonymous funciton) ์ •์˜ ๊ธฐ๋ฒ• - ์ฃผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ฐจ ํ•จ์ˆ˜์— ๋งŽ์ด ์‚ฌ์šฉ * ๊ณ ์ฐจํ•จ์ˆ˜ : ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๊ฑฐ๋‚˜ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๋žŒ๋‹ค ํ•จ์ˆ˜ ์„ ์–ธ๊ณผ ํ˜ธ์ถœ fun ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์—†์Œ. -> ์ฃผ๋กœ ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•ด ์‚ฌ์šฉ { ๋งค๊ฐœ๋ณ€์ˆ˜ -> ํ•จ์ˆ˜ ๋ณธ๋ฌธ } * ๋žŒ๋‹ค ํ•จ์ˆ˜ ์‚ฌ์šฉ ๊ทœ์น™ - ์ค‘๊ด„ํ˜ธ { } ๋กœ ํ‘œํ˜„ - { } ์•ˆ์— ํ™”์‚ดํ‘œ(->)๊ฐ€ ์žˆ์œผ๋ฉฐ ํ™”์‚ดํ‘œ ์™ผ์ชฝ์€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์˜ค๋ฅธ์ชฝ์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ - ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ์˜ ๋งˆ์ง€๋ง‰ ํ‘œํ˜„์‹ // ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž… val sum = {no1: Int, no2: Int -> no1 + no2} sum(10, 20) // ๋žŒ๋‹ค .. 2021. 11. 23.
[Chap 3] ์ฝ”ํ‹€๋ฆฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ฝ”ํ‹€๋ฆฐ ์–ธ์–ด ์†Œ๊ฐœ ์ฝ”ํ‹€๋ฆฐ์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ - ์ฝ”ํ‹€๋ฆฐ์ด๋ž€? JetBrains์—์„œ ์˜คํ”ˆ ์†Œ์Šค ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. - ์ž๋ฐ”์˜ ๊ฐ€์ƒ๋จธ์‹ ์ธ JVM์— ๊ธฐ๋ฐ˜์„ ๋‘” ์–ธ์–ด. ์ฝ”ํ‹€๋ฆฐ์˜ ์žฅ์  1) ํ‘œํ˜„๋ ฅ๊ณผ ๊ฐ„๊ฒฐํ•จ(expressive and concise) : ์ž๋ฐ”๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ 2) ์•ˆ์ „ํ•œ ์ฝ”๋“œ(safer code) : ์ฝ”ํ‹€๋ฆฐ์€ Null safety๋ฅผ ์ง€์› -> ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ์ฒด๋Š” ๋„ ์ƒํƒœ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋•Œ NullPointerException์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ nullable๊ณผ not null๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์„ ์–ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— null๊ณผ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ 3) ์ƒํ˜ธ ์šด์šฉ์„ฑ(interoperable) : ์ฝ”ํ‹€๋ฆฐ์€ ์ž๋ฐ”์™€ 100% ํ˜ธํ™˜. ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ํ˜ผ์šฉ ๊ฐ€๋Šฅ .. 2021. 11. 19.