Ipfs: ipfs๊ฐ€ ์‹ค์ œ URL์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 02์›” 25์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ipfs/ipfs

ํ˜„์žฌ ipfs๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค ํ‘œ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

/ipfs/hash/path/to/resource

๊ทธ๋ฆฌ๊ณ 

http://localhost:8080/ipfs/hash/path/to/resource

๋‘˜ ๋‹ค ํ‘œ์ค€ URL ์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ‘œ์ค€ URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ipfs://hash/path/to/resource

๋Œ€์‹  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

/ipfs/hash/path/to/resource

?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

:( ipfs/go-ipfs#1678 ์„ ์ฝ์€ ํ›„ ๋” ์ด์ƒ IPFS์— ๊ด€์‹ฌ์ด ์žˆ๋Š”์ง€ ํ™•์‹ ์ด ์„œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ •๋ง๋กœ ์ž์ „๊ฑฐ ์ฐฝ๊ณ ์— ๋“ค์–ด๊ฐ€๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๊ฒƒ์€

It might help to imagine mounting the entire IPFS under /ipfs and then accessing the files like they are just that: Files in your file system.
๋‚˜๋ฅผ ํฅ๋ถ„์‹œํ‚ค๋Š” ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ฃจํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค.
/btrfs/dev/sda1/.. /fat32/dev/sda2/.. /ext3/dev/sda3/boot/..

๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์–ดํ•„ํ•˜๋Š” ๊ฐœ๋…์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋Œ€๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ์ •๋ง๋กœ ๋‚˜๋ฅผ ํ™”๋‚˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ณณ์— ipfs๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ณผ๋Œ€๋ง์ƒ์ฆ์ ์ธ "๋ชจ๋“  ๊ฒƒ์„ ์žฌ์ฐฝ์กฐํ•˜์ž"๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์— ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์‚ฐ CAS๋ฅผ ์›ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— IPFS์— ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ€์กŒ๋˜ ์ „๋ถ€๋‹ค. ๋‚˜๋Š” ์œ ๋‹‰์Šค๋ฅผ ์›น๊ณผ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ํ† ๋ก ์„ ์ฝ์€ ํ›„ IPFS๋Š” ๋” ์ด์ƒ ๋ถ„์‚ฐ CAS๋ฅผ ์–ป๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ œํ’ˆ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ œ๊ฐ€ ์ปดํ“จํ„ฐ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์‹œํ•˜๋Š” ์ œํ’ˆ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ์ผ๋‹จ ์ž‘์„ฑ์ž๊ฐ€ ํ•œ ๊ฐ€์ง€๋ฅผ ์ง€์‹œํ•˜๋ฉด ์•„๋งˆ๋„ ๊ทธ๋“ค์€ ๋‚ด ์ปดํ“จํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด. ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

IPFS์˜ ๋ถ„์‚ฐ CAS ๊ตฌํ˜„์ด ์ •๋ง ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์˜ค๋žซ๋™์•ˆ ๋ถ„์‚ฐ CAS๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์„ ๊ฟˆ๊ฟ” ์™”์Šต๋‹ˆ๋‹ค :(. ๊ทธ๋ž˜์„œ ์—ฐ๊ตฌ ๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค๋ฅธ ๋ถ„์‚ฐ CAS๋ฅผ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค...

๋ชจ๋“  28 ๋Œ“๊ธ€

์ง€๊ธˆ์€ ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์ง€๋งŒ ๋‹ค์Œ ์ค„์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.
IPFS๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋ฉฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ URL์ด ์•„๋‹Œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. URL์€ ๋กœ์ปฌ ์‹œ์Šคํ…œ๊ณผ ์›๊ฒฉ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ†ตํ•ฉ ์‹คํŒจ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ถ”์•…ํ•จ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IPFS๋Š” ๋กœ์ปฌ ๋ฐ ์›๊ฒฉ ํŒŒ์ผ์„ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ถ”์•…ํ•จ์„ ํ”ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํŒŒ์ผ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ๋ฒ•์€ ํ‘œ์ค€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

/ipfs ์•„๋ž˜์— ์ „์ฒด IPFS๋ฅผ ํƒ‘์žฌํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ.

๊ทธ๋ฆฌ๊ณ  https://github.com/ipfs/in-web-browsers/issues/28 ๋ฐ ์ดˆ์•ˆ ์‚ฌ์–‘์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. cc @lgierth

:( ipfs/go-ipfs#1678 ์„ ์ฝ์€ ํ›„ ๋” ์ด์ƒ IPFS์— ๊ด€์‹ฌ์ด ์žˆ๋Š”์ง€ ํ™•์‹ ์ด ์„œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ •๋ง๋กœ ์ž์ „๊ฑฐ ์ฐฝ๊ณ ์— ๋“ค์–ด๊ฐ€๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๊ฒƒ์€

It might help to imagine mounting the entire IPFS under /ipfs and then accessing the files like they are just that: Files in your file system.
๋‚˜๋ฅผ ํฅ๋ถ„์‹œํ‚ค๋Š” ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ฃจํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค.
/btrfs/dev/sda1/.. /fat32/dev/sda2/.. /ext3/dev/sda3/boot/..

๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์–ดํ•„ํ•˜๋Š” ๊ฐœ๋…์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋Œ€๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ์ •๋ง๋กœ ๋‚˜๋ฅผ ํ™”๋‚˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ณณ์— ipfs๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ณผ๋Œ€๋ง์ƒ์ฆ์ ์ธ "๋ชจ๋“  ๊ฒƒ์„ ์žฌ์ฐฝ์กฐํ•˜์ž"๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์— ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์‚ฐ CAS๋ฅผ ์›ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— IPFS์— ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ€์กŒ๋˜ ์ „๋ถ€๋‹ค. ๋‚˜๋Š” ์œ ๋‹‰์Šค๋ฅผ ์›น๊ณผ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ํ† ๋ก ์„ ์ฝ์€ ํ›„ IPFS๋Š” ๋” ์ด์ƒ ๋ถ„์‚ฐ CAS๋ฅผ ์–ป๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ œํ’ˆ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ œ๊ฐ€ ์ปดํ“จํ„ฐ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์‹œํ•˜๋Š” ์ œํ’ˆ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ์ผ๋‹จ ์ž‘์„ฑ์ž๊ฐ€ ํ•œ ๊ฐ€์ง€๋ฅผ ์ง€์‹œํ•˜๋ฉด ์•„๋งˆ๋„ ๊ทธ๋“ค์€ ๋‚ด ์ปดํ“จํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด. ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

IPFS์˜ ๋ถ„์‚ฐ CAS ๊ตฌํ˜„์ด ์ •๋ง ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์˜ค๋žซ๋™์•ˆ ๋ถ„์‚ฐ CAS๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์„ ๊ฟˆ๊ฟ” ์™”์Šต๋‹ˆ๋‹ค :(. ๊ทธ๋ž˜์„œ ์—ฐ๊ตฌ ๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค๋ฅธ ๋ถ„์‚ฐ CAS๋ฅผ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค...

@timthelion ์ €์ฒ˜๋Ÿผ CAS์™€ IPFS์— ๊ด€์‹ฌ์ด ๋งŽ์œผ์‹  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ณ ๊ฐ๋‹˜์˜ ๊ฑฑ์ •์„ ๋œ์–ด๋“œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ตœ์„ ์„ ๋‹คํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด IPFS๋ฅผ ์‹œ์Šคํ…œ์˜ ์–ด๋Š ๊ณณ์—๋„ ์žฅ์ฐฉํ•˜์ง€ ์•Š๊ณ  CAS๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.
/ipfs/Qm.. ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ์‹์€ ์ผ๋ฐ˜ URL๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋Œ€ํ™”์™€ ์—ฐ๊ฒฐ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ์ •์‹ ์  ์ง€๋ฆ„๊ธธ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” "ํ”„๋กœํ† ์ฝœ ํ•ธ๋“ค๋Ÿฌ"์™€ "์ •๊ทœ ์ฃผ์†Œ ์˜๋ฏธ๋ก " ์ƒํ™ฉ์ด ์ง€๊ธˆ ๋‹น์žฅ์€ ๋ฐฉ๊ด€์ž์—๊ฒŒ ์—‰๋ง์œผ๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ, ์ข‹์€ ์‚ฌ๋žŒ๋“ค์ด ์‹ค์šฉ์ ์ธ ์†”๋ฃจ์…˜์„ ์—ฐ๊ตฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ง€๊ธˆ ๋‹น์žฅ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: https://github.com/ ipfs/in-web-browsers/issues/3, https://github.com/ipfs/in-web-browsers/issues/7).

์ด๊ฒƒ์€ ์ง€์†์ ์ธ ๋Œ€ํ™”์ด๋ฉฐ ์ด๋Ÿฌํ•œ ์ผ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ฐ˜์ ์ธ ๋ฐฉํ–ฅ(๋‚ด ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ)์€ _"๋ฌด์Šจ ์ผ์ด ์žˆ์–ด๋„ ๋ชจ๋“  ๊ฒƒ์„ ์žฌ์ฐฝ์กฐ"ํ•˜๊ธฐ๋ณด๋‹ค๋Š” _"์‹ค์šฉ์ ์ธ ๊ฒฝ์šฐ ์‚ฐ์—… ํ‘œ์ค€์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์œ ์šฉํ•œ ๋„๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ"_์ž…๋‹ˆ๋‹ค.

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

์–ด๋–ค ์กฐ๊ฐ์„ ์‚ฌ์šฉํ• ์ง€๋Š” ๋‹น์‹ ์ด ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. โš™๏ธ ๐Ÿ”ง

์•„๋ฌด๋„ ๋‚ด ๋งˆ์ง€๋ง‰ ๊ฒŒ์‹œ๋ฌผ์„ ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ›์•„๋“ค์ด์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. "๋„ˆํฌ ๋ชจ๋‘๋Š” ๋‚ด๊ฐ€ ๋– ๋‚˜๋Š” ๊ฐœ์ž์‹์•„"๋ผ๋Š” ๋ง์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ˆ˜์ฒœ ๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด IPFS๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๊ณ  ๊ฒฐ์ •ํ•˜๊ณ  ์ด์œ ๋ฅผ ์“ฐ์ง€ ์•Š๊ณ  ๋– ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ข…์ข… ๊ทธ๋ ‡๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ์ € ์•„๋ฌด๋ ‡์ง€ ์•Š๊ฒŒ ๊ธฐ์ˆ ์„ ๋ณด๊ณ  ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋ฅผ ๋ฌธ์ง€๋ฅด๋Š” ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์นจ๋ฌตํ•˜๋Š” ๋‹ค์ˆ˜์˜ ์นจ๋ฌตํ•˜๋Š” ์˜์›์ด ๋˜๊ณ  ์‹ถ์ง€ ์•Š๊ณ , ๋˜ ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค :D ํ•˜์ง€๋งŒ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ ipfs ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— fs:// ๋˜๋Š” ํ”„๋กœ์ ํŠธ ํ—ค๋“œ๊ฐ€ ์„ ํƒํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ipfs๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ผ๋ถ€ ์‹ค์ œ ์ผ๋ฐ˜ URL์ด ์กด์žฌํ•  ๋•Œ๊นŒ์ง€ ์ง„์ง€ํ•˜๊ฒŒ IPFS ๋ณด๊ธฐ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ณผ๋Œ€๋ง์ƒ์ฆ์ ์ธ "๋ชจ๋“  ๊ฒƒ์„ ์žฌ์ฐฝ์กฐํ•˜์ž"๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์— ๊ฑฐ๋ถ€๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋„์ทจ๋˜๊ณ  ์žˆ์—ˆ๊ณ , ์ด๊ฒƒ์— ๋Œ€ํ•œ ์–ด๋–ค ๊ฒƒ๋„ '๊ณผ๋Œ€๋ง์ƒ์ฆ'์ด๋‚˜ ์‹ฌ์ง€์–ด ์žฌ๋ฐœ๋ช…๋„ ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. /ipfs์— ๋งˆ์šดํŠธํ•˜๋Š” ๊ฒƒ์€ ํ•ต์‹ฌ ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ฌ๋ฌผ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์‹œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋Œ€๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋งˆ์šดํŠธํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ฌด๋„ IPFS๋ฅผ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ @timthelion ์œผ๋กœ ๋งˆ์šดํŠธํ•˜๋„๋ก ๊ฐ•์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋ฉฐ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋œ ๊ธฐ๋Šฅ์„ ์‹ซ์–ดํ•œ๋‹ค๋Š” ๊ฒƒ์€ IPFS๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๋ฌด์‹œํ•ด์•ผ ํ•˜๋Š” ์•ฝํ•œ ์ด์œ ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ž์œผ๋กœ๋Š” ๋งˆ์Œ์„ ๋ฐ”๊ฟ” ๋‹ค์‹œ ํ•จ๊ป˜ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ข‹์•„ํ•˜๋Š” ๋‹จ์ผ ์ œํ’ˆ์„ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์•„๋ฌด๊ฒƒ๋„ ์žฌ๋ฐœ๋ช…ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ๋„ ์–ธ๊ธ‰ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ "๋ฐœ๋ช…ํ•˜์ง€ ์•Š๋Š”" ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๋‹ค์–‘ํ•œ ์˜๊ฒฌ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์›ํ•˜๋Š” ์›ํ™œํ•œ ์ง€์›์„ ์ œ๊ณตํ•  fs:// ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ๋งํ•˜๋Š” ๋Œ€๋กœ ๊ตฌํ˜„๋˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฏธ ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ PoC๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก PoC ๊ตฌํ˜„์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ž ํฌ์žฅ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ง€์›์„ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋นจ๋ฆฌ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ๋…ธ๋ ฅ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋‹น์‹ ์€ ๋„‹์„ ์žƒ๊ณ  ์žˆ์—ˆ๊ณ , ์ด๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์€ '๊ณผ๋Œ€๋ง์ƒ'์ด๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ์žฌ๋ฐœ๋ช…๋„ ์•„๋‹™๋‹ˆ๋‹ค."

๋‚˜๋Š” https://github.com/multiformats/multiaddr ์„ ํƒ์š•์Šค๋Ÿฝ๊ณ  ์žฌ์ฐฝ์กฐํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. URL๊ณผ๋Š” ๋‹ค๋ฅธ ํ˜•์‹์ด์ง€๋งŒ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ค‘์š”ํ•œ ํ‘œ์ค€์„ ์žฌ๋ฐœ๋ช…ํ•˜๋ ค๋ฉด ์ •๋ง ๊ทธ๋Ÿด๋“ฏํ•œ ์ด์œ ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

"์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค."

์ด ์•„์ด๋””์–ด๋กœ ์—ฌ๋Ÿฌ๋ถ„์ด ์–ด๋””๋กœ ๊ฐ€๊ณ  ์žˆ๋Š”์ง€ ์•Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ์ผ๋ฐ˜ ํŒŒ์ผ์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ˆ˜์ •ํ•˜๋ ค๋Š” "์‹ค์ˆ˜"์ž…๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋‚˜๋Š” cat http://google.com/index.html ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด ์Šฌํ”„๋‹ค๋Š” ๋ฐ ๋™์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ OS๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ํŒŒ์ผ์— ๋Œ€ํ•œ URL์„ ์—ด ์ˆ˜ ์žˆ๋Š” open ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๋Ÿฌํ•œ ๋ณ€ํ™”๋Š” ๋ฆฌ๋ˆ…์Šค์—์„œ๋„ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋ฉฐ ์›น ๋ฆฌ์†Œ์Šค๋ฅผ POSIX ํŒŒ์ผ ๊ณ„์ธต์— ์‚ฝ์ž…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. URL์ด ์ž˜๋ชป๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

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

์˜ค๋Š˜ ls / ๋ฅผ ํ•˜๋ฉด ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

$ ls / bin/ dev/ home/ lib/ media/ opt/ root/ sbin/ sys/ usr/ vmlinuz@ boot/ etc/ initrd.img@ lib64/ mnt/ proc/ run/ srv/ tmp/ var/

multiaddr์ด ์ œ์•ˆํ•œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€์‹  ๋‹ค์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ ls / bin/ bitcoin/ boot/ dev/ dns/ dns4/ dns6/ etc/ home/ http/ https/ initrd.img@ ipfs/ lib/ lib64/ libp2p-circuit-relay/ libp2p-webrtc-direct/ libp2p-webrtc-star/ media/ mnt/ onion/ opt/ p2p/ proc/ root/ run/ sbin/ sctp/ srv/ sys/ tmp/ udt/ unix/ usr/ utp/ var/ vmlinuz@
https://github.com/multiformats/multiaddr/blob/master/protocols.csv

๊ทธ๋ฆฌ๊ณ  ํ‘œ์ค€์„ ์ž˜๋ชป ํ•ด์„ํ–ˆ๋‹ค๊ณ  ๋น„๋‚œํ•˜๊ธฐ ์ „์— ์œ ๋‹‰์Šค ๊ฒฝ๋กœ๊ฐ€ ํ•ญ์ƒ ํ•ด์„๋˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ‘œ์ค€์„ ํ•ด์„ํ•˜๊ณ  ์žˆ์Œ์„ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ, ๋‚˜๋Š” ๋‚ด ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๋ฅผ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ์ด๊ฒƒ์ด ์ œ ์„ ํƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” IPFS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ๋งˆ์šดํŠธํ• ์ง€ ์—ฌ๋ถ€๋Š” ์ œ ๊ฒฐ์ •์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋‚ด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ์ปฌ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ IPFS๋ฅผ ํ†ตํ•ด ๊ณต์œ ๋œ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ทธ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ• ๊นŒ์š”? ipfs๊ฐ€ ํ‘œ์ค€ URL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ipfs://๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ipfs๋กœ ์ „๋‹ฌํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

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

๋‚ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด multiaddr์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ƒํ™ฉ์ด ๋งค์šฐ ๋นจ๋ฆฌ ๋ณต์žกํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

$tims-program-that-supports-normal-files-as-well-as-multiaddr /http/index.html
?

๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๋Š” html ํŒŒ์ผ์„ /http ์— ์ €์žฅํ•˜๋Š” ์›น ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ˜€ ๋“ค์–ด๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ๊ทธ๋žจ์ด ์ด๊ฒƒ์„ ๋‹ค์ค‘ ์ฃผ์†Œ ๋˜๋Š” ๋กœ์ปฌ ํŒŒ์ผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ํŒŒ์ด์ฌ์—์„œ URL์„ ์—ฌ๋Š” ๊ฒƒ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ์ผ๋ถ€ ์ฝ”๋“œ๋ฅผ ์ด๋ฏธ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ๊ฝค ์‰ฌ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ multiaddr ๊ฒฝ๋กœ์™€ ๋กœ์ปฌ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์„ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

if filename.startswith( "http://" ) or filename.startswith( "https://" ): import urllib.request try: with urllib.request.urlopen(filename) as webgraph: self.json = webgraph.read().decode("utf-8") except urllib.error.URLError as e: raise OSError(str(e)) else: try: with open(filename) as fd: self.json = fd.read() except FileNotFoundError: pass

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ multiaddr ์ง€์›์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ  ์ผ๋ฐ˜ URL๋งŒ ์ง€์›ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ดœ์ฐฎ์•„ ๋ณด์ด์ง€๋งŒ ipfs ์‚ฌ์šฉ์ž๋Š” ipfs ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋‹ค์ค‘ ์ฃผ์†Œ ์ฃผ์†Œ์— ์ง€์†์ ์œผ๋กœ ๋…ธ์ถœ๋  ๊ฒƒ์ด๋ฉฐ IPFS ์ง€์›์„ ๊ด‘๊ณ ํ•˜๋Š” ๋‚ด ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ฃผ์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ง€์›์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€๊ณ„์—†์ด ๋‚ด ํ”„๋กœ๊ทธ๋žจ์€ ์ค‘๋‹จ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ipfs์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ํ‘œ์ค€ POSIX ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

์ž ์žฌ์ ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” multiaddr์„ ์™„์ „ํžˆ ํฌ๊ธฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ multiaddr์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ตœ์†Œํ•œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ๋‹จ์ผ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ œํ•œํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ /ipfs/hash/blah ๋ฅผ ์“ฐ๋Š” ๋Œ€์‹  /webfs/ipfs/hash/blah ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ls / ๋Š” ๋‹ค์Œ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

$ ls / bin/ dev/ home/ lib/ media/ opt/ root/ sbin/ sys/ usr/ vmlinuz@ boot/ etc/ initrd.img@ lib64/ mnt/ proc/ run/ srv/ tmp/ var/ webfs/

๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์‚ด ์ˆ˜ ์žˆ๊ณ  ์–ด์ฉŒ๋ฉด ๋’ค์ฒ˜์งˆ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ ์ƒํ™ฉ์€ ipfs ์ง€์›์„ ๊ตฌํ˜„ํ•˜๋Š” ๋งŒ์กฑ์Šค๋Ÿฌ์šด ๋ฐฉ๋ฒ•์ด ์ „ํ˜€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋” ๋งŽ์€ CONCRETE ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งˆํฌ๋‹ค์šด์„ PDF๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” IPFS์˜ ์ด๋ฏธ์ง€ ํฌํ•จ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์”๋‹ˆ๋‹ค.

๋‹ค๋ฝ๋ฐฉ.md
````

๋‚ด ๋‹ค๋ฝ๋ฐฉ์—์„œ ์ฐพ์€ ๋ฌผ๊ฑด

An old box of rocks

๋ฐ”์œ„์˜ ์˜ค๋ž˜๋œ ์ƒ์ž์ž…๋‹ˆ๋‹ค.

A can of oil for water-proofing leather

````

๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰

$ tims-md-to-pdf-with-ipfs-support attic.md > attic.pdf

๋‚ด ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋Ÿฌํ•œ ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? /ipfs ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋งˆ์šดํŠธ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์‚ฌ์šฉ์ž๊ฐ€ /ipfs ๋ฅผ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ /ipfs/ ๋ฅผ ํŠน์ˆ˜ ์ ‘๋‘์‚ฌ๋กœ ์ทจ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด์ƒํ•˜๊ณ  ๊ณ ์žฅ๋‚œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด fs:// ๋งŒ ์ง€์›ํ•˜๊ณ  ํ•ด๋‹น ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋ณด์ด์ง€๋งŒ multiaddr ํ‘œ์ค€์— ์ต์ˆ™ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋ฐฉ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค! :/ :(

์„ค๋ช…์„ ์œ„ํ•ด ํŽธ์ง‘๋จ

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

"/์— ๋ชจ๋“  ๊ฒƒ์„ ๋งˆ์šดํŠธ" ์˜ˆ๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ

@lidel์ด ์ง€์ ํ–ˆ๋“ฏ์ด ์‚ฌ๋žŒ๋“ค์€ ํ˜„์žฌ ์ฃผ์†Œ ์ฒด๊ณ„๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์ค‘์ด๋ฏ€๋กœ ์•„์ง ๋ฌธ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. @jbenet ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋งˆ์šดํŠธ ์˜ˆ์ œ๊ฐ€ ํ˜ผ๋ž€์„ fs: ๋˜๋Š” dweb: ์ฃผ์†Œ ์ฒด๊ณ„ ์ด๋ฉด์˜ ๊ฐœ๋…์  ๋ชจ๋ธ์„ ํ†ตํ•ด ์ƒ๊ฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•œ ์˜ˆ์‹œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‹ค์ œ๋กœ ๋งˆ์šดํŠธํ•˜๋„๋ก ๊ฐ•์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๊ทธ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋งˆ์šดํŠธ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋Š” ์ฃผ์†Œ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ _์‹๋ณ„_ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ Unix/posix ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ web/dweb ์ฝ˜ํ…์ธ ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

'๋‹ค๋ฝ๋ฐฉ์— ์žˆ๋Š” ๋ฌผ๊ฑด' ์˜ˆ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์œผ๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํฌ์— fs:/ ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Stuff I found in my attic
----------------------------------

![An old box of rocks](fs:/ipfs/QmdyWzsrBvSkPYPU1ScBpwzfCcegzbc6c2hkEBLLJ6VcPV)

An old box of rocks.

![A can of oil for water-proofing leather](fs:/ipfs/QmUPC5xbVtu6NxMwFBtmWVjrVM3XffuPtSMLpmDFGfTaKG)

์ฃผ์†Œ๊ฐ€ ๋‹จ์ˆœํ•˜๊ณ  ์Šคํ‚ค๋งˆ ํ†ตํ•ฉ

์ฐธ๊ณ  ์‚ฌํ•ญ: ์ฃผ์†Œ๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜๊ฒฌ์—์„œ @nicola ๋Š” fs: / dweb: ์ฃผ์†Œ ์ฒด๊ณ„์—์„œ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ  ipfs:/ ๋ฐ ipns:/ ์ฃผ์†Œ๋ฅผ ์ง€์›ํ•˜๋Š” ์˜๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ๋œ ํ”„๋กœํ† ์ฝœ ์„ค๊ณ„ ์ฒด์กฐ๋Š” (IMHO) ์ด์ƒํ•˜๊ฒŒ ํ˜ผ๋™๋˜์ง€๋งŒ ๊ฒฐ๊ตญ ipfs:/QmdyWzsrBvSkPYPU1ScBpwzfCcegzbc6c2hkEBLLJ6VcPV ์™€ ๊ฐ™์€ ๋งˆํฌ๋‹ค์šด์— ๋งํฌ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋™์‹œ์— ์‚ฌ๋žŒ๋“ค์ด fs:/ipfs/QmdyWzsrBvSkPYPU1ScBpwzfCcegzbc6c2hkEBLLJ6VcPV ๋˜๋Š” unix/posix ์ปจํ…์ŠคํŠธ์—์„œ /ipfs/QmdyWzsrBvSkPYPU1ScBpwzfCcegzbc6c2hkEBLLJ6VcPV ์ž…๋‹ˆ๋‹ค.

์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ ˆ๋Œ€ ๊ฒฝ๋กœ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

/๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ผ๋Š” ์ง€์‹œ๋ฅผ ๋ฐ›์œผ๋ฉด ๋ถ„๋ช…ํžˆ ๋กœ์ปฌ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.

์ ˆ๋Œ€ ๊ฒฝ๋กœ๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ _context_์— ์ƒ๋Œ€์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์˜ˆ๋Š” HTML์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ, ์„œ๋ฒ„ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ ํ˜„์žฌ origin ์˜ ๋ฃจํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฝ๋กœ๊ฐ€ fs: ๋˜๋Š” dweb: ๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ /ipfs/ ์‹œ์ž‘ํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์™„์ „ํžˆ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ /ipfs ์— ipfs๋ฅผ ๋ง ๊ทธ๋Œ€๋กœ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๊ณ  ๊ฒฝ๋กœ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋งŽ์€ ๋ฐฉ๋ฒ•.

์ด๊ฒƒ์€ ๋‚ด 2 ์„ผํŠธ์ž…๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ํŒŒ์ผ์€ fs:/ ์•„๋ž˜์— ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๋„๋ฉ”์ธ์ด http:/ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ๋‚ด ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ / ์— ๋„๋ฉ”์ธ ์ด๋ฆ„ ์‹œ์Šคํ…œ์„ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ / ์— ์ „์ฒด IPFS๋ฅผ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ์‹œ์Šคํ…œ์—์„œ ์ฐธ์กฐ ์ง€์ ์€ ์ฒด๊ณ„์— ์ƒ๋Œ€์ ์ธ / ( http:/ , fs:/ ).

๋‚˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์˜ˆ์—์„œ ๋ชจ๋“  ํŒŒ์ผ ์‹œ์Šคํ…œ์ด / ์— ipfs๋ฅผ ๋งˆ์šดํŠธํ–ˆ๋‹ค๋Š” ๊ฐœ๋…์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ fs:/ ํ•˜๋ฉด URI ํ˜•์‹์ด ์†์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜คํžˆ๋ ค ๊ทธ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋งˆ์šดํŠธ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์ฃผ์†Œ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ Unix/posix ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ web/dweb ์ฝ˜ํ…์ธ ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

"๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์œ ๋‹‰์Šค/ํฌ์‹์Šค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น/๋””์›น ์ฝ˜ํ…์ธ ์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค." fs: ์ ‘๋‘์–ด๊ฐ€ ์•„๋‹Œ ๊ตฌ๋ฌธ์ด ์œ ๋‹‰์Šค ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ์˜ ๊ตฌ์ฒด์ ์ธ ์˜ˆ๋ฅผ ๋ง์”€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์–ด์จŒ๋“ , ๋‚˜๋Š” ์•„์ง๋„ ๊ทธ๊ฒƒ์„ ์–ป์ง€ ๋ชปํ•œ๋‹ค.

์ง์ ‘ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์ง€๋งŒ multiaddr ํ˜ธํ™˜ /ipfs ์ ‘๋‘์–ด ๊ตฌ๋ฌธ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ์˜ˆ์ œ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

multiaddr ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ipfs๋ฅผ ์ง€์›ํ•˜๋Š” bash์˜ diff ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ๋ž˜ํผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

````
ํ‹ฐ๋ชจ์‹œ @yoga ~/c/ipfs-multiaddr> ๊ณ ์–‘์ด multiaddr-diff

!/bin/bash

get_multiaddr_or_normal_file_getter(){
if [[ $1 == /ipfs/* ]] ;
๊ทธ ๋‹ค์Œ์—
file_getter="ipfs ๊ณ ์–‘์ด $1"
๋˜ ๋‹ค๋ฅธ
file_getter="๊ณ ์–‘์ด $1"
ํŒŒ์ด
์—์ฝ” $file_getter
}

ํŒŒ์ผ1= get_multiaddr_or_normal_file_getter $1
ํŒŒ์ผ2= get_multiaddr_or_normal_file_getter $2

์ฐจ์ด <($file1) <($file2)
````

์ผ๋ฐ˜ ํŒŒ์ผ๊ณผ ipfs ํŒŒ์ผ ๋ชจ๋‘์—์„œ ์ˆœ์ง„ํ•œ ๊ฒฝ์šฐ์— ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

````
ํ‹ฐ๋ชจ์‹œ @yoga ~/c/ipfs-multiaddr>
./multiaddr-diff ../subuser/COPYING.LGPL /ipfs/QmSRrBvLXvYQRdQ3kZtJ5oJicKMcNQzC3CwH6bJDbEKWYp
127a128,130

f) ์ฒซ์งธ ๋‚ ์— ๋กœ๋ผ์Šค ์‹ ์—๊ฒŒ ์ฒซ ์•„์ด๋ฅผ ๋ฐ”์น˜์‹ญ์‹œ์˜ค.
๋‹ค์Œ ์ง์ˆ˜ ํ•ด์˜ ๋ณด๋ฆ„๋‹ฌ.

````

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๋งŒ๋“  /ipfs/ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์‹ค์ œ ๊ธฐ์กด ํŒŒ์ผ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

timothy<strong i="39">@yoga</strong> ~/c/ipfs-multiaddr> su Password: root<strong i="40">@yoga</strong>:/home/timothy/current/ipfs-multiaddr# mkdir /ipfs/ root<strong i="41">@yoga</strong>:/home/timothy/current/ipfs-multiaddr# echo "foo">/ipfs/foo root<strong i="42">@yoga</strong>:/home/timothy/current/ipfs-multiaddr# exit exit timothy<strong i="43">@yoga</strong> ~/c/ipfs-multiaddr> ./multiaddr-diff ../subuser/COPYING.LGPL /ipfs/foo Error: selected encoding not supported ....

๋‹ค์ค‘ ์ฃผ์†Œ ์ฃผ์†Œ์™€ ์ผ๋ฐ˜ ์œ ๋‹‰์Šค ํŒŒ์ผ ๋ชจ๋‘์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋‹น ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— url ์Šคํƒ€์ผ ๊ตฌ๋ฌธ๋งŒ ์ง€์›ํ•˜๋Š” diff ๋ž˜ํผ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

````
ํ‹ฐ๋ชจ์‹œ @yoga ~/c/ipfs-multiaddr> ๊ณ ์–‘์ด url-syntax-diff

!/bin/bash

get_multiaddr_or_normal_file_getter(){
if [[ $1 == fs:* ]] ;
๊ทธ ๋‹ค์Œ์—
์ ‘๋‘์‚ฌ="fs:"
internal_path=${1#$์ ‘๋‘์‚ฌ}
file_getter="ipfs ๊ณ ์–‘์ด $internal_path"
๋˜ ๋‹ค๋ฅธ
file_getter="๊ณ ์–‘์ด $1"
ํŒŒ์ด
์—์ฝ” $file_getter
}

ํŒŒ์ผ1= get_multiaddr_or_normal_file_getter $1
ํŒŒ์ผ2= get_multiaddr_or_normal_file_getter $2
์—์ฝ” $file1
์—์ฝ” $file2
์ฐจ์ด <($file1) <($file2)
````

๊ทธ๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ ํ•ด์‹œ๊ฐ€ ์ด๋ฏธ ์ˆ˜์‹ญ์–ต 5์ž ๊ธธ์ด์ผ ๋•Œ 3๊ฐœ์˜ ์ถ”๊ฐ€ ๋ฌธ์ž๋Š” ํ™•์‹คํžˆ ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

````
ํ‹ฐ๋ชจ์‹œ @yoga ~/c/ipfs-multiaddr>
./url-syntax-diff ../subuser/COPYING.LGPL fs:/ipfs/QmSRrBvLXvYQRdQ3kZtJ5oJicKMcNQzC3CwH6bJDbEKWYp
๊ณ ์–‘์ด ../subuser/COPYING.LGPL
ipfs ๊ณ ์–‘์ด /ipfs/QmSRrBvLXvYQRdQ3kZtJ5oJicKMcNQzC3CwH6bJDbEKWYp
127a128,130

f) ์ฒซ ๋ฒˆ์งธ ๋‚ ์— ๋กœ๋ผ์Šค ์‹ ์—๊ฒŒ ์ฒซ ์•„์ด๋ฅผ ์ œ๋ฌผ๋กœ ๋ฐ”์น˜์‹ญ์‹œ์˜ค.
๋‹ค์Œ ์ง์ˆ˜ ํ•ด์˜ ๋ณด๋ฆ„๋‹ฌ.

ํ‹ฐ๋ชจ์‹œ @yoga ~/c/ipfs-multiaddr>
````

๊ทธ๋ฆฌ๊ณ  ์ด์ƒํ•œ ๊ฒฝ์šฐ์—๋Š” ์ž˜ ๋‹ค๋“ฌ์–ด์ง„ POSIX ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

````
timothy @yoga ~/c/ipfs-multiaddr> echo "๋ฐ”" >๋ฐ”
ํ‹ฐ๋ชจ์‹œ @yoga ~/c/ipfs-multiaddr> ./url-syntax-diff bar /ipfs/foo
๊ณ ์–‘์ด ๋ฐ”
๊ณ ์–‘์ด /ipfs/foo
1c1

< ๋ฐ”

ํ‘ธ
````

fs: ๋ฐ dweb:์— ๋Œ€ํ•œ ํ† ๋ก ์ด ๋์ด ์—†๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์ด ํ™๋ณด์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—ฌ์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. https://github.com/ipfs/specs/pull/139

ipfs ์‚ฌ์šฉ: ๊ทธ ๋™์•ˆ ์ ์–ด๋„ ์ €์—๊ฒŒ๋Š” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@pawal ํ•œ์ˆจ, ๋‹น์‹ ์˜ ๋Œ“๊ธ€์„ ๋ณด๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ ์ž…๋‹ˆ๋‹ค.

ํ•‘ @jbenet

์ด์ „์— ๋‚ด๊ฐ€ ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ด€์ ์„ ๊ฐ•์กฐํ•œ ๊ท€ํ•˜์˜ ์ด์ „ ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์—๋„ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

// ํŽธ์ง‘: ์ฆ‰, ์—ฌ์ „ํžˆ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ๋‹ต๋ณ€์„ ์ œ๊ณตํ–ˆ๋‹ค๋ฉด ์‘๋‹ตํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

+1

ํ‘œ์ค€์œผ๋กœ 'ipfs://'๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ œ๋ฐœ.

(๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ์˜ ๋ชจ๋“  ์•ฑ์€ ๋ชจ๋“  ํ”Œ๋žซํผ, ๋ชจ๋“  ๊ณณ์—์„œ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋””์—์„œ๋‚˜ ๋ช…ํ•จ์—)

๊ณ ๋งˆ์›Œ.

์ค„๋ฆฌ์•ˆ ์Šค๋ฏธ์Šค
๋ธ”๋กํ™”๋ฌผโ„ข

ipfs: vs. fs: vs. dweb: ์— ๋Œ€ํ•œ ํ† ๋ก ์€ ์ œ๊ฐ€ ์ด ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๊ธฐ ์ „๋ถ€ํ„ฐ ๊ณ„์†๋˜์–ด์˜จ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งˆ์นจ๋‚ด ์›น ๋ธŒ๋ผ์šฐ์ € ์Šคํ”„๋ฆฐํŠธ์˜ IPFS ๋™์•ˆ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋จธ๋ฆฌ๋ฅผ ์ˆ™์ผ ์‹œ๊ฐ„์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‚˜๋Š” ์˜ค๋Š˜ ๋‚˜์ค‘์— ipfs/specs์— ๋Œ€ํ•œ PR๋กœ ์ œ์ถœํ•  ๋‹ค์–‘ํ•œ ์˜ต์…˜๊ณผ ์ธ์ˆ˜์˜ ๊ฐœ์š”์™€ ํ•จ๊ป˜ ์ „์ฒด ๊ทธ๋ฆผ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ํ† ๋ก ์— ๋Œ€ํ•œ ์˜ˆ์™€ ์ฐธ์กฐ๋ฅผ ํฌํ•จํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋ผ๊ฑด๋Œ€ ๊ทธ๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ๋ช…ํ™•์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  ์žฅ๊ธฐ์ ์œผ๋กœ ํฐ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์‹ค์ˆ˜๋ฅผ ์ €์ง€๋ฅด์ง€ ์•Š๊ณ  ๊ฐ€์žฅ ์‹ค์šฉ์ ์ธ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ด ํ† ๋ก ์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐ์— ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/ipfs/specs/pull/152 ์ •ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ์ •๋ณด๋กœ PR์„ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

๋ฌด์ง€ํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค๋งŒ PR์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@timthelion ๋‹น์‹ ์€ @jbenet์ฒ˜๋Ÿผ์„ํ•˜๊ณ  ์ฃผ์„์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์—ฌ๊ธฐ ๊ฑฐ๋‚˜, ์ปค๋ฐ‹, ์ „์†ก ํŒจ์น˜ ๋“ฑ์˜ REPO๋ฅผ ๋ณต์ œ ๋ถ„๊ธฐ๋ฅผ ์ฒดํฌ ์•„์›ƒ, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@vasa-develop ๊ท€ํ•˜์˜ ์˜๊ฒฌ์€ ์‹ค์ œ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ƒํ™ฉ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ŠคํŒธ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

DID URI๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? did:ipfs:QmSRrBvLXvYQRdQ3kZtJ5oJicKMcNQzC3CwH6bJDbEKWYp ์™€ ๊ฐ™์€

๋ถ„์‚ฐ ์‹๋ณ„์ž(DID)

DID๋Š” ์‚ฌ๋žŒ์˜ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ์ ์œผ๋กœ๋Š” ์‹ค์ œ๋กœ URN(๋‚ด ์ƒ๊ฐ์—๋Š”?)์ด๋ฏ€๋กœ ๋” ๋‚˜์€ ์งˆ๋ฌธ์€ "URN์ด ์•„๋‹Œ ์ด์œ "์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๋Œ€๋‹ต์€ URL ์ด ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด ๊ฒฝ๋กœ ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ํ˜ธํ™˜์„ฑ(๋ฌด์—‡๋ณด๋‹ค๋„)์„ ์ œ๊ณตํ•˜์ง€๋งŒ URN์€ ์ผ๋ถ€ ํ‘œ์ค€ ๊ธฐ๊ด€์— ๋Œ€ํ•œ ์„ ์˜ ์™ธ์—๋Š” ๋งŽ์€ ๊ฒƒ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์ œ๋กœ URL ์œ„์น˜๋ฅผ ๋ฌด์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, IPFS ์ปดํŒจ๋‹ˆ์–ธ(๋ธŒ๋ผ์šฐ์ € ์• ๋“œ์˜จ)์€ ipfs://... ๋ฐ ipns://... ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋Š” dweb://ipfs/... ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์ ์ ˆํ•œ ๋ณด์•ˆ ์ถœ์ฒ˜ ์ง€์›๋„ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ฒซ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ์— ํ•ด์‹œ๊ฐ€ ํ•„์š”ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค).

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ipfs://... ๊ฐ€ /ipfs/... ์™€ ๋™๋“ฑํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ณณ์—์„œ ๊ฒฝ๋กœ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@Stebalien DID๊ฐ€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๋Š” ์•„์ด๋””์–ด๋Š” ์–ด๋””์„œ ์–ป๋‚˜์š”? "์‚ฌ๋žŒ"์€ DID ์‚ฌ์–‘์—์„œ ํ•œ ๋ฒˆ๋„ ์–ธ๊ธ‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. URI ์‹๋ณ„์ž๋Š” ์ •์˜์— ๋”ฐ๋ผ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๋ฌด์—‡์„ ๊ณ ๋ คํ•˜๋“  ๊ทธ๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ์กด ์ธํ”„๋ผ์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ๊ณผ ์ง€์›์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

DID๊ฐ€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๋Š” ์•„์ด๋””์–ด๋Š” ์–ด๋””์„œ ์–ป๋‚˜์š”? "์‚ฌ๋žŒ"์€ DID ์‚ฌ์–‘์—์„œ ํ•œ ๋ฒˆ๋„ ์–ธ๊ธ‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

DID๋Š” "๋””์ง€ํ„ธ ์‹ ์›"์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ถ„์‚ฐ์‹๋ณ„์ž(DID)๋Š” ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ "์ž์ฃผ๊ถŒ" ๋””์ง€ํ„ธ ์‹ ์›์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ? ์‚ฌ๋žŒ, ๋™๋ฌผ, ๊ฑด๋ฌผ, ์กฐ์ง, ์‚ฌ๋ฌผ, ์•„์ด๋””์–ด, ๋ฌธ์„œ ๋“ฑ ๋ชจ๋“  ๊ฒƒ์ด _identity_๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด URI์˜ ์•„๋ฆ„๋‹ค์›€์ž…๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ DID ์‚ฌ์–‘์„ ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์‚ฌ๋žŒ์—๊ฒŒ ํŠน์ •ํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์‹๋ณ„์ž(DID)
๋ถ„์‚ฐ ์›์žฅ ๊ธฐ์ˆ  ๋˜๋Š” ๊ธฐํƒ€ ํ˜•ํƒœ์˜ ๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ์— ๋“ฑ๋ก๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์•™ ์ง‘์ค‘์‹ ๋“ฑ๋ก ๊ธฐ๊ด€์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ „์—ญ ๊ณ ์œ  ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. DID์˜ ์ผ๋ฐ˜ ํ˜•์‹์€ ์ด ์‚ฌ์–‘์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • DID ๋ฐฉ์‹์€ DID ๋ฐฉ์‹ ์‚ฌ์–‘์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