ID: key_26_22_05_25_11_23_13_04500 Created date: 5월 25 2026 월요일, 22주 11:23

연관 문서

📌 1. 시스템 공통 및 아키텍처 기본 규칙

  • 인증/인가: JWT 기반 자체 로그인 또는 OAuth2(GitHub) 연동.

  • 상태 관리: 모든 상태 변경은 이력(Audit Log) DB에 기록되어야 함.

  • 실시간성: 보드 이동 및 알림은 WebSocket 또는 Server-Sent Events(SSE)로 클라이언트에 즉시 반영.


🎫 2. 이슈 및 업무 관리 모듈 (Issue Management)

2.1 이슈 티켓 CRUD 및 상세 정보

  • 기능 설명: 프로젝트의 최소 작업 단위인 ‘이슈(티켓)‘를 생성, 조회, 수정, 삭제하는 핵심 기능.

  • 상세 개발 요구사항:

  - 이슈 유형(Type): Epic(거대 작업), Task(일반 작업), Bug(오류 수정), Sub-task(하위 작업) 구분 구조 구현. Sub-task는 반드시 부모 Task ID를 가짐.

  - 이슈 식별자: 프로젝트별 고유 키(예: PROJ-1, PROJ-2) 자동 생성 알고리즘 구현.

  - 데이터 필드:

    - 제목(String, 필수, 최대 255자)

    - 본문 설명(Markdown 또는 Rich Text Editor 포맷 데이터 저장 지원)

    - 담당자(Assignee ID) 및 보고자(Reporter ID)

    - 우선순위(Priority): Highest, High, Medium, Low (Enum 처리)

    - 스토리 포인트(Story Point): 작업 공수 산정용 숫자 필드 (0, 1, 2, 3, 5, 8, 13 등 피보나치 수열 선택 UI 권장)

    - 시작일(Start Date) 및 마감일(Due Date)

  - 이슈 관계 연결: 이슈 간 Blocks(차단함), Is Blocked By(에 의해 차단됨), Relates To(연관됨) 관계를 매핑하는 중개 테이블 설계 필요.

2.2 맞춤형 워크플로우 및 상태 전이 엔진

  • 기능 설명: 이슈의 진행 단계를 정의하고 단계 간 이동을 제어하는 엔진.

  • 상세 개발 요구사항:

  - 기본 상태 세트: To Do(할 일) In Progress(진행 중) In Review(검토 중) Done(완료).

  - 상태 전이(Transition) 제약 조건:

    - 예: In Review 상태를 거치지 않고 In Progress에서 바로 Done으로 이동하는 것을 방지하는 검증 로직 API 구현.

    - 상태 변경 시 해당 이슈의 updated_at 타임스탬프 갱신 및 상태 변경 이력 테이블(issue_logs)에 (이슈ID, 이전상태, 변경상태, 변경자ID, 변경시간) 기록.


📋 3. 애자일 보드 및 일정 관리 모듈 (Agile Board & Scheduling)

3.1 칸반 보드 (Kanban Board)

  • 기능 설명: 드래그 앤 드롭으로 업무의 진행 상황을 시각적으로 관리하는 보드.

  • 상세 개발 요구사항:

  - 프론트엔드 드래그 앤 드롭(Drag & Drop): react-beautiful-dnd 또는 @hello-pangea/dnd 같은 라이브러리를 활용하여 칼럼 간 카드 이동 구현.

  - 정렬 순서(Lexorank 알고리즘): 동일 칼럼 내에서 카드의 상하 순서를 보장하기 위해, 카드 위치 이동 시 전체 인덱스를 재수정하지 않고 문자열 기반 컬럼 순서 계산 알고리즘(Lexorank 방식)을 적용하여 정렬 값(rank_string) 업데이트.

  - WIP(Work In Progress) 제한: 각 칼럼(예: 진행 중)에 담길 수 있는 최대 티켓 수를 설정하고, 이를 초과할 경우 UI상으로 경고 색상(Red) 표시 기능 구현.

3.2 로드맵 및 간트 차트 (Roadmap & Gantt Chart)

  • 기능 설명: 시간 흐름에 따른 Epic과 Task의 일정을 타임라인 바 형태로 시각화.

  • 상세 개발 요구사항:

  - 타임라인 렌더링: 주 단위, 월 단위, 분기 단위 줌인/줌아웃(Zoom) 기능.

  - 드래그로 일정 수정: 간트 차트 위에서 마우스로 바(Bar)의 왼쪽/오른쪽 끝을 늘리거나 줄이면 start_datedue_date가 API를 통해 즉시 업데이트되는 비동기 통신 구현.

  - 의존성(Dependency) 선 연결: 이슈 간 차단 관계(Blocks)가 있을 경우, 간트 차트상에서 두 이슈 바 사이에 화살표 선을 그려 시각화 처리.


