Skip to main content

Posts

๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๋ฌธํ™”์˜ ํ‘œ์ค€ํ™” — ์ฝ”๋“œ, ํ˜‘์—…, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ๋žŒ์˜ ์ผํ•˜๋Š” ๋ฐฉ์‹

๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๋ฌธํ™”์˜ ํ‘œ์ค€ํ™” — ์ฝ”๋“œ, ํ˜‘์—…, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ๋žŒ์˜ ์ผํ•˜๋Š” ๋ฐฉ์‹ ์š”์•ฝ: REINDEERS๋Š” 5์›”, ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฟ ์•„๋‹ˆ๋ผ ‘๊ฐœ๋ฐœ ๋ฌธํ™”’ ์ž์ฒด๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ธฐํš์ž·๊ฐœ๋ฐœ์ž·๋””์ž์ด๋„ˆ ๊ตฌ๋ถ„์„ ์—†์• ๊ณ , AI ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ์™€ ์ž๋™ํ™”๋œ ๋ฆฌ๋ทฐ·๋ฐฐํฌ·๊ฒ€์ฆ ์ฒด๊ณ„๋ฅผ ๋„์ž…ํ•ด “์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ์ด ์ผํ•˜๋Š” ์กฐ์ง”์„ ์™„์„ฑํ–ˆ๋‹ค. 1. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ๋ชฉํ‘œ — ‘์‚ฌ๋žŒ ์—†์ด๋„ ์ผ๊ด€๋œ ๊ฒฐ๊ณผ’ REINDEERS์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ๋‹จ ํ•˜๋‚˜์˜ ๋ชฉํ‘œ๋ฅผ ๊ฐ–๊ณ  ์„ค๊ณ„๋˜์—ˆ๋‹ค. “์‚ฌ๋žŒ์ด ์—†์–ด๋„ ์ฝ”๋“œ ํ’ˆ์งˆ๊ณผ ๋ฐฐํฌ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.” ์ด๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ์™„์ „ํžˆ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ธํŒ…๋˜์—ˆ๊ณ , ํ™˜๊ฒฝ ํŽธ์ฐจ๋‚˜ ๋กœ์ปฌ ์˜์กด์„ฑ ๋ฌธ์ œ๋Š” ์ œ๊ฑฐ๋˜์—ˆ๋‹ค. ๊ฐœ์ธ์˜ ํ™˜๊ฒฝ์€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ชจ๋“  ํ™˜๊ฒฝ์€ dev , staging , production ์„ธ ๋‹จ๊ณ„๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌ๋œ๋‹ค. ํ‘œ์ค€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์กฐ # Dockerfile (๊ณต์šฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ) FROM node:20-bullseye RUN apt-get update && \ apt-get install -y python3 python3-pip vim curl git && \ pip install pre-commit flake8 WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . CMD ["npm", "run", "dev"] ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฝ”๋“œ ์ˆ˜์ • ์‹œ Drone์˜ pre-flight build ๊ฐ€ ์ž๋™ ์ˆ˜ํ–‰๋˜์–ด ๋ฆฐํŠธ, ํ…Œ์ŠคํŠธ, ์˜์กด์„ฑ ๊ฒ€์ฆ์ด ์™„๋ฃŒ๋˜์–ด์•ผ๋งŒ PR์ด ์ƒ์„ฑ๋œ๋‹ค. ...

๋ฐ์ดํ„ฐ์™€ ์ž๋™ํ™” — ์š”๊ตฌ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” '์ƒˆ๋กœ์šด' ํ”Œ๋žซํผ๋งŒ์ด ํ•ด๋‹ต์ด์—ˆ๋‹ค

๋ฐ์ดํ„ฐ์™€ ์ž๋™ํ™” — ์š”๊ตฌ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” '์ƒˆ๋กœ์šด' ํ”Œ๋žซํผ๋งŒ์ด ํ•ด๋‹ต์ด์—ˆ๋‹ค ํ•ต์‹ฌ: ๊ธฐ์กด ๊ฒฐ๊ณผ๋ฌผ์˜ ํ”Œ๋žซํผ ๊ตฌ์กฐ๋กœ๋Š” CEO๊ฐ€ ์š”๊ตฌํ•œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค. ์šฐ๋ฆฌ๋Š” ์•„ํ‚คํ…์ฒ˜·๋ฐ์ดํ„ฐ·์ž๋™ํ™”·๋ณด์•ˆ์„ ์ „๋ถ€ ์ƒˆ๋กœ ์„ค๊ณ„ ํ–ˆ๊ณ , ๊ทธ ์„ค๊ณ„๋งŒ์ด ๊ธ€๋กœ๋ฒŒ·๋‹ค๊ตญ์–ด·๋‹คํ†ตํ™”·์‹ค์‹œ๊ฐ„ ํ๋ฆ„(Quote→PO→Invoice→Delivery→Settlement)์„ ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜ ์ฒด์ธ์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. 1. ์š”๊ตฌ์กฐ๊ฑด์—์„œ ์‹œ์ž‘ํ•œ ‘์ƒˆ ํ”Œ๋žซํผ’ ์„ ์–ธ Quote → PO → Invoice → Delivery → Settlement ์ „์ฒด ํ๋ฆ„์ด ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์ฒด์ธ ์œผ๋กœ ์—ฐ๊ฒฐ๋  ๊ฒƒ ๊ตญ๊ฐ€/์–ธ์–ด/ํ†ตํ™”/์„ธ์œจ/๋ฌผ๋ฅ˜ ๊ทœ์น™์„ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ์—์„œ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•  ๊ฒƒ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”๊ฐ€ ์ด๋ฒคํŠธ(AMQP) ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ์ „ํŒŒ๋˜๊ณ  ์บ์‹œ์™€ UI๊ฐ€ ์ž๋™ ๊ฐฑ์‹ ๋  ๊ฒƒ ์‚ฌ๋žŒ์ด ๋ฌธ์„œ/ํˆด์„ ์กฐ์ž‘ํ•˜์ง€ ์•Š์•„๋„ AI ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐ€ ๋ช…์„ธ→์Šคํ‚ค๋งˆ→API→๋ฐฐํฌ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•  ๊ฒƒ ์ด ์š”๊ตฌ๋Š” ๊ณง ํ”Œ๋žซํผ์˜ ์žฌ์ •์˜ ์˜€๋‹ค. “์ฝ”๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…”ํ•˜๋˜ ๊ณผ๊ฑฐ์—์„œ, “ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ง€๋ฐฐ ํ•˜๋Š”” ๊ตฌ์กฐ๋กœ์˜ ์ „ํ™˜. ์ด ๊ด€์ ์—์„œ ์ „ ๊ณ„์ธต์„ ๋‹ค์‹œ ์„ค๊ณ„ํ–ˆ๋‹ค. 2. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ์Šคํƒ(Infra/Runtime/Automation/Security) Infra & Network Tencent Cloud : ap-hongkong(Primary), ap-seoul(DR) DNSPod Geo Routing + Health Check COS + CDN : ์ •์  ์ž์‚ฐ ์ „์„ธ๊ณ„ ์—ฃ์ง€ ๋ฐฐํฌ TKE/CVM : API ๋ชจ๋“ˆ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ Data & Messaging ...

MCP ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๊ธฐ — ๊ธ€๋กœ๋ฒŒ ์ธํ”„๋ผ์˜ ๋ผˆ๋Œ€๋ฅผ ์„ธ์šฐ๋‹ค

