ํ”Œ๋Ÿฌ๊ทธ์ธ์„ Obsidian ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ณต์‹ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชฉ๋ก์— ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๊ฒŒ์‹œํ•˜๋ฉด, ์‚ฌ์šฉ์ž๋Š” Obsidian ๋‚ด์—์„œ ์ง์ ‘ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Obsidian ์›น์‚ฌ์ดํŠธ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋””๋ ‰ํ† ๋ฆฌ์—๋„ ์†Œ๊ฐœ๋ฉ๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์ดˆ๊ธฐ ๋ฒ„์ „๋งŒ ์ œ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๊ฒŒ์‹œ๋œ ํ›„์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ Obsidian ๋‚ด์—์„œ ์ง์ ‘ GitHub์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ „ ์ค€๋น„

์ด ๊ฐ€์ด๋“œ๋ฅผ ์™„๋ฃŒํ•˜๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์ถœํ•˜๊ธฐ ์ „์— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฃจํŠธ ํด๋”์— ๋‹ค์Œ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”:

  • ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ชฉ์ ๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” README.md.
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” LICENSE. ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋ผ์ด์„ ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ๋ผ์ด์„ ์Šค ์„ ํƒ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค๋ช…ํ•˜๋Š” manifest.json. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Manifest๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

1๋‹จ๊ณ„: GitHub์— ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฒŒ์‹œํ•˜๊ธฐ

ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ ํ•˜๋‚˜์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด GitHub์˜ ์†Œ์Šค ์ฝ”๋“œ์— ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GitHub์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ GitHub ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

2๋‹จ๊ณ„: ๋ฆด๋ฆฌ์Šค ์ƒ์„ฑํ•˜๊ธฐ

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ œ์ถœํ•  ์ค€๋น„๊ฐ€ ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

  1. manifest.json์—์„œ version์„ ์‹œ๋งจํ‹ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ(Semantic Versioning) ์‚ฌ์–‘์„ ๋”ฐ๋ฅด๋Š” ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์˜ ๊ฒฝ์šฐ 1.0.0). ๋ฒ„์ „์€ x.y.z ํ˜•์‹๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

  2. GitHub ๋ฆด๋ฆฌ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค์˜ โ€œํƒœ๊ทธ ๋ฒ„์ „โ€์€ manifest.json์˜ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ฆด๋ฆฌ์Šค ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์„ค๋ช… ํ•„๋“œ์— ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Obsidian์€ ๋ฆด๋ฆฌ์Šค ์ด๋ฆ„์„ ์•„๋ฌด๊ฒƒ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

  4. ๋‹ค์Œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž์‚ฐ์„ ๋ฆด๋ฆฌ์Šค์— ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฒจ๋ถ€ ํŒŒ์ผ๋กœ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค:

    • main.js
    • manifest.json
    • styles.css (์„ ํƒ ์‚ฌํ•ญ)

3๋‹จ๊ณ„: ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ถœํ•˜๊ธฐ

์ด ๋‹จ๊ณ„์—์„œ๋Š” ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด Obsidian ํŒ€์— ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.

  1. community-plugins.json์—์„œ JSON ๋ฐฐ์—ด์˜ ๋์— ์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    {
      "id": "doggo-dictation",
      "name": "Doggo Dictation",
      "author": "John Dolittle",
      "description": "Transcribes dog speech into notes.",
      "repo": "drdolittle/doggo-dictation"
    }
    • id, name, author, description์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉฐ, Manifest์˜ ํ•ด๋‹น ์†์„ฑ๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • id๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๊ณ ์œ ํ•ฉ๋‹ˆ๋‹ค. community-plugins.json์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋™์ผํ•œ ID๋ฅผ ๊ฐ€์ง„ ๊ธฐ์กด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. id๋Š” obsidian์„ ํฌํ•จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • repo๋Š” GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ https://github.com/your-username/your-repo-name์— ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒฝ๋กœ๋Š” your-username/your-repo-name์ž…๋‹ˆ๋‹ค.

    ์ด์ „ ํ•ญ๋ชฉ์˜ ๋‹ซ๋Š” ์ค‘๊ด„ํ˜ธ } ๋’ค์— ์‰ผํ‘œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.

  2. ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์—์„œ **Commit changesโ€ฆ**๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. Propose changes๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. Create pull request๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. Preview๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ Community Plugin์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. Create pull request๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์ด๋ฆ„์— โ€œAdd plugin: [โ€ฆ]โ€์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ [โ€ฆ]๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  8. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์„ค๋ช…์— ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ๋ž€์˜ ๊ฒฝ์šฐ ๋Œ€๊ด„ํ˜ธ ์‚ฌ์ด์— x๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ [x] ์™„๋ฃŒ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  9. Create pull request๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค (๋งˆ์ง€๋ง‰์œผ๋กœ ๐Ÿคž).

์ด์ œ Obsidian ํ”Œ๋Ÿฌ๊ทธ์ธ ๋””๋ ‰ํ† ๋ฆฌ์— ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽธ์•ˆํžˆ ์•‰์•„ ์นœ์ ˆํ•œ ๋ด‡์˜ ์ดˆ๊ธฐ ๊ฒ€์ฆ์„ ๊ธฐ๋‹ค๋ฆฌ์„ธ์š”. ๊ฒฐ๊ณผ๊ฐ€ ์ค€๋น„๋˜๊ธฐ๊นŒ์ง€ ๋ช‡ ๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • PR์— Ready for review ๋ ˆ์ด๋ธ”์ด ํ‘œ์‹œ๋˜๋ฉด ์ œ์ถœ์ด ์ž๋™ ๊ฒ€์ฆ์„ ํ†ต๊ณผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • PR์— Validation failed ๋ ˆ์ด๋ธ”์ด ํ‘œ์‹œ๋˜๋ฉด, ๋ด‡์ด Ready for review ๋ ˆ์ด๋ธ”์„ ํ• ๋‹นํ•  ๋•Œ๊นŒ์ง€ ๋‚˜์—ด๋œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ์ด ๊ฒ€ํ†  ์ค€๋น„๊ฐ€ ๋˜๋ฉด, ํŽธ์•ˆํžˆ ์•‰์•„ Obsidian ํŒ€์ด ๊ฒ€ํ† ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฒ€ํ† ์— ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋‚˜์š”?

์ œ์ถœ ๊ฒ€ํ† ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ Obsidian ํŒ€์˜ ํ˜„์žฌ ์ž‘์—…๋Ÿ‰์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํŒ€์€ ์•„์ง ์ž‘์œผ๋ฏ€๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๊ฒ€ํ† ๋  ๋•Œ๊นŒ์ง€ ์ธ๋‚ด์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์„ธ์š”. ํ˜„์žฌ๋กœ์„œ๋Š” ์ œ์ถœ ๊ฒ€ํ†  ์‹œ๊ธฐ์— ๋Œ€ํ•œ ์ถ”์ •์น˜๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

4๋‹จ๊ณ„: ๋ฆฌ๋ทฐ ์˜๊ฒฌ ํ•ด๊ฒฐํ•˜๊ธฐ

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

ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ƒˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ GitHub ๋ฆด๋ฆฌ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”. ํ”ผ๋“œ๋ฐฑ์„ ํ•ด๊ฒฐํ–ˆ์Œ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด PR์— ๋Œ“๊ธ€์„ ๋‚จ๊ธฐ์„ธ์š”. ์ƒˆ PR์„ ์—ด์ง€ ๋งˆ์„ธ์š”.

ํ•„์š”ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฆ‰์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Note

Obsidian ํŒ€์›๋งŒ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›๋„ ๊ทธ๋™์•ˆ ์ œ์ถœ๋ฌผ์„ ๊ฒ€ํ† ํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๊ฒŒ์‹œํ•œ ํ›„์—๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์•Œ๋ฆด ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค:

  • ํฌ๋Ÿผ์˜ Share & showcase์—์„œ ๋ฐœํ‘œํ•˜์„ธ์š”.
  • Discord์˜ #updates ์ฑ„๋„์—์„œ ๋ฐœํ‘œํ•˜์„ธ์š”. #updates์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด developer ์—ญํ• ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.