🛠️ 4. 외부 서비스 연동 모듈 (Git Integration)

4.1 Git Webhook 수신기 (GitHub/GitLab API 연동)

  • 기능 설명: 개발자의 코드 커밋, 푸시, PR 발생 시 Jira 이슈 상태를 자동으로 추적 및 동기화.

  • 상세 개발 요구사항:

  - Webhook 엔드포인트 구현: /api/v1/webhooks/git 엔드포인트를 개방하고 GitHub의 Push event, Pull request event 페이로드(Payload) 수신부 개발.

  - 커밋 메시지 파싱 정규식 엔진: 커밋 메시지나 PR 제목에서 이슈 키를 추출하는 정규식 구현.

    - 예: git commit -m "[FIX-123] 로그인 오류 수정" 커밋 메시지에서 FIX-123 파싱.

  - 스마트 커밋(Smart Commits) 명령어 구현: 커밋 메시지에 특정 키워드가 포함되면 이슈 상태를 자동 변경.

    - [이슈키] #comment [내용]: 해당 이슈의 댓글로 내용을 자동 등록.

    - [이슈키] #resolve 또는 [이슈키] #close: 해당 이슈의 워크플로우 상태를 Done으로 자동 변경 처리.

  - 이슈 상세 페이지 내 Git 개발 탭: 파싱된 데이터(브랜치명, 커밋 로그, PR 링크 및 상태)를 해당 이슈 하단 ‘개발 정보’ 컴포넌트에 리스트 형태로 노출.


📚 5. 업무 지식 정리 모듈 (Wiki & Knowledge Base)

5.1 블록 기반 마크다운 위키 엔진

  • 기능 설명: 프로젝트 관련 기술 문서, 회의록, 아키텍처 가이드를 노션(Notion) 스타일로 작성하는 공간.

  • 상세 개발 요구사항:

  - 문서 구조: 프로젝트 하위에 다계층 트리(Tree) 구조로 폴더 및 문서 생성 가능 (무제한 뎁스 지원 DB 구조 설계).

  - 마크다운 에디터: 실시간 마크다운 파싱 및 프리뷰 기능 구현 (Milkdown 또는 Editor.js 활용 권장).

  - 이슈 티켓 임베드 및 상호 참조:

    - 문서 내에서 사선(/) 또는 앳(@) 기호 입력 시 레이어 팝업이 뜨며 이슈 검색 및 링크 삽입 가능.

    - 이슈가 링크되면 문서 내에 이슈의 현재 상태(To Do, Done 등)가 배지(Badge) 형태로 실시간 동기화되어 렌더링됨.

    - 이슈 상세 페이지에서도 “이 이슈가 참조된 문서 목록”을 역방향 조회(Backlink)할 수 있는 매핑 테이블 관리.


💰 6. 프로젝트 예산 관리 모듈 (Budgeting & Cost Management)

6.1 예산 항목 설정 및 실시간 지출 트래킹

  • 기능 설명: 프로젝트에 할당된 예산 대비 실제 투입 비용(인건비, 인프라 비용 등)을 기록하고 추적.

  • 상세 개발 요구사항:

  - 예산 카테고리 구성: 인건비, 서버/인프라, 소프트웨어 라이선스, 기타 외주비 등으로 분류.

  - 이슈와 비용 연동(인건비 산정):

    - 이슈 상세 화면에 Time Tracking(시간 기록) 기능 구현. 개발자가 “오늘 이 업무에 3시간 30분 작업함” 기록 가능.

    - 멤버별 ‘시급(Hourly Rate)’ 마스터 테이블을 기반으로, 기록된 시간 × 시급을 계산하여 해당 이슈 및 프로젝트의 ‘누적 인건비 지출’로 자동 합산.

  - 기타 지출(Expense) 등록 API: 영수증 파일 첨부(S3 업로드), 지출 금액, 지출 일자, 관련 이슈 ID를 입력하는 비용 등록 폼 구현.

  - 번다운/지출 실시간 대시보드:

    - 총 예산(Total Budget) 대비 현재 누적 지출(Actual Cost)을 게이지 바(Gauge Bar)로 시각화.

    - 현재 스프린트 속도 대비 예산 소진 예측선(Forecasting Curve)을 그리는 차트 API 개발.


🤖 7. 워크플로우 자동화 엔진 (Automation Engine)

7.1 If-Then-Else 기반 규칙(Rule) 빌더

  • 기능 설명: 코드 작성 없이 UI에서 “트리거(Trigger) 조건(Condition) 작업(Action)” 구조로 자동화 규칙을 생성하고 실행하는 엔진.

  • 상세 개발 요구사항:

  - 컴포넌트 구조:

    - Trigger: 이슈가 생성될 때, 상태가 변경될 때, 담당자가 지정될 때, Git PR이 열릴 때

    - Condition: 우선순위가 High인 경우, 이슈 유형이 Bug인 경우

    - Action: 담당자를 X로 변경, 댓글 추가, 다른 이슈 상태 변경, Webhook 발송

  - 백엔드 실행 엔진 (Event-Driven Architecture):

    - 이슈 변경 이벤트가 발생하면 MQ(Message Queue, 예: RabbitMQ/Redis BullMQ)로 이벤트를 발행.

    - 자동화 워커(Worker)가 이벤트를 소비(Consume)하여 등록된 규칙들의 조건과 매칭 후 비동기로 Action API를 호출하는 구조 설계.

  - 무한 루프 방지 로직: 자동화 Action에 의해 다시 Trigger가 발동되어 시스템이 뻗는 현상을 막기 위해, 규칙 실행 depth 제한(최대 3회) 및 동일 이슈에 대한 연속 실행 차단 알고리즘 필수 구현.


🔒 8. 엔터프라이즈 권한 및 보안 모듈 (Permission & Security)

8.1 RBAC(Role-Based Access Control) 및 프로젝트 권한 스키마

  • 기능 설명: 사용자의 역할에 따라 프로젝트 및 이슈에 대한 접근, 수정, 삭제 권한을 세밀하게 제어.

  • 상세 개발 요구사항:

  - 권한 매트릭스 DB 설계: PermissionScheme 테이블을 두어 각 행위별 권한 정의.

    - 권한 종류: BROWSE_PROJECTS(조회), CREATE_ISSUES(생성), EDIT_ISSUES(수정), ASSIGN_ISSUES(담당자 지정), CLOSE_ISSUES(종료).

  - 역할(Role) 정의: Project Admin, Developer, Reporter, Viewer 등으로 구분하고 그룹별 매핑.

  - 이슈 보안 레벨(Issue Security Level): 같은 프로젝트 내에서도 대외비인 이슈는 특정 사용자/그룹에게만 보이도록 필터링하는 SQL WHERE 절 인터셉터(Interceptor) 또는 미들웨어 구현.


🧱 9. 동적 데이터 구조 확장 엔진 (Custom Fields Engine)

9.1 사용자 정의 필드 (Custom Fields)

  • 기능 설명: 기본 필드(제목, 본문) 외에 사용자가 원하는 데이터 필드(예: 앱 버전, 테스트 디바이스, 고객사 이름 등)를 마음대로 추가하는 기능.

  • 상세 개발 요구사항:

  - EAV(Entity-Attribute-Value) 패턴 또는 JSONB 활용: RDB에서 동적 필드를 지원하기 위해 PostgreSQL의 JSONB 타입을 사용하거나 EAV 테이블 구조로 설계.

  - 필드 타입 지원: Short Text, Paragraph, Select List(싱글/멀티), Date Picker, User Picker.

  - 화면 렌더링 엔진 (Screen Schema): 이슈 생성 화면, 수정 화면, 상세 화면마다 어떤 커스텀 필드를 노출할지 설정하는 메타데이터 관리 및 프론트엔드 동적 폼(Dynamic Form) 렌더링 구현.


🔔 10. 알림 및 이력 관리 시스템 (Notification & Audit Log)

10.1 이벤트 기반 알림 스키마 (Notification Scheme)

  • 기능 설명: 이슈에 변경사항이 생겼을 때 관련자들에게 실시간 및 이메일 알림을 발송.

  • 상세 개발 요구사항:

  - 구독자(Watcher) 모델: 사용자가 특정 이슈를 ‘조회(Watch)‘하면 구독자 목록 테이블(issue_watchers)에 추가.

  - 알림 채널 분기: 인앱 알림(웹 소켓), 이메일(SMTP), 외부 연동(Slack Webhook, Discord) 채널별 발송 모듈 분리(Strategy 패턴 적용 권장).

  - 디바운싱(Debouncing) 알림 처리: 한 사용자가 1분 이내에 이슈 본문 수정, 담당자 변경, 댓글 추가를 연달아 할 경우, 알림이 스팸처럼 여러 번 가지 않도록 묶어서 1개의 알림 메일로 발송하는 큐잉(Queueing) 버퍼 시스템 구현.

10.2 활동 스트림 (Activity Stream / Audit Log)

  • 기능 설명: 이슈 상세 페이지에서 이 이슈가 태어났을 때부터 지금까지의 모든 변경 역사를 보여주는 타임라인 컴포넌트.

  • 상세 개발 요구사항:

  - 데이터 변경 전(Before)과 변경 후(After)의 스냅샷을 비교하여 “홍길동님이 상태를 진행 중에서 완료로 변경함”, “텍스트 변경: [기존내용] [새내용]” 형태로 사람이 읽을 수 있는(Human-readable) 로그 포맷 변환기 개발.

연관 메일