Skip to content

boostcampwm-2024/refactor-web39-OctoDocs

Repository files navigation

Sprint 33


Hits Group 112 (1) Group 83 (2) Group 84 (2)

🐙 프로젝트 소개

🕸️ 관계형 지식 관리 툴

문서들을 작성하고 연결하면서 문서들 간의 연관 관계를 시각적으로 확인 가능.

default.mp4

🧸 실시간 동시 편집 및 협업 기능

실시간으로 다른 사용자들과 동시 편집 및 협업 가능.

default.mp4

⛺️ 워크스페이스 초대 기능

개별 워크 스페이스에 다른 사용자들을 초대해서 함께 이용 가능.


🛠️ 프로젝트 구조

🖥️ System Architecture

image (13)

🐳 Sequence Diagram

image (14)

🗺️ 프로젝트 타임라인

Overview-variant (18)

🚧 문제와 해결과정

실시간 편집 구현 과정

Octodocs 팀은 핵심 기능인 에디터와 노드 캔버스의 실시간 편집을 위해 CRDT 라이브러리인 YJSSocketIO를 어떻게 활용 했을까요? 🔗 링크 준비 중

데이터 흐름 변경

YDoc과 소켓을 사용하면서도 RESTful 방식으로 일부 상태를 관리하던 구조를, YDoc 중심의 단일 truth source와 소켓 기반 단방향 흐름으로 단순화했습니다. 그 결과 모든 상태가 YDoc을 통해 일관성 있게 관리되며, 클라이언트와 서버 간 데이터 흐름도 간소화되었습니다. 중복 관리와 데이터 충돌을 줄이기 위한 이런 data flow 변화의 핵심은 무엇이었을까요? 🔗 링크 준비 중

FE 프로젝트 구조 개선 과정

Octodocs 팀은 기존 프로젝트 구조의 문제점을 어떻게 파악했고, 어떤 방법으로 개선을 했을까요? 🔗 링크 준비 중

드래그 이벤트 발생 시 생기는 쿼리 최적화

노트 카드를 드래그 할 때, 그 위치를 DB에 저장하기 위해 너무 많은 쿼리가 발생하는 문제가 있었습니다. 이를 위해 쿼리를 최적화해야할 필요성이 생겼는데 이를 어떻게 해결할 수 있었을까요? 🔗 링크 준비 중

redis 캐싱으로 데이터베이스 부하 감소

실시간 문서 동시 편집에서 발생하는 굉장히 많은 변경 사항을 모두 데이터베이스에 저장하기에는 데이터베이스 부하가 너무 많이 발생했고, Octodocs 팀은 redis를 도입하기로 결정했습니다. 저희는 왜 redis를 도입하기로 결정했고 또 redis를 어떻게 활용했을까요? 🔗 링크

개발 환경, 배포 환경 및 CI/CD에 대한 개선 과정

Octodocs 팀은 사용자 경험 향상은 물론, 일관된 코드 품질 유지와 개발자 친화적인 쾌적한 개발 환경 조성을 위해 많은 노력을 기울였습니다. 멀티 레포에서 모노레포로의 전환, GitHub Actions를 활용한 CI/CD 구축, Docker와 Docker Compose의 도입까지—우리는 어떤 변화를 거쳤을까요? 🔗 링크 준비 중

🧸 팀원 소개

J032_김동준 J075_김현준 J097_민서진 J162_유성민 J248_진예원
스크린샷 2024-10-29 오후 4 스크린샷 2024-10-29 오후 11 41 04 스크린샷 2024-10-29 오후 11 41 55 스크린샷 2024-10-29 오후 11 41 00 스크린샷 2024-10-29 오후 11 40 31
INFJ INFJ INTP INFP ISTJ
FE BE BE BE FE

About

문서들을 연결하는 순간, 새로운 영감이 태어난다! 🐙

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 93.4%
  • CSS 2.9%
  • JavaScript 2.7%
  • Other 1.0%