Skip to content

Latest commit

ย 

History

History
69 lines (34 loc) ยท 11.8 KB

File metadata and controls

69 lines (34 loc) ยท 11.8 KB

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ณต์žก๋„ ์•ˆ๋ชฉ์— ๊ธธ๋“ค์—ฌ์กŒ๋‚˜

๋งŽ์€ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” ์‹œ์žฅ ์Šคํƒ€์ผ์€ ๋””๋ฒ„๊น…๊ณผ ์ฝ”๋“œ ๋ฐœ์ „์„ ๊ฐ€์†ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์€ ์ž‘์€ ์ˆ˜์ค€์˜ ์ผ์ƒ์ ์ธ ๊ฐœ๋ฐœ์ž ๋ฐ ํ…Œ์Šคํ„ฐ์˜ ํ–‰๋™์—์„œ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ์ •ํ™•ํžˆ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜(์›๋ณธ์„ ์ž‘์„ฑํ•œ ์ง€ 3๋…„์ด ์ง€๋‚œ ํ›„, ์ด๋ฅผ ์ฝ๊ณ  ์ž์‹ ์˜ ํ–‰๋™์„ ๋‹ค์‹œ ๋Œ์•„๋ณธ ๊ฐœ๋ฐœ์ž์˜ ํ†ต์ฐฐ์„ ํ†ตํ•˜์—ฌ)์—์„œ ์šฐ๋ฆฌ๋Š” ํ˜„์‹ค์ ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•˜์—ฌ ์ž์„ธํžˆ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค. ์ „๋ฌธ์ ์ด์ง€ ์•Š์€ ๋…์ž๋Š” ์ด๋ฒˆ ์„น์…˜์„ ๋„˜๊ฒจ๋„ ๋œ๋‹ค.

์ดํ•ด๋ฅผ ์œ„ํ•œ ํ•œ๊ฐ€์ง€ ํ•ต์‹ฌ์€ non-source-aware(๋น„ ์†Œ์Šค ์ธ์‹) ์‚ฌ์šฉ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ์ถœํ•˜๋Š” ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋Š” ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น„ ์†Œ์Šค ์ธ์‹ ์‚ฌ์šฉ์ž๋Š” ํ‘œ๋ฉด์ ์ธ ์กฐ์ง๋งŒ์„ ์ œ์ถœํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ถ€์—ฌ๋œ ํ™˜๊ฒฝ์—์„œ ๋‹ค๋ฃจ๋ฏ€๋กœ (a) ์ค‘์š”ํ•œ ๋ฐฐ๊ฒฝ ํ…Œ์ดํ„ฐ๋ฅผ ์ƒ๋žต, (b) ๋ฒ„๊ทธ ์žฌํ˜„์„ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๋Š” ํ…Œ์Šคํ„ฐ์™€ ๊ฐœ๋ฐœ์ž์˜ mental model(์ •์‹  ๋ชจ๋ธ)์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์Šคํ„ฐ๋Š” ๋ฐ–์„ ๋ณด๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ์•ˆ์„ ์‚ดํ•๋‹ˆ๋‹ค.

Closed-source ๊ฐœ๋ฐœ์—์„œ ๊ทธ๋“ค์€ ๋‘˜ ๋‹ค ์ด๋Ÿฌํ•œ ์—ญํ• ์— ๊ฐ‡ํ˜€ ์žˆ์œผ๋ฉฐ, ์„œ๋กœ์˜ ๊ณผ๊ฑฐ๋ฅผ ์ด์•ผ๊ธฐํ•˜๊ณ  ์ขŒ์ ˆํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค ๊ฐœ๋ฐœ์€ ์ด๋Ÿฌํ•œ ํ‹€์„ ๊นจ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ํ…Œ์Šคํ„ฐ์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ณ  ์ด์— ๋Œ€ํ•˜์—ฌ ํšจ๊ณผ์ ์œผ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์™ธ๋ถ€์—์„œ ๋ณด์ด๋Š” ์ฆ์ƒ์„ ๋ณด๊ณ ํ•˜๋Š” ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ์™€ ๊ฐœ๋ฐœ์ž์˜ ์†Œ์Šค ์ฝ”๋“œ ํ‘œํ˜„์— ์—ฐ๊ฒฐ๋˜๋Š” ์ข…๋ฅ˜ ๊ฐ„์—๋Š” ์ƒ๋‹นํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋ฒ„๊ทธ๋Š” ์†Œ์Šค์ฝ”๋“œ ์ˆ˜์ค€์—์„œ ๋ถˆ์•ˆ์ „ํ•œ ์•”์‹œ์ ์ธ ํŠน์ง•์— ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค. ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€ โ€œ๋ผ์ธ nnn์˜ ๋ฒ”์œ„ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ฑฐ๋‚˜ ๋˜๋Š” ์กฐ๊ฑด X,Y ๊ทธ๋ฆฌ๊ณ  Z ์•„๋ž˜์—์„œ ๋ณ€์ˆ˜๊ฐ€ ๋ฒ—์–ด๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ง€์ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์œผ๋กœ๋„ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์‹คํŒจ ์ƒํ™ฉ์„ ๋ง‰๊ณ  ์ˆ˜์ • ์‚ฌํ•ญํ•˜์‹ญ์‹œ์˜ค.

๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž์™€ ํ…Œ์Šคํ„ฐ์˜ ์†Œ์Šค ์ฝ”๋“œ ์ธ์‹์€ ์ข‹์€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํšจ๊ณผ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ต์‹ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์€ ๋‹ค์ˆ˜์˜ ๊ณต๋™ ์ž‘์—…์ž ์™€๋„ ์ž˜ ๋ณด์กด๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ฐฉ์‹์˜ ๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์†Œํ†ต ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์œ„์—์„œ โ€œํ•ต์‹ฌ ๊ฐœ๋ฐœ์žโ€๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์ ํŠธ ์ฝ”์–ด(์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ์ž‘์€, ๋‹จ์ผ ์ฝ”์–ด ๊ฐœ๋ฐœ์ž) ์™€ ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ ๋ฐ ์ง€์›์ž(์ข…์ข… ์ˆ˜๋ฐฑ์— ํ•ด๋‹นํ•˜๋Š”) ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ „ํ†ต์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์กฐ์ง์—์„œ ์ œ๊ธฐํ•œ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๋Š” Brook์˜ ๋ฒ•์น™์ด๋‹ค. : โ€œ์˜ค๋ž˜๋œ ํ”„๋กœ์ ํŠธ์— ๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์€ ๋” ๋Šฆ์ถฐ์ง€๊ฒŒ ๋งŒ๋“ ๋‹คโ€ ์ผ๋ฐ˜์ ์œผ๋กœ Brook์˜ ๋ฒ•์น™์€ ๋ณต์žก๋„์™€ ์†Œํ†ต๊ฐ„์˜ ๋น„์šฉ์€ ๊ฐœ๋ฐœ์ž ์ˆ˜์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜๊ณ  ์ž‘์—…์€ ์ฆ๊ฐ€ํ•œ๋‹ค๊ณ  ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

Brook์˜ ๋ฒ•์น™์€ ๊ฒฝํ—˜์ ์œผ๋กœ ๋ฒ„๊ทธ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์ง‘์ค‘ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ๊ฐ•ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์˜ ์†Œํ†ต๊ณผ ๋™๋“ฑํ•œ ์˜ค๋ฒ„ ํ—ค๋“œ๊ฐ€ ์‚ฌ๋žŒ๋“ค๊ฐ„์˜ ํ–‰๋™ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ˆ˜์™€ ํ•จ๊ป˜ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ๊ฐœ๋ฐœ์ž ์‚ฌ์ด์˜ ์†Œํ†ต์˜ ์ˆ˜์— ๋”ฐ๋ผ ๋ฌธ์ œ๋Š” ๋‹ฌ๋ผ์ง€๋ฉฐ, ์ด๋Š” ๊ฐœ๋ฐœ์ž์˜ humber์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค. (๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” N*(N-1) / 2 ์— ๋”ฐ๋ผ N์€ ๊ฐœ๋ฐœ์ž์˜ ์ˆ˜)

Brook์˜ ๋ฒ•์น™ ๋ถ„์„(๊ฒฐ๊ณผ์ ์œผ๋กœ ํฐ ๊ฐœ๋ฐœ ๊ทธ๋ฃน์˜ ์–ด๋ ค์›€)์€ ์ˆจ๊ฒจ์ง„ ๊ฒฐ๋ก ์— ๋‹ฌ๋ ค ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์†Œํ†ต ๊ตฌ์กฐ๋Š” ํ•„์—ฐ์ ์œผ๋กœ ์™„๋ฒฝํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฐฐ๊ฒฝ ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์‹ค์ƒ ๋ถ„๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ณ‘๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ๊ฑฐ์˜ ์ƒํ˜ธ ์ž‘์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋ฐ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋Š” ํ•ต์‹ฌ ๊ทธ๋ฃน์„ ํ†ตํ•˜์—ฌ ์ง„ํ–‰๋˜๊ณ , ์ž‘์€ ๊ทธ๋ฃน ๋‚ด์—์„œ๋งŒ ์˜ค๋ฒ„ ํ—ค๋“œ๋ฅผ ์ง€๋ถˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค ์ฝ”๋“œ ์ˆ˜์ค€์˜ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๊ฐ€ ๋” ํšจ์œจ์ ์ธ ์ด๊ทœ๋Š” ๋” ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์˜ค๋ฅ˜๋Š” ์ข…์ข… ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ ํŒจํ„ด๊ณผ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ค‘์ ์— ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ์žฌํ˜„์ด ์–ด๋ ต๊ณ  ๋ณต์žกํ•˜๋ฉฐ(๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ) ์†Œํ”„ํŠธ์›จ์–ด์— ์žฅ๊ธฐ์ ์ธ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ฆ์ƒ์˜ ์†Œ์Šค ์ฝ”๋“œ ๋ ˆ๋ฒจ์˜ ์ฆ์ƒ์„ ๋ณด๋‚ด๋Š” ํ…Œ์Šคํ„ฐ(์˜ˆ: 1250 ๊ทผ์ฒ˜์˜ ์‹ ํ˜ธ ์ฐฝ์— ์žˆ๋Š” ๊ฒƒ์ด ๋งž๋‚˜์š”? ๋˜๋Š” ์–ด๋””์—์„œ ๋ฒ„ํผ๋ฅผ ์ดˆ๊ธฐํ™” ํ•˜๋‚˜์š”?) ๋Š” ๋‹ค๋ฅธ ์ฆ์ƒ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๋‹จ์„œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์™ธ๋ถ€ ๋ฒ„๊ทธ๊ฐ€ ์–ด๋–ค ์ด์œ ๋กœ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณต๋™ ์ž‘์—…์ž๋Š” ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋น ๋ฅด๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์—์„œ ์†Œ์Šค ๋ ˆ๋ฒจ์˜ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋Š” ํŠน์ • ์ˆ˜์ • ์‚ฌํ•ญ์— ๊ด€๊ณ„์—†๋Š” ํ–‰๋™์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

๋ณต์žกํ•œ ์—ฌ๋Ÿฌ ์ฆ์ƒ์˜ ์˜ค๋ฅ˜๋Š” ๋˜ํ•œ ํ‘œ๋ฉด์ ์ธ ์ฆ์ƒ์—์„œ ์‹ค์ œ ๋ฒ„๊ทธ๋กœ ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋‚˜ ํ…Œ์Šคํ„ฐ๊ฐ€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”์  ๊ฒฝ๋กœ๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž์™€ ํ…Œ์Šคํ„ฐ๋Š” ์ฆ์ƒ์„ ์ฐพ์„ ๋•Œ ๊นŒ์ง€ ๋žœ๋คํ•œ ์„ธํŠธ๋ฅผ ์…ˆํ”Œ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ๋” ๋ณต์žกํ• ์ˆ˜๋ก ํ•ด๋‹น ๊ธฐ์ˆ ์ด ์ƒ˜ํ”Œ๊ณผ์˜ ๊ด€๋ จ์„ฑ์„ ๋ณด์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„๊ทธ์˜ ๊ฒฝ์šฐ ๋žœ๋ค์ด ์•„๋‹Œ โ€œSemiโ€๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…๊ณผ ์ฝ”๋“œ ๋ฐ ์•„ํ‚คํ…์ณ์™€์˜ ์นœ๋ฐ€์„ฑ์€ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณต์žกํ•œ ๋ฒ„๊ทธ๋Š” ๋žœ๋ค์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์ถ”์ ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถ”์ ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

์ด๋Š” ๋‹ค๋ฅธ ํ‘œ๋ฉด ์ฆ์ƒ์—์„œ ๋ฒ„๊ทธ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด ์–ด๋ ค์šธ ๋•Œ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ ํšจ๊ณผ๋Š” ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ˜ํ”Œ๋งํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์ฒซ ์‹œ๋„์—์„œ ์–ด๋ ค์šด ๊ฒฝ๋กœ๋ฅผ ํƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋™์‹œ์— ์ถ”์  ๊ฒฝ๋กœ๋ฅผ ์‹œ๋„ํ•œ๋‹ค ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๊ฐ€์žฅ ์‰ฌ์šด ๊ฒฝ๋กœ๋ฅผ ์ฆ‰์‹œ ์ฐพ์•„๋‚ด๊ณ  ๋ฒ„๊ทธ๋ฅผ ๋” ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ์ฐพ์•„๋‚ผ ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž๋Š” ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ๋ณด๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ํŠธ๋ ˆ์ด์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๊ธฐ ์ „์— ์ด๋ฅผ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ๋ฏธ๊ฐ€ ์žฅ๋ฏธ ๋‹ค์šฐ๋ ค๋ฉด

