Skip to Content
PharmKPI์†Œ๊ฐœ

PharmKPI

์œ ๋‹ˆ์˜จ์ œ์•ฝ KPI ๋Œ€์‹œ๋ณด๋“œ โ€” ๋„๋งค ๋งค์ถœ, CSO ๋งค์ถœ, ์ˆ˜๊ธˆ, ํก์ˆ˜์œจ, ๋งˆ์ง„, ์˜์—…ํ™œ๋™ ๋“ฑ ์ œ์•ฝ ์‚ฐ์—… ํ•ต์‹ฌ KPI๋ฅผ ํ†ตํ•ฉ ๋ถ„์„ํ•˜๋Š” ๋Œ€์‹œ๋ณด๋“œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

๊ฐœ์š”

ํ•ญ๋ชฉ๋‚ด์šฉ
์ŠคํƒNext.js 16 + React 19 + TypeScript (strict)
UITailwind CSS v4 + shadcn/ui + Recharts
DBPostgreSQL 15.8 (Supabase ์…€ํ”„ํ˜ธ์ŠคํŒ…, pkpi_ ์ ‘๋‘์‚ฌ)
ORMPrisma
ํ˜ธ์ŠคํŒ…Coolify (Oracle Cloud ARM)
์ธ์ฆSupabase Auth (์‚ฌ๋‚ด ์‹œ์Šคํ…œ, authenticated ์ „์ฒด ์ ‘๊ทผ)
๋ฒ„์ „v0.14.8
URLkpi.dvsharp.comย 

๋„๋ฉ”์ธ ์ปจํ…์ŠคํŠธ

์ œ์•ฝ์‚ฌ ์˜์—…๊ด€๋ฆฌํŒ€์€ ๋งค์ถœ ํ˜„ํ™ฉ์„ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ(ERP, UBIST, ์—‘์…€)์—์„œ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ๊ต์ฐจ ๋ถ„์„ํ•˜๋ ค๋ฉด ์ˆ˜์ž‘์—… ๊ฐ€๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

PharmKPI๋Š” ์‚ฌ๋‚ด ERP ๋ฐ์ดํ„ฐ๋ฅผ erp-relay-gateway๋ฅผ ํ†ตํ•ด ์ˆ˜์ง‘ํ•˜๊ณ , ๋„๋งค ๋งค์ถœยทCSO ๋งค์ถœยท์ˆ˜๊ธˆยทํก์ˆ˜์œจยท๋งˆ์ง„ ๋“ฑ ํ•ต์‹ฌ KPI๋ฅผ ํ•˜๋‚˜์˜ ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๊ฒฝ๋กœ

์†Œ์Šค๊ฒฝ๋กœ์ง€์—ฐ
์‚ฌ๋‚ด ERP (MSSQL)erp-relay-gateway โ†’ API โ†’ Supabase์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”
ํก์ˆ˜์œจ ๋ฐ์ดํ„ฐ์—‘์…€ ์—…๋กœ๋“œ โ†’ ํŒŒ์‹ฑ โ†’ Supabase์ˆ˜๋™ ์—…๋กœ๋“œ

ํ•ต์‹ฌ ์›์น™

  • ๊ณผ๊ฑฐ ์›” ๋ฐ์ดํ„ฐ ๋ถˆ๋ณ€ โ€” ์บ์‹œ๋งŒ ์‚ฌ์šฉ, ์›๊ฒฉ ์กฐํšŒํ•˜์ง€ ์•Š์Œ
  • ๋‹น์›” ๋ฐ์ดํ„ฐ๋งŒ ์ˆ˜๋™ ๋™๊ธฐํ™” ํ—ˆ์šฉ
  • 3๋‹จ ํด๋ฐฑ โ€” VPN(๋ฏธํ•ด๊ฒฐ) โ†’ Relay โ†’ ์—‘์…€ ์—…๋กœ๋“œ

์™ธ๋ถ€ ์—ฐ๋™

์‹œ์Šคํ…œ์—ญํ• ์—ฐ๋™ ๋ฐฉ์‹
erp-relay-gateway์‚ฌ๋‚ด ERP ๋ฐ์ดํ„ฐ ์ค‘๊ณ„REST API (MSSQL โ†’ JSON)
Supabase๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค + ์ธ์ฆ์…€ํ”„ํ˜ธ์ŠคํŒ… PostgreSQL (sb.dvsharp.com)
Claude / GeminiAI ๋ถ„์„API ์—ฐ๋™ (์„ค์ • ํŽ˜์ด์ง€์—์„œ ํ‚ค ๊ด€๋ฆฌ)

์ฃผ์š” ๊ธฐ๋Šฅ

๋Œ€์‹œ๋ณด๋“œ๋Š” ์‚ฌ์ด๋“œ๋ฐ” ๊ธฐ๋ฐ˜ ๋„ค๋น„๊ฒŒ์ด์…˜์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

