SlideShare a Scribd company logo
Scala ๋‚ด๋ถ€ ํ•จ์ˆ˜
๋ฐ ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜ ์ฒ˜๋ฆฌ
myjlms99@gmail.com
๋ธ”๋ก ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
๋ธ”๋ก ๋‚ด์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์„œ ์ฒ˜๋ฆฌ
ํŒŒ์ด์ฌ ํ•จ์ˆ˜๋Š” ์‹ค์ œ ๋ธ”๋ก ์ฒ˜๋ฆฌ๋˜๋Š” ํ•˜๋‚˜์˜
๋ณ€์ˆ˜๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ์‹ค์ œ ๋ณ€์ˆ˜์— ๋ธ”๋ก์„ ์ž‘
์„ฑํ•ด์„œ ์ „๋‹ฌํ•ด๋„ ๋žŒ๋‹คํ•จ์ˆ˜ ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜
๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜
๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”
๋กœ ์‹คํ–‰
ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
ํ•จ์ˆ˜์™€ ์ธ์ž๋ฅผ ๊ฒฐ๊ณผ๋กœ
์ฃผ๋ฉด ํ•จ์ˆ˜๊ฐ’์ด ์„ธํŒ…๋œ
๋‹ค
๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜ ํ˜ธ์ถœ
์ „์—ญ๊ณผ ์ง€์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค
๋ชจ๋“ˆ์€ ๊ทธ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค
์— ๋Œ€ํ•œ ์ •๋ณด ๋ฐ ๋‹ค์–‘ํ•œ ๋ณ€์ˆ˜๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค.
ํ•จ์ˆ˜์— ์—†๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š” ๋ชจ๋“ˆ
์— ์žˆ๋Š” ๊ฒƒ์„ ์ฐธ์กฐํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค
๋ชจ๋“ˆ ์ „์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค
ํ•จ์ˆ˜ ์ง€์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค
์ฐธ์กฐ
๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜ ์‚ฌ์šฉ
๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜๋„ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ
์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ ์™ธ๋ถ€๋กœ ์ „๋‹ฌ
๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜๋„ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ
์™ธ๋ถ€๋กœ ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜๋กœ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
Nested function
๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ๋ฐฉ๋ฒ•
ํ•จ์ˆ˜์ •์˜ํ•˜๊ณ  ๊ทธ ๋‚ด๋ถ€์— ๋‚ด๋ถ€ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ• 
์ˆ˜ ์žˆ๋‹ค. ๋™์ผํ•œ ํ•จ์ˆ˜๋ช…์œผ๋กœ ์ •์˜ํ•ด๋„ ์‹ค์ œ
์ž์‹ ์˜ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
def ํ•จ์ˆ˜๋ช…[ํƒ€์ž…๋งค๊ฐœ๋ณ€์ˆ˜](๋งค๊ฐœ๋ณ€์ˆ˜) : ๋ฐ˜ํ™˜๊ฐ’ = {
def ๋‚ด๋ถ€ํ•จ์ˆ˜๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜) : ๋ฐ˜ํ™˜๊ฐ’ = {๋กœ์ง}
}
๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ๋ฐ ์‹คํ–‰
์™ธ๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜
๊ณ  ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‚ด๋ถ€ํ•จ์ˆ˜์— ์ „๋‹ฌ
ํ•ด์„œ ์‹คํ–‰ํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•˜๋ฉด ๋‚ด๋ถ€ํ•จ์ˆ˜ ๊ฒฐ๊ณผ๊ฐ’
์ด ์™ธ๋ถ€๋กœ ์ „๋‹ฌ๋œ๋‹ค.
๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜
ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์„œ ์‹คํ–‰๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋™
์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•ด๋„ ํ•จ์ˆ˜ ํƒ€์ž…์„ ์ฒดํฌํ•  ๋•Œ ๋งค
๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ธ์‹๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค. ๋™
์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ž‘์„ฑํ•ด๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.
๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ๋žŒ๋‹คํ•จ์ˆ˜ ์‚ฌ์šฉ
๋‚ด๋ถ€ ํ•จ์ˆ˜๋กœ ๋žŒ๋‹คํ•จ์ˆ˜ ์‚ฌ์šฉ
๋‚ด๋ถ€์— ๋žŒ๋‹คํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ์‹คํ–‰ํ•ด์„œ
์ฒ˜๋ฆฌํ•œ๋‹ค.
๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ „๋‹ฌ
๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ›„ ์ „๋‹ฌ: ํ•จ์ˆ˜ 1
ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด ์‹ค์ œ ๋‚ด๋ถ€ํ•จ
์ˆ˜๊ฐ€ ์™ธ๋ถ€๋กœ ์ „๋‹ฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ
_๋ฅผ ๋ถ™์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค
๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ›„ ์ „๋‹ฌ: ํ•จ์ˆ˜ 2
๋ฆฌํ„ด ํƒ€์ž…๊นŒ์ง€ ๋ช…ํ™•ํžˆ ์ •์˜๊ฐ€ ๋œ ๊ฒฝ์šฐ๋Š” ๋‚ด
๋ถ€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์ „๋‹ฌํ•ด๋„ ์‹ค์ œ ํ•จ์ˆ˜ ํƒ€์ž…
์ด๋ฏ€๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.
๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ›„ ์ „๋‹ฌ: ๋žŒ๋‹คํ•จ์ˆ˜
๋‚ด๋ถ€ ํ•จ์ˆ˜์— ๋žŒ๋‹ค๋ฅผ ์ง€์ •ํ•ด์„œ ํ‘œํ˜„์‹ ๊ฒฐ๊ณผ๊ฐ’
์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋‚ด๋ถ€ ํ•จ์ˆ˜
์ธ ๋žŒ๋‹คํ•จ์ˆ˜๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
๋‚ด๋ถ€ํ•จ์ˆ˜์—์„œ ๋ชจ๋“ˆ/์™ธ๋ถ€ํ•จ์ˆ˜
๋ณ€์ˆ˜ ์ฐธ์กฐ
๋‚ด๋ถ€ํ•จ์ˆ˜์—์„œ ๋ชจ๋“ˆ ๋ณ€์ˆ˜ ์ฐธ์กฐ
ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์—†๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ์™ธ๋ถ€ ํ•จ
์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—†์œผ๋ฉด ๋ชจ๋“ˆ์„ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฒ˜
๋ฆฌํ•œ๋‹ค.
ํ•จ์ˆ˜ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜์—
๋Œ€ํ•œ ํ™•์ •
ํƒ€์ž… ๋งค๊ฐœํ™”
ํŠน์ • ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ์ด ๊ฐ์ฒด๊ฐ€ ์†ํ•œ ํด๋ž˜
์Šค ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋‚˜
ํด๋ž˜์Šค์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋“ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜ํ™”ํ•œ ํƒ€์ž…์€ List[String] = List("a", "b")์™€ ๊ฐ™์ด [] ์•ˆ์—
ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค€๋‹ค.
ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜ ์ •์˜ ๋ฐฉ๋ฒ•
ํ•จ์ˆ˜๋ช… ๋‹ค์Œ์— ๋Œ€๊ด„ํ˜ธ์™€ ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜
์žˆ๊ณ  ์ด ํƒ€์ž…์„ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ง€์ •ํ•˜๋ฉด ์‹ค์ œ
์ถ”๋ก ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœํ•  ๋•Œ ๊ฒฐ์ •๋œ๋‹ค.
def ํ•จ์ˆ˜๋ช…[ํƒ€์ž…๋งค๊ฐœ๋ณ€์ˆ˜](๋งค๊ฐœ๋ณ€์ˆ˜) : ๋ฐ˜ํ™˜๊ฐ’ = {
์‹ค์ œ ๋กœ์ง
}
ํƒ€์ž… ์ถ”๋ก  ๊ธฐ์ค€
ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํƒ€์ž…์ถ”๋ก ์€ ์‹ค
์ œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ฒฐ์ •๋˜๋ฉฐ ์‹ค์ œ ๋ฐ˜ํ™˜๊ฐ’๋„
๊ฐ ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
ํƒ€์ž… ์ฒ˜๋ฆฌ ๊ธฐ์ค€
ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜์ง€๋งŒ ์‹ค์ œ ํƒ€์ž…์ด
ํ™•์ •๋˜์ง€ ๋ชปํ•˜๋ฉด ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜
์ง€์ •ํ•  ๋•Œ ์‹ค์ œ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์œผ๋กœ ํ•œ์ •ํ•ด์ค˜
์•ผ ํ•œ๋‹ค.
ํ•จ์ˆ˜ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜
(์ œ๋„ˆ๋ฆญ ์ฒ˜๋ฆฌ)
์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜: ๋‹จ์ผ ์ธ์ž
๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํƒ€์ž… ๋งค๊ฐœ
๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ˜ธ์ถœ์‹œ์—
์‹ค์ œ ๋งคํ•‘๋˜๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜: ๋‘๊ฐœ ์ธ์ž
๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํƒ€์ž… ๋งค๊ฐœ
๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ˜ธ์ถœ์‹œ์—
์‹ค์ œ ๋งคํ•‘๋˜๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜ : ํ•จ์ˆ˜ ์ „๋‹ฌ ์ฒ˜๋ฆฌ
์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์—
๋Œ€ํ•œ ํƒ€์ž…์„ ๋ณ„๋„๋กœ ๋งค๊ฐœํ™”ํ•˜๊ณ  ์‹ค์ œ ๋ณ„๋„
๋กœ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค
๋‘๊ฐœ ํƒ€์ž…์„ ๋ฐ›๊ณ  ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ
๋‘๊ฐœ์˜ ํƒ€์ž…์„ ๋ฐ›์•„ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€
๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ๋” ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜
๋ฉด ๋‘๊ฐœ์˜ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
์™ธ๋ถ€ ํ•จ์ˆ˜ ์ œ๋„ˆ๋ฆญ ํƒ€์ž… ํ™œ์šฉ
์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ ๋ชจ๋“ˆ ๋ณ€์ˆ˜ ์ฐธ์กฐ
์™ธ๋ถ€ ํ•จ์ˆ˜์—์„œ ํƒ€์ž…
ํŠน์ • ํƒ€์ž…์„ ์ง€์ • ์ฒ˜๋ฆฌ
๊ณต๋ณ€์„ฑ, ๋ฐ˜๊ณต๋ณ€์„ฑ, ๋ฌด๊ณต๋ณ€์„ฑ
๊ณต๋ณ€์„ฑ์€ ์ž์‹ ํƒ€์ž…์œผ๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ณ 
๋ฐ˜๊ณต๋ณ€์„ฑ์€ ๋ถ€๋ชจ ํƒ€์ž…์œผ๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๋ฌด๊ณต๋ณ€์„ฑ์€ ์ง€์ •๋œ ํƒ€์ž…์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌ๋œ๋‹ค.
์ƒ์†์— ๋”ฐ๋ฅธ ๋ณ€์„ฑ
ํƒ€์ž…์‹œ์Šคํ…œ์„ ์ดํ•ด ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ƒ์†์— ๋‹ค๋ฅธ ๋ณ€์„ฑ(variance)์„ ์ดํ•ด
ํ•ด์•ผ ํ•œ๋‹ค.
๊ณต๋ณ€์„ฑ ์ฒ˜๋ฆฌ ์˜ˆ์‹œ
๊ณต๋ณ€์„ฑ์€ ์ž์‹ ํƒ€์ž…์œผ๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋ฉด
์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค. ํ˜„์žฌ ๊ฒฐ๊ณผ๊ฐ’๋„ ๊ธฐ๋ณธ์œผ๋กœ ๊ณต๋ณ€
์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์ƒ์œ„๊ฒฝ๊ณ„์™€ ํ•˜์œ„๊ฒฝ๊ณ„
์ƒ์œ„๊ฒฝ๊ณ„๊ณผ ํ•˜์œ„๊ฒฝ๊ณ„๋Š” ์ •ํ•ด์ง„ ๊ฒฝ๊ณ„๋ฅผ ์ค‘
์‹ฌ์œผ๋กœ ์ƒ์œ„ ํƒ€์ž…๊ณผ ํ•˜์œ„ ํƒ€์ž…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
์ƒ์œ„๊ฒฝ๊ณ„ [ T <: A] ๋กœ ํ‘œ์‹œ ํ•ด๋‹น A ํƒ€์ž…๊ณผ ๊ทธ ํ•˜์œ„ ํƒ€์ž…๋“ค์„ ํฌํ•จํ•ด
์„œ ์ฒ˜๋ฆฌ
ํ•˜์œ„๊ฒฝ๊ณ„ [ T >: A] ๋กœ ํ‘œ์‹œ ํ•ด๋‹น A ํƒ€์ž…๊ณผ ๊ทธ ์ƒ์œ„ ํƒ€์ž…๋“ค์„ ํฌํ•จํ•ด
์„œ ์ฒ˜๋ฆฌ
ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํŠน์ •ํ™”ํ•˜๊ธฐ
์ œ๋„ˆ๋ฆญ ํƒ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋ณด๋‹ค ํŠน์ • ํƒ€์ž…์„
์ง€์ •ํ•ด์„œ ์ง€์ • ๋ฒ”์œ„ ๋‚ด์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด
์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ƒ์œ„๊ฒฝ๊ณ„: upper bound
<: ๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์œ„ ํด๋ž˜์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ถ€์—ฌ
ํ•˜๋ฉด ํ•˜์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฒƒ์„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
ํ•˜๋‹ค.
ํ•˜์œ„๊ฒฝ๊ณ„: upper bound
>: ๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜์œ„ ํด๋ž˜์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ถ€์—ฌํ•˜
๋ฉด ์ƒ์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฒƒ์„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ผ๋‹จ AnyVal๋กœ ์ง€์ •ํ•˜๊ณ  Long ์ž๋ฃŒํ˜•์„ ๋„ฃ์–ด
์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์œ„๊ฒฝ๊ณ„: upper bound
>: ๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜์œ„ ํด๋ž˜์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ถ€์—ฌํ•˜
๋ฉด ์ƒ์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฒƒ์„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ผ๋‹จ String์œผ๋กœ ์ฒ˜๋ฆฌํ•ด๋„ ํ•ด๋‹น ํƒ€์ž…๋„ ์ฒ˜๋ฆฌ๊ฐ€
๋œ๋‹ค.

