본문 바로가기

CS 아티클 리뷰

(4)
[Martin Fowler] Unit Test https://martinfowler.com/bliki/UnitTest.html bliki: Unit TestUnit Tests are focused on small parts of a code-base, defined in regular programming tools, and fast. There is disagreement on whether units should be solitary or sociable.martinfowler.com 1) 개요- 유닛 테스트는 소프트웨어 개발에서 자주 언급되는 용어이며, 프로그램을 작성하는 동안 항상 익숙했던 용어입니다.  그러나 대부분의 소프트웨어 개발 용어처럼 명확하게 정의되어 있지 않아서 사람들이  그것을 실제보다 더 엄밀하게 정의된 것으로 생각할 때 혼란..
[채널톡 블로그] CRDT와 OT 1) 개요 - CRDT와 OT란 동시편집 기술로, 실시간 협업 툴에 관련된 기술입니다.   최근 코로나19로 재택근무하는 회사가 많아지면서 '실시간 협업 애플리케이션'도 주목되고 있는 것 같습니다.  2) 실시간 협업 에디터가 동작되는 과정- CRDT와 OT를 설명하기 전에, 실시간 협업 에디터가 어떻게 동작하는지 생각해봅시다   Google Docs에서 두 명의 사용자가 똑같이 "Hello!"를 보고 있다고 할 때,   한 명은 Hello와 ! 사이에 World를 넣고, 다른 한 명은 ! 뒤에 :-) 이모티콘을 추가합니다.   이렇게 되었을 때 결과가 어떻게 나와야 할까요?   두 사용자가 입력한 값이 모두 합쳐져서, 'Hello World!:-)"가 나와야 합니다.   이러한 실시간 에디터에 사용되는..
How discord stores billions of messages https://discord.com/blog/how-discord-stores-billions-of-messages How Discord Stores Billions of MessagesWe decided early on to store all chat history forever so users can come back at any time and have their data available. This is a lot of data: how do we do it?discord.com 1) 개요- Discord는 우리가 예상했던 것보다 더 빠르게 성장하고 있으며, 사용자 생성 콘텐츠도 함께 증가하고 있습니다.  더 많은 사용자가 몰리면서 채팅 메시지도 더 많이 생성되고 있습니다.  7월에는 하루에 4천..
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 채팅 시스템 설계 (2) (6) 상세 설계 - 개략적 설계안에 포함된 컴포넌트 가운데 몇 가지를 골라 좀 더 자세히 들여다 보게 되는 것은   면접장에서 흔히 벌어지는 일이다.   채팅 시스템의 경우에는 서비스 탐색(service discovery), 메시지 전달 흐름,    그리고 사용자 접속 상태를 표시하는 방법 정도가   좀 더 자세히 살펴볼 만한 부분이다.(6-1) 서비스 탐색- 서비스 탐색 기능의 주된 역할은 클라이언트에게 가장 적합한 채팅 서버를 추천하는 것이다.  이 때, 사용되는 기준으로는 클라이언트의 위치(geographical location), 서버의 용량(capacity) 등이 있다.  서비스 탐색 기능을 구현하는 데 널리 쓰이는 오픈 소스 솔루션으로는 아파치 주키퍼(Apache Zookeeper) 같은 것..