본문 바로가기

Computer Science

(19)
[CRDT] CRDT 심화 정리 [CRDT] CRDT 기본 원리 정리CRDT 원리를 담은 동영상위 영상을 기반으로 핵심 내용들만 정리한 내용입니다. 동시편집이란?동시 편집은 동시에 시작한 작업이 원하는 화면에서 같은 화면으로 종료시키고자하는 방식입니다.devysi0827.tistory.com위 기본 원리를 이해한 다음에 쓰는 글입니다.  마찬가지로 martin kleppmann 씨의 심화 영상을 정리한 내용입니다. CRDT와 OT는 원리가 응용되어서 널리 사용되고 있지만, 학문적으로 직면한 문제들이 있습니다. 그에 대한 소개들입니다. (사람들과) 합의는 되었으나...  예상과 다른 결과들 앞 글에서 설명한 원리들로 CRDT는 여러 사람이 같은 화면(합의)을 보게 만들 수는 있지만, 합의가 예상한 결과는 아닙니다. 위 예시 사진처럼 1..
[구현] JS 순열/ 조합 순열function getPermutations(arr, r) { const result = []; function permute(temp, remaining) { if (temp.length === r) { result.push([...temp]); // r개의 길이만큼 선택한 경우 결과에 추가 return; } for (let i = 0; i - 사용한 원소를 하나씩 제거해서 다음으로 넘기는 방식조합function getCombinations(arr, r) { const result = []; function combine(temp, start) { if (temp.length === r) ..
[팁] JS 코딩테스트 기본 문법들 Readline Readline | Node.js v12.22.12 DocumentationReadline# Source Code: lib/readline.js The readline module provides an interface for reading data from a Readable stream (such as process.stdin) one line at a time. It can be accessed using: const readline = require('readline'); The following simple examplnodejs.org 현대 softeer, 앨리스 코딩, 백준 등에서 직접 readline을 서술해야할 때 다음 문법을 기억해두면 좋다. // 최초 가로열 = n, ..
네트워크의 기초 구성 요소 본 내용은 "혼자 공부하는 네트워크 1장" 내용을 기반으로 작성하였습니다. 네트워크의 구성 요소- host : 네트워크 가장자리에 위치한 노드. 서버, 데스크톱, 스마트폰 등의 네트워크 기기- server : 어떠한 서비스를 제공하는 host- client : 어떠한 서비스를 요청하는 host- 네트워크 장비 : 네트워크 가장자리에 위치하지 않은 노드로 호스트가 정보를 주고 받는 것을 도움 ex). 이더넷 허브, 스위치, 라우터, 공유기 - 통신 매체 : 각 노드를 연결하는 매체- 메시지 : 통신 매체로 연결된 노드가 주고받는 정보네트워크 분류[네트워크 범위]- LAN (Local Area Network) : 근거리 연결 통신망- WAN (Wide Area Network) : 원거리 연결 통신망  - I..
[CRDT] CRDT 기본 원리 정리 CRDT 원리를 담은 동영상위 영상을 기반으로 핵심 내용들만 정리한 내용입니다. 동시편집이란?동시 편집은 동시에 시작한 작업이 원하는 화면에서 같은 화면으로 종료시키고자하는 방식입니다.즉, 여러 유저들 간 수정 내역들을 통합하고 병합하여 최종적으로 같은 화면을 보게 만들어야합니다.- 최종적으로 같은 화면으로 수렴되는 성질을 convergence property(수렴 속성)이라 합니다. 이는 consensus(합의)와 비슷하지만 다릅니다. 익숙한 병합도구로 git이 있습니다. 하지만, git은 같은 줄을 편집하여 충돌이 생긴 경우 수동으로 편집해야합니다.가장 유명한 도구로는 google docs가 있습니다. Google Docs 구글 독스는 로컬 복사본과 서버를 이용하여 OT(Operational Tran..
Hash 함수 해시함수란?해시 함수(hash function)는 임의의 길이를 가진 데이터를 입력받아 고정된 길이의 값, 즉 해시값을 출력하는 함수입니다해시값은 입력 데이터로부터 유도되기 때문에 동일한 입력은 항상 동일한 해시값을 갖게 됩니다. 주로 다음과 같이 사용합니다.- 데이터의 무결성을 검증하기 위하여 ex). 암호학, 데이터 무결성 검증- 데이터의 빠른 검색을 위하여 ex). hash table- 데이터의 균등한 배치를 위하여 ex). Consistent hashing 쉬운 해시 함수의 예제로 5로 나누었을 때가 있습니다. 나머지를 취하는 해시 함수로 0~4의 해시값을 반환합니다. 해시 함수의 특징 1. 단방향성해시 함수는 단방향성을 가지고 있어서 입력 데이터에서 해시값으로의 변환은 쉽지만, 해시값에서 원래 ..
여러 번 읽는 게 중요한 거 같다. 여러 번 읽는 게 중요한 거 같다. 1번 보면, 대략적인 그림을 파악하다가 무언가 알긴 하는데, 잘 모른다. 2번 보면, 대략적인 그림을 그제야 파악한다. 3번 보면, 목차가 자세히 보인다. 4번 보면, 모르는 용어들들로 인해 애매한 부분을 확인하고 이을 수 있게 된다. 5번 보면, 모르는 용어들을 이해하면서, 그림이 선명해진다. 6번 보면, 이제야 선명하게 무언가가 보인다. 7번 보면, 단원(내용) 사이에 연관성이 그려진다. 8번 보면, 다시 연관성에서 모르고 흐릿했던 부분이 겨우 이어진다. 9번 보면, 대략적인 그림과 지금 보는 그림이 너무나 다름을 알게된다. 내가 머리가 안 좋은 지, 대략 저런 흐름을 따라간다. 몇 개가 합쳐지기도 하고, 넘어가지 못하고 반복되어서 더 길어지기도 하는 거 같다. 사..
평생 조금씩 공부하자 항상 가슴이 답답했다. 개발자는 평생 이렇게 공부만 하면서 살아야할까 하고. 근데, 세상에 어떤 일이든 비슷한 거 같다. 개발자든 아니든, 계속 새로운 일을 마주하게 되고 실패하기도 하고 성공하기도 한다. 실패하고 한계를 마주했다면 방법을 찾아야한다. 주로 공부가 되겠지. 이 때, 스스로 공부하기를 멈추고 쉬면 거기까지인 거 같다. 쉬는 게 나쁜 게 아니다. 쉴 때도 있는 거지. 욕심이 나서 스스로를 채찍질하고 더 나아갈 수 있으면 나아가는 거고. 채찍질 할 힘이 필요하면 잠시 쉬어가고 그런 거 같다. 나는 평생 조금씩 나아가기로 했다. 취미생활마냥 꾸준히 나아가는 거지. 느낌이 오면 몇 시간씩 몰두도 해보고, 질리면 적당히 나아가면서 꾸준히 조금씩 계속 앞으로 가는 것이 목표가 되었다. 비교나 조바심이..