Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

25 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›ซ webwing ยท ํƒ€์ž„์ธ์•„์›ƒ ๊ทผํƒœ ์ž๋™ ์กฐ์ข…์„

API๋„ MCP๋„ ์—†๋Š” ํƒ€์ž„์ธ์•„์›ƒ(๊ทผํƒœ SaaS) ์„ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”๋กœ ๊ฐ์‹ธ, ๋กœ๊ทธ์ธ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ยท๋ถ„์„ยท์‹œ๊ฐํ™”๊นŒ์ง€ ๋Œ€์‹  ํ•ด์ฃผ๋Š” ๋„๊ตฌ.

"API๋ฅผ ์•ˆ ์ฃผ๋Š”(๋ชป ์ฃผ๋Š”) ์„œ๋น„์Šค๋Š”, ์ž๋™ํ™”๊ฐ€ ๊ณง ๊ทธ ์„œ๋น„์Šค์˜ API๊ฐ€ ๋œ๋‹ค."

๋ณธ์ธ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด โ†’ ๊ฐ€์ƒ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋Œ€์‹  ํƒ€์ž„์ธ์•„์›ƒ์— ์ ‘์†ํ•ด ๋‚ด ๊ทผํƒœ๋ฅผ ๊ธ์–ด์™€ โ†’ ์ดˆ๊ณผ๊ทผ๋ฌด๋ฅผ ๊ณ„์‚ฐํ•ด โ†’ ๋ฆฌํฌํŠธ๋กœ ๋ณด์—ฌ์ค€๋‹ค. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ถˆํ•„์š”.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ์ง์›(๋ณธ์ธ) ๋ชจ๋“œ โ€” user.timeinout.kr ๋กœ๊ทธ์ธ๋งŒ์œผ๋กœ ๋‚ด ๊ทผํƒœ ์กฐํšŒ (๊ด€๋ฆฌ์ž ๊ถŒํ•œ X)
  • ์ฐ ํ‡ด๊ทผ ๊ธฐ์ค€ ์ดˆ๊ณผ๊ทผ๋ฌด โ€” ํšŒ์‚ฌ์˜ "์ •๋Ÿ‰ 12์‹œ๊ฐ„ ์ธ์ • ์ƒํ•œ"์„ ๋ฌด์‹œํ•˜๊ณ  ์‹ค์ œ ์ถœํ‡ด๊ทผ ํŽ€์น˜๋กœ ๊ณ„์‚ฐ
  • ์›” 52์‹œ๊ฐ„ ์ฒดํฌ + KPI: ์ด ๊ทผ๋กœ / ์ดˆ๊ณผ๊ทผ๋ฌด(ํ‰์ผ 8h ์ดˆ๊ณผ) / ํœด์ผ๊ทผ๋ฌด(์˜ˆ์™ธ ๋ณ„๋„ ์ง‘๊ณ„)
  • ์ถœํ‡ด๊ทผ ์‹œ๊ฐ ๋ถ„ํฌ ๊ทธ๋ž˜ํ”„ โ€” ํ•˜๋ฃจ๋ฅผ ๊ทผ๋ฌด 4h โ†’ ์ ์‹ฌ 1h โ†’ ๊ทผ๋ฌด 4h โ†’ ์ €๋… 30m โ†’ ์•ผ๊ทผ์œผ๋กœ ๋ถ„ํ• , ์ž์ • ๋„˜๋Š” ํ‡ด๊ทผ์€ 24h ์œ„๋กœ
    • ์ƒ‰: ๊ทผ๋ฌด(ํŒŒ๋ž‘) ยท ์•ผ๊ทผ(๋นจ๊ฐ•) ยท ํœด์ผ๊ทผ๋ฌด(๋ณด๋ผ) ยท ํœด๊ฐ€(์ดˆ๋ก) ยท ์ •์ •(์ฒญ๋ก) ยท ๊ธฐ๋ก๋ˆ„๋ฝ(ํšŒ์ƒ‰)
  • ์ž๋™ ๋ถ„๋ฅ˜ โ€” ์ฃผ๋ง/๊ณตํœด์ผ, ์—ฐ์ฐจยท๋ฐ˜์ฐจ, ์ •์ •(์ˆ˜๋™์ˆ˜์ •) ๋‚ด์—ญ, ๋ฏธ์ฒดํฌ์•„์›ƒ/ํ•œ์ชฝ๋งŒ ์ฐํž˜/๊ฒฐ๊ทผ = ๊ธฐ๋ก๋ˆ„๋ฝ
  • ๊ฐ€์ƒ ์‚ฌํŒŒ๋ฆฌ ์Šค๋ƒ…์ƒท ํ”Œ๋ ˆ์ด์–ด โ€” ๋กœ๊ทธ์ธ โ†’ ์ˆ˜์ง‘ โ†’ ๋ฆฌํฌํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ์œผ๋กœ ์žฌ์ƒ (โ€น โ€บ ์•ž๋’ค ํƒ์ƒ‰, โ†ป ๋‹ค์‹œํ•˜๊ธฐ)

์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜

๋ธŒ๋ผ์šฐ์ €(Playwright) โ”€โ”€โ–ถ user.timeinout.kr ๋กœ๊ทธ์ธ
                     โ”€โ”€โ–ถ ๋‚˜์˜ ๊ทผํƒœ(์ผ๋ณ„ ์นด๋“œ) ์Šคํฌ๋ž˜ํ•‘  โ”
                     โ”€โ”€โ–ถ ๋‚˜์˜ ํœด๊ฐ€ ๋‚ด์—ญ ์Šคํฌ๋ž˜ํ•‘        โ”œโ”€โ–ถ ๋ถ„์„(์ดˆ๊ณผ๊ทผ๋ฌดยท๋ถ„๋ฅ˜) โ”€โ–ถ ์›น ๋Œ€์‹œ๋ณด๋“œ
   ๊ฐ ๋‹จ๊ณ„ ์Šค๋ƒ…์ƒท ์บก์ฒ˜ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         (Chart.js)
        โ””โ–ถ NDJSON ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ”„๋ก ํŠธ์— ์‹ค์‹œ๊ฐ„ ์ „์†ก
  • ์—”์ง„ src/lib/timeinout.mjs โ€” ๋กœ๊ทธ์ธ/์Šคํฌ๋ž˜ํ•‘/๋ถ„์„ (๊ด€๋ฆฌ์žยท์ง์› ๋ชจ๋“œ ๊ณต์šฉ ๊ณ„์‚ฐ๋ถ€ buildDays)
  • ์„œ๋ฒ„ server.mjs โ€” Express, /api/overtime/stream (์Šค๋ƒ…์ƒท ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ)
  • UI public/index.html โ€” ๊ฐ€์ƒ ๋ธŒ๋ผ์šฐ์ € + ์Šค๋ƒ…์ƒท ํ”Œ๋ ˆ์ด์–ด + ๋Œ€์‹œ๋ณด๋“œ (์˜์กด์„ฑ ์—†์ด ๋‹จ์ผ ํŒŒ์ผ + Chart.js CDN)

์„ค์น˜ & ์‹คํ–‰

npm install
npx playwright install chromium      # ํ—ค๋“œ๋ฆฌ์Šค ํฌ๋กฌ (~150MB)

# ์ž๊ฒฉ์ฆ๋ช… (์„ ํƒ โ€” UI์—์„œ ์ง์ ‘ ์ž…๋ ฅํ•ด๋„ ๋จ)
cp .env.example .env && vi .env       # TIMEINOUT_ID / TIMEINOUT_PW

npm run dev                           # โ†’ http://localhost:8181

๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๊ณ  ์•„์ด๋””ยท๋น„๋ฒˆยท์›” ๋„ฃ๊ณ  ๋กœ๊ทธ์ธํ•˜๊ณ  ์ž๋™ ๋ถ„์„ โ–ถ. .env์— ๊ฐ’์„ ๋„ฃ์–ด๋‘๋ฉด ์ž๋™ ํ”„๋ฆฌํ•„๋œ๋‹ค.

์ฐธ๊ณ  / ํ•œ๊ณ„

  • ํฌ๋กฌ(Playwright)์ด ํ•„์ˆ˜ โ€” ์ง„์งœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋„์›Œ ์กฐ์ž‘ํ•˜๋ฏ€๋กœ ์‹คํ–‰ ํ™˜๊ฒฝ์ด ๋ฌต์งํ•˜๋‹ค(์š”์ฒญ๋‹น ํ—ค๋“œ๋ฆฌ์Šค ํฌ๋กฌ 1๊ฐœ, ~20โ€“30์ดˆ). ๊ฐœ์ธยท์†Œ๊ทœ๋ชจ์šฉ. ํฌ๋กฌ ์ธ์Šคํ„ด์Šค๋Š” ์žฌ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ž๊ฒฉ์ฆ๋ช…์€ ๋กœ์ปฌ .env ์—๋งŒ ์ €์žฅ๋˜๋ฉฐ git์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๋Š”๋‹ค(.gitignore). ํ™”๋ฉด ํ”„๋ฆฌํ•„๋„ ์„œ๋ฒ„๊ฐ€ .env์—์„œ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ์‹.
  • ๊ณ„์‚ฐ ์ „์ œ: ํœด๊ฒŒ 90๋ถ„(์ ์‹ฌ60+์ €๋…30) ์ผ๊ด„ ์ฐจ๊ฐ, ์ฃผ๋ง/ํœด์ผ ๊ทผ๋กœ๋Š” ์ „์ฒด๋ฅผ ์ดˆ๊ณผ๋กœ ์ง‘๊ณ„, ๋ฏธ์ฒดํฌ์•„์›ƒ ์˜์‹ฌ(>16h)ยท๊ฒฐ๊ทผยทํ•œ์ชฝ๋งŒ ์ฐํž˜์€ "๊ธฐ๋ก๋ˆ„๋ฝ"์œผ๋กœ ํ•ฉ๊ณ„์—์„œ ์ œ์™ธ.
  • ํƒ€์ž„์ธ์•„์›ƒ ํ™”๋ฉด ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์…€๋ ‰ํ„ฐ๋ฅผ ์†๋ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ž๋™ํ™” ์‚ฌ์šฉ์€ ๋Œ€์ƒ ์„œ๋น„์Šค ์•ฝ๊ด€์„ ํ™•์ธํ•˜๊ณ  ๋ณธ์ธ ๊ณ„์ •ยท์ •๋‹นํ•œ ์šฉ๋„๋กœ๋งŒ.

๋ผ์ด์„ ์Šค

Private.

About

๐Ÿ›ซ API ์—†๋Š” ๊ทผํƒœ SaaS(ํƒ€์ž„์ธ์•„์›ƒ)๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”๋กœ ๊ฐ์‹ผ๋‹ค โ€” ๋กœ๊ทธ์ธ๋งŒ์œผ๋กœ ๋‚ด ๊ทผํƒœ ์ˆ˜์ง‘ยท์ดˆ๊ณผ๊ทผ๋ฌด ๊ณ„์‚ฐยท๋ฆฌํฌํŠธ

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages