Simpesys / Simpesys

Simpesys

Simpesys๋Š” ๋””์ง€ํ„ธ ์ •์›์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ฌธ์„œ ๋นŒ๋“œ ๋„๊ตฌ์ด์ž, ๋ฌธ์„œ ์‹œ์Šคํ…œ ๊ทธ ์ž์ฒด๋‹ค. "Simpesys"๋ผ๋Š” ์ด๋ฆ„์€ "Simonpedia"์™€ "system"์˜ ํ•ฉ์„ฑ์–ด์ด๋ฉฐ, /sษชmหˆpesษชs/๋กœ ๋ฐœ์Œํ•œ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ

Simpesys CLI ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋””์ง€ํ„ธ ์ •์›์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

$ deno run -R -W -E jsr:@simpesys/cli init my-garden
$ cd my-garden
$ deno task start

์œ„ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋””์ง€ํ„ธ ์ •์›์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

The landing page of the scaffolded digital garden.

Simpesys๋ฅผ ์ด์šฉํ•ด ๋””์ง€ํ„ธ ์ •์›์„ ๊ตฌ์ถ•ํ•˜๋Š” ์ž์„ธํ•œ ๊ณผ์ •์€ ์‹œ์ž‘ํ•˜๊ธฐ ๋ฌธ์„œ์—์„œ ์†Œ๊ฐœํ•œ๋‹ค.

์•„ํ‚คํ…์ฒ˜

Simpesys๋Š” ํฌ๊ฒŒ ์„ธ ๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์€ ์‚ฌ์šฉ์ž๊ฐ€ Simpesys ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ๋ฌธ์„œ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ ˆ์ด์–ด๋‹ค. Simpesys ์ฝ”์–ด๋Š” ๋ฌธ์„œ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ•˜๊ณ , Simpesys ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ ˆ์ด์–ด๋‹ค. ์ด๋Ÿฌํ•œ ํ•ต์‹ฌ ๋กœ์ง์€ @simpesys/core ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌ๋œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„๊ณผ Simpesys ์ฝ”์–ด ์‚ฌ์ด๋ฅผ ์ž‡๋Š” ๋ ˆ์ด์–ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์„œ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด์ž, ๋ฌธ์„œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” Simpesys ํ”„๋กœ์ ํŠธ ๊ทธ ์ž์ฒด๋‹ค. ๊ทธ๋ž˜์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ์†ํ•ด ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ง„์ž…์ ์€ app/main.ts ํŒŒ์ผ์ด๋‹ค.

์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ. ํฌ๊ฒŒ ์„ธ ์˜์—ญ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์™ผ์ชฝ ํŒŒ๋ž€์ƒ‰ ์˜์—ญ์€ 'User space'๋กœ, Browser์™€ Editor ๋‘ ๊ฐ€์ง€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ๋‹ค. Browser๋Š” ์ค‘์•™์˜ app/main.ts์™€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๊ณ , Editor๋Š” ์•„๋ž˜์˜ @simpesys/lsp์™€ ์ ์„  ํ™”์‚ดํ‘œ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. ์ค‘์•™ ๋…ธ๋ž€์ƒ‰ ์˜์—ญ์ธ app/main.ts ์•ˆ์—๋Š” @simpesys/app-bare, @simpesys/app-wiki, Other Apps, docs/.md ๋„ค ๊ฐœ์˜ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ์ดˆ๋ก์ƒ‰ ์˜์—ญ์€ '@simpesys/core' ํŒจํ‚ค์ง€๋กœ, Simpesys ํด๋ž˜์Šค์™€ App ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. app/main.ts์˜ ๊ฐ ๋ชจ๋“ˆ์€ ํ™”์‚ดํ‘œ๋กœ App ํด๋ž˜์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , Simpesys๋Š” ์˜ค๋ฅธ์ชฝ์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ํ•ต์‹ฌ ๋ชจ๋ธ์ธ Metadata, Config, Link, Document, Markdown๊ณผ ์—ฐ๊ฒฐ๋œ๋‹ค. @simpesys/lsp๋Š” ์ ์„  ํ™”์‚ดํ‘œ๋กœ docs/.md๋ฅผ ํ–ฅํ•ด ์—ฐ๊ฒฐ๋œ๋‹ค.

Simpesys ์•„ํ‚คํ…์ฒ˜์— ๊ด€ํ•œ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ์—์„œ ์„ค๋ช…ํ•œ๋‹ค.

์„ค๊ณ„ ์›์น™

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

๋ฌธ์„œ ์ค‘์‹ฌ ์„ค๊ณ„

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

๋†’์€ ์—ฐ๊ฒฐ์„ฑ

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

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด ๋ถ„๋ฆฌ

Simpesys ๊ทธ ์ž์ฒด๋กœ๋Š” ์ •์  ์‚ฌ์ดํŠธ๋‚˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. Simpesys์˜ ๋ชฉํ‘œ๋Š” ๋ฌธ์„œ ์‹œ์Šคํ…œ์„ ๊ตฌ์กฐํ™”ํ•˜๊ณ , ๊ทธ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ API๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Simpesys๋Š” ์ดˆ๊ธฐํ™” ๊ณผ์ •์—์„œ ๋งˆํฌ๋‹ค์šด์„ HTML๋กœ ๋ณ€ํ™˜ํ•˜์ง€๋งŒ, ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์„œ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ค‘๊ฐ„ ๋ ˆ์ด์–ด์„ ๋‘๋Š” ๊ฒƒ์— ๊ฐ€๊น๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์€ ์‚ฌ์šฉ์ž์˜ ๋ชซ์ด๋ฉฐ, Simpesys๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์„ ์œ„ํ•œ ์–ด๋– ํ•œ ์ข…์†์„ฑ๋„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค.

์ข๊ณ  ๊นŠ์€ ๋ชจ๋“ˆ

Simpesys๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“ˆ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ข๊ณ , ๊ธฐ๋Šฅ์˜ ๊นŠ์ด๋Š” ๊นŠ์–ด์•ผ ํ•œ๋‹ค. Simpesys๋Š” ํ•„์ˆ˜์ ์ธ API๋งŒ์„ ๊ณต๊ฐœํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด๋ถ€ ๋™์ž‘์„ ์ปค์Šคํ…€ํ•˜๋ ค๋ฉด ์‚ฌ์ „์— ์ •ํ•ด์ง„ ์˜ต์…˜ ๊ฐ’์œผ๋กœ๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Simpesys๋Š” "์„ค์ •๋ณด๋‹ค ๊ด€๋ก€"๋ฅผ ๋”ฐ๋ผ ๋ชจ๋“  ์„ค์ • ์˜ต์…˜์— ํ•ฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ณตํ•œ๋‹ค.

ํ•˜์œ„๋ฌธ์„œ

๋‹ค๋ฅธ ์–ธ์–ด

๊ทธ ์™ธ

๋ผ์ด์„ ์Šค

Simpesys๋Š” GNU General Public License v3.0์— ๋”ฐ๋ผ ๋ฐฐํฌ๋œ๋‹ค.

์™ธ๋ถ€๋งํฌ