MCP ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๊ธฐ — ๊ธ€๋กœ๋ฒŒ ์ธํ”„๋ผ์˜ ๋ผˆ๋Œ€๋ฅผ ์„ธ์šฐ๋‹ค 2025๋…„ 5์›”, REINDEERS ํ”Œ๋žซํผ์˜ ์ธํ”„๋ผ ์žฌ์„ค๊ณ„๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ๋‹ค. 4์›” ํ•œ ๋‹ฌ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ์ „๋ฉด ์ ๊ฒ€ํ–ˆ๊ณ , AWS ์‹ฑ๊ฐ€ํด ๋ฆฌ์ „์— ์‚ฐ์žฌ๋œ ๋น„ํšจ์œจ์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. CI/CD๋Š” ๋‹จ์ˆœ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ค€์— ๋จธ๋ฌผ๋ €๊ณ , ์šด์˜ ์Šคํ…Œ์ด์ง€๋„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋˜์ง€ ์•Š์•˜๋‹ค. ์†Œ์Šค ๊ด€๋ฆฌ์กฐ์ฐจ ํ†ตํ•ฉ๋˜์ง€ ์•Š์•„ ๋นŒ๋“œ๊ฐ€ ํ™˜๊ฒฝ๋งˆ๋‹ค ๋‹ฌ๋ž๋‹ค. ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ์™„์ „ํžˆ ๋‹ค์‹œ ์„ธ์›Œ์•ผ ํ–ˆ๋‹ค. ์ƒˆ๋กœ์šด MCP(Multi-Cloud Point) ๊ตฌ์กฐ๋Š” “ํ™์ฝฉ์„ ๋ฉ”์ธ ๋ฆฌ์ „, ์„œ์šธ์„ DR ๋ฆฌ์ „” ์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ๊ฐ ์ง€์—ญ์˜ ์ ‘์†์€ DNSPod์˜ Geo Routing์„ ์ด์šฉํ•ด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆฌ์ „์œผ๋กœ ์œ ๋„ํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค. ํ”„๋ŸฐํŠธ์—”๋“œ๋Š” COS(Object Storage)์— ์ •์  ๋ฐฐํฌ ํ›„, Tencent CDN์œผ๋กœ ์ž๋™ ํผ๋ธ”๋ฆฌ์‹œ๋˜๋ฉฐ, Git push ํ•œ ๋ฒˆ์œผ๋กœ ๋ชจ๋“  ๋ฆฌ์ „์ด ๊ฐฑ์‹ ๋œ๋‹ค. CI/CD๋Š” Drone ์„ ๋„์ž…ํ–ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ˆ˜์ค€์ด ์•„๋‹Œ, YAML ๊ธฐ๋ฐ˜์˜ self-service CI๋กœ ๋ฐ”๊ฟ”์„œ ๋ชจ๋“  ๋นŒ๋“œ/๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. kind: pipeline type: docker name: frontend-build steps: - name: install image: node:20 commands: - npm ci - name: build image: node:20 commands: - npm run build - name: deploy image: tencentcloudtools/cli environment: COS_BUCKET: reindeers-front-hk commands: - tccli cos cp ./dist cos://${COS_BUCKET}/ --recursive ์ด Drone ์„ค์ •์€ GitHub Action๋ณด๋‹ค ํ›จ์”ฌ ๋‹จ์ˆœํ•˜๋ฉด์„œ๋„ ๋น ๋ฅด๋‹ค. ์„œ๋ฒ„ ์ž์›์€ ๋ชจ๋‘ CV...

ํŒ€๊ณผ ๊ธฐ์ˆ ์˜ ๋ฆฌ๋นŒ๋“œ — ๋‹ค์‹œ ์ผํ•˜๋Š” ๋ฒ•์„ ์ •๋น„ํ•˜๋‹ค

ํŒ€๊ณผ ๊ธฐ์ˆ ์˜ ๋ฆฌ๋นŒ๋“œ — ๋‹ค์‹œ ์ผํ•˜๋Š” ๋ฒ•์„ ์ •๋น„ํ•˜๋‹ค ์š”์•ฝ: REINDEERS๋Š” ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์„ค๊ณ„ํ•˜๊ธฐ ์ „์— ๋จผ์ € ํŒ€์„ ํ•ด์ฒดํ–ˆ๋‹ค. ๊ธฐ์กด ์ธ๋ ฅ ์ „์›์ด ํ‡ด์‚ฌํ•œ ํ›„, ๊ธฐ์ˆ  ์ปคํŠธ๋ผ์ธ์„ ํ†ต๊ณผํ•œ ์ƒˆ๋กœ์šด ์—”์ง€๋‹ˆ์–ด๋“ค๋กœ ์กฐ์ง์„ ์žฌ๊ตฌ์„ฑํ–ˆ๋‹ค. ์ดํ›„ Drone ๊ธฐ๋ฐ˜ CI/CD, Git ์›Œํฌํ”Œ๋กœ์šฐ, ํ…Œ์ŠคํŠธ ์ž๋™ํ™”, AI ํ˜‘์—… ์ฒด๊ณ„๊นŒ์ง€ ๋ชจ๋“  ๊ธฐ์ˆ  ๋ฌธํ™”๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ •์˜๋˜์—ˆ๋‹ค. 1. ๋ฆฌ๋นŒ๋“œ์˜ ์‹œ์ž‘ — ์‚ฌ๋žŒ๋ถ€ํ„ฐ ๋ฐ”๊ฟจ๋‹ค 2025๋…„ 4์›” ์ดˆ, REINDEERS๋Š” ์ค‘๋Œ€ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ ธ๋‹ค. ์‹œ์Šคํ…œ์„ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ์ผ๋ณด๋‹ค ๋จผ์ €, ์‚ฌ๋žŒ์„ ๋ฐ”๊พธ๊ธฐ๋กœ ํ•œ ๊ฒƒ์ด๋‹ค. ํ”Œ๋žซํผ์€ ๊ธฐ์ˆ ๋กœ ์›€์ง์ด์ง€๋งŒ, ์šด์˜์˜ ์ผ๊ด€์„ฑ์„ ๋ฌด๋„ˆ๋œจ๋ฆฌ๋Š” ๊ฒƒ์€ ์–ธ์ œ๋‚˜ ์‚ฌ๋žŒ์ด๋‹ค. ๊ฒฐ๊ตญ ๊ธฐ์กด ์ง์›๋“ค์€ ๋ชจ๋‘ ํ‡ด์‚ฌํ–ˆ๋‹ค. ์ด์ „ ํŒ€์€ ์‹คํ—˜์ ์ด์—ˆ์ง€๋งŒ, ์šด์˜ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ์—” ์—ญ๋ถ€์กฑ์ด์—ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ์ฝ”๋“œ ์ผ๋ถ€์™€ ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๋ฟ์ด์—ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ ์œ„์— ์ƒˆ๋กœ์šด ๋ฌธํ™”๋ฅผ ์„ธ์šฐ๊ธฐ๋ณด๋‹ค, ์™„์ „ํžˆ ์ƒˆ ํŒ€์„ ๋งŒ๋“œ๋Š” ๊ธธ์„ ์„ ํƒํ–ˆ๋‹ค. “์‚ฌ๋žŒ์„ ๋‚จ๊ธด ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ธฐ์ค€์„ ๋‚จ๊ฒผ๋‹ค.” 2. ์ƒˆ ํŒ€์˜ ํƒ„์ƒ — ๊ธฐ์ˆ  ์ปคํŠธ๋ผ์ธ๋ถ€ํ„ฐ ํ†ต๊ณผํ•ด์•ผ ํ–ˆ๋‹ค ์‹ ๊ทœ ์ฑ„์šฉ์˜ ๊ธฐ์ค€์€ ๋‹จ์ˆœํ–ˆ๋‹ค. “ ์šด์˜ ๊ฐ€๋Šฅํ•œ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๋Š”๊ฐ€ .” ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹œ์Šคํ…œ์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ๋ณต์ œ๋˜๋ฉฐ, ์žฅ์• ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณต๊ตฌํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•„๋Š” ์—”์ง€๋‹ˆ์–ด๋งŒ์ด ํ•ฉ๋ฅ˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ธฐ์ˆ  ์ปคํŠธ๋ผ์ธ (ํ•„์ˆ˜ ํ•ญ๋ชฉ) Nuxt 3 / Vue3 + SSR ๊ตฌ์กฐ ์ดํ•ด Python / Node.js ๊ธฐ๋ฐ˜ API ์„œ๋ฒ„ ์„ค๊ณ„ ๊ฒฝํ—˜ Drone CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ๋ฐ ์œ ์ง€ ๊ฒฝํ—˜ Tencent Cloud CLI ํ™œ์šฉ ๋ฐ...

MCP ์•„ํ‚คํ…์ฒ˜ ์„ ์–ธ — ํ”Œ๋žซํผ์˜ ์ƒˆ๋กœ์šด ์ฒญ์‚ฌ์ง„

MCP ์•„ํ‚คํ…์ฒ˜ ์„ ์–ธ — ํ”Œ๋žซํผ์˜ ์ƒˆ๋กœ์šด ์ฒญ์‚ฌ์ง„ ์š”์•ฝ: ๊ธฐ์กด ๊ตฌ์กฐ๋ฅผ ์™„์ „ํžˆ ํ๊ธฐํ•˜๊ณ , REINDEERS์˜ ๋ชจ๋“  ์‹œ์Šคํ…œ์€ MCP(Modular Cloud Platform) ํ˜•ํƒœ๋กœ ์žฌ์„ค๊ณ„๋˜์—ˆ๋‹ค. ๊ฐ ๋ชจ๋“ˆ์€ ๋…๋ฆฝ ๋ฐฐํฌ, ์ž๋™ ๋ณต๊ตฌ, ๊ธ€๋กœ๋ฒŒ ๋ผ์šฐํŒ…์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, Tencent Cloud ๊ธฐ๋ฐ˜์˜ ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ๊ตฌ์กฐ๋กœ ์šด์šฉ๋œ๋‹ค. 1. MCP(Modular Cloud Platform) ๊ฐœ์š” MCP๋Š” REINDEERS์˜ ํ•ต์‹ฌ ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜๋กœ, ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋…๋ฆฝ๋œ ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ ๋ชจ๋“ˆ์ด ์ž์ฒด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ๋ฐฐํฌ๋˜๋ฉฐ, ์žฅ์•  ์‹œ ์ž๋™์œผ๋กœ ์žฌ๋ฐฐํฌ ๋ฐ ๋ณต๊ตฌ๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค. ๋ชจ๋“ˆํ™”: ๋ชจ๋“  ์„œ๋น„์Šค(API, AI, ๋ฌผ๋ฅ˜, ๊ฒฐ์ œ, WMS ๋“ฑ)๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‹จ์œ„๋กœ ๊ฒฉ๋ฆฌ ๋ณต์ œ: ๋ฆฌ์ „ ๊ฐ„ ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ๋ณต์ œ (DTS + GTID ๊ธฐ๋ฐ˜) ์ž๋™ํ™”: Drone CI/CD, COS ์—…๋กœ๋“œ, CDN ์บ์‹œ ์ž๋™ ๋ฌดํšจํ™” ๋ณด์•ˆ: IAM ์ตœ์†Œ ๊ถŒํ•œ, HTTPS + mTLS ๋‚ด๋ถ€ ํ†ต์‹ , VPC ๋‚ด Private Endpoint 2. ๊ธ€๋กœ๋ฒŒ ์ธํ”„๋ผ ๊ตฌ์กฐ — ํ™์ฝฉ ๋ฉ”์ธ / ์„œ์šธ DR REINDEERS MCP๋Š” Tencent Cloud ์ƒ์— ๊ตฌ์ถ•๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ™์ฝฉ(ap-hongkong)์„ ๋ฉ”์ธ ๋ฆฌ์ „, ์„œ์šธ(ap-seoul)์„ ์žฌํ•ด๋ณต๊ตฌ ๋ฆฌ์ „์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” TencentDB for MySQL ์˜ DTS(Data Transmission Service) ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋น„๋™๊ธฐ ๋ณต์ œ๋œ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์„ฑ [Global Routing] DNSPod Geo Routing (TTL=60s, Health Monitor Enabled) ↓ [ap-h...

์ƒˆ๋กœ์šด ์ถœ๋ฐœ์„ ์œ„ํ•œ ์ ๊ฒ€ — 4๋…„์˜ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด๋ณด๋‹ค

์ƒˆ๋กœ์šด ์ถœ๋ฐœ์„ ์œ„ํ•œ ์ ๊ฒ€ — 4๋…„์˜ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด๋ณด๋‹ค ์š”์•ฝ: ๊ธฐ์กด AWS ์‹ฑ๊ฐ€ํฌ๋ฅด ๊ธฐ๋ฐ˜์˜ React + Java ๊ตฌ์กฐ๋ฅผ ์™„์ „ํžˆ ํ•ด์ฒดํ•˜๊ณ , Tencent Cloud ๋กœ ์ „ํ™˜ํ–ˆ๋‹ค. ํ”„๋ŸฐํŠธ๋Š” Nuxt + Vue3 ๋กœ ์žฌ๊ตฌ์„ฑ, ๋ฐฐํฌ๋Š” Drone CI/CD ์™€ COS/CDN ์ž๋™ํ™”๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ๋‚ด๋ถ€ ์ „์šฉ ์„œ๋น„์Šค๋กœ ๋น„๊ณต๊ฐœ ์šด์˜ํ•œ๋‹ค. 1. ์ดˆ๊ธฐ ์ƒํ™ฉ — AWS ์‹ฑ๊ฐ€ํฌ๋ฅด, ๋ณต์žกํ•˜๊ฒŒ ์–ฝํžŒ ์‹คํ—˜์˜ ํ”์  REINDEERS ์ดˆ๊ธฐ ๋ฒ„์ „์€ AWS ap-southeast-1 (Singapore) ๋ฆฌ์ „ ์œ„์—์„œ ์šด์˜๋˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์„œ๋น„์Šค ์šด์˜์„ ์œ„ํ•œ ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ “ํ•™์Šต” ์ค‘์‹ฌ์˜ ํ™˜๊ฒฝ์— ๊ฐ€๊นŒ์› ๋‹ค. EC2, S3, RDS, CloudFront, Lambda ๋“ฑ AWS ์ฃผ์š” ๊ธฐ๋Šฅ์ด ๋ชจ๋‘ ํ˜ผ์žฌํ–ˆ์ง€๋งŒ, ์–ด๋–ค ๊ตฌ์„ฑ์š”์†Œ๋„ ์„œ๋กœ ๋ช…ํ™•ํžˆ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์•˜๋‹ค. ์ธํ”„๋ผ ๊ตฌ์„ฑ ์˜ˆ์‹œ (๊ธฐ์กด AWS) VPC (10.0.0.0/16) ├── Subnet-Public (10.0.1.0/24) │ ├── EC2: react-build-server │ └── EC2: spring-api-server ├── Subnet-Private (10.0.2.0/24) │ ├── RDS: mysql-v1 │ └── ElasticCache: disabled └── SecurityGroup: default (80/443 open to 0.0.0.0/0) IAM์€ Root Key๋กœ ์ ‘๊ทผํ–ˆ๊ณ , Auto Scaling Group์€ ์„ค์ •๋งŒ ๋˜์–ด ์žˆ์„ ๋ฟ ์‹ค์ œ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์—ˆ๋‹ค. CloudFront๋Š” S3 ๋ฒ„ํ‚ท์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์—ˆ์ง€๋งŒ, TTL(์บ์‹œ ์ˆ˜๋ช…) ์„ค์ •์ด 24์‹œ๊ฐ„์œผ๋กœ ๊ณ ์ •๋˜์–ด ์‹ค์‹œ๊ฐ„ ๋ฐ˜์˜์ด ์–ด๋ ค์› ๋‹ค. API ์‘๋‹ต ์†๋„๋Š” ํƒœ๊ตญ์—์„œ ํ‰๊ท  620ms, ๋ง๋ ˆ์ด์‹œ์•„์—์„œ 710ms...

๋ ˆ์ธ๋””์–ด์Šค, Buybly๋กœ ๋™๋‚จ์•„์‹œ์•„ ์‚ฐ์—…์ž์žฌ ์‹œ์žฅ ํ˜์‹ 

B2B ์˜คํ”ˆ๋งˆ์ผ“ Buybly, ํ•œ๊ตญ ๊ธฐ์—…์˜ ๊ธ€๋กœ๋ฒŒ ์ง„์ถœ์„ ๋•๋‹ค ๋ ˆ์ธ๋””์–ด์Šค, ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜์˜ ์‚ฐ์—…์ž์žฌ ๋งค์นญ ์†”๋ฃจ์…˜์œผ๋กœ ๊ฒฝ์Ÿ๋ ฅ ๊ฐ•ํ™” ๊น€๋ช…ํ›ˆ ๋ ˆ์ธ๋””์–ด์Šค ๋Œ€ํ‘œ ์‚ฐ์—…์ž์žฌ ์‹œ์žฅ์˜ ๋ณต์žก์„ฑ๊ณผ ์œ ํ†ต์žฅ๋ฒฝ์€ ๋งŽ์€ ๊ธฐ์—…๋“ค์—๊ฒŒ ํฐ ๋„์ „ ๊ณผ์ œ๊ฐ€ ๋˜์–ด์™”๋‹ค. ํŠนํžˆ ๋™๋‚จ์•„์‹œ์•„ ์‹œ์žฅ ์ง„์ถœ์„ ์›ํ•˜๋Š” ํ•œ๊ตญ์˜ ์‚ฐ์—…์ž์žฌ ์ œ์กฐ์‚ฌ๋“ค์€ ํ˜„์ง€์˜ ๋ถˆํˆฌ๋ช…ํ•œ ๊ฑฐ๋ž˜ ํ™˜๊ฒฝ๊ณผ ๋ฌผ๋ฅ˜ ๋ฌธ์ œ๋กœ ์–ด๋ ค์›€์„ ๊ฒช์–ด์™”๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๋ ˆ์ธ๋””์–ด์Šค์˜ Buybly ํ”Œ๋žซํผ์€ ์ƒˆ๋กœ์šด ๊ธฐํšŒ๋ฅผ ์ œ์‹œํ•˜๊ณ  ์žˆ๋‹ค. Buybly๋Š” B2B ์˜คํ”ˆ๋งˆ์ผ“์œผ๋กœ, ํ•œ๊ตญ ๊ธฐ์—…๋“ค์ด ์†์‰ฝ๊ฒŒ ๋™๋‚จ์•„์‹œ์•„ ์‹œ์žฅ์— ์ง„์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋ฉฐ, ์œ ํ†ต์˜ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๋Š” ํ˜์‹ ์ ์ธ ์†”๋ฃจ์…˜์œผ๋กœ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”์˜ ์ค‘์‹ฌ์—๋Š” ๋ ˆ์ธ๋””์–ด์Šค ๋Œ€ํ‘œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Š” ์ง€๋‚œ 9๋…„๊ฐ„ ํƒœ๊ตญ์—์„œ์˜ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ ๊ฐ์˜ pain point๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Buybly๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋‹ค. ์ด๋ฒˆ ์ธํ„ฐ๋ทฐ๋ฅผ ํ†ตํ•ด ๊ทธ์˜ ๋น„์ „๊ณผ ๊ฒฝ์˜ ์ฒ ํ•™, ๊ทธ๋ฆฌ๊ณ  Buybly๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฐ์—…์ž์žฌ ์‹œ์žฅ์„ ๋ณ€ํ™”์‹œํ‚ค๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ๊นŠ์ด ์žˆ๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๊ฒŒ ๋˜์—ˆ๋‹ค. ๊น€๋ช…ํ›ˆ ๋ ˆ์ธ๋””์–ด์Šค ๋Œ€ํ‘œ -.์†Œ๊ฐœ  ๋ ˆ์ธ๋””์–ด์Šค๋Š” ๊ตญ๋‚ด ์‚ฐ์—…์ž์žฌ ์ œ์กฐ์‚ฌ๋“ค์ด ๋™๋‚จ์•„์‹œ์•„ ์‹œ์žฅ์— ์‰ฝ๊ฒŒ ์ง„์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” B2B ์˜คํ”ˆ๋งˆ์ผ“์ธ Buybly๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค. ํ•ด์™ธ ์‹œ์žฅ ์ง„์ถœ์—์„œ ๊ฐ€์žฅ ํฐ ์žฅ์• ๋ฌผ์ธ ์œ ํ†ต, ๋ฌผ๋ฅ˜, ๋ฌด์—ญ์˜ ์žฅ๋ฒฝ์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ด ํ”Œ๋žซํผ์˜ ํ•ต์‹ฌ์ด๋‹ค. Buybly๋Š” ๋‹จ์ˆœํ•œ ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ์ด ์•„๋‹ˆ๋ผ, ์‚ฐ์—…์ž์žฌ ๊ตฌ๋งค์™€ ๊ณต๊ธ‰ ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” One-Stop ์†”๋ฃจ์…˜์œผ๋กœ ์ž๋ฆฌ ์žก์•˜๋‹ค. ๋ ˆ์ธ๋””์–ด์Šค์˜ ์„œ๋น„์Šค๋Š” Buybly์™€ Enterprise Solution(ERP, POP, WMS)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์€ ๋™๋‚จ์•„์‹œ์•„ ํ˜„์ง€์˜ ๊ณ ๊ฐ์‚ฌ์™€ ๊ณต๊ธ‰์‚ฌ์— ๋งž์ถคํ˜•์œผ๋กœ ์ œ๊ณต๋˜๋ฉฐ, ์‚ฐ์—…ํ˜„์žฅ์˜ ์„ ์ง„ํ™”๋ฅผ ์ด๋Œ์–ด๋‚ธ๋‹ค. ๊ธฐ์—… ์šด์˜๊ณผ ์ƒ์‚ฐ ๊ด€๋ฆฌ, ์žฌ๊ณ  ๊ด€๋ฆฌ๋ฅผ ์ „์‚ฐํ™”ํ•ด ์ด์ต์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ๋‹ค. Buybly๋Š” ์‚ฐ์—…ํ˜„์žฅ์—์„œ ํš๋“ํ•œ Raw data๋ฅผ ํ™œ์šฉํ•ด ์ธ๊ณต์ง€๋Šฅ ๋ถ„์„์„ ํ†ตํ•ด ๋ฐœ์ฃผ ์ฃผ๊ธฐ์™€ ์žฌ๊ณ ์— ๋”ฐ๋ฅธ ์ตœ์ ์˜ ์‚ฐ์—…์ž์žฌ ๋ฐ ๊ณต๊ธ‰์‚ฌ ๋งค์นญ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋กœ...