ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿ“Œ Webpack๊ณผ TypeScript๋กœ ๋งŒ๋“œ๋Š” ์›น์•ฑ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ

โœ… 10ํŽธ: ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฐํฌ ๋ฐ ๋ฌธ์„œํ™” – NPM ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•


์ด์ œ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šด ๊ตฌ์กฐ๋กœ ๋ฆฌํŒฉํ† ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ํŽธ์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ NPM ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด์ œ ๋ˆ„๊ตฌ๋‚˜ npm install my-calendar-plugin ๋ช…๋ น์–ด๋กœ ์šฐ๋ฆฌ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค! ๐Ÿš€


๐ŸŽฏ ๋ชฉํ‘œ

  • ํ”Œ๋Ÿฌ๊ทธ์ธ์„ NPM ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌ
  • TypeScript ํƒ€์ž…์„ ํฌํ•จํ•œ ํŒจํ‚ค์ง€ ์„ค์ •
  • ๋ฐฐํฌ ์ „ ์ฝ”๋“œ ์ •๋ฆฌ ๋ฐ ํ…Œ์ŠคํŠธ
  • ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ README ๋ฌธ์„œ ์ž‘์„ฑ

๐Ÿ“ฆ 1. package.json ์ˆ˜์ •

๋จผ์ € NPM ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก package.json์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

โœ… package.json ์„ค์ • ์ถ”๊ฐ€

{
  "name": "my-calendar-plugin",
  "version": "1.0.0",
  "description": "๊ฐ„๋‹จํ•œ ์›น ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "scripts": {
    "build": "webpack --mode=production",
    "prepare": "npm run build"
  },
  "author": "Your Name",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/your-username/my-calendar-plugin.git"
  }
}

ํ•ญ๋ชฉ ์„ค๋ช…

name ํŒจํ‚ค์ง€ ์ด๋ฆ„ (์ค‘๋ณต๋˜์ง€ ์•Š์•„์•ผ ํ•จ)
version ํŒจํ‚ค์ง€ ๋ฒ„์ „ (1.0.0, 1.1.0 ๋“ฑ)
main ๋ฐฐํฌํ•  ๋ฒˆ๋“ค ํŒŒ์ผ (dist/index.js)
types TypeScript ํƒ€์ž… ํŒŒ์ผ (dist/index.d.ts)
scripts.prepare npm install ํ›„ ์ž๋™์œผ๋กœ ๋นŒ๋“œ ์‹คํ–‰
repository GitHub ์ฃผ์†Œ ์—ฐ๊ฒฐ (์„ ํƒ ์‚ฌํ•ญ)

๐Ÿ’ก ์ฃผ์˜: name์€ NPM ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์œ ๋‹ˆํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด๋ผ๋ฉด my-calendar-plugin-xyz ๊ฐ™์€ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜์„ธ์š”.


๐Ÿ”ง 2. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

NPM ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌํ•˜๋ ค๋ฉด dist/ ํด๋”์— ๋นŒ๋“œ๋œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

npm run build

๋นŒ๋“œ ํ›„ dist/ ํด๋”์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํŒŒ์ผ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

dist/
โ”œโ”€โ”€ index.js      # ์ตœ์ข… ๋ฒˆ๋“ค JS ํŒŒ์ผ
โ”œโ”€โ”€ index.d.ts    # TypeScript ํƒ€์ž… ์ •์˜ ํŒŒ์ผ

๐Ÿš€ 3. NPM ๋กœ๊ทธ์ธ ๋ฐ ๋ฐฐํฌ

โœ… NPM ๊ณ„์ • ๋กœ๊ทธ์ธ

npm login
  • ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ, OTP ์ž…๋ ฅ ํ›„ ๋กœ๊ทธ์ธ ์™„๋ฃŒ

โœ… ํŒจํ‚ค์ง€ ๋ฐฐํฌ

npm publish --access public

๋ฐฐํฌ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด, ํŒจํ‚ค์ง€๊ฐ€ NPM ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค! ๐ŸŽ‰

โœ… ํ™•์ธ:

npm search my-calendar-plugin

๐Ÿ“„ 4. ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ ๋ฌธ์„œ (README.md) ์ž‘์„ฑ

ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•œ ํ›„, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก README.md ํŒŒ์ผ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

โœ… README.md ์˜ˆ์ œ

# My Calendar Plugin ๐Ÿ“…

๊ฐ„๋‹จํ•œ ์›น ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.  

## ์„ค์น˜ ๋ฐฉ๋ฒ•  

```sh
npm install my-calendar-plugin

์‚ฌ์šฉ๋ฒ•

import { Calendar } from "my-calendar-plugin";

const root = document.getElementById("calendar-root");
new Calendar(root);

๊ธฐ๋Šฅ

  • ์›” ์ด๋™ (โ—€ โ–ถ ๋ฒ„ํŠผ)
  • ๋‚ ์งœ ์„ ํƒ
  • ์ผ์ • ์ถ”๊ฐ€/์‚ญ์ œ/์ˆ˜์ •
  • LocalStorage ์—ฐ๋™

๋ผ์ด์„ ์Šค

MIT

---

## โœ… 5. ๋ฐฐํฌ๋œ ํŒจํ‚ค์ง€ ํ…Œ์ŠคํŠธ  

๋ฐฐํฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด **์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜**ํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.  

### โœ… ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ  

```bash
mkdir calendar-test
cd calendar-test
npm init -y
npm install my-calendar-plugin

โœ… index.ts ํŒŒ์ผ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ

import { Calendar } from "my-calendar-plugin";

const root = document.getElementById("calendar-root");
new Calendar(root);

๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ์‹œ ์บ˜๋ฆฐ๋”๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉด ์„ฑ๊ณต! โœ…


๐Ÿ“š ์ฐธ๊ณ ์ž๋ฃŒ


๐Ÿ”– ์ถ”์ฒœ ํƒœ๊ทธ

NPM ํŒจํ‚ค์ง€ ๋ฐฐํฌ, TypeScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ, Webpack ๋นŒ๋“œ, ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฐํฌ, ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ, ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ, JavaScript ์บ˜๋ฆฐ๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, npm publish, README ์ž‘์„ฑ, SEO ์ตœ์ ํ™” 10๊ฐœ


๐ŸŽ‰ ์‹œ๋ฆฌ์ฆˆ ์™„๊ฒฐ ๐ŸŽ‰

์ด์ œ ์šฐ๋ฆฌ๋Š” ์™„์ „ํ•œ TypeScript ๊ธฐ๋ฐ˜ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐœ๋ฐœํ•˜๊ณ , ๋ฐฐํฌ๊นŒ์ง€ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๋„ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿš€ ๋ฐฐ์šด ๊ฒƒ ์ •๋ฆฌ

โœ… TypeScript + Webpack์„ ํ™œ์šฉํ•œ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋ง
โœ… ์บ˜๋ฆฐ๋” UI & ๊ธฐ๋Šฅ ๊ตฌํ˜„
โœ… ์ผ์ • ์ €์žฅ ๋ฐ ์ˆ˜์ • ๊ธฐ๋Šฅ
โœ… ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๊ณ ๋ คํ•œ ๋ฆฌํŒฉํ† ๋ง & ํด๋ž˜์Šค๋กœ ๊ตฌ์กฐํ™”
โœ… NPM ํŒจํ‚ค์ง€ ๋ฐฐํฌ ๋ฐ README ๋ฌธ์„œํ™”

๐Ÿ‘ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค! ์ด์ œ ์‹ค์ „์—์„œ ์ง์ ‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


โœจ ๋‹ค์Œ ๋‹จ๊ณ„ (์‹ฌํ™” ๋ฐœ์ „ ๊ฐ€๋Šฅ์„ฑ)

์ด์ œ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋”์šฑ ๋ฐœ์ „์‹œ์ผœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1๏ธโƒฃ React, Vue, Svelte ๋ฒ„์ „ ์ œ์ž‘
2๏ธโƒฃ ๋‚ ์งœ ์„ ํƒ ์Šคํƒ€์ผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ธฐ๋Šฅ ์ถ”๊ฐ€
3๏ธโƒฃ Google Calendar API ์—ฐ๋™ํ•˜์—ฌ ์‹ค์ œ ์ผ์ • ๊ฐ€์ ธ์˜ค๊ธฐ
4๏ธโƒฃ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ”ฅ ๋ฐฐํฌ๋œ ํŒจํ‚ค์ง€๋ฅผ ๋” ๋ฐœ์ „์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด GitHub ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์˜คํ”ˆ์†Œ์Šค๋กœ ์šด์˜ํ•ด ๋ณด์„ธ์š”!


๐Ÿ“ ๋งˆ์ง€๋ง‰์œผ๋กœ!
์ด ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋”ฐ๋ผ ํ•˜๋ฉฐ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ์งˆ๋ฌธํ•˜์„ธ์š”!
๋‹ค์Œ์—๋„ ๋” ์œ ์šฉํ•œ ์‹ค์ „ ํ”„๋กœ์ ํŠธ๋กœ ์ฐพ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿš€

๐Ÿ™ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

'study > ts' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๐Ÿ“Œ Webpack๊ณผ TypeScript๋กœ ๋งŒ๋“œ๋Š” ์›น์•ฑ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ - ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง โ€“ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ตฌ์กฐํ™” ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ์ตœ์ ํ™”  (0) 2025.03.27
๐Ÿ“Œ Webpack๊ณผ TypeScript๋กœ ๋งŒ๋“œ๋Š” ์›น์•ฑ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ - ์ผ์ • ์‚ญ์ œ ๋ฐ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๊ธฐ โ€“ ์ธํ„ฐ๋ž™์…˜ ๊ฐ•ํ™”  (0) 2025.03.27
๐Ÿ“Œ Webpack๊ณผ TypeScript๋กœ ๋งŒ๋“œ๋Š” ์›น์•ฑ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ - ์ผ์ • ๋ฐ์ดํ„ฐ ์˜๊ตฌ ์ €์žฅ โ€“ LocalStorage ์—ฐ๋™์œผ๋กœ ์ƒˆ๋กœ๊ณ ์นจ์—๋„ ์œ ์ง€ํ•˜๊ธฐ  (0) 2025.03.26
๐Ÿ“Œ Webpack๊ณผ TypeScript๋กœ ๋งŒ๋“œ๋Š” ์›น์•ฑ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ - ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ โ€“ ๋‚ ์งœ ์„ ํƒ๊ณผ ์›” ์ด๋™ ๊ธฐ๋Šฅ ๊ตฌํ˜„  (0) 2025.03.25
๐Ÿ“Œ Webpack๊ณผ TypeScript๋กœ ๋งŒ๋“œ๋Š” ์›น์•ฑ ์บ˜๋ฆฐ๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์‹œ๋ฆฌ์ฆˆ - ์ผ์ • ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•˜๊ธฐ โ€“ ์ด๋ฒคํŠธ ์ถ”๊ฐ€ ๋ฐ ์ €์žฅ ๊ตฌ์กฐ ์„ค๊ณ„  (0) 2025.03.25
โ€ป ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•