๋ฆฌ๋ˆ„์Šค์˜ ํ–‰๋™์„ ์—ฐ๊ตฌํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ์™œ ์„ฑ๊ณต์ ์ด์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ด๋ก ์„ ๋งŒ๋“  ํ›„, ๋‚˜๋Š” ์ด ์ด๋ก ์„ ๋‚ด ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ (๋ฌผ๋ก  ํ›จ์”ฌ ๋œ ๋ณต์žกํ•˜๊ณ  ๋œ ์•ผ์‹ฌ์ ์ธ ํ”„๋กœ์ ํŠธ) ์— ์ ์šฉํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ•œ ์ผ์€ popclient ๋ฅผ ๋” ์žฌ์กฐ์งํ™”ํ•˜๊ณ  ๋‹จ์ˆœํ™”ํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ์นผ ํ•ด๋ฆฌ์Šค (Carl Harris) ์˜ ๊ตฌํ˜„๋ฐฉ์‹์€ ๋งค์šฐ ๊ฑด๊ฐ•ํ•œ ๊ฒƒ์ด์—ˆ์ง€๋งŒ ๋งŽ์€ C ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์—๊ฒŒ์„œ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ผ์ข…์˜ ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Š” ์ฝ”๋“œ๋ฅผ ์ค‘์‹ฌ์ ์ธ ๊ฒƒ์œผ๋กœ, ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ›์ณ์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰ํ–ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ์•„๋ฆ„๋‹ต์ง€๋งŒ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ž„์‹œ๋ณ€ํ†ต(ad-hoc)์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๊ณ , ๋ณด๊ธฐ์— ์ข‹์ง€ ์•Š์•˜๋‹ค. (์ตœ์†Œํ•œ ์˜› LISP ํ•ด์ปค์˜ ๋†’์€ ๊ธฐ์ค€์—์„œ ๋ณด์ž๋ฉด ๋ง์ด๋‹ค)

๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ์™€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ ๋ง๊ณ ๋„ ๋‚˜๋Š” ๋˜๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๊ฒƒ์€ popclient๋ฅผ ๋‚ด๊ฐ€ ์™„์ „ํžˆ ์ดํ•ดํ•˜๋Š” ๋ฌด์—‡์ธ๊ฐ€๋กœ ์ง„ํ™”์‹œํ‚ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์ฑ…์ž„์„ ๋งก๋Š” ๊ฒƒ์€ ๊ดด๋กœ์šด ์ผ์ด๋‹ค.

์ฒ˜์Œ ํ•œ๋‹ฌ ์ •๋„๊ฐ€ ์ง€๋‚  ๋™์•ˆ ๋‚˜๋Š” ๊ทธ์ € ์นผ์˜ ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„๊ฐ€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋”ฐ๋ผ๋‹ค๋‹ˆ๊ธฐ๋งŒ ํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์ค‘์š”ํ•œ ์ˆ˜์ •์„ ๊ฐ€ํ•œ ๊ฒƒ์€ IMAP ์ง€์›์ด์—ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ๋จธ์‹ ์„ ์ผ๋ฐ˜์ ์ธ ๋“œ๋ผ์ด๋ฒ„์™€ ์„ธ๊ฐ€์ง€ ๋ฉ”์†Œ๋“œ ํ…Œ์ด๋ธ” (POP2, POP3, IMAP์„ ์ง€์›ํ•˜๋Š”)๋กœ ์žฌ์กฐ์งํ–ˆ๋‹ค. ์ด๊ฒƒ๊ณผ ๊ทธ ์ด์ „์˜ ๋ณ€๊ฒฝ๋“ค์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ๊ธฐ์–ตํ•ด ๋‘˜๋งŒํ•œ ์ผ๋ฐ˜์ ์ธ ์›๋ฆฌ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ํŠนํžˆ C ์™€ ๊ฐ™์ด ์ฆ‰ํฅ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจํ•˜๊ธฐ ํž˜๋“  ์–ธ์–ด์—์„œ๋Š”.

  1. ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ›Œ๋ฅญํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์ฝ”๋“œ๋ฅผ ๋ฉ์ฒญํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋ณด๋‹ค ํ›จ์”ฌ ์ž˜ ์ž‘๋™ํ•œ๋‹ค. (Smart data structures and dumb code works a lot better than the other way around)

