개발/개발과정
[AlgoITNi] 홈 화면 성능 개선하기: 1. 번들링 크기 줄이기
네이버 부스트캠프 8기 그룹 프로젝트로 AlgoITNi라는 프로젝트를 진행했다. boostcampwm2023/web05-AlgoITNi: 동료와 함께 할 수 있는 플랫폼, 알고있니 (github.com) GitHub - boostcampwm2023/web05-AlgoITNi: 동료와 함께 할 수 있는 플랫폼, 알고있니 동료와 함께 할 수 있는 플랫폼, 알고있니. Contribute to boostcampwm2023/web05-AlgoITNi development by creating an account on GitHub. github.com 동료들과 함께 소통하며 알고리즘 학습을 할 수 있는 플랫폼을 만들고자 했으며 이를 위해 WebRTC를 이용한 실시간 P2P 화상 채팅, Socket을 이용한 실시간 ..
[CRDT 구현하기] 3차 시도: 라이브러리
[CRDT 구현하기] 2차 시도: 연결 리스트 (한계) [CRDT 구현하기] 2차 시도: 연결 리스트 (한계) [CRDT 구현하기] 2차 시도: 연결 리스트 (개선) [CRDT 구현하기] 2차 시도: 연결 리스트 (개선) [CRDT 구현하기] 2차 시도: 연결 리스트 [CRDT 구현하기] 2차 시도: 연결 리스트 [CRDT 구현하기] 1차 시도: 배 29223.tistory.com 직접 만든 CRDT는 제대로 된 기능을 하지만 실시간성에서 부족함이 있었다. 정해진 일정이 있었고 일정에 맞춰서 기능을 완성해야 했다. 이를 위해 라이브러리를 도입하기로 했다. 라이브러리 CRDT 알고리즘을 제공하는 라이브러리는 여러가지가 있다. 대표적으로 Yjs와 AutoMerge 등이 있으며 각각의 장단점이 있다. 우리는 ..
[CRDT 구현하기] 2차 시도: 연결 리스트 (한계)
[CRDT 구현하기] 2차 시도: 연결 리스트 (개선) [CRDT 구현하기] 2차 시도: 연결 리스트 (개선) [CRDT 구현하기] 2차 시도: 연결 리스트 [CRDT 구현하기] 2차 시도: 연결 리스트 [CRDT 구현하기] 1차 시도: 배열 [CRDT 구현하기] 1차 시도: 배열 [CRDT 구현하기] CRDT란? [CRDT 구현하기] CRDT란? CRDT 동시 편집 29223.tistory.com 위의 과정들을 통해 충돌을 해결할 수 있었다. 하지만 병합 과정에서 커서가 이동하는 문제가 발생했다. 커서 고정 글자는 잘 병합이 되는데 커서가 이동하는 문제를 해결하기 위해서 커서의 위치 정보를 기억해야 한다고 생각했다. 기존 커서의 위치를 갖고 있으며 병합 이후 해당 정보를 바탕으로 커서의 위치를 조정하는..
[CRDT 구현하기] 2차 시도: 연결 리스트 (개선)
[CRDT 구현하기] 2차 시도: 연결 리스트 [CRDT 구현하기] 2차 시도: 연결 리스트 [CRDT 구현하기] 1차 시도: 배열 [CRDT 구현하기] 1차 시도: 배열 [CRDT 구현하기] CRDT란? [CRDT 구현하기] CRDT란? CRDT 동시 편집 기술 네이버 부스트캠프 그룹 프로젝트에서 코드를 공동 편집 할 수 있는 29223.tistory.com 연결리스트를 사용하여 병합이 제대로 이루어지는 것을 확인할 수 있었다. 하지만, 아직 몇 가지 문제점이 남아있었다. 우선, 현재 상태로는 단일 글자의 삽입만 가능하다는 것과 병합 과정에서 충돌에 대한 대비가 제대로 되어있지 않았다. 여러 글자의 삽입/삭제 insertLocal(index: number, letter: string, time: num..