Skip to content

Refactor/#047 nocta라이브러리 리팩토링 #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: refactor/noctaDoc
Choose a base branch
from

Conversation

hyonun321
Copy link
Collaborator

@hyonun321 hyonun321 commented May 31, 2025

📝 변경 사항

  • Nocta = adapter 역할의 추상화계층
  • NoctaDoc = CRDT와 문서 상태 관리 클래스
  • NoctaRealm = 캐럿관리 클래스

🔍 변경 사항 설명

  • 주요 정리 노션
  • 노션에 나와있지만, 주된 목적은 client와 server가 과도한 캐럿관리와 socket이벤트 연결, 최적화등을 최대한 하지않는 것
  • y.js 와 같은 사용성을 지향하되, 간단하게 Nocta 하나만 추가해서 소켓연산,최적화,문서상태동기화,캐럿관리,CRDT연산 등이 일어나는 것이 목표

🙏 질문 사항

  • 맘껏 보십쇼!!

📷 스크린샷 (선택)

  • 테스트 동작
  • 현재는 삽입 삭제 밖에 되지않으며, 중간 삽입도 되지않음
May-31-2025.19-58-11.mp4

✅ 작성자 체크리스트

  • Self-review: 코드가 스스로 검토됨
  • Unit tests 추가 또는 수정
  • 로컬에서 모든 기능이 정상 작동함
  • 린터 및 포맷터로 코드 정리됨
  • 의존성 업데이트 확인
  • 문서 업데이트 또는 주석 추가 (필요 시)

hyonun321 added 9 commits May 31, 2025 21:59
- socket.io 추가
- package 매니저 추가
- client에 @noctaDoc으로 사용하도록 추가
- 기존의 noctaCRDT 클래스 중첩 타입에서 라이브러리로 가져와서 쓰도록 adapter 역할하는 Nocta클래스 선언
- 이를 기준으로 noctaDoc과 noctaRealm 추가
- noctaDoc = CRDT 관련
- noctaRealm = 캐럿관리 동기화 처리
- 추후 소켓 optimizer 와 같은 이벤트 축소 확장 가능
- block,char,id 로 단순화
- linkedlist 불필요한 클래스 삭제 및 nodeid, node 등과같은 명시성 떨어지는 클래스 제거
- 추후 type 관련 추가 가능(소켓같은)
- 추후 type을 통해 명확히 오퍼레이션을 판별하도록 복잡한 insertoperation 타입 사용하지 않도록 리팩토링
- 현재는 nocta에서 진행중이지만, 추후 optimizer나 최적화 과정이 진행 된 다음 해당 파일을 통해 디코딩 처리가 되도록 선언
- 추후 operationLog등을 넣어, broadcast연산일 경우 log가 남도록하여 디버깅을 용이하기 위해 추가
- 현재는 비어있지만, getCaretPosition이나 관련된 windows 접근 함수 저장용
- 병합과정 (클라이언트와 서버의 상태가 다를때) 사용하는 함수 저장용
@hyonun321 hyonun321 self-assigned this May 31, 2025
@hyonun321 hyonun321 changed the base branch from dev to refactor/noctaDoc May 31, 2025 13:46
@hyonun321 hyonun321 requested a review from eora21 June 2, 2025 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant