본문 바로가기

전체 글28

순 (旬) 旬 초순, 중순, 하순 이라는 말은 실생활에서도 자주 쓰인다. 원래 대충 초반, 중반, 후반이라는 뜻으로 이해하고 있었는데, 이번에 순이 '열흘 순' 이라는 한자라는 것을 알게 되었다. 초순 (1~10), 중순 (11~20), 하순(21~30) 이 정확한 의미이다. 달에서만 사용하는 한자는 아니고, 10년을 순년, 10달을 순월, 나이를 셀 때 10살을 1순이라고 한다. 칠순 잔치 할 때의 '순'이 '열흘 순' 자 이다. 육순, 칠순, 팔순... 그런데 육순이라고는 안하고 보통 환갑이라고 하지 않나? 갑은 60년을 의미하는데, 십간 십이지를 결합해서 만들 수 있는 가짓수가 총 60개이고 해마다 순서대로 바뀌게 된다. 예를 들어 최근 '임진' 으로부터 60년이 지나면 다시 '임진' 인 해가 온다는 것이다... 2023. 11. 30.
[번역] Anti-Caching: A New Approach to Database Management System Architecture Anti-Caching: A New Approach to Database Management System Architecture Justin DeBrabant, Andrew Pavlo, Stephen Tu 원문 ABSTRACT 디스크 기반 관계형 데이터베이스 관리 시스템(DBMS)을 구축하는 전통적인 방법은 메인 메모리 블록 캐시와 함께 디스크에 저장된 고도로 인코딩된 블록으로 데이터를 구성하는 것입니다. 이러한 시스템은 높은 디스크 대기 시간을 고려하여 성능을 개선하기 위해 여러 트랜잭션이 동시에 데이터베이스에 액세스할 수 있는 동적 레코드 수준 잠금 기능을 갖춘 다중 스레드 아키텍처를 사용합니다. 이전 연구에 따르면 이로 인해 온라인 트랜잭션 처리(OLTP) 애플리케이션에 상당한 오버헤드가 발생하는 .. 2023. 8. 15.
Journaling 파일 시스템에는 Journaling 이라는 모드가 존재한다. 먼저, 기술적인 이야기를 하기 전에 단어를 보며 어떤 것을 하려는지 유추해보자. Journey 는 여정이란 뜻을 갖고 있는데, 여정 가운데 발생한 수많은 변화, 반응에 대해 기록하는 것을 Journaling 이라고 한다. 파일 시스템에는 계속해서 읽기 및 쓰기 작업이 발생할텐데, 파일 시스템에 변화를 일으키는 쓰기 작업에 대한 변화들을 기록하는 것을 Journaling 모드라고 한다. 변화를 모두 저장하는 만큼 쓰기 작업에 대한 리소스가 더욱 많이 들지만, 시스템 충돌 및 비정상적 작동으로 인한 종료가 발생하게 됐을 때 작업하고 있던 내용에 대한 복구가 쉬워진다. 이 장점은 작업하던 내용의 용량이 클 때 더욱 부각된다. 보통 스토리지에 실제 쓰.. 2023. 8. 13.
이더리움 프라이버시: 익명성 (Stealth address, Gas Ticketing) 얼마 전 비탈릭 부테린이 이더리움이 성숙해지는 데 필요한 세 가지 전환이라는 주제로 글을 썼다. 그 세 가지는 L2 스케일링, 스마트 컨트랙트 지갑, 프라이버시이며, 이 글에서는 프라이버시에 대해 다룬다. 불과 몇 년 전만 해도 이더리움 계정은 단순히 자산의 전송으로만 사용되었으나, ENS, POAP, NFT, 소울 바운드 토큰 등이 만들어지며 계정에 자산 정보 외에도 여러 데이터가 포함되고 있다. 즉, 계정에 개인 정보들이 포함되기 시작한 것이다. 이에 따라 온체인에서 하는 활동과 개인 정보 간 링크가 생기게 되었고 프라이버시를 갖기 어려워졌다. 예를 들어 프라이버시(i.e. 익명성)가 보장된 온체인 활동을 하고 싶다고 가정해보자. 사용자는 새로운 계정을 만들 것이다. 만들어진 계정은 아무런 내역도, .. 2023. 6. 24.
상동성과 상사성 생물학에는 상동성, 상사성이란 말이 있다. 상동성이란 지금은 거리가 먼 두 종이 특정 형질을 지닌 공통조상에서 분화되기 전에 그 형질을 물려받아 이후에 발현된 신체 부위, 신체 과정을 가지고 있을 때 발생한다. (e.g. 포유류의 앞다리 뼈, 새의 날개) 상사성, 또는 상사관계란 형질은 서로 다른 두 종이 비슷한 문제에 관한 합리적 해결책으로서 각각 독립적으로 발달시킨 것을 의미한다. 그 예로, 사람의 손과 개구리의 손을 보자. 엄지 손가락과 네 개의 손가락 구성의 비슷한 손을 갖고 있는데, 사람과 개구리는 손의 형성 과정이 완전히 다르기 때문에 공통된 조상으로부터 물려받은 것이 아니라고 유추할 수 있다. 그럼에도 손의 구조가 매우 비슷해보인다. 이번에는 사람의 눈과 문어의 눈의 구조를 보자. 둘 다 렌.. 2023. 6. 10.
CPU 캐시를 고려한 최적화 사례 Repeat(s string, count int) string strings.Repeat("hi", 5) --> "hihihihihi" Golang 기본 라이브러리 strings의 Repeat 메서드는 넘긴 s 문자열을 count 번 반복하고, 그 문자열을 리턴하는 메서드다. 최적화 전 기존 코드를 먼저 보자. func Repeat(s string, count int) string { if count == 0 { return "" } // Since we cannot return an error on overflow, // we should panic if the repeat will generate // an overflow. // See Issue golang.org/issue/16237 if cou.. 2023. 5. 23.