๋ธŒ๋ฃฉ์Šค์˜ ์ฑ… 9์žฅ(Chapter 9) ์— ์ด๋ ‡๊ฒŒ ์“ฐ์—ฌ์žˆ๋‹ค. "๋‚ด๊ฒŒ [์ฝ”๋“œ]๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  [์ž๋ฃŒ๊ตฌ์กฐ]๋ฅผ ์ˆจ๊ธด๋‹ค๋ฉด ๋‚˜๋Š” ๊ณ„์† ์–ด๋ฆฌ๋‘ฅ์ ˆํ•  ๊ฒƒ์ด๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค๋ฉด ์ฝ”๋“œ๋Š” ๋ณผ ํ•„์š”๋„ ์—†์ด ๋ป”ํ•œ ๊ฒƒ์ด๋‹ค." ์‚ฌ์‹ค ๋ธŒ๋ฃฉ์Šค๋Š” "ํ๋ฆ„๋„" ์™€ "ํ…Œ์ด๋ธ”"์ด๋ผ๊ณ  ์ด์•ผ๊ธฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ 30๋…„๊ฐ„ ๋ณ€ํ•ด์˜จ ์šฉ์–ด๋“ค๊ณผ ๋ฌธํ™”๋ฅผ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ๊ฑฐ์˜ ๋˜‘๊ฐ™์€ ๋ง์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ์‹œ์ ์—์„œ (1996๋…„ 9์›” ์ดˆ, ์ผ์„ ์‹œ์ž‘ํ•˜๊ณ  6 ์ฃผ๊ฐ€ ์ง€๋‚œ ํ›„) ๋‚˜๋Š” ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ๋•Œ๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ ๋” ์ด์ƒ POP ํด๋ผ์ด์–ธํŠธ๋งŒ์ด ์•„๋‹ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„ค๊ณ„์ƒ์— ์ •๋ง ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋“ค์–ด๊ฐ€ ์žˆ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋จธ๋ญ‡๊ฑฐ๋ฆฌ๊ณ  ์žˆ์—ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“  popclient ๋Š” ์•„์ง ์Šค์Šค๋กœ์˜ ์ •์ฒด์„ฑ์„ ํ™•๋ฆฝํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

fetchmail ์ด ์–ด๋–ป๊ฒŒ SMTP ํฌํŠธ๋กœ ๊ฐ€์ ธ์˜จ ๋ฉ”์ผ์„ ํฌ์›Œ๋“œ ์‹œ์ผœ์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ณ  ๋‚œ ํ›„์—๋Š” ์ƒํ™ฉ์ด ๊ธ‰๋ณ€ํ–ˆ๋‹ค. ๊ทธ์— ๋Œ€ํ•ด์„œ๋Š” ์ž ์‹œ ํ›„์— ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ณด๋‹ค ๋จผ์ €, ์•ž์„œ ๋‚˜๋Š” ๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ๊ฐ€ ์˜ณ์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ผ์„ ํ•ด๋ƒˆ๋‹ค๋Š” ๋‚ด ์ด๋ก ์„ ์‹œํ—˜ํ•˜๊ธฐ ์œ„ํ•ด ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค๊ณ  ๋งํ–ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์‹œํ—˜์„ ํ–ˆ์„๊นŒ? ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

  1. ์ผ์ฐ, ์ž์ฃผ ๋ฐœํ‘œํ–ˆ๋‹ค. (๋ฐœํ‘œ๊ฐ„๊ฒฉ์ด 10์ผ์„ ๋„˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์—ˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ์— ๋ชฐ๋‘ํ•ด ์žˆ์„ ๋•Œ๋Š” ํ•˜๋ฃจ์— ํ•œ๋ฒˆ์”ฉ ๋ฐœํ‘œํ–ˆ๋‹ค)

  2. fetchmail ์— ๋Œ€ํ•œ ์ผ๋กœ ๋‚˜์—๊ฒŒ ์—ฐ๋ฝํ•ด ์˜ค๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋“ ์ง€ ๋ฒ ํƒ€ํ…Œ์Šคํ„ฐ ๋ชฉ๋ก์— ์˜ฌ๋ ธ๋‹ค.

  3. ์ƒˆ๋กœ ๋ฐœํ‘œํ•  ๋•Œ๋งˆ๋‹ค ๋ฒ ํƒ€ํ…Œ์Šคํ„ฐ๋“ค์—๊ฒŒ ๋– ๋“ค์ฉํ•˜๊ฒŒ ๋ฐœํ‘œ๋ฅผ ์•Œ๋ฆฌ๋ฉฐ ์‚ฌ๋žŒ๋“ค์ด ์ฐธ์—ฌํ•˜๋„๋ก ๊ฒฉ๋ คํ–ˆ๋‹ค.

  4. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์˜ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์—ˆ๋‹ค. ์„ค๊ณ„ ๊ฒฐ์ •์— ๋Œ€ํ•ด ํˆฌํ‘œ๋ฅผ ํ•˜๊ธฐ๋„ ํ–ˆ๊ณ  ํŒจ์น˜๋‚˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ณด๋‚ด์˜ฌ ๋•Œ๋งˆ๋‹ค ๋ฒ ํƒ€ํ…Œ์Šคํ„ฐ๋“ค์„ ๊ตฌ์Šฌ๋ €๋‹ค.