More Related Content

What's hot (20)

Scala self type inheritance
Scala self type inheritance
Yong Joon Moon
ย 
Scala companion object
Scala companion object
Yong Joon Moon
ย 
Scala trait usage
Scala trait usage
Yong Joon Moon
ย 
Scala dir processing
Scala dir processing
Yong Joon Moon
ย 
C++ struct copy
C++ struct copy
์†ก๋ฏธ ์ด
ย 
Scala match pattern
Scala match pattern
Yong Joon Moon
ย 
Start IoT with JavaScript - 1.๊ธฐ์ดˆ
Start IoT with JavaScript - 1.๊ธฐ์ดˆ
Park Jonggun
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ต์„ฑ ์กฐ
ย 
JavaScript Fundermetal
JavaScript Fundermetal
Kwangho SEO
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
quxn6
ย 
Start IoT with JavaScript - 6.ํ•จ์ˆ˜
Start IoT with JavaScript - 6.ํ•จ์ˆ˜
Park Jonggun
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
์ƒ์ฝ”์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์Šคํ„ฐ๋””3์žฅ
์ƒ์ฝ”์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์Šคํ„ฐ๋””3์žฅ
Jinhwa Hong
ย 
[์•„๊ฟˆ์‚ฌ] The C++ Programming Language 11์žฅ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
[์•„๊ฟˆ์‚ฌ] The C++ Programming Language 11์žฅ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
ํ•ด๊ฐ•
ย 
ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰
ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰
Yong Joon Moon
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
๋ฏผํƒœ ๊น€
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‚แ…ขแ„‡แ…ฎ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ฅแ†ทแ„‰แ…ขแ†จ แ„‡แ…กแ†ผแ„‡แ…ฅแ†ธ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‚แ…ขแ„‡แ…ฎ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ฅแ†ทแ„‰แ…ขแ†จ แ„‡แ…กแ†ผแ„‡แ…ฅแ†ธ
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ xml ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ xml ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap. 6 ํด๋ž˜์Šค(CLASS)(KOR)
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap. 6 ํด๋ž˜์Šค(CLASS)(KOR)
MIN SEOK KOO
ย 
Scala self type inheritance
Scala self type inheritance
Yong Joon Moon
ย 
Scala companion object
Scala companion object
Yong Joon Moon
ย 
Scala trait usage
Scala trait usage
Yong Joon Moon
ย 
Scala dir processing
Scala dir processing
Yong Joon Moon
ย 
Scala match pattern
Scala match pattern
Yong Joon Moon
ย 
Start IoT with JavaScript - 1.๊ธฐ์ดˆ
Start IoT with JavaScript - 1.๊ธฐ์ดˆ
Park Jonggun
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ต์„ฑ ์กฐ
ย 
JavaScript Fundermetal
JavaScript Fundermetal
Kwangho SEO
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
quxn6
ย 
Start IoT with JavaScript - 6.ํ•จ์ˆ˜
Start IoT with JavaScript - 6.ํ•จ์ˆ˜
Park Jonggun
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
์ƒ์ฝ”์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์Šคํ„ฐ๋””3์žฅ
์ƒ์ฝ”์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์Šคํ„ฐ๋””3์žฅ
Jinhwa Hong
ย 
[์•„๊ฟˆ์‚ฌ] The C++ Programming Language 11์žฅ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
[์•„๊ฟˆ์‚ฌ] The C++ Programming Language 11์žฅ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
ํ•ด๊ฐ•
ย 
ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰
ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰
Yong Joon Moon
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
๋ฏผํƒœ ๊น€
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‚แ…ขแ„‡แ…ฎ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ฅแ†ทแ„‰แ…ขแ†จ แ„‡แ…กแ†ผแ„‡แ…ฅแ†ธ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‚แ…ขแ„‡แ…ฎ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ฅแ†ทแ„‰แ…ขแ†จ แ„‡แ…กแ†ผแ„‡แ…ฅแ†ธ
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ xml ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ xml ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap. 6 ํด๋ž˜์Šค(CLASS)(KOR)
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap. 6 ํด๋ž˜์Šค(CLASS)(KOR)
MIN SEOK KOO
ย 

Similar to Scala nested function generic function (20)

แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
Yong Joon Moon
ย 
Scala ๊ธฐ์ดˆ (2)
Scala ๊ธฐ์ดˆ (2)
๋ช…์„ฑ ์ •
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+ํ•จ์ˆ˜ แ„ƒแ…ฆแ„แ…ฉแ„…แ…ฆแ„‹แ…ตแ„แ…ฅ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+ํ•จ์ˆ˜ แ„ƒแ…ฆแ„แ…ฉแ„…แ…ฆแ„‹แ…ตแ„แ…ฅ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
Yong Joon Moon
ย 
Pure Function and Rx
Pure Function and Rx
Hyungho Ko
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ function namespace ์ดํ•ดํ•˜๊ธฐ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ function namespace ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
JiandSon
ย 
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
Yeonah Ki
ย 
[2011 04 30]python-3์žฅ
[2011 04 30]python-3์žฅ
Jong Pil Won
ย 
ํ•˜์Šค์ผˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ
ํ•˜์Šค์ผˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ
Kwang Yul Seo
ย 
Haskell study 5
Haskell study 5
Nam Hyeonuk
ย 
Python Programming: Function
Python Programming: Function
Chan Shik Lim
ย 
ํŒŒ์ด์ฌ namespace Binding ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ namespace Binding ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
daewon jeong
ย 
์Šค์นผ๋ผ์™€ ์ŠคํŒŒํฌ ์˜ํ˜ผ์˜ ๋“€์˜ค
์Šค์นผ๋ผ์™€ ์ŠคํŒŒํฌ ์˜ํ˜ผ์˜ ๋“€์˜ค
Taeoh Kim
ย 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
๋ช…์ค€ ๊น€
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ์‹ฌํ™”
ํŒŒ์ด์ฌ ์‹ฌํ™”
Yong Joon Moon
ย 
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
Min-soo Park
ย 
Pure Function and Honest Design
Pure Function and Honest Design
Hyungho Ko
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+ํ•จ์ˆ˜ แ„ƒแ…ฆแ„แ…ฉแ„…แ…ฆแ„‹แ…ตแ„แ…ฅ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+ํ•จ์ˆ˜ แ„ƒแ…ฆแ„แ…ฉแ„…แ…ฆแ„‹แ…ตแ„แ…ฅ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
Yong Joon Moon
ย 
Pure Function and Rx
Pure Function and Rx
Hyungho Ko
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ function namespace ์ดํ•ดํ•˜๊ธฐ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ function namespace ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
JiandSon
ย 
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
Yeonah Ki
ย 
[2011 04 30]python-3์žฅ
[2011 04 30]python-3์žฅ
Jong Pil Won
ย 
ํ•˜์Šค์ผˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ
ํ•˜์Šค์ผˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ
Kwang Yul Seo
ย 
Haskell study 5
Haskell study 5
Nam Hyeonuk
ย 
Python Programming: Function
Python Programming: Function
Chan Shik Lim
ย 
ํŒŒ์ด์ฌ namespace Binding ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ namespace Binding ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
daewon jeong
ย 
์Šค์นผ๋ผ์™€ ์ŠคํŒŒํฌ ์˜ํ˜ผ์˜ ๋“€์˜ค
์Šค์นผ๋ผ์™€ ์ŠคํŒŒํฌ ์˜ํ˜ผ์˜ ๋“€์˜ค
Taeoh Kim
ย 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
๋ช…์ค€ ๊น€
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ์‹ฌํ™”
ํŒŒ์ด์ฌ ์‹ฌํ™”
Yong Joon Moon
ย 
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
Min-soo Park
ย 
Pure Function and Honest Design
Pure Function and Honest Design
Hyungho Ko
ย 
Ad