๋ฉ”๋‰ดํ•ต์‹ฌ ์งˆ๋ฌธ์ฃผ์š” ๋‚ด์šฉ
๋งค์ถœ ์ข…ํ•ฉ์ด๋ฒˆ ๋‹ฌ ์ „์ฒด ๋งค์ถœ์€?๋„๋งค/CSO/ํก์ˆ˜์œจ ํ†ตํ•ฉ ์ฐจํŠธ, ์›”๋ณ„ ์ถ”์ด
๋„๋งค ๋งค์ถœ๋„๋งค ์ฑ„๋„ ์‹ค์ ์€?๋„๋งค์‚ฌ๋ณ„ ๋งค์ถœ, ์ œํ’ˆ๋ณ„ ์‹ค์ , ์ „์›” ๋Œ€๋น„
CSO ๋งค์ถœCSO ์ฑ„๋„ ํšจ์œจ์€?CSO ์—…์ฒด๋ณ„ ๋งค์ถœ, ์นจํˆฌ์œจ, ์„ฑ๊ณผ ๋น„๊ต
ํก์ˆ˜์œจํˆฌ์ž… ๋Œ€๋น„ ํšŒ์ˆ˜์œจ์€?3M/6M/12M ํก์ˆ˜์œจ ์ถ”์ด, ์ œํ’ˆ๋ณ„ ๋ถ„์„
์ˆ˜๊ธˆ๋ฏธ์ˆ˜๊ธˆ ํ˜„ํ™ฉ์€?์ˆ˜๊ธˆ์œจ, ๋ฏธ์ˆ˜ ์ž”์•ก, ๊ฑฐ๋ž˜์ฒ˜๋ณ„ ํ˜„ํ™ฉ
๋งˆ์ง„์ฑ„์‚ฐ์„ฑ์€?์ œํ’ˆ๋ณ„ ๋งˆ์ง„, ์›๊ฐ€์œจ, ์ˆ˜์ต์„ฑ ๋ถ„์„
์˜์—…ํ™œ๋™์˜์—…์‚ฌ์› ํ™œ๋™๋Ÿ‰์€?๋ฐฉ๋ฌธ ๊ฑด์ˆ˜, ํ™œ๋™ ์ง€ํ‘œ
๊ณต๊ธ‰ ํ˜„ํ™ฉ์ถœ๊ณ  ์ƒํƒœ๋Š”?๊ณต๊ธ‰๋Ÿ‰ ์ถ”์ด, ์ œํ’ˆ๋ณ„ ์ถœ๊ณ 
์ง€์—ญ ๋ถ„ํฌ๋งค์ถœ ์ง€์—ญ ๋ถ„ํฌ๋Š”?์ง€๋„ ์‹œ๊ฐํ™” (Leaflet), Sankey ์ฐจํŠธ
์ค€์ˆ˜์œจ๊ทœ์ • ์ค€์ˆ˜ ํ˜„ํ™ฉ์€?์ปดํ”Œ๋ผ์ด์–ธ์Šค ์ง€ํ‘œ

๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

๊ธฐ๋Šฅ์„ค๋ช…
๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ์—‘์…€ ํŒŒ์ผ ์—…๋กœ๋“œ โ†’ ํŒŒ์‹ฑ โ†’ DB ์ €์žฅ
ํก์ˆ˜์œจ ์—…๋กœ๋“œํก์ˆ˜์œจ ์ „์šฉ ์—…๋กœ๋“œ (๋ณ„๋„ ์–‘์‹)
์—…๋กœ๋“œ ์ด๋ ฅ์—…๋กœ๋“œ ๊ธฐ๋ก ์กฐํšŒ, ์ƒํƒœ ํ™•์ธ
ํ…œํ”Œ๋ฆฟ ๋‹ค์šด๋กœ๋“œ์—…๋กœ๋“œ์šฉ ์—‘์…€ ํ…œํ”Œ๋ฆฟ ์ œ๊ณต

์‹œ์Šคํ…œ ์„ค์ •

๊ธฐ๋Šฅ์„ค๋ช…
AI ์„ค์ •Claude/Gemini API ํ‚ค ๊ด€๋ฆฌ, AI ๋ถ„์„ ํ™œ์„ฑํ™”
ํ…Œ๋งˆ๋‹คํฌ๋ชจ๋“œ/๋ผ์ดํŠธ๋ชจ๋“œ ์ „ํ™˜
DB ์—ฐ๊ฒฐ ์ƒํƒœERP relay, Supabase ์—ฐ๊ฒฐ ํ™•์ธ
ํ”„๋ฆฌ์…‹ ๊ด€๋ฆฌ๋Œ€์‹œ๋ณด๋“œ ๋ทฐ ํ”„๋ฆฌ์…‹ (๊ด€๋ฆฌ์ž ์ „์šฉ)
์‚ฌ์šฉ์ž ๊ด€๋ฆฌํšŒ์› ์Šน์ธ/์—ญํ•  ๋ณ€๊ฒฝ (๊ด€๋ฆฌ์ž ์ „์šฉ)

์‚ฌ์šฉ์ž ์—ญํ• 

์—ญํ• ์„ค๋ช…์ ‘๊ทผ ๋ฒ”์œ„
๊ด€๋ฆฌ์ž์ „์ฒด ์‹œ์Šคํ…œ ๊ด€๋ฆฌ๋ชจ๋“  ๋ฉ”๋‰ด + ์„ค์ • + ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ
๋ทฐ์–ด๋Œ€์‹œ๋ณด๋“œ ์กฐํšŒ๋Œ€์‹œ๋ณด๋“œ ์กฐํšŒ + AI ์„ค์ •๋งŒ (ํ”„๋ฆฌ์…‹ยท์‹œ์Šคํ…œ ์ƒํƒœ ์ˆจ๊น€)

๋งค๋‰ด์–ผ

Last updated on