프로젝트에 대한 예상 질문
github보다 나은 점 / 다른 동시 편집기와 비교했을 때의 장점
comment을 통한 일방적인 소통이 아닌 실시간 소통, 다양한 소통 툴 제공을 하며, 그 대화에서 사용했던 자료와 음성 채팅 요약을 통해 문서화에 용이함이 큰 장점이라 생각합니다.
<aside>
박건우
1. 실시간 소통 기능
- 실시간 음성 채팅을 통해 코드 리뷰 중 의사소통을 빠르게 하고 오해를 줄입니다. 필요할 때마다 녹음된 내용을 기록하거나 요약해 문서화할 수 있어 리뷰의 맥락과 의도를 명확히 남길 수 있음
- 단순한 텍스트 코멘트가 아니라 실시간 대화를 통해 즉각적인 피드백을 주고받아, 텍스트로 설명하기 어렵거나 소통이 오래 걸리는 문제들을 효과적으로 해결할 수 있음
2. 실시간 코드 동시 편집 (Yjs + Monaco Editor)
- 코드 동시 편집 기능은 실시간으로 같은 파일을 보면서 동시에 수정할 수 있어, 상대방의 작업 상황을 바로 확인하고 피드백할 수 있음
- 다른 사용자가 보고 있는 파일로 자동 이동 기능이 있어 편집 중인 파일을 맞춰볼 수 있고, 커서가 표시되어 어디를 보고 있는지 쉽게 파악할 수 있음
- 기능 제한 처리 (예: JSX, Tex 미지원)는 사용자 경험을 개선하기 위한 추가 설정을 통해 일관성을 유
3. 시각 자료 활용 및 화면 캡처
- 리뷰중이던 편집기 화면을 캡처해 드로우보드에 바로 표시할 수 있어 특정 코드 영역을 시각적으로 강조하면서 토론할 수 있음, 캡처된 이미지를 다른 사용자와 즉시 공유할 수 있어 설명이 필요한 부분을 쉽게 시각화할 수 있음
</aside>
써보니 어떤 점이 가장 큰 장점으로 느껴졌는가?
실시간 음성 채팅 덕분에 의사소통에 있어서 오해(정보 전달 부분에 있어서)를 줄일수 있는 부분이 가장 큰 것 같습니다. 또한, 음성을 요약해서 문서화 해주는 것의 성능이 생각보다 퀄리티가 높아서 좋았습니다.
<aside>
박건우
- 실시간 음성 채팅 덕분에 의사소통에 있어서 오해(정보 전달 부분에 있어서)를 줄일수 있는 부분이 가장 큰 것 같습니다.
</aside>
코드를 캡쳐하는 것이 아니라 바로 그리는 것은 고려 안 했나요?
아무래도 코드를 수정하는 라이브러리와 그림을 그리는 라이브러리는 따로 사용하고 있어 합치는 것은 불가능에 가까웠으며, 그렇게 구현하려면 동시 편집 기술을 직접 구현해야 했습니다.
코드 위에 바로 그림 그리지 못 하는 것은 아쉽지만, 그래도 코드 위에 커서를 올리며 음성으로 설명할 수 있었기에 의사소통에 문제는 없었습니다.
마지막에 기능 확장과 AI를 활용한 저시기에 대한 구체적인 계획은?
나도 몰라요(그냥 미래에 할 수 있는게 많음)
딜레이는?
webrtc를 이용한 mesh 방식이어도 1ㄷ1 대화만 상정하였기 때문에, server와 client에게 부담이 적습니다. 그래서 음성 채팅 딜레이 채감도 꽤 적게 느껴졌습니다.
그림판과 노트에 공유 편집(CRDT)의 경우도 딜레이 체감이 거의 없었습니다.
아키텍쳐에서 pakage에 대한 설명
- BlockNote: 노트
- Excalidraw: 그림판
- Monaco: 코드 에디터
- Yjs: 위의 공유 문서의 내용을 websocket으로 공유할 수 있게 data type과 통신 protocol을 정의한 pakage