More from Yong Joon Moon (15)

rust ownership
rust ownership
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ„…แ…ฉแ„‘แ…ฅแ„แ…ต แ„ƒแ…ตแ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ธแ„แ…ฅ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ„…แ…ฉแ„‘แ…ฅแ„แ…ต แ„ƒแ…ตแ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ธแ„แ…ฅ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„†แ…ฎแ†ซแ„Œแ…กแ„‹แ…งแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„†แ…ฎแ†ซแ„Œแ…กแ„‹แ…งแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ์—‘์…€_csv ์ฒ˜๋ฆฌํ•˜๊ธฐ
ํŒŒ์ด์ฌ ์—‘์…€_csv ์ฒ˜๋ฆฌํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Special method แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Special method แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
Python+numpy pandas 4แ„‘แ…งแ†ซ
Python+numpy pandas 4แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
Python+numpy pandas 3แ„‘แ…งแ†ซ
Python+numpy pandas 3แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
Python+numpy pandas 2แ„‘แ…งแ†ซ
Python+numpy pandas 2แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
Python+numpy pandas 1แ„‘แ…งแ†ซ
Python+numpy pandas 1แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ํฌ๋กค๋ง ๋ชจ๋“ˆ
ํŒŒ์ด์ฌ ํฌ๋กค๋ง ๋ชจ๋“ˆ
Yong Joon Moon
ย 
แ„‰แ…ฉแ„‘แ…ณแ„แ…ณแ„‹แ…ฐแ„‹แ…ฅแ„‹แ…ช แ„‹แ…ตแ†ซแ„†แ…ฎแ†ซแ„’แ…กแ†จ
แ„‰แ…ฉแ„‘แ…ณแ„แ…ณแ„‹แ…ฐแ„‹แ…ฅแ„‹แ…ช แ„‹แ…ตแ†ซแ„†แ…ฎแ†ซแ„’แ…กแ†จ
Yong Joon Moon
ย 
rust ownership
rust ownership
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ„…แ…ฉแ„‘แ…ฅแ„แ…ต แ„ƒแ…ตแ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ธแ„แ…ฅ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ„…แ…ฉแ„‘แ…ฅแ„แ…ต แ„ƒแ…ตแ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ธแ„แ…ฅ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„†แ…ฎแ†ซแ„Œแ…กแ„‹แ…งแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„†แ…ฎแ†ซแ„Œแ…กแ„‹แ…งแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ์—‘์…€_csv ์ฒ˜๋ฆฌํ•˜๊ธฐ
ํŒŒ์ด์ฌ ์—‘์…€_csv ์ฒ˜๋ฆฌํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Special method แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Special method แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
Python+numpy pandas 4แ„‘แ…งแ†ซ
Python+numpy pandas 4แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
Python+numpy pandas 3แ„‘แ…งแ†ซ
Python+numpy pandas 3แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
Python+numpy pandas 2แ„‘แ…งแ†ซ
Python+numpy pandas 2แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
Python+numpy pandas 1แ„‘แ…งแ†ซ
Python+numpy pandas 1แ„‘แ…งแ†ซ
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ํฌ๋กค๋ง ๋ชจ๋“ˆ
ํŒŒ์ด์ฌ ํฌ๋กค๋ง ๋ชจ๋“ˆ
Yong Joon Moon
ย 
แ„‰แ…ฉแ„‘แ…ณแ„แ…ณแ„‹แ…ฐแ„‹แ…ฅแ„‹แ…ช แ„‹แ…ตแ†ซแ„†แ…ฎแ†ซแ„’แ…กแ†จ
แ„‰แ…ฉแ„‘แ…ณแ„แ…ณแ„‹แ…ฐแ„‹แ…ฅแ„‹แ…ช แ„‹แ…ตแ†ซแ„†แ…ฎแ†ซแ„’แ…กแ†จ
Yong Joon Moon
ย 
Ad

