์ฝํ๋ฆฐ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ - ์ ๋ฌธํธ
์ฝํ๋ฆฐ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ์๋ฅผ ์ํ ๊ฐ์์ ๋๋ค. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ด๋ จ ๋ฌธ๋ฒ์ ์๋ ค๋๋ฆฐ ํ ๋ถ์ํจ๊ณผ(Side Effect)์ ์์ํจ์(Pure Function), ์ฐธ์กฐํฌ๋ช ์ฑ(Referential Transparency)์ด ๋ฌด์์ธ์ง ์ ์ ์๊ฒ ๋๊ณ , ํจ์๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ๋ฒ ๋ฐ ์ค๋ฌด์์ ๊ฐ๋จํ ํ์ฉํด๋ณด๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์๊ฐ์ 109๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

๋ค๋ฅธ ์๊ฐ์๋ค์ด ์์ฃผ ๋ฌผ์ด๋ณด๋ ์ง๋ฌธ์ด ๊ถ๊ธํ์ ๊ฐ์?
- ๋ฏธํด๊ฒฐ
git ์ ๋ก๋ ๊ฐ๋ฅํ๊ฐ์?
๊ฐ์ ๋ค์ผ๋ฉฐ ํ์ตํ๋ ๋ด์ฉ(๊ฐ์ ๊ด๋ จ ์ฝ๋)๋ฅผ ๊ฐ์ธ git์ ์ ๋ก๋ ํ์ฌ๋ ๋๋์?
kotlinํจ์ํ-ํ๋ก๊ทธ๋๋ฐ๊ฐ์ฒด์งํฅfunctional์ ํ์ฌ
ใป
5๋ฌ ์
0
40
1
- ๋ฏธํด๊ฒฐ
API ์๋ต ์ฒ๋ฆฌ ์ปค์คํฐ๋ง์ด์ง vs Result ํด๋์ค ํ์ฉ์ ์ฐจ์ด
์๋ ํ์ธ์! ์ ๋ค๋ฆญ ํ์ฉ ์ค์ฌ๋ก ํ์ต ์๋ฃ ์ค API ์๋ต ์ฒ๋ฆฌ์ ๋ํ ๋ด์ฉ์ด ์์ด์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.API ์๋ต ์ฒ๋ฆฌ ์ ApiResponse ์ ๊ฐ์ sealed class๋ฅผ ๋ง๋ค์ด
kotlinํจ์ํ-ํ๋ก๊ทธ๋๋ฐ๊ฐ์ฒด์งํฅfunctional์ ํ๋ฏผ
ใป
์ผ ๋ ์
1
131
2
- ํด๊ฒฐ
๋ฌธ์ ์ง 4 ํด์ฆ 4๋ฒ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์. ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ์ ๋งคํ๋ค๊ณ ์๊ฐ๋๋ ๋ถ๋ถ์ด ์์ด์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.ํด์ฆ 4์์ b ๋ฅผ ๋ณด๋ฉด, b. push ๋ฉ์๋๋ Any ํ์ ์ ๊ฐ๋ ๋ฐ์ ์ ์๋ค.๋ผ๊ณ ์ ํ์๊ณ , Stack
kotlinํจ์ํ-ํ๋ก๊ทธ๋๋ฐ๊ฐ์ฒด์งํฅfunctional์ ํ๋ฏผ
ใป
์ผ ๋ ์
1
67
2
- ๋ฏธํด๊ฒฐ
์๋ ํ์ธ์ ๊ฐ์ฌ๋, discountCache ์ฒ๋ฆฌ ๋ฐฉ์์ ๋ํด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
@Component class DiscountAdapter { private val discountCache = CacheUtil() fun getDisco
kotlinํจ์ํ-ํ๋ก๊ทธ๋๋ฐ๊ฐ์ฒด์งํฅfunctionalKoorunG
ใป
์ผ ๋ ์
1
61
1
- ๋ฏธํด๊ฒฐ
[๋ฌธ์ ์ง] 6_ํจ์๋ฅผ ์๋ต์ผ๋ก ๋ฐ๊ธฐ - 1๋ฒ๋ฌธ์ ์ค๋ฅ
์๋ ํ์ธ์, [๋ฌธ์ ์ง] 6_ํจ์๋ฅผ ์๋ต์ผ๋ก ๋ฐ๊ธฐ 1๋ฒ๋ฌธ์ ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค. createMultiplier ํจ์ ํ๋ผ๋ฏธํฐ๋ก factor๊ฐ ๋์ด์ผ ํ๋๋ฐ 2๋ก ๋ค์ด์์๋ค์. ๋ฌธ์ ์ง ํด์ค ์์ ๋ณด๋ฉด
kotlinํจ์ํ-ํ๋ก๊ทธ๋๋ฐ๊ฐ์ฒด์งํฅfunctionalCountry
ใป
1
103
1
- ๋ฏธํด๊ฒฐ
์ค์ต ์๋ฃ ๋ถ๋ถ ์ ๋ก๋ ๋ค์ ๋ถํ๋๋ฆฝ๋๋ค!
์ง๊ธ ์ฌ๋ ค์ฃผ์ ์ค์ต ์๋ฃ๊ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค! ์์ถ์ ํด์ ํ๋ฉด .idea ๋๋ ํฐ๋ฆฌ๋ง ์กด์ฌํ๊ณ ๋ด๋ถ ์ฝ๋๋ ์๋๋ฐ ์ด ํ์ธ ๋ถํ๋๋ ค์!
kotlinํจ์ํ-ํ๋ก๊ทธ๋๋ฐ๊ฐ์ฒด์งํฅfunctional๋ฏผ์ค์
ใป
1
97
1






