ID: key_26_22_05_25_16_00_00_00000 Created date: 5월 25 2026 월요일, 22주 16:00

연관 문서

Index > 개발 아이템 정리 Jira 기능 정리

DB 설계 개발 아이템

Phase 1: 기본 구조 설계 (필수 구현)

1. 사용자 및 권한 관리

  • 관련 기능: 엔터프라이즈 권한 및 보안 모듈, 사용자 관리 모듈
  • 테이블 구성:
    • users: 사용자 기본 정보 (id, email, name, avatar, password_hash)
    • roles: 역할 정의 (id, name, description) - Admin, Developer, Reporter, Viewer
    • user_roles: 사용자-역할 매핑
    • permissions: 권한 정의 테이블
    • role_permissions: 역할-권한 매핑
    • groups: 사용자 그룹 정의
    • group_members: 그룹 멤버십

2. 프로젝트 및 스프린트 기본 구조

  • 관련 기능: 프로젝트 & 스프린트 관리 모듈
  • 테이블 구성:
    • projects: 프로젝트 기본 정보 (id, key, name, description, project_type, status)
    • project_members: 프로젝트 멤버 (project_id, user_id, role)
    • sprints: 스프린트 정보 (id, project_id, name, start_date, end_date, status)
    • sprint_metrics: 스프린트 메트릭 (sprint_id, velocity, team_capacity)

3. 이슈 및 워크플로우 핵심 데이터

  • 관련 기능: 이슈 및 업무 관리, 맞춤형 워크플로우
  • 테이블 구성:
    • issues: 이슈 기본 정보 (id, project_id, key, title, description, issue_type, status, priority, assignee_id, reporter_id, created_at, updated_at)
    • issue_types: 이슈 타입 정의 (id, name) - Epic, Task, Bug, Sub-task
    • issue_statuses: 상태 정의 (id, name) - To Do, In Progress, In Review, Done
    • issue_transitions: 상태 전이 규칙 (id, from_status, to_status, allowed)
    • issue_logs: 이슈 변경 이력 (id, issue_id, field_name, old_value, new_value, changed_by, changed_at)
    • issue_watchers: 이슈 감시자 (issue_id, user_id)

4. 이슈 관계 및 의존성

  • 관련 기능: 이슈 관계 연결
  • 테이블 구성:
    • issue_links: 이슈 간 관계 (id, source_issue_id, target_issue_id, link_type) - Blocks, Is Blocked By, Relates To
    • issue_subtasks: 부모-자식 이슈 관계 (id, parent_issue_id, child_issue_id)

5. 댓글 및 협업 기본

  • 관련 기능: 협업 및 커뮤니케이션 모듈
  • 테이블 구성:
    • comments: 댓글 (id, issue_id, author_id, content, created_at, updated_at, is_deleted)
    • comment_reactions: 댓글 반응 (id, comment_id, user_id, reaction_type)
    • attachments: 첨부 파일 (id, issue_id, file_name, file_path, uploaded_by, uploaded_at)

6. 칸반 보드 위치 정보

  • 관련 기능: 칸반 보드
  • 테이블 구성:
    • board_columns: 보드 칼럼 (id, board_id, column_name, status_id, wip_limit)
    • issue_positions: 이슈 순서 (id, issue_id, column_id, rank_string) - Lexorank 알고리즘

Phase 2: 확장 기능 (추후 구현)

1. 커스텀 필드 (EAV 패턴)

  • 관련 기능: 동적 데이터 구조 확장 엔진
  • 테이블 구성:
    • custom_fields: 커스텀 필드 정의 (id, project_id, field_name, field_type, is_required)
    • issue_custom_field_values: 이슈별 커스텀 필드 값 (JSONB 컬럼 또는 EAV)

2. 예산 및 시간 추적

  • 관련 기능: 프로젝트 예산 관리 모듈
  • 테이블 구성:
    • project_budgets: 프로젝트 예산 (id, project_id, total_budget, budget_category)
    • time_logs: 시간 기록 (id, issue_id, user_id, hours_logged, log_date)
    • expenses: 지출 기록 (id, project_id, amount, category, expense_date, related_issue_id)
    • hourly_rates: 사용자별 시급 (user_id, hourly_rate, effective_from)

3. 자동화 엔진

  • 관련 기능: 워크플로우 자동화 엔진
  • 테이블 구성:
    • automation_rules: 자동화 규칙 (id, project_id, trigger_type, condition, action, is_active)
    • automation_executions: 자동화 실행 기록 (id, rule_id, issue_id, executed_at, status)

4. 알림 및 이력

  • 관련 기능: 알림 및 이력 관리 시스템
  • 테이블 구성:
    • notifications: 알림 (id, user_id, type, message, is_read, created_at)
    • notification_preferences: 알림 설정 (user_id, channel, is_enabled)
    • audit_logs: 감사 로그 (id, action_type, actor_id, resource_type, resource_id, timestamp)

5. Git 연동 정보

  • 관련 기능: 외부 서비스 연동 (Git Integration)
  • 테이블 구성:
    • git_repositories: Git 저장소 정보 (id, project_id, repo_url, access_token_encrypted)
    • git_commits: 커밋 정보 (id, repository_id, commit_hash, message, author, commit_date, linked_issue_id)
    • git_pull_requests: PR 정보 (id, repository_id, pr_number, title, status, linked_issue_id)

6. 버전 및 마일스톤

  • 관련 기능: 버전 및 마일스톤 관리 모듈
  • 테이블 구성:
    • versions: 릴리스 버전 (id, project_id, version_name, planned_release_date, status)
    • issue_versions: 이슈-버전 매핑 (issue_id, version_id, relationship_type) - Fix Version, Affects Version
    • milestones: 마일스톤 (id, project_id, name, due_date, description)
    • milestone_issues: 마일스톤-이슈 매핑

7. 검색 인덱싱

  • 관련 기능: 검색 & 필터링 모듈
  • 테이블 구성:
    • saved_filters: 저장된 필터 (id, user_id, filter_name, jql_query)
    • search_index: 검색 인덱스 (Elasticsearch 또는 PostgreSQL Full-Text Search)

설계 고려사항

DB 엔진

  • 주 DB: PostgreSQL (신뢰성, JSONB 지원)
  • 캐시: Redis (세션, 캐싱)
  • 검색: Elasticsearch (Full-Text Search)

주요 설계 원칙

  1. 데이터 무결성: 외래키 제약, 트랜잭션 관리
  2. 성능: 인덱싱 전략, 파티셔닝 고려
  3. 확장성: EAV 패턴으로 동적 필드 지원
  4. 감사: 모든 변경사항 이력 기록 (audit_logs, issue_logs)

연관 메일