[자료구조] 작업 기반 CRDT : Protocol(Operation based CRDTs: protocol )
·
CS/자료구조(data structure)
개요이전 글에서는 상태 기반 CRDT에 대해서 알아보았다.2025.11.26 - [CS/자료구조(data structure)] - [자료구조] CRDT - 실시간 협업 애플리케이션을 위한 데이터 타입 [자료구조] CRDT - 실시간 협업 애플리케이션을 위한 데이터 타입개요요즘에 연구실 형과 새로운 프로젝트를 시작하였다. 프로젝트에 요구되는 기술 중 하나로 여러 사용자와 실시간으로 협업이 가능해야 한다는 항목이 있다. 우리는 실시간 협업 프로그램으mk-develop.tistory.comCRDT는 크게 두 종류로 나뉜다고 했다. 바로 작업 기반 CRDT와 상태 기반 CRDT이다. 본 글에서는 작업 기반 CRDT중 하나인 Protocol에 대해 다룬다. 본 글을 완벽하게 이해하기 위해선 이벤트소싱과 vecto..
[자료구조] CRDT - 실시간 협업 애플리케이션을 위한 데이터 타입
·
CS/자료구조(data structure)
개요요즘에 연구실 형과 새로운 프로젝트를 시작하였다. 프로젝트에 요구되는 기술 중 하나로 여러 사용자와 실시간으로 협업이 가능해야 한다는 항목이 있다. 우리는 실시간 협업 프로그램으로 노션, Figma, Google Docs와 같은 프로그램을 사용한다. 그렇다면 위와 같은 프로그램은 도대체 어떻게 실시간으로 협업이 가능하게 만들었을까? 이는 CRDT를 사용하였기에 가능하다. 그렇다면 CRDT가 무엇인가? 이에 대해 간단하게 알아보았고 이해하기 쉽게 정리해 보았다.본 글에서는 피어라는 용어가 등장한다.피어는 서로간의 컴퓨터라고 생각하며 읽으면 된다.CRDT - Conflict-free Replicated Data TypeCRDT는 Conflict-free Replicated Data Type의 줄임말이다...
AI 없이 투두리스트 구현기
·
이야기/회고
개요요즘 Javascript와 React 기본&심화 공부를 하며 지냈다. 회사에 지원서는 계속 넣고 있지만 계속해서 서류 탈락이 반복되었고 나는 주변 사람들의 듣기 좋은 말이 아닌 확실한 자기 객관화가 필요하다고 생각했다. 프로젝트를 안한지도 3개월이 지나고 있기에 재밌는 무언가를 만들고 싶다는 생각도 들었다. 하지만 무턱대고 팀원을 모아서 규모 있는 프로젝트를 하기엔 공부를 위한 프로젝트가 안될 것 같았다. 때문에 이번에는 제대로 공부를 할 수 있는 무언가를 만들자고 결심했다. 주제는 Todo List로 정했다. Todo List? AI 쓰면 너무 쉽게 만들 수 있는 프로젝트 아닌가? 라고 생각할 수 있다. 때문에 나는 셀프로 족쇄를 채우기로 했다. 1. AI를 사용하지 않기2. 모르는 것은 검색&공식..
[React] useEffectEvent 훅
·
React
개요React 공식 문서를 살펴보다가, 19버전에서 useEffectEvent 훅이 실험 단계(Experimental)에서 정식 훅으로 변경된 것을 보고 더 자세히 알아보기 위해 공부해보았다.https://ko.react.dev/reference/react/useEffectEvent useEffectEvent – ReactThe library for web and native user interfacesko.react.dev 왜 만들어진 훅인가? 이벤트 핸들러를 useEffect 훅을 사용해서 등록한다면 다음과 같이 작성할 수 있다.function MyComponent() { const [count, setCount] = useState(0); useEffect(() => { function o..
토스 서류합격 후기
·
이야기/일상
개요유레카를 수료하고 취준생이 된지 2개월이 되어간다. 2025년 10월 기준, 신입 개발자가 채용문을 뚫기는 더욱 어려워지고 있다. 2025.08.16 - [이야기/일상] - LG유플러스 유레카 SW 교육과정 2기 수료 후기 LG유플러스 유레카 SW 교육과정 2기 수료 후기개요드디어 길다면 길었고 짧다면 엄청 순식간에 지나갔던 7개월간의 유레카 2기 과정이 끝이 났다.수료식은 OT와 같은 장소인 LG U+ 마곡사옥에서 진행됐다.수료식 당일 입구에서부터 이렇게 성mk-develop.tistory.com물론 이러한 사회 동향은 이미 알고 있었기에 이전 회고의 마지막 줄에서 적어 둔것처럼 마음을 독하게 먹어야 겠다고 생각하고 살아왔다. 불확실한 미래는 여전하지만 지금까지 해왔던것처럼 언제 올지 모르는 기회를..
디스코드 노래봇 제작기
·
이야기/일상
개요평소에 관심이 많았던 디스코드 봇을 이번에 만들었다.보통 노래봇 같은 경우엔 노래하는 하리보같은 잘 알려진 봇들을 사용하면 되지만 이러한 봇들은 가끔 명령어가 수행이 잘 안되는 문제가 있다. 봇을 직접 구현한다면 이러한 이슈에 바로 대처할 수 있고 정책이 계속 바뀌는 유튜브 특성상 계속해서 유지보수를 해줘야 하기에 지속적인 유지보수 경험도 할 수 있을 것이라 생각하였다. discord.js 오픈소스를 사용하여 구현하였다.https://discord.js.org/ discord.jsdiscord.js is a powerful Node.js module that allows you to interact with the Discord API very easily. It takes a much more ob..
Uble AWS 비용 절감을 위한 라즈베리파이 서버 이전기
·
기타
개요UBLE은 하루 1만원의 서버 비용으로 인해 서비스를 잠시 중단할 수 밖에 없었다. 2025.09.05 - [이야기/회고] - LG유플러스 유레카 2기 융합프로젝트 회고 LG유플러스 유레카 2기 융합프로젝트 회고개요LG유플러스 유레카 과정의 마지막 프로젝트인 융합 프로젝트가 마무리되었다. 사실 프로젝트는 벌써 3주 전에 끝났지만, 이제야 이렇게 회고를 정리해 본다. 이번 융합 프로젝트에서는 다시mk-develop.tistory.com서비스를 운영한다는 것은 그만큼 비용 문제가 발생한다. 프로젝트 당시엔 유레카에서 서버 비용을 지원해 주었지만 수료한 이후인 현 시점에서는 비용 문제에서 자유롭지 못했다. 운영 비용을 절감하는 것 또한 중요하다고 생각한다. 이를 생각하지 않으면 서비스가 커질 때 웃고 있는..
LG유플러스 유레카 2기 융합프로젝트 회고
·
이야기/회고
개요LG유플러스 유레카 과정의 마지막 프로젝트인 융합 프로젝트가 마무리되었다. 사실 프로젝트는 벌써 3주 전에 끝났지만, 이제야 이렇게 회고를 정리해 본다. 이번 융합 프로젝트에서는 다시 한 번 팀장을 맡게 되었고, 지난 종합 프로젝트 이후 계속 마음속에 두었던 고민이 있었다. 바로 단순히 만드는 것에 그치지 않고, 사람들이 실제로 사용하는데 불편함이 없는 완성도 높은 서비스를 만들자는 것이었다. 다행히도 이러한 내 생각에 공감하고 같은 방향을 바라보는 팀원들을 만날 수 있었다. 이번 프로젝트의 주제는 지도 기반 LGU+ 멤버십 제휴처 안내 서비스 Uble 이다. 이 글에서는 프로젝트를 진행하며 마주했던 어려움, 그리고 그 과정에서 했던 고민들을 기록해 보려고 한다.팀원의 프로젝트 중도 하차이번 프로젝트..