네이버 Yorkie TF 인턴 생존기
JusticeHui가 PS하는 블로그
프로젝트 Yorkie는 오픈소스 데이터 스토어로 네이버에서 개발되고 있습니다. 지인이 해당 프로젝트를 개발하고 있어서 초기부터 알던 프로젝트입니다.
Yorkie는 CRDT 기반으로 실시간 동시 편집을 지원하는 데이터 스토어라고 할 수 있습니다. 요즘은 많은 도구가 지원하는데 구글 독스나 노션 등 한 화면을 여러 사람이 동시에 수정할 수 있도록 제공하는 경우 자연히 충돌이 생기게 됩니다. 한명은 A를 B로 바꾸고 다른 한명은 A를 C로 바꾸면 최종이 B여야 하는지 C여야 하는지 결정해야 하는 문제가 남습니다.
Git 등으로 개발하다 보면 충돌이 발생하는 경우를 많이 겪기 때문에 어느 정도 이해할 수 있을거라고 생각합니다. 동시 편집을 하면 당연히 충돌이 발생할 수 밖에 없습니다. Git을 이 최종의 선택권을 사용자가 선택할 수 있도록 넘겨주지만 노션 같은 도구에서 충돌 날때마다 사용자에게 충돌났다고 물어보는건 사용자 경험에도 좋지 않기 때문에 이런 방법을 쓰진 않습니다.
과거에도 동시 편집 구현은 쉽지 않았고 다양한 시도가 있었지만 Conflict-Free-Replicated Data Types를 뜻하는 CRDT는 이러한 문제를 해결하는 데이터 스토어이고 그 이름대로 충돌이 없습니다. 아까 처럼 A->B, A->C의 경우 결과가 B일지 C일지는 상황에 따라 다르지만 충돌은 나지 않습니다.
이 CRDT를 이용한 데이터 스토어인 Yorkie는 해당 프로젝트 개발과 이를 이용한 SaaS 형태의 서비스를 제공하고 있습니다. 이 Yorkie팀에 들아가서 인턴으로 2달 일한 과정을 정리한 들입니다.
인턴기 이지만 인턴 생활보다는 Yorkie에 대해 많은 내용이 담겨 있습니다. 알고리즘을 잘하시는 분이라 인턴 중에도 Yorkie의 구조적인 부분과 기능 추가등의 작업을 많이 하신거 같고 파악하신 Yorkie의 데이터 구조와 문제점, 해결 방법 등이 다양하게 나와 있어서 재밌습니다.
https://justicehui.github.io/review/2024/03/30/naver-intern-review/
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 4월 13일 오전 3:43
한
... 더 보기IT 회사의 업무에서, 지금까지는 디자이너와 특히 개발자가 병목이었는데, 대 AI 시대에는 기획자가 병목이 될 수도 있겠다. 조금이라도 규모가 있는 기업에서의 가장 큰 병목은 보통 의사결정자라는 것을 생각해보면 그렇다.
즉, 실무보다 의사결정을 AI에게 맡기는 것이 병목을 해소할 수 있는 가장 확실한 방법이며, 그러므로 부장님과 사장님을 AI로 대체하는 것이야말로 인류의 번영을 위한 가장 빠른 지름길이다. (아님. 아니 맞나?!)
여러분 PostgreSQL 프로시저는 Python, JavaScript은 물론 Perl, Java, Lua 등도 사용할 수 있답니다~* 대부분 구식🤭 MySQL만 쓰셔서 모르시겠지만.. (도망간다)
외국어를 사용해서? 돈을 더 많이 벌어서? 새로운 기회가 많아서? 글로벌 경력을 쌓을 수 있어서?
... 더 보기