Skip to content
ํ”„๋กœ์ ํŠธ

hyeonsangjeon/Repolis has 47 GitHub stars and 19 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-10 01:24 UTC. Last push 2026-11-07.

์ด ์ˆ˜์น˜๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

๐Ÿ™๏ธ Public GitHub repos become a walkable 3D town. Traffic shapes the buildings, residents live there, and Gitber drives you to the right project.

์ธก์ •๋œ ์Šคํƒ€ ์ฆ๊ฐ€

in 24h
0
in 7 days
์—…๋ฐ์ดํŠธ ์ง€์—ฐ
in 15 days
์—…๋ฐ์ดํŠธ ์ง€์—ฐ
in 1 month
์—…๋ฐ์ดํŠธ ์ง€์—ฐ

์„œ๋กœ ๊ฒน์น˜๋Š” ๊ธฐ๊ฐ„์˜ ์ˆœ์ฆ๊ฐ€๋Ÿ‰์ด๋ฉฐ ์ผ๋ณ„ ํ•ฉ๊ณ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ธก์ •๊ฐ’์ด ์—†์œผ๋ฉด ๋น„์›Œ ๋‘ก๋‹ˆ๋‹ค. ์Šคํƒ€๋Š” ๊ด€์‹ฌ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

README.ko.md

Original

Repolis โ€” ๋ ˆํฌ๋“ค์˜ ๋„์‹œ

Repolis โ€” ๋ ˆํฌ๋“ค์˜ ๋„์‹œ

English ยท ํ•œ๊ตญ์–ด

Repolis๋Š” ๊ณต๊ฐœ GitHub ๋ ˆํฌ๋ฅผ ์ง์ ‘ ๊ฑธ์–ด ๋‹ค๋‹ˆ๋Š” 3D ๋งˆ์„๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์ด ๊ฑด๋ฌผ์„ ๋งŒ๋“ค๊ณ , ์ฃผ๋ฏผ์ด ์‚ด์•„๊ฐ€๋ฉฐ, ๊นƒ๋ฒ„๊ฐ€ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊นŒ์ง€ ๋ฐ๋ ค๊ฐ‘๋‹ˆ๋‹ค.

๋‚ด GitHub ๋„์‹œ ๋งŒ๋“ค๊ธฐ
๋จผ์ € ๋ˆŒ๋Ÿฌ๋ณด์„ธ์š”: GitHub ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ณต๊ฐœ ๋ ˆํฌ๋กœ ์ง€์€ ๋‚ด ๋„์‹œ๋ฅผ ๊ฑธ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ Repolis ๋ผ์ด๋ธŒ ๋งˆ์„ ์ž…์žฅ Repolis ๋„์‹œ ๊ฐค๋Ÿฌ๋ฆฌ ์—ด๊ธฐ Repolis ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋‚ด ๋งˆ์„ ๋งŒ๋“ค๊ธฐ
๋งŒ๋“  ์‚ฌ๋žŒ์˜ ๋ผ์ด๋ธŒ ๋งˆ์„ ๊ฑท๊ธฐ ยท ๋„์‹œ ์นด๋“œ ๊ตฌ๊ฒฝ ยท ๋˜๋Š” ํ…œํ”Œ๋ฆฟ์„ ๋ณต์ œํ•ด ๋‚ด Repolis ์šด์˜

Repolis ๋ฐ๋ชจ: ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ง€์€ ์‚ด์•„ ์žˆ๋Š” GitHub ๋งˆ์„, ๊นƒ๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ํƒ์‹œ ์ด๋™, ์‹ค์ œ ๋ ˆํฌ ์นด๋“œ

๐ŸŽฌ 15์ดˆ ๋ฐ๋ชจ: ํŠธ๋ž˜ํ”ฝ โ†’ ๊ฑด๋ฌผ ยท ๊นƒ๋ฒ„์—๊ฒŒ ์งˆ๋ฌธ โ†’ ํƒ์‹œ ์ด๋™ โ†’ ์‹ค์ œ ๋ ˆํฌ ์นด๋“œ
WASD / ํ„ฐ์น˜๋กœ ๊ฑท๊ธฐ ยท ๊นƒ๋ฒ„์—๊ฒŒ ๋ฌป๊ธฐ ยท Enter / ํƒญ์œผ๋กœ ์—ด๊ธฐ ยท ๊ฐ€์ž…์ด๋‚˜ ๋นŒ๋“œ ์—†์Œ ยท ๋กœ์ปฌ ์‹คํ–‰ ยท โญ Star ๋‚จ๊ธฐ๊ธฐ
์ฒซ ํ™”๋ฉด์— GitHub username, owner/repo, ๋˜๋Š” ๋ ˆํฌ URL์„ ์ž…๋ ฅํ•˜์„ธ์š”. ๊ณต๊ฐœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งค์ผ ๊ฐฑ์‹  Three.js ๋นŒ๋“œ ์—†์Œ License: MIT

์ด ๋ฐ๋ชจ๊ฐ€ ๋ณด์—ฌ ์ฃผ๋Š” ๊ฒƒ

๋ฐ๋ชจ์—์„œ ๋ณด์ด๋Š” ์žฅ๋ฉด ๋‚ด ์ €์žฅ์†Œ์— ์ ์šฉํ•˜๋ฉด
ํŠธ๋ž˜ํ”ฝยท์Šคํƒ€ยทํฌํฌยทํด๋ก ยทํ™œ๋™์ด ๊ฑด์ถ•์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค ํฌํŠธํด๋ฆฌ์˜ค ์‹ ํ˜ธ๋ฅผ ๋Œ€์‹œ๋ณด๋“œ ์—†์ด ํ•œ๋ˆˆ์— ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๊นƒ๋ฒ„๊ฐ€ ์ž์—ฐ์–ด๋กœ ์ฐพ๊ณ  ์‹ค์ œ ๊ฒฐ๊ณผ๊นŒ์ง€ ์šด์ „ํ•ฉ๋‹ˆ๋‹ค ์ €์žฅ์†Œ ํƒ์ƒ‰์ด ๋˜ ํ•˜๋‚˜์˜ ๋ชฉ๋ก์ด ์•„๋‹ˆ๋ผ ์ƒํ˜ธ์ž‘์šฉ์ด ๋ฉ๋‹ˆ๋‹ค
?user=<login>์ด ์–ด๋–ค ๊ณต๊ฐœ GitHub ๊ณ„์ •์ด๋“  ๋งˆ์„๋กœ ๋‹ค์‹œ ์ง“์Šต๋‹ˆ๋‹ค ํด๋ก ์ด๋‚˜ ์„ค์ • ์ „์— ๊ฐ™์€ ์—”์ง„์„ ๋‚ด ์ž‘์—…์œผ๋กœ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๊ฐ€์žฅ ๋น ๋ฅธ ํ™•์ธ: **๋‚ด ๋„์‹œ ๋งŒ๋“ค๊ธฐ**๋ฅผ ์—ด๊ณ  username์ด๋‚˜ owner/repo ํ•˜๋‚˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. username์€ ๊ณต๊ฐœ ๋งˆ์„์„ ๋งŒ๋“ค๊ณ , ๋ ˆํฌ ์ฃผ์†Œ๋Š” ๊ทธ ํ”„๋กœ์ ํŠธ๋ถ€ํ„ฐ ์—ฝ๋‹ˆ๋‹ค. ํ† ํฐยท๊ณ„์ • ์—ฐ๊ฒฐยทํฌํฌ๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

Repolis ์ฒซ ํ™”๋ฉด์— GitHub username์„ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ ๊ณ„์ •์˜ ๊ณต๊ฐœ ๋ ˆํฌ๋กœ ์ง€์€ ๋งˆ์„์„ ๊ฑธ์–ด ๋‹ค๋‹ˆ๋Š” ํ๋ฆ„

โŒจ๏ธ username โ†’ ๋‚ด ๋งˆ์„: mrdoob ์ž…๋ ฅ โ†’ ๊ทธ์˜ ๊ณต๊ฐœ ๋ ˆํฌ 58์ฑ„๊ฐ€ ๊ฑธ์–ด ๋‹ค๋‹ ์ˆ˜ ์žˆ๋Š” ๋„์‹œ๋กœ

์ €์žฅ์†Œ๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ์‹์ด ์œ ์šฉํ–ˆ๋‹ค๋ฉด Repolis์— Star๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ํ…œํ”Œ๋ฆฟ์„ ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์นด๋“œ๊ฐ€ ๋œ ๋‚ด ๋„์‹œ

๊ณต๊ฐœ GitHub ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๋งค์ผ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” Repolis ์ œ์ž‘์ž์˜ ๋„์‹œ ์นด๋“œ