Scala nested function generic function

  • 1. Scala ๋‚ด๋ถ€ ํ•จ์ˆ˜ ๋ฐ ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜ ์ฒ˜๋ฆฌ [email protected]
  • 3. ๋ธ”๋ก ๋‚ด์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์„œ ์ฒ˜๋ฆฌ ํŒŒ์ด์ฌ ํ•จ์ˆ˜๋Š” ์‹ค์ œ ๋ธ”๋ก ์ฒ˜๋ฆฌ๋˜๋Š” ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ์‹ค์ œ ๋ณ€์ˆ˜์— ๋ธ”๋ก์„ ์ž‘ ์„ฑํ•ด์„œ ์ „๋‹ฌํ•ด๋„ ๋žŒ๋‹คํ•จ์ˆ˜ ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜ ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜ ๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ” ๋กœ ์‹คํ–‰ ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•จ์ˆ˜์™€ ์ธ์ž๋ฅผ ๊ฒฐ๊ณผ๋กœ ์ฃผ๋ฉด ํ•จ์ˆ˜๊ฐ’์ด ์„ธํŒ…๋œ ๋‹ค
  • 5. ์ „์—ญ๊ณผ ์ง€์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ชจ๋“ˆ์€ ๊ทธ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค ์— ๋Œ€ํ•œ ์ •๋ณด ๋ฐ ๋‹ค์–‘ํ•œ ๋ณ€์ˆ˜๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค. ํ•จ์ˆ˜์— ์—†๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š” ๋ชจ๋“ˆ ์— ์žˆ๋Š” ๊ฒƒ์„ ์ฐธ์กฐํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค ๋ชจ๋“ˆ ์ „์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํ•จ์ˆ˜ ์ง€์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ฐธ์กฐ
  • 6. ๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜ ์‚ฌ์šฉ ๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜๋„ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 7. ๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ ์™ธ๋ถ€๋กœ ์ „๋‹ฌ ๋ชจ๋“ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜๋„ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์™ธ๋ถ€๋กœ ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜๋กœ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • 9. ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ๋ฐฉ๋ฒ• ํ•จ์ˆ˜์ •์˜ํ•˜๊ณ  ๊ทธ ๋‚ด๋ถ€์— ๋‚ด๋ถ€ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์ผํ•œ ํ•จ์ˆ˜๋ช…์œผ๋กœ ์ •์˜ํ•ด๋„ ์‹ค์ œ ์ž์‹ ์˜ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. def ํ•จ์ˆ˜๋ช…[ํƒ€์ž…๋งค๊ฐœ๋ณ€์ˆ˜](๋งค๊ฐœ๋ณ€์ˆ˜) : ๋ฐ˜ํ™˜๊ฐ’ = { def ๋‚ด๋ถ€ํ•จ์ˆ˜๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜) : ๋ฐ˜ํ™˜๊ฐ’ = {๋กœ์ง} }
  • 10. ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ๋ฐ ์‹คํ–‰ ์™ธ๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜ ๊ณ  ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‚ด๋ถ€ํ•จ์ˆ˜์— ์ „๋‹ฌ ํ•ด์„œ ์‹คํ–‰ํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•˜๋ฉด ๋‚ด๋ถ€ํ•จ์ˆ˜ ๊ฒฐ๊ณผ๊ฐ’ ์ด ์™ธ๋ถ€๋กœ ์ „๋‹ฌ๋œ๋‹ค.
  • 11. ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์„œ ์‹คํ–‰๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋™ ์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•ด๋„ ํ•จ์ˆ˜ ํƒ€์ž…์„ ์ฒดํฌํ•  ๋•Œ ๋งค ๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ธ์‹๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค. ๋™ ์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ž‘์„ฑํ•ด๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.
  • 13. ๋‚ด๋ถ€ ํ•จ์ˆ˜๋กœ ๋žŒ๋‹คํ•จ์ˆ˜ ์‚ฌ์šฉ ๋‚ด๋ถ€์— ๋žŒ๋‹คํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ์‹คํ–‰ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • 15. ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ›„ ์ „๋‹ฌ: ํ•จ์ˆ˜ 1 ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด ์‹ค์ œ ๋‚ด๋ถ€ํ•จ ์ˆ˜๊ฐ€ ์™ธ๋ถ€๋กœ ์ „๋‹ฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ _๋ฅผ ๋ถ™์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค
  • 16. ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ›„ ์ „๋‹ฌ: ํ•จ์ˆ˜ 2 ๋ฆฌํ„ด ํƒ€์ž…๊นŒ์ง€ ๋ช…ํ™•ํžˆ ์ •์˜๊ฐ€ ๋œ ๊ฒฝ์šฐ๋Š” ๋‚ด ๋ถ€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์ „๋‹ฌํ•ด๋„ ์‹ค์ œ ํ•จ์ˆ˜ ํƒ€์ž… ์ด๋ฏ€๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.
  • 17. ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ •์˜ ํ›„ ์ „๋‹ฌ: ๋žŒ๋‹คํ•จ์ˆ˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜์— ๋žŒ๋‹ค๋ฅผ ์ง€์ •ํ•ด์„œ ํ‘œํ˜„์‹ ๊ฒฐ๊ณผ๊ฐ’ ์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋‚ด๋ถ€ ํ•จ์ˆ˜ ์ธ ๋žŒ๋‹คํ•จ์ˆ˜๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • 19. ๋‚ด๋ถ€ํ•จ์ˆ˜์—์„œ ๋ชจ๋“ˆ ๋ณ€์ˆ˜ ์ฐธ์กฐ ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์—†๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ์™ธ๋ถ€ ํ•จ ์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—†์œผ๋ฉด ๋ชจ๋“ˆ์„ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฒ˜ ๋ฆฌํ•œ๋‹ค.
  • 21. ํƒ€์ž… ๋งค๊ฐœํ™” ํŠน์ • ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ์ด ๊ฐ์ฒด๊ฐ€ ์†ํ•œ ํด๋ž˜ ์Šค ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋‚˜ ํด๋ž˜์Šค์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋“ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”ํ•œ ํƒ€์ž…์€ List[String] = List("a", "b")์™€ ๊ฐ™์ด [] ์•ˆ์— ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค€๋‹ค.
  • 22. ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜ ์ •์˜ ๋ฐฉ๋ฒ• ํ•จ์ˆ˜๋ช… ๋‹ค์Œ์— ๋Œ€๊ด„ํ˜ธ์™€ ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ํƒ€์ž…์„ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ง€์ •ํ•˜๋ฉด ์‹ค์ œ ์ถ”๋ก ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœํ•  ๋•Œ ๊ฒฐ์ •๋œ๋‹ค. def ํ•จ์ˆ˜๋ช…[ํƒ€์ž…๋งค๊ฐœ๋ณ€์ˆ˜](๋งค๊ฐœ๋ณ€์ˆ˜) : ๋ฐ˜ํ™˜๊ฐ’ = { ์‹ค์ œ ๋กœ์ง }
  • 23. ํƒ€์ž… ์ถ”๋ก  ๊ธฐ์ค€ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํƒ€์ž…์ถ”๋ก ์€ ์‹ค ์ œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ฒฐ์ •๋˜๋ฉฐ ์‹ค์ œ ๋ฐ˜ํ™˜๊ฐ’๋„ ๊ฐ ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • 24. ํƒ€์ž… ์ฒ˜๋ฆฌ ๊ธฐ์ค€ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜์ง€๋งŒ ์‹ค์ œ ํƒ€์ž…์ด ํ™•์ •๋˜์ง€ ๋ชปํ•˜๋ฉด ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜ ์ง€์ •ํ•  ๋•Œ ์‹ค์ œ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์œผ๋กœ ํ•œ์ •ํ•ด์ค˜ ์•ผ ํ•œ๋‹ค.
  • 26. ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜: ๋‹จ์ผ ์ธ์ž ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํƒ€์ž… ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ˜ธ์ถœ์‹œ์— ์‹ค์ œ ๋งคํ•‘๋˜๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • 27. ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜: ๋‘๊ฐœ ์ธ์ž ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํƒ€์ž… ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ˜ธ์ถœ์‹œ์— ์‹ค์ œ ๋งคํ•‘๋˜๋Š” ํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • 28. ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜ : ํ•จ์ˆ˜ ์ „๋‹ฌ ์ฒ˜๋ฆฌ ์ œ๋„ˆ๋ฆญ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํƒ€์ž…์„ ๋ณ„๋„๋กœ ๋งค๊ฐœํ™”ํ•˜๊ณ  ์‹ค์ œ ๋ณ„๋„ ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค
  • 29. ๋‘๊ฐœ ํƒ€์ž…์„ ๋ฐ›๊ณ  ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ๋‘๊ฐœ์˜ ํƒ€์ž…์„ ๋ฐ›์•„ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ๋” ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜ ๋ฉด ๋‘๊ฐœ์˜ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
  • 31. ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ ๋ชจ๋“ˆ ๋ณ€์ˆ˜ ์ฐธ์กฐ ์™ธ๋ถ€ ํ•จ์ˆ˜์—์„œ ํƒ€์ž…
  • 33. ๊ณต๋ณ€์„ฑ, ๋ฐ˜๊ณต๋ณ€์„ฑ, ๋ฌด๊ณต๋ณ€์„ฑ ๊ณต๋ณ€์„ฑ์€ ์ž์‹ ํƒ€์ž…์œผ๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๋ฐ˜๊ณต๋ณ€์„ฑ์€ ๋ถ€๋ชจ ํƒ€์ž…์œผ๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌด๊ณต๋ณ€์„ฑ์€ ์ง€์ •๋œ ํƒ€์ž…์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌ๋œ๋‹ค. ์ƒ์†์— ๋”ฐ๋ฅธ ๋ณ€์„ฑ ํƒ€์ž…์‹œ์Šคํ…œ์„ ์ดํ•ด ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ƒ์†์— ๋‹ค๋ฅธ ๋ณ€์„ฑ(variance)์„ ์ดํ•ด ํ•ด์•ผ ํ•œ๋‹ค.
  • 34. ๊ณต๋ณ€์„ฑ ์ฒ˜๋ฆฌ ์˜ˆ์‹œ ๊ณต๋ณ€์„ฑ์€ ์ž์‹ ํƒ€์ž…์œผ๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋ฉด ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค. ํ˜„์žฌ ๊ฒฐ๊ณผ๊ฐ’๋„ ๊ธฐ๋ณธ์œผ๋กœ ๊ณต๋ณ€ ์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • 35. ์ƒ์œ„๊ฒฝ๊ณ„์™€ ํ•˜์œ„๊ฒฝ๊ณ„ ์ƒ์œ„๊ฒฝ๊ณ„๊ณผ ํ•˜์œ„๊ฒฝ๊ณ„๋Š” ์ •ํ•ด์ง„ ๊ฒฝ๊ณ„๋ฅผ ์ค‘ ์‹ฌ์œผ๋กœ ์ƒ์œ„ ํƒ€์ž…๊ณผ ํ•˜์œ„ ํƒ€์ž…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ƒ์œ„๊ฒฝ๊ณ„ [ T <: A] ๋กœ ํ‘œ์‹œ ํ•ด๋‹น A ํƒ€์ž…๊ณผ ๊ทธ ํ•˜์œ„ ํƒ€์ž…๋“ค์„ ํฌํ•จํ•ด ์„œ ์ฒ˜๋ฆฌ ํ•˜์œ„๊ฒฝ๊ณ„ [ T >: A] ๋กœ ํ‘œ์‹œ ํ•ด๋‹น A ํƒ€์ž…๊ณผ ๊ทธ ์ƒ์œ„ ํƒ€์ž…๋“ค์„ ํฌํ•จํ•ด ์„œ ์ฒ˜๋ฆฌ
  • 36. ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํŠน์ •ํ™”ํ•˜๊ธฐ ์ œ๋„ˆ๋ฆญ ํƒ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋ณด๋‹ค ํŠน์ • ํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ์ง€์ • ๋ฒ”์œ„ ๋‚ด์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 37. ์ƒ์œ„๊ฒฝ๊ณ„: upper bound <: ๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์œ„ ํด๋ž˜์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ถ€์—ฌ ํ•˜๋ฉด ํ•˜์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฒƒ์„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ ํ•˜๋‹ค.
  • 38. ํ•˜์œ„๊ฒฝ๊ณ„: upper bound >: ๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜์œ„ ํด๋ž˜์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ถ€์—ฌํ•˜ ๋ฉด ์ƒ์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฒƒ์„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ผ๋‹จ AnyVal๋กœ ์ง€์ •ํ•˜๊ณ  Long ์ž๋ฃŒํ˜•์„ ๋„ฃ์–ด ์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 39. ํ•˜์œ„๊ฒฝ๊ณ„: upper bound >: ๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜์œ„ ํด๋ž˜์Šค ๊ฒฝ๊ณ„๋ฅผ ๋ถ€์—ฌํ•˜ ๋ฉด ์ƒ์œ„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฒƒ์„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ผ๋‹จ String์œผ๋กœ ์ฒ˜๋ฆฌํ•ด๋„ ํ•ด๋‹น ํƒ€์ž…๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค.