ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ Webpack๊ณผ TypeScript๋ก ๋ง๋๋ ์น์ฑ ์บ๋ฆฐ๋ ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ ์๋ฆฌ์ฆ
octo54 2025. 3. 28. 10:59๐ 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' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- flax
- AI์ฑ๋ด
- gatsbyjs
- seo ์ต์ ํ 10๊ฐ
- CI/CD
- NestJS
- Next.js
- nextJS
- ๋ฐฑ์๋๊ฐ๋ฐ
- rag
- llm
- JAX
- ๋ฅ๋ฌ๋
- nodejs
- REACT
- ํ์ด์ฌ์๊ณ ๋ฆฌ์ฆ
- Ktor
- ํ๋ก ํธ์๋
- fastapi
- Python
- Prisma
- SEO์ต์ ํ
- App Router
- ํ๋ก ํธ์๋๋ฉด์
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- PostgreSQL
- SEO ์ต์ ํ
- Docker
- ์น๊ฐ๋ฐ
- kotlin
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |