์ค๊ณ ์ ์๊ธฐ๊ธฐ๋ฅผ ์ด ๋ ๊ฐ์ฅ ๋ถ์ํ ๊ฑด "์ด๊ฑฐ ์ง์ง ๋ฉ์ฉกํ๊ฐ"์ ๋๋ค. L1MIT์ ๊ทธ ํ์ธ์ ๊ฑฐ๋ ์ ์ ๋๋ด๋ ์ค๊ณ ๊ฑฐ๋ ์๋น์ค์ ๋๋ค.
- ํ๋งค์๋ ๊ธฐ๊ธฐ๋ฅผ ๋ฑ๋กํ๋ฉด์ ์ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํ๋์ฉ ํต๊ณผํ๊ณ , ํญ๋ชฉ๋ง๋ค ์ฌ์งยท์์ ์ฆ๊ฑฐ๋ฅผ ๋จ๊น๋๋ค.
- ๊ตฌ๋งค์๋ ๊ทธ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ํ์ํ๋ฉด ํ๋งค์์ ์์ํตํ๋ก ๊ธฐ๊ธฐ๋ฅผ ์ง์ ํ์ธํ ๋ค ๊ฒฐ์ ํฉ๋๋ค.
- ๊ฒฐ์ ๋๊ธ์ ๊ตฌ๋งค์๊ฐ ๋ฌผ๊ฑด์ ๋ฐ๊ณ ํ์ ํ ๋๊น์ง ๋ณด๊ด๋๋ฉฐ, ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์ฌ๊ฒ์์ ํ๋ถ๋ก ์ด์ด์ง๋๋ค.
| ๊ตฌ๋ถ | ๊ธฐ์ |
|---|---|
| Backend | Java 21, Spring Boot 4.0.7, Spring Data JPA, Spring Data MongoDB, Spring Data Redis, Spring Security, Spring WebSocket, Flyway, springdoc-openapi 3.0.3, AWS SDK for Java v2 (S3) |
| Frontend | Vue 3.4, Vite 7, Vue Router 4, Tailwind CSS 3.4, Chart.js, ffmpeg.wasm, Sentry |
| Desktop Scanner | .NET 8 (SDK 8.0.415), WinForms, dxdiagยทpowercfg ๊ธฐ๋ฐ ๋ฌด์ค์น ๋จ์ผ ์คํ ํ์ผ |
| Data | MySQL 8.4, MongoDB 8.0, Redis 7.4 |
| Media / RTC | S3 presigned upload, CloudFront, coturn(TURN), WebSocket ์๊ทธ๋๋ง |
| Infrastructure | ๋จ์ผ EC2, Docker Compose, Nginx, Blue-Green, Terraform(dnsยทfrontendยทoperations), Cloudflare |
| Observability | Prometheus 3.4, Loki 3.5, Grafana 12, Alertmanager, Grafana Alloy, node-exporter, cAdvisor, mysqld/mongodb/redis/nginx exporter |
| CI/CD | GitLab CI, Spotless, JaCoCo, SonarQube, OWASP Dependency-Check, Trivy ์ปจํ ์ด๋ ์ค์บ, Secret ์ค์บ |
| Test | JUnit 5, Spring Boot Test, Testcontainers 2.0.5, Vitest 3, Vue Test Utils, xUnit(Scanner) |
๋๋ฉ์ธ ๊ฒฝ๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง๋ก ๋ถ๋ฆฌํ๊ณ ํ๋ซํผ ์ฑ ์์ ์ปจํ ์ด๋๋ก ๋๊ธด ๋ชจ๋๋ฌ ๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ์ ๋๋ค. ๋จ์ผ EC2 ์์์ Blue-Green ๋ฌด์ค๋จ ๋ฐฐํฌ์ ๊ด์ธก ์คํ์ ํจ๊ป ์ด์ํฉ๋๋ค.
- Cloudflare & SSL: ๋๋ฉ์ธ(
l1mit.shop) ์ฐ๊ฒฐ๊ณผ HTTPS ๋ณด์ ํต์ , CDN ์บ์ฑ, ๋น์ ์ ํธ๋ํฝ ํํฐ๋ง์ ๋ด๋นํฉ๋๋ค. - Nginx: ๋ฆฌ๋ฒ์ค ํ๋ก์๋ก ๋์ํ๋ฉฐ Blue์ Green ์ค ํ์ฌ ํ์ฑ ์ฌ๋กฏ์ผ๋ก ์์ฒญ์ ๋ผ์ฐํ ํฉ๋๋ค.
- Spring Security & JWT: ๋ชจ๋ API์ ์ธ์ฆยท์ธ๊ฐ๋ฅผ ๋จ์ผ ํํฐ ์ฒด์ธ์์ ๊ฒ์ฆํฉ๋๋ค.
- coturn: ํ์ ๊ฒ์์ ์์ยท์์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฆด๋ ์ดํฉ๋๋ค.
- GitLab CI:
guard โ test โ quality โ package โ deploy โ verify6๋จ๊ณ๋ก ๊ฒ์ฆ๊ณผ ๋ฐฐํฌ๋ฅผ ์กฐ์ ํฉ๋๋ค. - Blue-Green Deployment: ์ ํด ์์์ ๋จผ์ ๋์ฐ๊ณ readiness์ ์ค๋ชจํฌ ํ ์คํธ๋ฅผ ํต๊ณผํ ๋ค์๋ง ํธ๋ํฝ์ ๋๊น๋๋ค. ์คํจํ๋ฉด ๊ธฐ์กด ์์์ด ๊ณ์ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- Docker Compose: ์ ํ๋ฆฌ์ผ์ด์ ยท๋ฐ์ดํฐยท๊ด์ธก ์ปจํ ์ด๋๋ฅผ ํ๋์ ์ ์๋ก ๋ฌถ์ด ๋ก์ปฌ๊ณผ ์ด์์ ๊ฐ์ ๊ตฌ์ฑ์ ์ฌ์ฉํฉ๋๋ค.
- Terraform: DNS, ํ๋ก ํธ ๋ฐฐํฌ ๋ฒํท, ์ด์ ๋ฆฌ์์ค๋ฅผ ์ฝ๋๋ก ๊ด๋ฆฌํฉ๋๋ค.
- Flyway: DB ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฒ์ ์ผ๋ก ๋จ๊ธฐ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ค์ ์คํค๋ง์ ๋์กฐํฉ๋๋ค.
| Domain | Description |
|---|---|
| Product | ์ํ ๋ฑ๋กยท๊ฒ์ยท์ฐยท์กฐํ์, ๊ธฐ๊ธฐ ์นดํ๋ก๊ทธ ๊ธฐ๋ฐ ๋ชจ๋ธยท์์ยท์ฉ๋ ์ ํ |
| Inspection | AI ์ฒดํฌ๋ฆฌ์คํธ ์์ฑ, ํญ๋ชฉ๋ณ ์ฆ๊ฑฐ ์ ๋ก๋์ ์ด๋ ฅ, dxdiagยท๋ฐฐํฐ๋ฆฌ ๋ฆฌํฌํธ ํ์ฑ๊ณผ ์ง๋จ ๊ฐ ํ์ , ์ํ ์ง๋จ ์์ฝ, ์ฌ๊ฒ์ ์์ฒญ |
| RTC / Call | WebRTC ์๊ทธ๋๋ง๊ณผ ํ์ ๊ฒ์ ํตํ ๊ธฐ๋ก |
| Chat | WebSocket ๊ธฐ๋ฐ ๊ตฌ๋งค์โํ๋งค์ ์ค์๊ฐ ๋ฌธ์ |
| Payment / Refund / Settlement | ๊ฒฐ์ ์น์ธยท์ทจ์ยท์ฌ์๋, PG ๋์ฌ ๋ณต๊ตฌ, ํ๋ถ, ํ๋งค์ ์ ์ฐ |
| Auth / Member / Seller | ์์ ๋ก๊ทธ์ธ๊ณผ ์ด๋ฉ์ผ ์ธ์ฆ, ํ์ ์ ๋ณด, ํ๋งค์ ์ ํ |
| Admin | ๊ธฐ๊ธฐ ๋ชจ๋ธ ์น์ธ ์์ฒญ ์ฒ๋ฆฌ์ ์ด์ ๋๊ตฌ |
๊ฐ ๋๋ฉ์ธ์ com.c203.limit.domain.<domain> ์๋์ ์์ ์ controller, service, entity, repository, dto๋ฅผ ๋๊ณ , ๋๋ฉ์ธ๋ผ๋ฆฌ๋ Entity๋ฅผ ์ง์ ๊ณต์ ํ์ง ์๊ณ ServiceยทIDยท์ด๋ฒคํธ๋ก ์ฐ๊ฒฐํฉ๋๋ค. ๊ณตํต ์๋ตยท์์ธยท์ค์ ยท๋ณด์ยท๋ก๊น
์ global์ด ๋งก์ต๋๋ค.
๊ฒ์ ์ ๋ขฐ๋๋ฅผ ์ฌ๋์ ์ง์ ์ด ์๋๋ผ ๊ธฐ๊ธฐ๊ฐ ๋ด๋๋ ๊ฐ์ผ๋ก ๋ท๋ฐ์นจํ๋ ๊ฒฝ๋ก์ ๋๋ค.
- Windows Scanner:
windows-scanner/์ .NET 8 WinForms ๋ฌด์ค์น ์คํ ํ์ผ์ดdxdiag.exeยทpowercfg.exe๋ฅผ ๋๋ ค ์ง๋จ ํ์ผ์ ๋ง๋ค๊ณ , ์น์์ ๋ฐ๊ธํ ์ผํ์ฉ ์ฐ๊ฒฐ ์ฝ๋๋ก ๊ฒ์ฌ ์ธ์ ์ ์ ๋ก๋ํฉ๋๋ค. ํ๋ก ํธ ๋ฐฐํฌ ์ฐ์ถ๋ฌผ์/downloads/LimitScanner.exe๋ก ๋ด๋ ค๋ฐ์ต๋๋ค. - ๋ธ๋ผ์ฐ์ ์ค๋์ ์ ๊ฒ:
frontend/src/features/deviceCheck์์ ์นด๋ฉ๋ผยท๋ง์ดํฌยท์คํผ์ปคยทํค๋ณด๋ยทํฌ์ธํฐ๋ฅผ ๋ธ๋ผ์ฐ์ API๋ก ์ง์ ๋์์์ผ ๊ฒฐ๊ณผ๋ฅผ ๋จ๊น๋๋ค. ์คํจ ํญ๋ชฉ์ ์ฌ์๋ํ ์ ์๊ณ ์์์ ์ฅ์๋ ๊ฒฐ๊ณผ๊ฐ ๋ณด์กด๋ฉ๋๋ค. - ์ง๋จ ๊ฐ ํ์ ๊ณผ ์ง๊ณ: ์ ๋ก๋๋ dxdiagยท๋ฐฐํฐ๋ฆฌ ๋ฆฌํฌํธ์ ์ค๋์ ๊ฒฐ๊ณผ๋ฅผ ํญ๋ชฉ๋ณ ์ง๋จ ๊ฐ์ผ๋ก ์ ๊ทํํ๊ณ , ํ๋งค์๊ฐ ํ์ ํ ๊ฐ๋ง ์ํ ์ง๋จ ์์ฝ์ ๋ฐ์ํฉ๋๋ค.
- ์ฒดํฌ๋ฆฌ์คํธ ์ฐ๊ณ: ๊ธฐ๊ธฐ ํ์ (์ค๋งํธํฐยท๋ ธํธ๋ถ)๋ณ ์ฒดํฌ๋ฆฌ์คํธ ํญ๋ชฉ์ ์ง๋จ ๊ฒฐ๊ณผ๋ฅผ ๋งคํํด ์๋ ํต๊ณผ ํญ๋ชฉ๊ณผ ์๋ ์ฆ๊ฑฐ๊ฐ ํ์ํ ํญ๋ชฉ์ ๊ตฌ๋ถํฉ๋๋ค.
์์ธ ๊ณ์ฝ์ docs/api/windows-auto-inspection.md, docs/api/device-checklist-generation.md, docs/api/laptop-checklist-generation.md์ ์์ต๋๋ค.
์ฃผ์ ์ค๊ณ ํ๋จ์ ๋ฌธ์๋ก ๋จ๊น๋๋ค. ์ํ ๋ชฉ๋ก ์กฐํ์ N+1์ @EntityGraph + ์ผ๊ด ์ง๊ณ๋ก ํด์ํด ์ฟผ๋ฆฌ 402ํ โ 4ํ๋ก ์ค์ธ ๊ธฐ๋ก์ docs/api/product.md์, ์กฐํ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ํธ๋ ์ด๋์คํ(์ ์ค ํ์ฉ ๋ฒ์์ ํ์ ๊ณผ์ )๋ docs/adr/0005-product-view-count.md์ ์์ต๋๋ค.
- MySQL: ์ํยท์ฃผ๋ฌธยทํ์์ฒ๋ผ ์ ํฉ์ฑ์ด ์ค์ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- MongoDB: ์ฑํ ๋ฉ์์ง์ฒ๋ผ ์คํค๋ง๊ฐ ์ ์ฐํด์ผ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๋นํฉ๋๋ค.
- Redis: ๋ฆฌํ๋ ์ ํ ํฐ, ์ด๋ฉ์ผ ์ธ์ฆ ์ฝ๋, ์บ์๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- S3 & CloudFront: presigned URL๋ก ์ด๋ฏธ์งยท์์์ ์ฌ๋ฆฌ๊ณ ํ๋ก ํธ ์ ์ ์ฐ์ถ๋ฌผ์ ๋ฐฐํฌํฉ๋๋ค.
- ์ธ๋ถ API: AI ์ฒดํฌ๋ฆฌ์คํธ ์์ฑ, CLOVA OCR, ๊ฒฐ์ PG, SMTP ๋ฉ์ผ ๋ฐ์ก์ ์ฐ๋ํฉ๋๋ค.
- Prometheus: ์ ํ๋ฆฌ์ผ์ด์ ยทํธ์คํธยท์ปจํ ์ด๋ยทDB ๋ฉํธ๋ฆญ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์์งํฉ๋๋ค.
- Loki & Alloy: ์ปจํ ์ด๋ ํ์ค ์ถ๋ ฅ ๋ก๊ทธ๋ฅผ ๋ชจ์ ์ ์ฅํ๊ณ ์ง์ํ ์ ์๊ฒ ํฉ๋๋ค.
- Grafana: ๋ฉํธ๋ฆญ๊ณผ ๋ก๊ทธ๋ฅผ ํ ํ๋ฉด์์ ์กฐํํ๋ ๋์๋ณด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Alertmanager: ์๊ณ์น๋ฅผ ๋์ผ๋ฉด ๋ด๋น์์๊ฒ ๋ฉ์ผ๋ก ์๋ฆฝ๋๋ค.
- Sentry: ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ํ ํ๋ก ํธ์๋ ์ค๋ฅ๋ฅผ ์์งํฉ๋๋ค.
์ํยท๊ฒ์ยท๊ฑฐ๋ยท๊ฒฐ์ ๋ฅผ ์๋ ํต์ฌ ํ
์ด๋ธ ๊ด๊ณ์
๋๋ค. ์คํค๋ง ๋ณ๊ฒฝ ์ด๋ ฅ์ backend/src/main/resources/db/migration์ Flyway ๋ง์ด๊ทธ๋ ์ด์
์ ๋จ์ต๋๋ค.
์ฝ๋ ํ์ง ์ ์ง์ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์ํด AI ์ฝ๋ ๋ฆฌ๋ทฐ, ์ ์ ๋ถ์, ์ทจ์ฝ์ ์ค์บ์ด ํฌํจ๋
guard โ test โ quality โ package โ deploy โ verify6๋จ๊ณ ์๋ํ ํ์ดํ๋ผ์ธ์ ์ด์ํฉ๋๋ค.
- Secret Guard: ์ปค๋ฐ์ ํ ํฐยทํคยท์ธ์ฆ์๊ฐ ์์ฌ ์์ผ๋ฉด ์ดํ ๋จ๊ณ๋ฅผ ์คํํ์ง ์๊ณ ์ฆ์ ์ฐจ๋จ.
- Change Detection:
backend/**,frontend/**,infra/**๋ณ๊ฒฝ ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํด ํ์ํ ์ก๋ง ์คํํ์ฌ ํ์ดํ๋ผ์ธ ์๊ฐ ๋จ์ถ. - Backend Test:
test(๋จ์) โintegrationTest(Testcontainers๋ก ์ค์ MySQLยทMongoDB ๊ธฐ๋) โinfrastructureTest(์ธ๋ถ ์์ง ์ค๋ชจํฌ) ์ธ ๋จ๊ณ๋ก ๋ถ๋ฆฌ. ํตํฉ ํ ์คํธ๋core/support๋ shard๋ก ๋๋ ๋ณ๋ ฌ ์คํ. - Frontend Lint & Build: ESLint, Vitest, ํ๋ก๋์ ๋น๋๊น์ง ํ์ธ.
- Windows Scanner Build:
windows-scanner/**๋ณ๊ฒฝ ์ .NET 8 SDK ์ด๋ฏธ์ง์์ win-x64 ๋จ์ผ ์คํ ํ์ผ์ publishํ๊ณ , ์ฐ์ถ๋ฌผ์ ํ๋ก ํธ ๋น๋์public/downloads/LimitScanner.exe๋ก ๋๊ฒจ ๊ฐ์ ๋ฐฐํฌ์ ์ค์ด ๋ณด๋. ์คํผ์ปค ํค ์์ฑยท์ ์ ์ํ ์ถ์ ยท๋ชจ๋ ๊ฒฐ๊ณผ ํ์ ์windows-scanner/tests์์ ๋จ์ ๊ฒ์ฆ. - Script Regression: ํ์ดํ๋ผ์ธ ๋ก์ง์ YAML์ด ์๋
scripts/์ ์ ธ ์คํฌ๋ฆฝํธ์ ๋๊ณ ,rollback-blue-green.test.shยทsync-deploy-files.test.sh๋ฑ*.test.sh๋ก ์คํฌ๋ฆฝํธ ์์ฒด๋ฅผ ํ๊ท ๊ฒ์ฆ.
- PR-Agent (AI Review): MR diff๋ฅผ AI๊ฐ ๋ถ์ํด ์๋ ์ฝ๋ ๋ฆฌ๋ทฐ ์ฝ๋ฉํธ๋ฅผ ๋จ๊ธฐ๊ณ ํ์ง์ ์ฌ์ ์ ๊ฒ.
- SonarQube (Static Analysis): ๋ฒ๊ทธ, ์ทจ์ฝ์ , ์ฝ๋ ์ค๋ฉ ํ์ง๋ฅผ ํตํ ๊ธฐ์ ๋ถ์ฑ ์ต์ํ. Quality Gate ๊ฒฐ๊ณผ๋ ์๋จ ๋ฑ์ง์์ ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค.
- JaCoCo: ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ์ธก์ ๊ณผ ๋ฆฌํฌํธ ๊ฒ์.
- OWASP Dependency-Check: ์์กด์ฑ CVE ์ ๊ฒ, CVSS 7.0 ์ด์์ด๋ฉด ๋น๋ ์คํจ.
- OpenAPI Contract: API ์คํ๊ณผ ์ค์ ์ปจํธ๋กค๋ฌ ๊ณ์ฝ์ ๋ถ์ผ์น ๊ฒ์ฌ.
- Image Build: ๋ฐฑ์๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํด registry์ ํธ์.
- Trivy Container Scan: HIGHยทCRITICAL ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋๋ฉด ๋ฐฐํฌ ์ ํ์ดํ๋ผ์ธ ์ค๋จ.
- Immutable Digest: ํ๊ทธ๊ฐ ์๋ digest๋ก ๊ณ ์ ํด ๋ฐฐํฌ ๋ฒ์ ์ถ์ ์ฑ๊ณผ ๋กค๋ฐฑ ๊ทผ๊ฑฐ ํ๋ณด.
- Blue-Green Deployment: ์ ํด ์์์ ์ ๋ฒ์ ์ ๋จผ์ ๋์ฐ๊ณ readiness๋ฅผ ํ์ธ.
- Health Check & Smoke Test: ๋ฐฐํฌ ์งํ ์๋น์ค ์ํ๋ฅผ ํ์ธํด ํต๊ณผํ ๊ฒฝ์ฐ์๋ง Nginx upstream์ ์ ํ.
- Auto Rollback: ์คํจ ์ ๊ธฐ์กด ์์์ ๊ทธ๋๋ก ์ ์งํ๊ฑฐ๋ ์ด์ digest๋ก ๋ณต๊ตฌ.
- Frontend Deploy: S3 ๋๊ธฐํ์ CloudFront ์บ์ ๋ฌดํจํ๋ฅผ ์ํํ๊ณ , ์คํจํ๋ฉด ๋กค๋ฐฑ ์ก์ผ๋ก ๋๋๋ฆผ.
- Recovery Drill: ๋ฐฑ์
๋ณต๊ตฌ์ ์๋ฆผ ๋ฐ์ก ๊ฒฝ๋ก๋
scripts/restore-backup-drill.sh,scripts/test-alertmanager-notification.sh๋ก ์ค์ ๋ณต๊ตฌยท๋ฐ์ก๊น์ง ํ์ธ.
์คํํ ์ ์๋ ๊ฒ์ฆ์ ์ฑ๊ณต์ผ๋ก ๊ฐ์ฃผํ์ง ์๊ณ , ์ฌ์ ์ ๋จ์ ์ํ์ MR์ ํจ๊ป ๋ณด๊ณ ํฉ๋๋ค.
๊ฐ ์นธ์
<img ...>์ฃผ์์ ํด์ ํ๊ณdocs/images/์ ๊ฐ์ ์ด๋ฆ์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ผ๋ฉด ํ๋ฉด์ด ํ์๋ฉ๋๋ค.
| ์ด๋ฉ์ผ ๊ฐ์ ๊ณผ ์ธ์ฆ ๋ฉ์ผ ๋ฐ์ก, GoogleยทKakaoยทNAVER ์์ ๋ก๊ทธ์ธ, JWT ์ฌ๋ฐ๊ธ, ๊ตฌ๋งค์์์ ํ๋งค์๋ก์ ์ ํ์ ์ง์ํฉ๋๋ค. | 4๋จ๊ณ ์์์ ์ฅ ๋ฑ๋ก, ๊ธฐ๊ธฐ ์นดํ๋ก๊ทธ ๊ธฐ๋ฐ ๋ชจ๋ธยท์์ยท์ฉ๋ ์ ํ, ์ด๋ฏธ์ง์ ์์์ presigned ์ ๋ก๋, ์กฐ๊ฑด ๊ฒ์๊ณผ ์ ๋ ฌ, ์ฐ, ์กฐํ์๋ฅผ ์ ๊ณตํฉ๋๋ค. |
| ๊ธฐ๊ธฐ์ ๋ ธํธ๋ถ๋ณ AI ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์๋ ์์ฑํ๊ณ , ํญ๋ชฉ๋ง๋ค ์ฆ๊ฑฐ ์๋ฃ๋ฅผ ์ ๋ก๋ํด ์ด๋ ฅ์ผ๋ก ๋จ๊น๋๋ค. ํ์ ํญ๋ชฉ ๊ฒ์ฆ๊ณผ ์ฌ๊ฒ์ ์์ฒญ ํ๋ฆ์ ํฌํจํฉ๋๋ค. | ๋ธ๋ผ์ฐ์ ์์ ์นด๋ฉ๋ผยท๋ง์ดํฌยท์คํผ์ปคยทํค๋ณด๋ยทํฌ์ธํฐ๋ฅผ ์ง์ ๋์์์ผ ํต๊ณผ ์ฌ๋ถ๋ฅผ ํ์ ํฉ๋๋ค. ์คํจ ํญ๋ชฉ์ ์ฌ์๋ํ ์ ์๊ณ ์์์ ์ฅ์๋ ๊ฒฐ๊ณผ๊ฐ ๋จ์ต๋๋ค. |
๋ฌด์ค์น ์คํ ํ์ผ์ด dxdiagยทpowercfg ๊ฒฐ๊ณผ๋ฅผ ์์งํด ์ผํ์ฉ ์ฐ๊ฒฐ ์ฝ๋๋ก ์
๋ก๋ํ๊ณ , ์ฌ์ยท๋ฐฐํฐ๋ฆฌ ์์น๊ฐ ์ฒดํฌ๋ฆฌ์คํธ ํญ๋ชฉ์ ์๋ ๋ฐ์๋ฉ๋๋ค.
|
WebRTC ๊ธฐ๋ฐ ์ค์๊ฐ ํตํ๋ก ๊ตฌ๋งค์๊ฐ ๊ธฐ๊ธฐ ์ํ๋ฅผ ์ง์ ํ์ธํฉ๋๋ค. TURN ๋ฆด๋ ์ด์ ํตํ ๊ธฐ๋ก์ ์ง์ํฉ๋๋ค. |
| ๊ตฌ๋งค์์ ํ๋งค์ ์ฌ์ด์ ์ค์๊ฐ ๋ฌธ์๋ฅผ WebSocket์ผ๋ก ์ฃผ๊ณ ๋ฐ๊ณ ๋ฉ์์ง๋ MongoDB์ ์ ์ฅํฉ๋๋ค. |
DRAFT โ ON_SALE โ RESERVED โ PAID โ INSPECTING โ CONFIRMED ์ํ ์ ์ด๋ฅผ ์ด๋ ฅ๊ณผ ํจ๊ป ๊ธฐ๋กํ๊ณ , ์์ฝ ๋ง๋ฃ์ ์๋ ๊ตฌ๋งคํ์ ์ ์ค์ผ์ค๋ฌ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
|
| ๊ฒฐ์ ์น์ธยท์ทจ์ยท์ฌ์๋, PG ๋์ฌ ๊ธฐ๋ฐ ๋ณต๊ตฌ, ํ๋ถ, ํ๋งค์ ์ ์ฐ์ ์ฒ๋ฆฌํฉ๋๋ค. | ๊ด๋ฆฌ์ ์ฝ์์์ ๊ธฐ๊ธฐ ๋ชจ๋ธ ์น์ธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ์๋ฆผ ๋ฉ์ผ ๋ฐ์ก๊ณผ ๋ฐฑ์ ยท๋ณต๊ตฌ ๋๋ฆด์ ์ด์ํฉ๋๋ค. |
Docker Desktop๋ง ์ผ์ ธ ์์ผ๋ฉด ์คํฌ๋ฆฝํธ ํ ์ค๋ก ์คํ๋ฉ๋๋ค. ํ๊ฒฝ ํ์ผ ์์ฑ, ์ปจํ ์ด๋ ๊ธฐ๋, SwaggerยทGrafana ์ด๊ธฐ๊น์ง ์คํฌ๋ฆฝํธ๊ฐ ์ฒ๋ฆฌํฉ๋๋ค.
.\scripts\open-platform-tools.ps1 # ๋ฐฑ์๋ + MySQLยทMongoDBยทRedis + ๋ชจ๋ํฐ๋ง
cd frontend; npm ci; npm run dev # ํ๋ก ํธ| ๋์ | ๋ก์ปฌ | ์ด์ |
|---|---|---|
| ํ๋ก ํธ | http://localhost:5173 |
https://l1mit.shop |
| Swagger | http://localhost:18080/swagger-ui.html |
https://docs.l1mit.shop |
| Grafana | http://localhost:3000 |
https://grafana.l1mit.shop |
| SonarQube | โ | https://sonarcloud.io/summary/overall?id=limit |
์ข
๋ฃ๋ docker compose -p limit-local down์
๋๋ค.
Windows ์ง๋จ ์ฑ์ ๋ณ๋๋ก ์คํํฉ๋๋ค.
$env:LIMIT_API_BASE_URL='http://localhost:18080/'
dotnet run --project .\windows-scanner\src\LimitScanner\LimitScanner.csprojcd frontend; npm run lint; npm run test; npm run build
cd backend; .\gradlew.bat test; .\gradlew.bat integrationTest; .\gradlew.bat bootJar
cd windows-scanner; dotnet testlimit/
โโโ backend/ Spring Boot ์ ํ๋ฆฌ์ผ์ด์
โ โโโ src/
โ โโโ main/java/com/c203/limit/
โ โ โโโ domain/ admin, auth, call, chat, inspection, member,
โ โ โ payment, product, refund, rtc, seller, settlement
โ โ โโโ global/ api, bootstrap, common, config, exception,
โ โ logging, response, security
โ โโโ main/resources/db/migration/ Flyway ๋ง์ด๊ทธ๋ ์ด์
โ โโโ test/ ๋จ์ยท์ฌ๋ผ์ด์ค ํ
์คํธ
โ โโโ integrationTest/ Testcontainers ํตํฉ ํ
์คํธ (integrationTestยทinfrastructureTest ํ์คํฌ๊ฐ ๊ณต์ )
โโโ frontend/ Vue 3 ์คํ ์ดํ๋ก ํธ
โ โโโ src/ api, assets, auth, components, composables, features,
โ layouts, legal, mock, monitoring, pages, router,
โ stores, styles, utils
โโโ windows-scanner/ .NET 8 WinForms ์ง๋จ ์ฑ
โ โโโ src/LimitScanner/ dxdiagยทpowercfg ์์ง๊ณผ ์
๋ก๋
โ โโโ tests/ ์ค์บ๋ ๋จ์ ํ
์คํธ
โโโ infra/
โ โโโ compose.yml ๊ณตํต ๋ฐ์ดํฐ ๊ณ์ธต
โ โโโ compose.local.yml ๋ก์ปฌ ์ค๋ฒ๋ ์ด
โ โโโ compose.prod.yml Blue/Green, coturn, ๋ชจ๋ํฐ๋ง ์คํ
โ โโโ nginx/ ๋ฆฌ๋ฒ์ค ํ๋ก์์ Blue-Green upstream
โ โโโ monitoring/ Prometheus, Loki, Grafana, Alertmanager, Alloy ์ค์
โ โโโ admin/ admin.l1mit.shop ์ ์ ๊ด๋ฆฌ์ ์ฝ์
โ โโโ aws/ S3 ๋ฏธ๋์ด ๋ฒํท ์ ์ฑ
ยทCORS ์ค์
โ โโโ secrets/ ์ํฌ๋ฆฟ ํ
ํ๋ฆฟ(`*.example`), ์ค์ ๊ฐ์ ์๋ฒ์๋ง ์กด์ฌ
โ โโโ state/ ๋ฐฑ์
ยทexporter ๋ฐํ์ ์ํ (๋ฐฐํฌ ์ ๋๊ธฐํ ์ ์ธ)
โ โโโ terraform/ dns, frontend, operations
โโโ scripts/ ๋น๋ยท๋ฐฐํฌยท๋กค๋ฐฑยท๋ฐฑ์
ยท์ ๊ฒ ์คํฌ๋ฆฝํธ์ ๊ทธ ํ
์คํธ
โโโ docs/
โ โโโ api/ API ๊ณ์ฝ๊ณผ OpenAPI
โ โโโ adr/ ์ํคํ
์ฒ ๊ฒฐ์ ๊ธฐ๋ก
โ โโโ db/ ์คํค๋ง
โ โโโ images/ README์ฉ ์คํฌ๋ฆฐ์ทยท๋ค์ด์ด๊ทธ๋จ
โ โโโ integration/ ์ธ๋ถ ์ฐ๋ยท๋ฐ์ดํฐ Runbook
โ โโโ legal/ ์ฝ๊ดยท๊ฐ์ธ์ ๋ณด ๊ทผ๊ฑฐ
โ โโโ product-redesign/ ์ํ ๋๋ฉ์ธ ์ฌ์ค๊ณ ์ฐ์ถ๋ฌผ
โ โโโ runbook/ ์ด์ ์ ์ฐจ
โโโ .gitlab/ PR-Agent ๋ฑ ํ์ ํ์ดํ๋ผ์ธ ์ ์
โโโ .githooks/ ์ปค๋ฐ ์ปจ๋ฒค์
ยท์ํฌ๋ฆฟ ๊ฒ์ฌ ํ
โโโ compose.yaml ๋ก์ปฌ ์ง์
์ (infra/compose.yml + compose.local.yml include)
โโโ .gitlab-ci.yml 6๋จ๊ณ ํ์ดํ๋ผ์ธ


