아침소리 (211.♡.103.115)
2026년 3월 19일 AM 10:50
내 작업 기능 추가: 최상단에 내 작업 기능을 넣어줘. 자기 이름으로 할당된 태스크들을 정리하는 기능이야.
했더니 알아서 가져와서 보여주는데 그치지 않고 날짜 확인해서 현재 상태 판단해서 태그 붙여줍니다.
다른 소소한 기능들 손보고.. 관리, 작성 등 편하게.
ms프로젝트 유용했던 자원별 할당 기능 만들어주고.. 이건 개념의 문제라 쓰게 될지는..
여튼 이래서 1차 개발 마무리 한거 같네요.
같이 일하는 소프트웨어 개발팀 한가해 지면 넘길려고 합니다. 회사 서버에 넣고 전사 배포까지 2개월이면 충분하지 않을까 싶은...
심심풀이로 공부겸해서 시작한게 3일만에 끝내버리네요.
클로드가 혜자로운 맘으로 3월28일까지 사용량 대폭 늘려준게 완전 타이밍 좋게 맞았네요.
그리고 bkit 솔루션이 대박. 나중에 자세히 프롬프트 보고 있자니 이게 제가 입력한 프롬프트를 해석해서 해야할 일을 내용에 맞게 구분해서 절차를 만들고 진행합니다.
굳이 제공하는 /코맨드 기능을 안 써도요..
그러한 결과로 만들어지는 기능들 자체가 이상하거나 작동하지 않거나 할 수는 있는데 시스템 자체에서는 절대 에러가 안나옵니다. 와 진짜...
erp같은 커스터마이징 해서 쓰는 saas 서비스들은 갈길이 안보이겠네요.

참고로 개발한 플래폼 정리한 md 파일입니다.
뭐가 뭔지 하나도 모르지만 엔터프라이즈급으로 구성되었다고 하네요.
현재 개인 pc의 도커에서 돌리고 사내망에서 테스트 하는데 완전 날라다닙니다.
## 1. 전체 아키텍처 개요
```
[브라우저]
│ HTTP/WebSocket
▼
[apps/web] ← Next.js 14 (Node.js 기반, Docker 컨테이너)
│ HTTP API 호출
▼
[services/] ← Fastify 마이크로서비스들 (각각 별도 Docker 컨테이너)
│
├── auth-service :3001 (JWT 인증/인가)
├── user-service :3002 (사용자 관리)
└── project-service :3003 (프로젝트/태스크, 구현 완료)
│
▼
[인프라 레이어] — 모두 Docker 컨테이너
├── PostgreSQL :5432 (메인 DB)
├── Redis :6379 (캐시/세션)
└── RabbitMQ :5672 (메시지 큐)
```
---
## 2. 모노레포 구조 (Turborepo + pnpm workspace)
```
ERP_OT/
├── apps/ ← 프론트엔드 앱
│ └── web/ ← Next.js 14 (포트 3000)
│
├── services/ ← 백엔드 마이크로서비스 (Node.js/TypeScript)
│ ├── auth/ ← 인증 서비스 (스켈레톤)
│ ├── user/ ← 사용자 서비스 (스켈레톤)
│ ├── project/ ← 프로젝트 서비스 (구현 완료)
│ └── shared/ ← 공통 유틸리티/타입
│
├── packages/ ← 공유 패키지
│ ├── ui/ ← shadcn/ui 기반 공통 컴포넌트
│ ├── api-client/ ← 자동 생성 API 클라이언트
│ └── config/ ← ESLint, TypeScript, Tailwind 공통 설정
│
├── docs/ ← PDCA 문서
├── scripts/ ← 유틸리티 스크립트
├── docker-compose.yml ← 프로덕션
└── docker-compose.local.yml ← 로컬 개발용
```
pnpm-workspace.yaml이 apps/*, packages/*, services/*를 모두 하나의 워크스페이스로 묶고,
Turborepo가 빌드/테스트/린트를 병렬 캐시 처리한다.
---
## 3. 프론트엔드: apps/web (Next.js 14)
```
apps/web/
├── src/
│ ├── app/ ← App Router (서버/클라이언트 컴포넌트 혼용)
│ ├── components/ ← UI 컴포넌트
│ └── lib/ ← 유틸리티, API 클라이언트
├── next.config.mjs
└── Dockerfile
```
기술 스택:
| 항목 | 기술 |
|------|------|
| 프레임워크 | Next.js 14 (App Router) |
| 언어 | TypeScript |
| 스타일 | Tailwind CSS |
| 서버 상태 | TanStack Query |
| 클라이언트 상태 | Zustand |
| 컴포넌트 | shadcn/ui |
Docker 컨테이너 안에서 next start가 Node.js HTTP 서버로 실행 → 포트 3000
---
## 4. 백엔드: services/ (Fastify 마이크로서비스)
각 서비스는 독립 Node.js 프로세스로 Docker 컨테이너 안에서 실행된다.
### project-service (현재 가장 완성된 서비스)
등록된 라우트 모듈:
```
/api/v1/projects ← 프로젝트 CRUD
/api/v1/projects/:id/tasks ← 태스크 관리
/api/v1/groups ← 그룹
/api/v1/projects/:id/cpm ← CPM(Critical Path Method) 계산
/api/v1/resources ← 자원 관리
/api/v1/notifications ← 알림
WebSocket (Socket.io) ← 실시간 협업
```
### Clean Architecture 4레이어
```
services/project/src/
├── api/ ← 라우트, 컨트롤러, DTO (입력 검증)
├── application/ ← 서비스, 유스케이스 (비즈니스 로직)
├── domain/ ← 엔티티, 리포지토리 인터페이스
└── infrastructure/ ← Prisma 리포지토리, Redis 캐시, Socket.io 게이트웨이
```
의존성 방향: API → Application → Domain ← Infrastructure
---
## 5. Docker 구성 상세
| 컨테이너 | 이미지 | 포트 | 역할 |
|----------|--------|------|------|
| erp-ot-postgres | postgres:16-alpine | 5432 | 메인 DB |
| erp-ot-redis | redis:7-alpine | 6379 | 캐시 |
| erp-ot-rabbitmq | rabbitmq:3.13 | 5672 / 15672 | 메시지 큐 |
| erp-ot-auth | 빌드 | 3001 | 인증 서비스 |
| erp-ot-user | 빌드 | 3002 | 사용자 서비스 |
| erp-ot-project | 빌드 | 3003 | 프로젝트 서비스 |
| erp-ot-web | 빌드 | 3000 | 프론트엔드 |
모든 컨테이너는 erp-network (bridge)로 연결되어 서비스명으로 서로 통신한다.
예: http://auth-service:3001
서비스 의존성:
```
web → project-service → auth-service → postgres, redis
→ user-service → postgres, redis, rabbitmq
```
---
## 6. bkit의 역할
.bkit-memory.json이 PDCA 사이클 상태를 관리한다.
```json
{
"pdca": {
"feature": "프로젝트-관리",
"currentPhase": "check",
"matchRate": 87,
"completedPhases": ["plan", "design", "do"]
}
}
```
Claude Code와 bkit이 함께 Plan → Design → Do → Check → Act 사이클로 개발을 진행하는 구조다.
---
## 7. 현재 구현 상태
| 서비스 | 상태 | 설명 |
|--------|------|------|
| project-service | ✅ 구현 완료 | CPM, Gantt, WebSocket 포함 |
| auth-service | 🔧 스켈레톤 | 서버 기동만, 라우트 구현 예정 |
| user-service | 🔧 스켈레톤 | 서버 기동만, 라우트 구현 예정 |
| attendance-service | ⏳ 미구현 | 설계 완료, 구현 예정 |
| apps/web | ⏳ 미구현 | Next.js, 구현 예정 |
---
댓글 (12)
-
ㅡㅡIUㅡ
03.19 · 27.♡.50.36
- 아
아침소리
→ ㅡIUㅡ 작성자
03.19 · 211.♡.103.115
저희 부서 개발하는거 보면 개발환경 세팅에만 2주는 걸릴거 같습니다.
-
꼬꼬반
03.19 · 203.♡.179.126
예산, 회계, 복무, 결재와 같은 기능들이 들어가면 더 복잡해지긴 하죠. 그 전 단계 수준은 다 내가 만들어 내가 쓰는 툴에 밀려 어설픈 SaaS는 사라지긴 할것 같습니다.
-
ㅡㅡIUㅡ
→ 꼬반
03.19 · 27.♡.50.36
복잡해질수록 사람이 더 어렵지 않을까요
-
꼬꼬반
→ ㅡIUㅡ
03.19 · 203.♡.179.126
전자정부 레거시 시스템들과 각 연계모듈과의 환상의 콜라보를 완전히 적응하는데는 조금 시간이 더 걸릴거 같습니다 ㅎㅎ 아 사기업쪽이면 큰 상관은 없을거 같아요
-
신신나는나라
03.19 · 125.♡.77.58
뭔지 잘모르겠지만 멋지네요!
-
퍼퍼스
03.19 · 112.♡.117.90
클로드: 어? 왜 버그가 없지?
- 아
아침소리
→ 퍼스 작성자
03.19 · 211.♡.103.115
기능 구현이 안되거나 하는건 있는데 버그로 시스템이 뻣거나 하는건 전혀 없네요
bkit의 역할이 큰 거같아요.
- 야
야근에는와인
03.19 · 106.♡.127.189
아 완벽히 이해했어! (이해 못했음)
- 아
아침소리
→ 야근에는와인 작성자
03.19 · 211.♡.103.115
이해가 필요없어져서요~~ㅎㅎㅎ
댓글을 작성하려면 이 필요합니다.
이거 풀스택 개발자도 이정도 만들라고하면 이삼주는 잡아야할거같은데 말입니다.