Docsa는 문서의 변경 이력과 다양한 버전을 효율적으로 관리할 수 있는 문서 버전 관리 시스템입니다.
이 프로젝트의 목표는 Git을 모르는 사용자도 손쉽게 버전 관리를 활용하여 문서를 편집하고 운용할 수 있도록 돕는 것입니다.
사용자는 그래프로 구현된 시각적인 UI를 통해 문서를 직접 편집하고, 다양한 버전 흐름을 한눈에 확인하며 관리할 수 있습니다.
Docsa는 문서의 변경 사항을 기록(commit) 단위로 추적하고, 버전(branch) 를 분기하거나, 서로 다른 버전을 병합(merge) 할 수 있는 강력한 기능을 제공합니다.
이러한 기능은 editor.js 기반의 블록 단위 저장 방식을 통해 구현되며, 변경된 블록만을 감지하여 데이터베이스에 저장하고 이를 조합하여 기록함으로써 저장 효율성과 자원 활용도를 극대화합니다.
*Git의 개념과 용어를 모르는 일반인 유저를 위해, Docsa에서는 일반적인 Git의 개념과 대응되는 용어를 다음과 같이 재정의합니다.
(기록: commit, 버전: branch, 병합하기: merge)
- 문서는 기록,저장과 버전을 가진 최상위 단위입니다. 문서마다 모든 변경 사항을 기록 단위로 저장하여, 원하는 시점의 기록을 조회 (checkout) 할 수 있으며, 메인화면에서 생성과 삭제가 가능합니다.
- 하나의 문서에서 여러 버전을 생성하여 자유롭게 분기해나갈 수 있으며, 브랜치 간 병합을 통해 작업 내용을 통합할 수 있습니다. main버전 이외 버전 단위의 삭제도 가능합니다.
- 작성 중인 내용을 저장할 수 있는 ‘저장하기’ 기능과, 특정 시점의 변경 사항을 확정하는 ‘기록하기’ 기능을 사용할 수 있습니다. 기록마다 제목과 설명을 추가할 수 있으며, 저장 또는 기록을 단일 삭제할 수도 있습니다.
- ‘비교하기’를 통해 현재 보고있는 기록과 다른 기록을 문단 단위로 비교할 수 있습니다.
- 기록과 저장,브랜치 간의 관계를 트리 구조 그래프로 시각화하여, 문서의 버전 흐름을 직관적으로 확인할 수 있습니다.
- Docsa의 에디터를 통해 직접 문서를 작성 및 수정할 수 있으며, 블록 기반 편집과 마크다운 문법을 지원합니다.
팀원 | 역할 | 담당 업무 |
---|---|---|
한승훈 | PO | - 프론트 개발자님과 소통 - 프로젝트 일정 관리 - 저장 관련 API 구현 |
배문성 | BE 팀장 | - 문서 관련 API 구현 - 이종간 트랜잭션 삭제 로직 설계 및 구현 |
한정민 | AWS 관리자 | - 인증 및 사용자 관련 API 구현 - AWS 인프라 운영 - Docker 기반 배포 - 모니터링 시스템 구축 |
권우철 | BE 팀원 | - 기록(커밋) 관련 API 구현 - 병합기능(머지) API 구현 - 이종간 트랜잭션 삭제 로직 설계 |
이예원 | BE 팀원 | - 버전(브랜치) 관련 API 구현 - 그래프 조회 API 구현 |

🧪 API 명세서 및 테스트를 위한 Swagger 문서입니다.


*정리 후 이슈마다 블록 링크 걸 예정
*정리 후 이슈마다 블록 링크 걸 예정
*추가 예정
- 질문 1
- 질문 2
- 질문 3