์ด ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•๋“ค์€ ์ฆ‰๊ฐ ํšจ๋ ฅ์„ ๋‚˜ํƒ€๋ƒˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์ž๋“ค์ด๋ผ๋ฉด ํ•™์ˆ˜๊ณ ๋Œ€ํ•  ๋งŒํ•œ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋ฅผ, ๋•Œ๋กœ๋Š” ํ›Œ๋ฅญํ•˜๊ฒŒ ์ˆ˜์ •๋œ ์ฝ”๋“œ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์‚ฌ๋ ค๊นŠ์€ ๋น„ํŒ๊ณผ ํŒฌ ๋ฉ”์ผ, ๊ธฐ๋Šฅ์ œ์•ˆ๋“ค์„ ๋ฐ›์•˜๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๋ก ์„ ์ด๋Œ์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  1. ๋ฒ ํƒ€ํ…Œ์Šคํ„ฐ๋“ค์„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ž์›์œผ๋กœ ์—ฌ๊ธด๋‹ค๋ฉด ๊ทธ๋“ค์€ ์ •๋ง ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ž์›์ด ๋˜์–ด์ค€๋‹ค. (If you treat your beta-testers as if the're your most valuable resource, they will respond by becoming your most valuable resource)

fetchmail ์˜ ์„ฑ๊ณต์„ ์žฌ๋Š” ์žฌ๋ฏธ์žˆ๋Š” ์ฒ™๋„ ์ค‘ ํ•˜๋‚˜๋Š” ํ”„๋กœ์ ํŠธ ๋ฒ ํƒ€ํ…Œ์Šคํ„ฐ ๋ฉ”์ผ๋ง๋ฆฌ์ŠคํŠธ์ธ fetchmail-friends ์˜ ํฌ๊ธฐ์ด๋‹ค. ์ด ๊ธ€์„ ์“ฐ๊ณ ์žˆ์„ ๋•Œ ๋ชฉ๋ก์—๋Š” 249 ๋ช…์ด ์žˆ์—ˆ๊ณ  1์ฃผ์ผ์— 2~3๋ช…์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

1997 ๋…„ 5์›”๋ง ๊ฒฝ์— ๊ธ€์„ ์ˆ˜์ •ํ•˜๋ฉด์„œ ๋ณด๋‹ˆ๊นŒ ๋ชฉ๋ก์€ 300๋ช… ๊ฐ€๊นŒ์ด ๋˜์—ˆ๊ณ , ๋ฉค๋ฒ„๋“ค์ด ์กฐ๊ธˆ์”ฉ ์ค„๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๊ทธ ์ด์œ ๊ฐ€ ํฅ๋ฏธ๋กœ์™”๋‹ค. ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค์ด ๊ตฌ๋…์„ ์ค‘๋‹จํ•˜๋ฉด์„œ fetchmail ์ด ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ๋ฉ”์ผ๋ง๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด๊ณ  ์žˆ์„ ์ด์œ ๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ–ˆ๋‹ค. ์•„๋งˆ ์ด๊ฒƒ์ด ์„ฑ์ˆ™ํ•œ ์‹œ์žฅ ์Šคํƒ€์ผ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฐ€์ง€๋Š” ์ •์ƒ์ ์ธ ๋ผ์ดํ”„์‚ฌ์ดํด ์ค‘ ํ•˜๋‚˜์ผ ๊ฒƒ์ด๋‹ค.