๐Ÿชช ๋งค์ผ ๋‹ค์‹œ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค ยท ๊ณต๊ฐœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉ ยท ์ด ์นด๋“œ๋Š” ๋งŒ๋“  ์‚ฌ๋žŒ์˜ ๋งˆ์„์ž…๋‹ˆ๋‹ค

**๋„์‹œ ๊ฐค๋Ÿฌ๋ฆฌ**์—์„œ ๋‚ด ์นด๋“œ๋ฅผ ๋งŒ๋“œ์„ธ์š”. ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋„์‹œ๋ฅผ ๊ฑธ์–ด ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์นด๋“œ๋ฅผ ํ”„๋กœํ•„ README์— ๋ถ™์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ€ฆ/u/<login> ๋งํฌ๋ฅผ ๊ณต์œ ํ•˜๋ฉด ๋ฉ”์‹ ์ €์™€ SNS ๋ฏธ๋ฆฌ๋ณด๊ธฐ์— ๊ทธ ์‚ฌ๋žŒ์˜ ๋„์‹œ ์นด๋“œ๊ฐ€ ๋œน๋‹ˆ๋‹ค. ๊ฐค๋Ÿฌ๋ฆฌ ๋“ฑ์žฌ๋Š” ๋ณธ์ธ ๋™์˜์ œ์ž…๋‹ˆ๋‹ค. ๊ณ„์ • ์ฃผ์ธ์ด ์ด์Šˆ๋กœ ์ง์ ‘ ์š”์ฒญํ•˜๊ณ , ์ œ์™ธ ์š”์ฒญ์—๋Š” ์ด์œ ๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ ๋‚ด ๋„์‹œ๊นŒ์ง€

๋ชฉํ‘œ ํ•  ์ผ ๊ฒฐ๊ณผ
๋‚ด ๊ณต๊ฐœ ๋ ˆํฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ผ์ด๋ธŒ ์ฒซ ํ™”๋ฉด์— username ์ž…๋ ฅ ๋ช‡ ์ดˆ ์•ˆ์— ๊ณต์œ  ๊ฐ€๋Šฅํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋งˆ์„ ์ƒ์„ฑ
๋ ˆํฌ ํ•˜๋‚˜๋ฅผ ๊ฒฝํ—˜์œผ๋กœ ๊ณต์œ  owner/repo ๋˜๋Š” GitHub ๋ ˆํฌ URL์„ ์ž…๋ ฅํ•˜๊ณ  ์ „์‹œ์‹ค์—์„œ Repo Portal ๋ณต์‚ฌ ํ™•์ธํ˜• ์ •์‹ ๋งํฌ์™€, ์ „์‹œ์‹ค๋ถ€ํ„ฐ ๋ณด์—ฌ์ค„ ๋•Œ ์“ฐ๋Š” ?repo=owner/repo&view=atelier&lang=en ์งํ–‰ ๋งํฌ
๋‚ด๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๊ฐ€์žฅ ์ข‹์€ ๋™์„ ์„ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ฑด๋„ค๊ธฐ ์ง์ ‘ ์—ฐ ๋ ˆํฌ ์นด๋“œ 2~3๊ณณ์„ Repo Route์— ๋‹ด์•„ ๋”ฐ๋ผ๊ฐ€๊ฑฐ๋‚˜ ๊ณต์œ  ์ˆ˜์‹ ์ž๋ฅผ ์‹ค์ œ ๋ ˆํฌ ์ง‘ ์ˆœ์„œ๋Œ€๋กœ ์•ˆ๋‚ดํ•œ ๋’ค ์™„์ฃผ ์‹œ ๊ธฐ์กด Star ์ดˆ๋Œ€๋กœ ์ด์–ด์ง€๋Š” ๋”ฅ ๋งํฌ
์ง€๊ธˆ ๊ธฐ์—ฌํ•  ์˜คํ”ˆ์†Œ์Šค ์ผ ์ฐพ๊ธฐ ๊ธธ์ฐพ๊ธฐ์˜ ๊ธฐ์—ฌํ•  ์ผ ์ฐพ๊ธฐ(์˜คํ”ˆ์†Œ์Šค ํ€˜์ŠคํŠธ)๋ฅผ ๊ณ ๋ฅด๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ๊ฒ€์ƒ‰ ์ ‘๊ทผํ•˜๊ธฐ ์ข‹์€ ํ˜„์žฌ ๊ณต๊ฐœ ์ด์Šˆ ์„ธ ๊ฐœ์™€ ์‹ค์ œ๋กœ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ๋ ˆํฌ ์ง‘, ์ •ํ™•ํ•œ GitHub ์ด์Šˆ ์—ฐ๊ฒฐ
๋งˆ์„์„ ๋งŒ๋“  ์‚ฌ๋žŒ ์†Œ๊ฐœ ๋งˆ์„ ์ฐฝ์ž‘์ž ํšŒ๊ด€ ๋ฐฉ๋ฌธ ๋˜๋Š” ๋„์‹œ ๋ฉ”๋‰ด์˜ ๋งˆ์„ ๋งŒ๋“  ์‚ฌ๋žŒ ์—ด๊ธฐ ํ˜„์žฌ ๋งˆ์„ ์ฃผ์ธ์˜ ๊ณต๊ฐœ bioยทํŒ”๋กœ์›ŒยทGitHub ํ™œ๋™ ๊ธฐ๊ฐ„ยท์ฃผ์š” ์–ธ์–ดยท๋ฐฐ์ง€ยท๋Œ€ํ‘œ ํ”„๋กœ์ ํŠธ ํ‘œ์‹œ
์ด๋ฒˆ ๋ฐฉ๋ฌธ์—์„œ ํ•œ ์ผ ๋˜์งš๊ธฐ ์—ฌ๊ถŒ์„ ์—ด๊ณ  ์—ฌ์ • ํƒญ ์„ ํƒ ์—ฐ ์ง‘์˜ ์ˆœ์„œ, ๊ณ ๋ฅธ ๊ธธ, ๊ณต์œ ยท์ด์Šˆ ๊ฐ™์€ ๋‚จ๊ธด ํ”์  โ€” ์ด ํŽ˜์ด์ง€์—๋งŒ ๋จธ๋ฌผ๊ณ  ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ณด๋‚ด์ง€ ์•Š์Œ
๋‚ด ์˜คํ”ˆ์†Œ์Šค ์—ญ์‚ฌ๊ฐ€ ํŽผ์ณ์ง€๋Š” ์žฅ๋ฉด ๋ณด๊ธฐ ๊ธธ์ฐพ๊ธฐยท์—ฌ๊ถŒยท์™„์„ฑ๋œ ๊ณต๊ฐœ ๋งˆ์„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ ๋„์‹œ ์„ฑ์žฅ ๋ฆฌํ”Œ๋ ˆ์ด ์—ด๊ธฐ ๋ ˆํฌ ์ง‘์ด ์ƒ์„ฑ ์—ฐ๋„๋ณ„๋กœ ์†Ÿ์•„๋‚˜๋Š” ํƒ€์ž„๋ผ์ธ, ์—ฐ๋„ ๊ณต์œ  ๋งํฌ, ์‹œ๋Œ€ ์—ฝ์„œ
๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ๋งˆ์„ ์—ฐ๊ฒฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ›„ ์นœ๊ตฌ ๋งˆ์„๊ณผ ์—ฐ๊ฒฐํ•˜๊ธฐ ํด๋ฆญ, ๋˜๋Š” ๋„์‹œ ๋ฉ”๋‰ด์—์„œ Twin Towns ์—ด๊ธฐ ๋‘ ๋งˆ์„๊ณผ ๊ณตํ†ต ์–ธ์–ดยทํ† ํ”ฝ์„ ๋ฐ”๋กœ ์—ฌ๋Š” 2์ธ ๋งํฌ ์ƒ์„ฑ
GitHub ํ”„๋กœํ•„์— ๋‚ด ๋งˆ์„ ๋‚จ๊ธฐ๊ธฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์™„์„ฑ ํ™”๋ฉด์˜ GitHub ํ”„๋กœํ•„์— ๋งˆ์„ ๋ถ™์ด๊ธฐ ํด๋ฆญ, ๋˜๋Š” ํƒ€์šด ์—ฝ์„œ ์ŠคํŠœ๋””์˜ค ์ด์šฉ ๋ˆ„๋ฅด๋ฉด ๋‚ด ๋งˆ์„๋กœ ์—ด๋ฆฌ๋Š” 600px ํฌํ„ธ ์ƒ์„ฑ
3D ๋งˆ์„์„ ์—ด์ง€ ์•Š๊ณ  ๋‚ด ๋„์‹œ ์นด๋“œ ๋ฐ›๊ธฐ **๋„์‹œ ๊ฐค๋Ÿฌ๋ฆฌ**์— ์•„์ด๋”” ์ž…๋ ฅ ์นด๋“œ, ๊ณต์œ  ๋งํฌ, README ๋ถ™์ด๊ธฐ ์ฝ”๋“œ, ๋™์˜ ๊ธฐ๋ฐ˜ ๊ฐค๋Ÿฌ๋ฆฌ ๋“ฑ์žฌ ์š”์ฒญ
๋‚ด Repolis ๋ฐฐํฌ ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ โ†’ ActionsยทPages ํ™œ์„ฑํ™” โ†’ Refresh Repolis data 1ํšŒ ์‹คํ–‰ ํ…œํ”Œ๋ฆฟ ์ €์žฅ์†Œ ์†Œ์œ ์ž์˜ ๊ณต๊ฐœ ๋ ˆํฌ๊ฐ€ ๊ธฐ๋ณธ ๋„์‹œ๊ฐ€ ๋จ ยท PAT ๋ถˆํ•„์š”
์‹ค์ œ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ๊ฑด๋ฌผ ์„ฑ์žฅ ์„ ํƒ์ ์œผ๋กœ GH_PAT Actions ์‹œํฌ๋ฆฟ ์ถ”๊ฐ€ ๊ฐ™์€ ๋„์‹œ์— ์ผ์ผ ์กฐํšŒยท๋ฐฉ๋ฌธ์žยทํด๋ก  ๋ˆ„์ 

ํฌํฌ๋Š” <owner>.github.io๋ฅผ ์ž๋™์œผ๋กœ ๋งˆ์„ ์†Œ์œ ์ž๋กœ ์ธ์‹ํ•˜๊ณ  ์›๋ณธ AIยท์‹ค์‹œ๊ฐ„ Worker๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ๋„๋ฉ”์ธ์€ repolis.config.js ํ•œ ๊ณณ๋งŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ ˆํฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์‹œ๊ฐ€ ๋˜๋Š” ๋ฐฉ์‹

Repolis๋Š” ๊ณต๊ฐœ GitHub ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๋ˆ„์  ํŠธ๋ž˜ํ”ฝ์„ ๋˜ ํ•˜๋‚˜์˜ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ ์žฅ์†Œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์‹ ํ˜ธ ๋งˆ์„์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ชจ์Šต
์ˆœ๋ฐฉ๋ฌธ์ž ๊ฑด๋ฌผ ๋†’์ด
ํฌํฌ ํ„ฐ์™€ ๊ฑด๋ฌผ ๋„ˆ๋น„
ํด๋ก  ๊นƒ๋ฐœ๊ณผ ๊ธˆ์žฅ์‹
์กฐํšŒ์ˆ˜ ์ •์›๊ณผ ์šธํƒ€๋ฆฌ ํฌ๊ธฐ
์Šคํƒ€ ์ง€๋ถ• ์žฅ์‹
์ตœ๊ทผ ํ™œ๋™ ๋ฐค์— ๋น›๋‚˜๋Š” ์ฐฝ๋ฌธ

๋ ˆํฌ๋Š” ์ฃผ์ œ๋ณ„ ๊ตฌ์—ญ์œผ๋กœ ๋‚˜๋‰˜๊ณ  ๋„๋กœ, ํ‘œ์ง€ํŒ, ๊ตฌ์—ญ ํ—ˆ๋ธŒ, ์„ธ๊ณ„ ์ง€๋„๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์ธ ๋งˆ์„์€ ๋ˆ„์  ํŠธ๋ž˜ํ”ฝ ๊ธฐ๋ก๊ณผ GitHub API๋กœ ๋งค์ผ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค. ?user=<login>์€ ๊ทธ ์‚ฌ์šฉ์ž์˜ ์„ธ๊ณ„์ˆ˜ ๊ธฐ๋ก๊ณผ ๋กœ์ปฌ ์ฃผ๋ฏผ์ด ์žˆ๋Š” ๊ฐ€๋ฒผ์šด ๊ณต๊ฐœ ๋งˆ์„์„ ๋งŒ๋“ค๊ณ , ?repo=<owner>/<repo>๋Š” ๊ฐ™์€ projection์œผ๋กœ ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜๋ฅผ ๋จผ์ € ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. GitHub๋Š” ์ด ๊ณต๊ฐœ API ๋ชจ๋“œ์— ๋ฐฉ๋ฌธ์žยท์กฐํšŒยทํด๋ก  ํŠธ๋ž˜ํ”ฝ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ฑด๋ฌผ์€ ๊ฐ€์งœ ํŠธ๋ž˜ํ”ฝ ์—†์ด ์Šคํƒ€ยทํฌํฌยท์ตœ๊ทผ ์—…๋ฐ์ดํŠธ๋กœ ์ง€์–ด์ง‘๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ณดํ–‰ ๊ฑฐ๋ฆฌ์—์„œ๋„ ํ•œ ๋ฒˆ์— ๊ทธ๋ฆฌ๋Š” ๊ฑด์ถ• LOD๊ฐ€ ๋ ˆํฌ ์ง‘์˜ ํ…์Šค์ฒ˜ ๋ฒฝ๊ณผ ์ง€๋ถ•๋ฟ ์•„๋‹ˆ๋ผ ๋Œ€์ง€, ์ƒ์šธํƒ€๋ฆฌ, ์ง„์ž…๋กœ, ์‹ค์ œ ์ฐฝ์œ ๋ฆฌ, ์…”ํ„ฐ, ์ฐฝํ„ฑ, ํ™”๋ถ„, ๋ฐฐ์ˆ˜๊ด€, ์ง‘ ๋“ฑ๊ธ‰๋ณ„ ํ˜„๊ด€ยท๋ฐœ์ฝ”๋‹ˆยทํฌํ‹ฐ์ฝ”๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์‚ด์•„๊ฐ€๋Š” ๋งˆ์„

  • ๋‚ด ๋„์‹œ๊ฐ€ ๋จผ์ €์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ์ฒซ ํ™”๋ฉด์€ ์ƒ˜ํ”Œ ๋งˆ์„๋ณด๋‹ค GitHub ์•„์ด๋”” ์ž…๋ ฅ์„ ๋จผ์ € ๋ฌป์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๋งˆ์„์— ์ฒ˜์Œ ๋“ค์–ด๊ฐ€๋ฉด ๋„์‹œ ์„ฑ์žฅ ๋ฆฌํ”Œ๋ ˆ์ด๊ฐ€ ํ•œ ๋ฒˆ ์žฌ์ƒ๋˜๊ณ (8~24์ดˆ, ๋ชจ์…˜ ์ค„์ด๊ธฐ์—์„œ๋Š” ํ˜„์žฌ ์žฅ๋ฉด๋งŒ), hyeonsangjeon์˜ ํŒŒ์ด์ฌ ์—ฐ๊ตฌ์†Œ ๋„์‹œ ๊ฐ™์€ ๊ฒฐ์ •์  ๋„์‹œ ๋ช…ํŒจ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ์ด์–ด์„œ ๋‹ซ์„ ์ˆ˜ ์žˆ๋Š” ์นด๋“œ๊ฐ€ ๋ ˆํฌ ํ•˜๋‚˜ ์ดํ•ดํ•˜๊ธฐ ยท ๋„์‹œ ๋‘˜๋Ÿฌ๋ณด๊ธฐ ยท ๊ธฐ์—ฌํ•  ์ผ ์ฐพ๊ธฐ ์ค‘ ๋ฌด์—‡์„ ํ•˜๋Ÿฌ ์™”๋Š”์ง€ ๋ฌป์Šต๋‹ˆ๋‹ค. ๋‘˜๋Ÿฌ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด๋ฉด ๊นƒ๋ฒ„ ํƒ์‹œ๊ฐ€ ์นดํƒˆ๋กœ๊ทธ์—์„œ ๊ณ ๋ฅธ ์„ธ ์ง‘(๊ฐ€์žฅ ๋†’์€ ์ง‘, ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์ง‘ ๋˜๋Š” ๊ฐ€์žฅ ์กฐ์šฉํ•œ ์ง‘, ์˜์™ธ์˜ ์ง‘)์œผ๋กœ ๋ฐ๋ ค๊ฐ€๊ณ , ๊ฐ ๊ตฌ์—ญ์˜ ์ฃผ๋ฏผ ์•ˆ๋‚ด์ž๊ฐ€ ์นดํƒˆ๋กœ๊ทธ ์ˆ˜์น˜๋งŒ์œผ๋กœ ์ด์œ ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ธธ์ฐพ๊ธฐ๋Š” ๊ฐ€๋‹ค ยท ๋ณด๋‹ค ยท ๋‚˜๋ˆ„๊ธฐ๋กœ ๋ฌถ์ด๊ณ , ๋ณด๋‹ค๋Š” ์ง‘ 1์ฑ„, ๋‚˜๋ˆ„๊ธฐ๋Š” ์ง‘ 2์ฑ„๋ฅผ ์—ฐ ๋’ค ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ƒˆ ์š”์ฒญ์ด๋‚˜ ์ €์žฅ์€ ์—†๊ณ , ์ด๋ฏธ ์žฌ์ƒํ•œ ๋งˆ์„์„ ๊ธฐ์–ตํ•˜๋Š” ์„ธ์…˜ ๋ฒ”์œ„ ๋ชฉ๋ก ํ•˜๋‚˜๋งŒ ์”๋‹ˆ๋‹ค.
  • ๊ฐ€๊นŒ์ด ๊ฐ€๋„ ์ด๋ฆ„ํ‘œ๊ฐ€ ํ™”๋ฉด์„ ๋ฎ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์ƒ ํฌ๊ธฐ์™€ ํ‘œ์‹œ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๊ณ , ๊ฒน์น˜๋Š” ์ด๋ฆ„ํ‘œ๋ณด๋‹ค ๋Œ€ํ™” ์ค‘์ธ ์ƒ๋Œ€๋ฅผ ๋จผ์ € ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ์ด๋ฆ„ํ‘œ๊ฐ€ ์ˆจ๊ฒจ์ ธ๋„ ๊ธธ์ฐพ๊ธฐ์˜ ๊ฐ€๊นŒ์šด ์ธ๋ฌผ ์„ ํƒ์—์„œ ์ด๋ฆ„ยท์ง์—…์„ ์ฝ๊ณ  ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆํฌ ์นด๋“œ์˜ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์€ ํ™”๋ฉด ์•ˆ์— ๋‚จ์œผ๋ฉฐ, Escape๋Š” ํ™œ์„ฑ ํŒจ๋„ ํ•˜๋‚˜๋งŒ ๋‹ซ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ๋ฏผ์€ ์ œ์ž๋ฆฌ ๋ฐ˜๋ณต ๋™์ž‘๋งŒ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„ ์žˆ๋Š” ์ฃผ๋ฏผ๋“ค์ด ์ž๊ธฐ ๊ตฌ์—ญ์„ ๊ฑฐ๋‹๊ณ , ์‹œ๊ฐ„๋Œ€์— ๋งž์ถฐ ์ƒํ™œํ•˜๋ฉฐ, ๊ธฐ๋ถ„์ด ๋ฐ”๋€Œ๊ณ , ์•„๋ผ๋Š” ์•„์ง€ํŠธ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ถ๋™์ชฝ ๋ณ„๋น› ์ฃผ๊ฑฐ๊ตฌ์—ญ์—๋Š” ์ด๋ฆ„ํ‘œ๊ฐ€ ๋‹ฌ๋ฆฐ ์ง‘๊ณผ ์ฃผ๋ฏผ์ƒ‰ ์•ž๋งˆ๋‹น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง‘๋งˆ๋‹ค 3์ข… ์ง€๋ถ• ์‹ค๋ฃจ์—ฃ, ์…”ํ„ฐ, ํŠธ๋žœ์„ฌ ์ฐฝ, ์„ ํƒํ˜• ์ฐฝ๊ฐ€ ํ™”๋ถ„ยท์บ๋…ธํ”ผยท๊ตด๋šยท์ง€๋ถ• ์žฅ์‹์ด ๋‹ค๋ฅด๊ฒŒ ์กฐํ•ฉ๋˜๊ณ , ๊ณต๋™ ๊ฝƒ์ •์›ยท๋žœํ„ดยท์ƒ์šธํƒ€๋ฆฌยทํ™œ์—ฝ์ˆ˜ยท์‚ฌ์ดํ”„๋Ÿฌ์Šค๊ฐ€ ๋งˆ์„์„ ๊ฐ์Œ‰๋‹ˆ๋‹ค. ๋ฐค์ด๋ฉด ๋”ฐ๋œปํ•œ ์ฐฝ๊ณผ ํ˜„๊ด€์œผ๋กœ ๊ท€๊ฐ€ํ•˜๊ณ , ์•„์นจ์ด๋ฉด ๊ฐ์ž ๊ตฌ์—ญ์œผ๋กœ ์ถœ๊ทผํ•ฉ๋‹ˆ๋‹ค. ์นœ๊ตฌ๋ฅผ ์•Œ์•„๋ณด๊ณ  ํ•จ๊ป˜ ์‚ฐ์ฑ…ํ•˜๊ฑฐ๋‚˜ ๋‚˜๋ž€ํžˆ ์‰ฌ๋ฉฐ, ๋ชจ๋‹ฅ๋ถˆ์— ๋ชจ์ด๊ณ , ๋•Œ๋กœ๋Š” ์ƒˆ ๋ฆด๋ฆฌ์Šค ์ถ•์ œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ๋‘ ์ฃผ๋ฏผ์€ ํ”Œ๋ ˆ์ด์–ด ์ง€์‹œ๋‚˜ AI ํ˜ธ์ถœ ์—†์ด ์‹ค์ œ ๊ฝƒ๋ฐญยท๋ณ„์ด ๋ณด์ด๋Š” ๋ฐคํ•˜๋Š˜ยท์‹ค์ œ ๋ ˆํฌ ์ง‘์œผ๋กœ ์งง์€ ํ•จ๊ป˜ํ•˜๋Š” ๊ธฐ์จ ๋‚˜๋“ค์ด๋„ ์Šค์Šค๋กœ ๋– ๋‚ฉ๋‹ˆ๋‹ค. ์ „๋ฌธ ์งˆ๋ฌธ์„ ๋ฐ›์œผ๋ฉด ์•„๋Š” ์ฒ™ํ•˜์ง€ ์•Š๊ณ  ๋งž๋Š” ํ˜„์ž๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์นจ๋ฐ˜์„ ๋”ฐ๋ผ ๋งˆ์„ ์•ˆ์—์„œ ๊ทธ ํ˜„์ž๋ฅผ ์ง์ ‘ ์ฐพ์•„๊ฐ€์„ธ์š”.
  • ๊ณต๊ฐœ ๋งˆ์„๋„ ์ž๊ธฐ ๊ธฐ๋ก์œผ๋กœ ์‚ด์•„๊ฐ‘๋‹ˆ๋‹ค. ๊ธฐ์กด ๊ณต๊ฐœ ๋ ˆํฌ ์š”์ฒญ ํ•œ ๋ฒˆ์œผ๋กœ ๋„์‹œ๋ ฅยท๊ณ„์ ˆยท๊ณ ์š” ์žฅ๋ถ€ยท์•„์นด์ด๋ธŒ๋œ The Roots์™€ ๋ฐ์Šคํฌํ†ฑ ์ตœ๋Œ€ 6๋ช…/ํœด๋Œ€ํฐยทLOW_END ์ตœ๋Œ€ 4๋ช…์˜ ์ฃผ๋ฏผ์„ ๊ฒฐ์ •์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ฃผ๋ฏผ์˜ ์ผยท์ธ์‚ฌยท์‹ค์ œ ๋ ˆํฌ ์ง‘ ์—ฐ๊ฒฐ์€ ๊ณต๊ฐœ ํ•„๋“œ๋งŒ ์“ฐ๋ฉฐ, ํŠธ๋ž˜ํ”ฝยท์ฃผ์ธ ์ฃผ๋ฏผยทShared/Bound ๊ธฐ์–ต์€ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’์œผ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์—ฐ๊ฒฐ๊ณผ ๊ทผ๊ฑฐ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค๋„ ๊บผ์ ธ ์žˆ์–ด ๋‘ ๋ฒˆ์งธ API ์š”์ฒญ์ด๋‚˜ ๋ชจ๋ธ ํ˜ธ์ถœ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์ธ ๋งˆ์„์˜ ์„ธ๊ณ„์ˆ˜๋Š” ์ž‘๊ณ  ์‚ฌ์‹ค์ ์ธ ์ด๋ ฅ์„ ๋‚จ๊น๋‹ˆ๋‹ค. 30์ผ ์ˆ˜์•ก ์žฅ๋ถ€์—๋Š” ๊ณต๊ฐœ ๋ ˆํฌยท์Šคํƒ€ยทํฌํฌยท์ตœ๊ทผ ํ™œ๋™ยท๊ณ„์ ˆยท๊ณ ์š” ์ง‘๊ณ„์˜ ์‹ค์ œ UTC ์ผ๋ณ„ ๊ธฐ๋ก๋งŒ ์ตœ๋Œ€ 30๊ฐœ ๋ณด์กด๋ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ๋‚  ์žฌ์‹คํ–‰ํ•˜๋ฉด ์ค‘๋ณต ๋Œ€์‹  ๊ต์ฒดํ•˜๊ณ , ๋ˆ„๋ฝ ๋‚ ์งœ๋Š” ๊ทธ๋Œ€๋กœ ๋‘๋ฉฐ, ๋‹ค๋ฅธ ๊ณต๊ฐœ ๋งˆ์„์—๋Š” ์ฃผ์ธ ์žฅ๋ถ€๋ฅผ ๋„˜๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ฟŒ๋ฆฌ ์•„๋ž˜๋กœ ๊ฑธ์–ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. The Undercroft๋Š” ํ˜„์žฌ ๋งˆ์„์˜ ์•„์นด์ด๋ธŒ๋œ ๊ณต๊ฐœ ๋ ˆํฌ๋ฅผ ์„ธ๊ณ„์ˆ˜ ์•„๋ž˜์˜ ๊ฒฐ์ •์ ์ธ ์„ ๋ฐ˜๊ณผ ๋ช…ํŒจ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๊ฐ€๊นŒ์ด ๊ฐ€๋ฉด ๊ธฐ์กด Roots ์„ค๋ช…, ํ™œ๋™ ์—ฐ๋„, ์ œ๊ณต๋˜๋Š” ๋งˆ์ง€๋ง‰ ๊ณต๊ฐœ ํ™œ๋™์ผ์„ ์ฝ๊ณ  ์ƒˆ ํƒญ์—์„œ ๋ ˆํฌ๋ฅผ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๋Œ€๊ธฐ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์š”์•ฝ์œผ๋กœ ๋‚จ๊ณ , ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋งˆ์„๋„ ์ฃผ์ธ ๊ธฐ๋ก์„ ๋นŒ๋ฆฌ์ง€ ์•Š์€ ์ž๊ธฐ ๊ธฐ๋ก๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ํƒํ—˜์—๋Š” ํ๋ฆ„์ด ๋‚จ์Šต๋‹ˆ๋‹ค. ํƒํ—˜ ์—ฌ๊ถŒ์ด ์ง‘๊ณผ ๋ช…์†Œ ๋ฐฉ๋ฌธ์„ ๊ธฐ๋กํ•˜๊ณ , ๊ตฌ์—ญ ์ง„ํ–‰๋ฅ ์ด ๋‚จ์€ ๊ณณ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, ๋งค์ผ ์—ด๋ฆฌ๋Š” ๋งˆ์„ ์ด์•ผ๊ธฐ๊ฐ€ ํ•œ ์ฃผ๋ฏผ๊ณผ ๊ทธ ์•„์ง€ํŠธ, ์‹ค์ œ๋กœ ์ด์–ด์ง„ ๋ ˆํฌ ๋˜๋Š” ๊ตฌ์—ญ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • ๋„์‹œ๋Š” ์‹ค์ œ ๊ธฐ์—ฌ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค ํ€˜์ŠคํŠธ๋Š” ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ง์ ‘ ์š”์ฒญํ•  ๋•Œ๋งŒ ์ต๋ช… GitHub ๊ณต๊ฐœ ๊ฒ€์ƒ‰์„ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•ด ํ˜„์žฌ good first issue, help wanted, ์ผ๋ฐ˜ ์—ด๋ฆฐ ์ด์Šˆ ์ค‘ ์ตœ๋Œ€ ์„ธ ๊ฐœ๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ์‹ค์ œ ๋ ˆํฌ ์ง‘์„ ๊ฑฐ์นœ ๋’ค ์ •ํ™•ํ•œ ์ด์Šˆ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ ˆํฌ์˜ Blueprint๋ฅผ ์ง์ ‘ ๋ถˆ๋Ÿฌ์˜จ ๋’ค์—๋Š” Issue-to-Code Scout๊ฐ€ ์„ ํƒํ•œ ์ด์Šˆ์˜ ์ œ๋ชฉยท๋ผ๋ฒจ๊ณผ ์‹ค์ œ ๊ฒฝ๋กœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ๋ณด์ˆ˜์ ์œผ๋กœ ๋Œ€์กฐํ•ด ๋จผ์ € ์‚ดํŽด๋ณผ ํ›„๋ณด ๊ฒฝ๋กœ๋ฅผ ๋‹ค์„ฏ ๊ฐœ๊นŒ์ง€ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ด€๊ณ„๋‚˜ ์ˆ˜์ • ์œ„์น˜๋ฅผ ๋‹จ์ •ํ•˜์ง€ ์•Š๊ณ , ์–ดํœ˜ ๊ทผ๊ฑฐ๊ฐ€ ์•ฝํ•˜๋ฉด ์ถ”์ธกํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์š”์ฒญ ์—†์ด ๊ฒฐ๊ณผ๋Š” ํƒญ์—๋งŒ ๋‚จ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธยทํ† ํฐยท์ด์Šˆ ์ถ”์ ยท์ƒˆ ๋ฐฑ์—”๋“œ๋Š” ์—†๊ณ , ๊ธฐ์กด Star ์ดˆ๋Œ€๋Š” ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ด์Šˆ ์—ด๊ธฐ๋ฅผ ์„ ํƒํ•œ ๋’ค์—๋งŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฉ๋ฌธ์ž๊ฐ€ ๋„์‹œ์˜ ๊ฐ€์น˜๋ฅผ ์ฆ๋ช…ํ•œ ๋™์„ ์„ ๊ทธ๋Œ€๋กœ ๊ฑด๋„ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆํฌ ์ง‘์„ ์—ฐ ๋’ค Repo Route์— 2~3๊ณณ์„ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์œผ๋ฉด, ์ˆ˜์‹  ๋งํฌ๊ฐ€ ์ž…์žฅ ์ „์— ์ •๋ฅ˜์žฅ์„ ํ™•์ธํ•ด ์ฃผ๊ณ  ์‹ค์ œ ์ง‘์„ ์ฐจ๋ก€๋กœ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๊ธฐ์กด Star ์ดˆ๋Œ€๋Š” ์ด ๊ธธ์„ ์™„์ฃผํ•œ ๋’ค์—๋งŒ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ดˆ์•ˆ์€ ์„ธ์…˜์—๋งŒ ์žˆ๊ณ  URL์—๋Š” ๊ณต๊ฐœ ๋ ˆํฌ ์ด๋ฆ„๋งŒ ๋“ค์–ด๊ฐ€๋ฉฐ, ๋ฐฑ์—”๋“œยท๊ณ„์ •ยท์ €์žฅ ํ‚คยท๋ Œ๋” ์ž์‚ฐ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ ˆํฌ ์—ญ์‚ฌ๊ฐ€ ์›€์ง์ด๋Š” ๋„์‹œ ์ด์•ผ๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋„์‹œ ์„ฑ์žฅ ๋ฆฌํ”Œ๋ ˆ์ด๋Š” ๋ชจ๋“  ๋ ˆํฌ ์ง‘์— ์ด๋ฏธ ์žˆ๋Š” ๊ณต๊ฐœ ์ƒ์„ฑ์ผ์„ ์ฝ์–ด ์ฒซ ์ง‘๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€ ์‹ค์ œ ๋ ˆํฌ ํƒ„์ƒ ์—ฐ๋„ ์ˆœ์œผ๋กœ ๋งˆ์„์„ ํ‚ค์›๋‹ˆ๋‹ค. ์Šฌ๋ผ์ด๋”ยท์žฌ์ƒ/์ผ์‹œ์ •์ง€ยท์—ฐ๋„ ๋”ฅ๋งํฌยท์‹œ๋Œ€ ์—ฝ์„œ๋Š” ์ฃผ์ธ ๋งˆ์„๊ณผ ๋ชจ๋“  ?user= ๊ณต๊ฐœ ๋งˆ์„์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋„ ๊ณต๊ฐœ๋œ ๋ ˆํฌ๋งŒ ์‹œ๊ฐ„์ถ•์— ๋“ค์–ด๊ฐ€๋ฉฐ, ์ง‘์˜ ๋ชจ์Šต๊ณผ ์–ธ์–ด ํ‘œ์‹œ๋Š” ํ˜„์žฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ผ๋Š” ๊ฒฝ๊ณ„๋„ ํ™”๋ฉด์— ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฉ”์‹œยทํ…์Šค์ฒ˜ยท์กฐ๋ช…ยท๋ฐฑ์—”๋“œยท๊ณ„์ •ยท์ด๋ ฅ ์ €์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ ˆํฌ ํ•˜๋‚˜๊ฐ€ ์ž…๊ตฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Repo Portal์— owner/repo๋‚˜ GitHub URL์„ ๋„ฃ์œผ๋ฉด ์†Œ์œ ์ž ๋ชฉ๋ก๋ณด๋‹ค ๊ณต๊ฐœ ๋Œ€์ƒ ํ•˜๋‚˜๋ฅผ ๋จผ์ € ๋ถˆ๋Ÿฌ์˜ค๊ณ , ํ•œ ๋ฒˆ์˜ ์ž…์žฅ ํด๋ฆญ ๋’ค Repository Atelier๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ?repo=owner/repo&view=atelier&lang=en ์บ ํŽ˜์ธ ๋งํฌ๋Š” ์ดˆ๊ธฐํ™” ์œ„์— ์งง์€ ํฌํ„ธ ์ „ํ™˜์„ ์œ ์ง€ํ•œ ์ฑ„ ๋งˆ์„ ์™ธ๋ถ€๋‚˜ ์ฑ„ํŒ…์ฐฝ์ด ๋จผ์ € ๋ฎ์ง€ ์•Š๋„๋ก ๊ฐ™์€ ์ „์‹œ์‹ค๋กœ ๋ฐ”๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์งํ–‰ ๋งํฌ๋Š” ์˜์–ด๊ฐ€ ๊ธฐ๋ณธ์ด๋ฉฐ ํ•œ๊ตญ์–ด๋Š” lang=ko๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ „์‹œ์‹ค์—์„œ ํ™•์ธํ˜• ์ •์‹ ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ GitHub๋ฅผ ์—ด ์ˆ˜ ์žˆ๊ณ , ์›ํ•  ๋•Œ๋งŒ ์†Œ์œ ์ž์˜ ๋งˆ์„ ์ „์ฒด๋กœ ๋„“ํž™๋‹ˆ๋‹ค. 15๋ถ„ยท512 KiB ๋กœ์ปฌ ์บ์‹œ์™€ ์˜ค๋ž˜๋œ ์บ์‹œ ๋ณต๊ตฌ๋กœ ๋ฒ”์œ„๋ฅผ ๋ฌถ์œผ๋ฉฐ, ์•Œ ์ˆ˜ ์—†๋Š” ํŠธ๋ž˜ํ”ฝ์€ ๊ทธ๋Œ€๋กœ ๋น„๊ณต๊ฐœ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๋ ˆํฌ ์ง‘์—๋Š” ์™„์„ฑ๋œ ์ „์‹œ์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์‚ฌ์šฉํ•˜๋Š” Repository Atelier์— ๋“ค์–ด๊ฐ€๋ฉด ์ •ํ™•ํ•œ owner/repo์™€ ๊ณต๊ฐœ ์„ค๋ช…๋ถ€ํ„ฐ ๋ณด์ž…๋‹ˆ๋‹ค. Core ์กฐํ˜•๋ฌผยทํ†ต๊ณ„ยท์—ฐํ˜์€ ๋ณด์กฐ ์ „์‹œ๋กœ ๋‚จ์Šต๋‹ˆ๋‹ค. README ์‹œ์ž‘ ์•ˆ๋‚ด๋ฅผ ์ง์ ‘ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ๊ณต๊ฐœ ๋ ˆํฌ์˜ README๋งŒ ์ฝ์–ด ์›๋ฌธ ์ œ๋ชฉยท์กฐ๊ฑดยท๋ณต์‚ฌ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ์™€ ์ถœ์ฒ˜ ํ–‰, branch/ref, ๋ฌธ์„œ blob SHA, ์ฝ์€ ์‹œ๊ฐ์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ๋ช…๋ น์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ „์ฒด ์‹คํ–‰ ์ ˆ์ฐจ๋ฅผ ๊ฒ€์ฆํ•œ ์•ˆ๋‚ด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•œ ๋ฐœ์ทŒ์ด๋ฉฐ, ์•ˆ๋‚ด๊ฐ€ ์—†์œผ๋ฉด ์—†๋‹ค๊ณ  ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ํ˜ธ์ถœยท์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œยท๋ช…๋ น ์‹คํ–‰์€ ์—†์Šต๋‹ˆ๋‹ค. ํ™ˆํŽ˜์ด์ง€ยทGitHub ์ด๋™๊ณผ ์ถ”๊ฐ€ ์งˆ๋ฌธ์€ ๋ฐฉ๋ฌธ์ž๊ฐ€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Repository Blueprint๋„ ๊ณต๊ฐœ ์†Œ์Šค ์ง€๋„ ์Šค์บ”์„ ๋ˆŒ๋Ÿฌ์•ผ GitHub Tree API๋ฅผ ํ•œ ๋ฒˆ ์ฝ๊ณ  DOM/3D ํŒŒ์ผยทํด๋” ์ง€๋„๋ฅผ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. Blueprint Deep Link๋Š” ์ •ํ™•ํ•œ ๋ ˆํฌ์™€ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•œ ๋’ค ๋ถˆ๋Ÿฌ์˜ค๋ฉฐ, ์—†๋Š” ๊ฒฝ๋กœ๋ฅผ ์ถ”์ธกํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„๋‚˜ ๋Ÿฐํƒ€์ž„ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์•„๋‹Œ ์†Œ์Šค ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊นƒ๋ฒ„์—๊ฒŒ ์ด ๋ ˆํฌ ์งˆ๋ฌธ์€ ๊ฒฉ๋ฆฌ๋œ ๋Œ€ํ™”์—์„œ ๋ฐฉ๋ฌธ๋‹น ์ตœ๋Œ€ ๋‹ค์„ฏ ๋ฒˆ์˜ ์‹œ์ž‘๋œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋ฉฐ ๋‹ค๋ฅธ ๋ ˆํฌ๋กœ ๋Œ€์‹  ๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž…์žฅ์ด๋‚˜ ๋ฌธ์„œ ์—ด๋žŒ์œผ๋กœ ์งˆ๋ฌธ์„ ์ž๋™ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋งค์ผ ๊ฐฑ์‹ ๋˜๋Š” ์ด์œ ๊ฐ€ ์žฌ๋ฐฉ๋ฌธ์—์„œ ๋ณด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ถŒ์˜ ๋งˆ์„ ์†Œ์‹์€ ์ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ฝ์€ ๊ณต๊ฐœ ๋ ˆํฌ ์Šค๋ƒ…์ƒท๊ณผ ํ˜„์žฌ๋ฅผ ๋น„๊ตํ•ด ์ƒˆ ๋ ˆํฌยท์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ์˜ ๋ฆด๋ฆฌ์Šค ํƒœ๊ทธยทํ‘ธ์‹œยท์–‘์˜ ์ง€ํ‘œ ์„ฑ์žฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ „๋ถ€ ๋กœ์ปฌ์—์„œ ๊ณ„์‚ฐ๋˜์–ด ๋น„์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ ˆํฌ๋ผ๋ฆฌ์˜ ๊ด€๊ณ„๋„ ๋ณด์ž…๋‹ˆ๋‹ค. ๋ณ„๋น› ์ „๋ง๋Œ€๋Š” ๊ณตํ†ต ์ฃผ์ œ๋‚˜ ์–ธ์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ์„ธ ๋ ˆํฌ์˜ ์—ฐ๊ฒฐ์„ ์ฐพ๊ณ , ๋ฐคํ•˜๋Š˜ ์ €์žฅ์†Œ ๋ณ„์ž๋ฆฌ ํƒ์‚ฌ๋กœ ํŽผ์นฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๋งˆ์„์€ ๋งŒ๋“  ์‚ฌ๋žŒ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์„ ์ฐฝ์ž‘์ž ํšŒ๊ด€์€ ๋ณธ์ง„ยทํฌํฌยท?user= ๋ฐฉ๋ฌธ ๋งˆ์„์˜ ํ˜„์žฌ ์†Œ์œ ์ž์—๊ฒŒ ๊ท€์†๋ฉ๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜จ ๊ณต๊ฐœ GitHub ํ”„๋กœํ•„๊ณผ ์ด๋ฏธ ๋ Œ๋”๋ง๋œ ๋ ˆํฌ๋ฅผ ํ•ฉ์ณ ์‚ฌ์‹ค ๊ธฐ๋ฐ˜ ํ†ต๊ณ„ยท์ฃผ์š” ์–ธ์–ดยทํš๋“ ๋ฐฐ์ง€ยท๋Œ€ํ‘œ ํ”„๋กœ์ ํŠธ ์„ธ ๊ฐœ๋ฅผ ๋ณด์—ฌ์ค€ ๋’ค ์›๋ณธ Repolis ์—”์ง„์„ ๋ถ„๋ช…ํžˆ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋‘ ๊ฐœ๋ฐœ์ž์˜ ๋งˆ์„๋„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Twin Towns๊ฐ€ ๊ณต๊ฐœ ๋ ˆํฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ๊ณตํ†ต ์–ธ์–ดยทํ† ํ”ฝ์„ ์ฐพ๊ณ , ๋กœ๊ทธ์ธ์ด๋‚˜ ๋ฐฑ์—”๋“œ ์—†์ด ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ๋“  ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ˆ˜์‹ ์ž ์ „์šฉ ๋งํฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ์กฐ์šฉํ•œ ์œ ์ง€๋ณด์ˆ˜์—๋„ ๋น›์„ ๋น„์ถฅ๋‹ˆ๋‹ค. ์ „๋ง๋Œ€์˜ ์˜คํ”ˆ์†Œ์Šค ์•ผ๊ฐ„ ์ˆœ์ฐฐ์€ ๊ณต๊ฐœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์ตœ๊ทผ๊นŒ์ง€ ๊ด€๋ฆฌ๋œ ์ €์Šคํƒ€ ์ €์žฅ์†Œ ์„ธ ๊ณณ์„ ๊ณจ๋ผ ๋“ฑ๋ถˆ์„ ๋ฐํžˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๊พธ์ค€ํ•œ ๋Œ๋ด„์„ ๊ธฐ๋…ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…์†Œ๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ์ด์•ผ๊ธฐ๋ฅผ ํ’ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌ ๋„์„œ๊ด€์€ ๋…ผ๋ฌธยท๋ฐœํ‘œยท์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌยท์ˆ˜์ƒ์„ ๋ณด๊ด€ํ•˜๊ณ , ํฌ๋กœ๋…ธํด๋ฆฌ์Šค์—๋Š” ์‹œ๊ฐ„์˜ ํšŒ์˜๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๊ด‘์žฅ, ์ „๋ง๋Œ€, ๊ณต์›, ๋†€์ด ๊ตฌ์—ญ์€ ๋„์‹œ๋ฅผ ์ง์ ‘ ๊ฑธ์„ ์ด์œ ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜๋ ๋ฒ ๋‹ˆ์Šค์—์„œ๋Š” ๋‚ฎ์€ ์œ ๋žŒ์„ ์— ์˜ฌ๋ผ ์‹ค์ œ ์šดํ•˜ ๊ณก์„ ์„ ๋”ฐ๋ผ ๊ฝƒ๋‹ค๋ฆฌ ์•„๋ž˜๋ฅผ ์ง€๋‚˜๋ฉฐ ๋งˆ์„์„ ํ•œ ๋ฐ”ํ€ด ๋‘˜๋Ÿฌ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์›”๋“œ ํŠธ๋ฆฌ๊ฐ€ ์Šค์นด์ด๋ผ์ธ์„ ๋ฐ›์นฉ๋‹ˆ๋‹ค. threejs-sculpt-dna Copilot ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ƒ์„ฑํ•œ ๊ฒฐ์ •์  ์ฝ”๋“œ ๋„ค์ดํ‹ฐ๋ธŒ Three.js ์กฐํ˜•๋ฌผ์ด๋ฉฐ, ๊ฐ€์ง€์— ๋ฟŒ๋ฆฌ๋‚ด๋ฆฐ ์žŽ, ์‚ด์•„ ์žˆ๋Š” ์›€์ง์ž„, ๋‚˜๋ฌด์—๋งŒ ๊ฒฉ๋ฆฌ๋œ ๋ธ”๋ฃธ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

๋งˆ์„์— ๋ฌผ์–ด๋ณด๊ธฐ

์•ˆ๋‚ด์ž ์ด๋ ‡๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š” ๋‹ตํ•˜๋Š” ๋ฐฉ์‹
๊นƒ๋ฒ„ ยท POLARIS โ€œAI ์—์ด์ „ํŠธ ๋ ˆํฌ๋กœ ๊ฐ€์žโ€, โ€œํด๋ก ์ด ๊ฐ€์žฅ ๋งŽ์€ ๊ณณโ€ ๊ธฐ๋ณธ์€ ๋กœ์ปฌ ์ƒ‰์ธ ๊ฒ€์ƒ‰, ์„ ํƒํ•œ ์ง‘๊นŒ์ง€ ์‹ค์ œ ์šดํ–‰
VEGA ยท ๊ธฐ๋ก์ž Azure, .NET, Copilot, Microsoft ์ œํ’ˆ Microsoft Learn ๊ทผ๊ฑฐ ๊ฒ€์ƒ‰๊ณผ ์ถœ์ฒ˜
RIGEL ยท ์ง€๋„์ œ์ž‘์ž ๊ณต๊ฐœ ๋ ˆํฌ๊ฐ€ ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ DeepWiki ๊ธฐ๋ฐ˜ ํƒ์ƒ‰
MIRA ยท ์‹œ๊ฐ„์ง€๊ธฐ ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API์™€ ๋ฒ„์ „๋ณ„ ์˜ˆ์ œ Context7 ์ง์ ‘ ์กฐํšŒ ยท ๋ฌธ์„œ ๊ตฌ์—ญ ์ˆœํšŒ
LYRA ยท ์ฐฝ์กฐ์˜ ๋Œ€์žฅ์žฅ์ด ๊ณต๊ฐœ ๋ชจ๋ธยท๋ฐ์ดํ„ฐ์…‹ยทML ๋…ผ๋ฌธ Hugging Face ์ง์ ‘ ๊ฒ€์ƒ‰ ยท AI ๊ตฌ์—ญ ์ˆœํšŒ
์‹œ๊ฐ„์˜ ํšŒ์˜ ๊ธฐ์ˆ  ์„ ํƒ์ด๋‚˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผ์žฅ ํ๋ ˆ์ดํŠธ๋œ ๊ฒฐ์ •์  ํŒ์ •๊ณผ, ๋ฏธ๊ฒ€์ฆ์œผ๋กœ ๋ช…์‹œ๋œ ์„ ํƒํ˜• ๋ผ์ด๋ธŒ ํ† ๋ก 

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

60์ดˆ ๋กœ์ปฌ ์‹คํ–‰

git clone https://github.com/hyeonsangjeon/Repolis
cd Repolis
python3 -m http.server 8000 --protocol HTTP/1.1   # HTTP/1.1์ด์–ด์•ผ ๋ชจ๋“ˆ ๋™์‹œ ๋กœ๋“œ๊ฐ€ ๋Š๊ธฐ์ง€ ์•Š์•„์š”
# http://localhost:8000 ์—ด๊ธฐ

์„ค์น˜๋‚˜ ๋นŒ๋“œ ๋‹จ๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Three.js๋Š” CDN import map์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๋กœ์ปฌ ๋ฐ์ดํ„ฐ์™€ ๋ชจ๋“ˆ์€ ์ •์  ํŒŒ์ผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

GitHub์™€ ๋ˆ„์  ํŠธ๋ž˜ํ”ฝ ๊ธฐ๋ก์œผ๋กœ ์ฃผ์ธ ๋งˆ์„์„ ๋‹ค์‹œ ๋งŒ๋“ค๋ ค๋ฉด:

gh auth login
GTM_DIR=data python3 scripts/build_repos.py

repos.json์€ ์ƒ์„ฑ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. JSON์„ ์ง์ ‘ ๊ณ ์น˜์ง€ ๋ง๊ณ  ๋นŒ๋”๋ฅผ ๋ณ€๊ฒฝํ•˜์„ธ์š”.

๋‚ด ๋„์‹œ๋กœ ๋งŒ๋“ค๊ธฐ

๊ฐ€์žฅ ๋น ๋ฅธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—๋Š” ํฌํฌ๋„ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. **๋‚ด ๋„์‹œ ๋งŒ๋“ค๊ธฐ**๋ฅผ ์—ด๊ฑฐ๋‚˜ https://hyeonsangjeon.github.io/Repolis/?user=<login>์„ ๊ณต์œ ํ•˜์„ธ์š”. ์˜์–ด ๊ด‘์žฅ์—๋Š” ?view=plaza&lang=en์œผ๋กœ ๋ฐ”๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜๋Š” https://hyeonsangjeon.github.io/Repolis/?repo=<owner>/<repo>&ref=repo-portal๋กœ ํ™•์ธํ•œ ๋’ค ์—ด๊ฑฐ๋‚˜, ?repo=<owner>/<repo>&view=atelier&lang=en์œผ๋กœ ์˜์–ด ์ „์‹œ์‹ค์— ๋ฐ”๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜๊ตฌ์ ์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋„์‹œ๋ฅผ ์šด์˜ํ•˜๋ ค๋ฉด:

  1. **์ด ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ**์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
  2. Actions๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ €์žฅ์†Œ ๋ฃจํŠธ main ๋ธŒ๋žœ์น˜์—์„œ GitHub Pages๋ฅผ ์ผญ๋‹ˆ๋‹ค.
  3. Refresh Repolis data๋ฅผ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. github.token์œผ๋กœ ํ…œํ”Œ๋ฆฟ ์ €์žฅ์†Œ ์†Œ์œ ์ž์˜ ๊ณต๊ฐœ ๋ ˆํฌ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์ดํ›„ ๋งค์ผ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
  4. ์„ ํƒ: ๋ˆ„์  ํŠธ๋ž˜ํ”ฝ์ด ํ•„์š”ํ•˜๋ฉด GH_PAT Actions ์‹œํฌ๋ฆฟ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์—†์–ด๋„ ์Šคํƒ€ยทํฌํฌยท์ตœ๊ทผ ํ™œ๋™ยท์–ธ์–ดยทํ† ํ”ฝยท๋ฆด๋ฆฌ์Šค๋กœ ๋„์‹œ๋Š” ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ณต๊ฐœ ๋ ˆํฌ๋งŒ ๋งˆ์„์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์†๋Œ€์ง€ ์•Š์€ ๋ฏธ๋Ÿฌ ํฌํฌ๋Š” ์ œ์™ธ๋˜๋ฉฐ, ๋น„๊ณต๊ฐœ ๋ ˆํฌ ์ด๋ฆ„์€ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ์— ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ

๋ˆ„์  ํŠธ๋ž˜ํ”ฝ + GitHub API
             โ”‚
             โ–ผ
 scripts/build_repos.py โ”€โ”€โ–ถ repos.json
                                โ”‚
                                โ–ผ
                    index.html + ๋กœ์ปฌ ๋ชจ๋“ˆ
                         Three.js ๋งˆ์„
                         โ”œโ”€ ๋กœ์ปฌ ๊ฒ€์ƒ‰
                         โ”œโ”€ ์„ ํƒํ˜• ๊ทผ๊ฑฐ ๊ฒ€์ƒ‰ Worker
                         โ””โ”€ ์„ ํƒํ˜• ์‹ค์‹œ๊ฐ„ Worker

Repolis๋Š” ๋นŒ๋“œ ์—†๋Š” ์ •์  ์›น ์•ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ ๋Ÿฐํƒ€์ž„์€ index.html์— ์žˆ๊ณ , ์ƒ์„ฑ ๋ฐ์ดํ„ฐ, ํ˜„์ž ๋ช…๋‹จ, ์›”๋“œ ํŠธ๋ฆฌ ํŒฉํ† ๋ฆฌ, ๊ฒฐ์ •์  ํšŒ์˜ ์—”์ง„์€ ๋ชฉ์ ๋ณ„ ๋กœ์ปฌ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์—ญํ• 
index.html 3D ์›”๋“œ, UI, ์ด๋™, ์ฃผ๋ฏผ, ํƒํ—˜, ๋‹ค๊ตญ์–ด
repolis.config.js ํฌํฌ ์†Œ์œ ์ž ์ž๋™ ์ธ์‹๊ณผ ์„ ํƒํ˜• ์„œ๋น„์Šค ์•ˆ์ „ ๊ธฐ๋ณธ๊ฐ’
repos.json ์ƒ์„ฑ๋œ ๋ ˆํฌ ๋ฐ ํŠธ๋ž˜ํ”ฝ ๋ฐ์ดํ„ฐ
scholars.js ํ˜„์ž ๋ช…๋‹จ
assets/repo-portal.js ์—„๊ฒฉํ•œ ๋Œ€์ƒ ํ•ด์„ยท๊ณต๊ฐœ ๋ฐ์ดํ„ฐ ํˆฌ์˜ยท์ •์‹ ๋ ˆํฌ ๋งํฌ
assets/town-growth.js ๊ฒฐ์ •์  ๋ ˆํฌ ํƒ„์ƒ ํƒ€์ž„๋ผ์ธยท์—ฐ๋„ ์Šค๋ƒ…์ƒทยท๊ณต์œ  ๋งํฌ
assets/world-tree/ ์ ˆ์ฐจ์  ์›”๋“œ ํŠธ๋ฆฌ ํŒฉํ† ๋ฆฌ
cloudflare-taxi/ ๊ทผ๊ฑฐ ๊ฒ€์ƒ‰ AI์™€ ์„ ํƒํ˜• ์ฃผ๋ฏผ ๋Œ€ํ™” Worker
cloudflare/ ์‹ค์‹œ๊ฐ„ ์ ‘์† Worker
council/ ๊ฒฐ์ •์  ํšŒ์˜ ์—”์ง„๊ณผ ๊ฐ€๋“œ
scripts/ ๋ฐ์ดํ„ฐ ๋นŒ๋”์™€ ํšŒ๊ท€ ๊ฒ€์‚ฌ

์„ ํƒํ˜• ์„œ๋น„์Šค

๊ธฐ๋Šฅ ์„ค์ • ๋ฌธ์„œ
๊ทผ๊ฑฐ ๊ฒ€์ƒ‰ ํƒ์‹œ์™€ ํ˜„์ž cloudflare-taxi/README.md
์‹ค์‹œ๊ฐ„ ๋ฐฉ๋ฌธ์ž์™€ ์นด์šดํ„ฐ cloudflare/README.md
Vercel ํƒ์‹œ ๋Œ€์•ˆ api/์™€ .env.example
๋ณต์‚ฌํ•ด์„œ ์“ฐ๋Š” ์—ฐ๋™ ์˜ˆ์ œ examples/

์กฐ์ž‘

์ž…๋ ฅ ๋™์ž‘
W A S D, ๋ฐฉํ–ฅํ‚ค, ์™ผ์ชฝ ํ„ฐ์น˜ ์Šคํ‹ฑ ๊ฑท๊ธฐ
๋งˆ์šฐ์Šค ๋“œ๋ž˜๊ทธ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ํ„ฐ์น˜ ์Šคํ‹ฑ ์‹œ์ ๊ณผ ๋ฐฉํ–ฅ ์ „ํ™˜
ํœ  ํ™•๋Œ€ยท์ถ•์†Œ
Enter, ํด๋ฆญ, ๋ชจ๋ฐ”์ผ ๋ฌธ ๋ฒ„ํŠผ ๊ฐ€๊นŒ์šด ์žฅ์†Œ ์—ด๊ธฐ
ํƒ์‹œ ๋ฒ„ํŠผ ๊นƒ๋ฒ„์—๊ฒŒ ๋ฌป๊ธฐ
๋ฉ”๋‰ดยท์ง€๋„ยท์—ฌ๊ถŒ ๋ฒ„ํŠผ ๊ธธ์ฐพ๊ธฐยทํƒํ—˜ ๊ธฐ๋กยท๋„์‹œ ์„ฑ์žฅ ๋ฆฌํ”Œ๋ ˆ์ด
์–ธ์–ด ๋ฐ ํ•ดยท๋‹ฌ ๋ฒ„ํŠผ ์–ธ์–ด์™€ ์‹œ๊ฐ„๋Œ€ ์ „ํ™˜

๋ฌธ์„œ

  • AGENTS.md โ€” ๊ธฐ์—ฌ์ž์™€ ์—์ด์ „ํŠธ ์šด์˜ ๊ณ„์•ฝ
  • docs/domain-model.md โ€” ๋ ˆํฌ ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ ๋ชจ๋ธ
  • docs/repo-portal-change-guide.md โ€” Repo Portal URLยท๋ฐ์ดํ„ฐยท์บ์‹œยทํ”„๋ผ์ด๋ฒ„์‹œยท์œ ์ง€๋ณด์ˆ˜ ๊ณ„์•ฝ
  • docs/known-limitations.md โ€” ์˜๋„๋œ ์ œ์•ฝ
  • SCHOLARS.md โ€” ํ˜„์ž ๋ช…๋‹จ๊ณผ ๊ทผ๊ฑฐ ๊ฒ€์ƒ‰ ์—ญํ• 
  • COUNCIL_PATTERN.ko.md โ€” ํ† ๋ก ์—์„œ ํŒ์ •์œผ๋กœ ๊ฐ€๋Š” ํŒจํ„ด
  • CHANGELOG.md โ€” ์ตœ๊ทผ ๋ฆด๋ฆฌ์Šค์™€ ๋ณด๊ด€ ๊ธฐ๋ก
  • repolis.yaml / llms.txt โ€” ๋„๊ตฌ์šฉ ํ”„๋กœ์ ํŠธ ์ง„์ž…์ 

๋ผ์ด์„ ์Šค

MIT ยฉ ์ „ํ˜„์ƒ. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘: github-traffic-monitor.

๊ด€๋ จ ํ”„๋กœ์ ํŠธ ์‚ดํŽด๋ณด๊ธฐ