본문 바로가기

기타32

블룸필터(Bloom Filter) 개념 소개와 예제 이번 포스트에서는 ‘블룸필터(BloomFilter)’의 개념과 특징을 알아보고 사용 예제를 통해 언제 어떻게 활용할 수 있는지 알아보겠다. 목차 블룸필터(Bloom Filter) HBase, Redis 같은 고성능이 필요한 소프트웨어는 블룸필터(Bloom Filter)라는 자료구조를 사용한다. 블룸필터를 사용하면 불필요한 리소스 소모를 줄일 수 있어 소프트웨어의 전반적인 성능을 끌어 올릴 수 있다. 블룸필터는 집합 내에 특정 원소가 존재하는지를 확인할 수 있는 확률적인 자료구조다. 디스크 입출력이나 네트워크 통신 혹은 스핀락 같은 성능 저하를 유발시킬 수 있는 작업들 앞에 블룸필터를 추가해서 하지 않아도 되는 작업을 건너 뛸 수 있게 해주는 장치다. 블룸필터의 원리 블룸필터의 동작 방식을 그림을 통해 확.. 2023. 6. 1.
[Mac] 터미널에서 ls 색상을 리눅스처럼 변경하기 리눅스 개발환경에서 작업하는 사용자가 macOS에서 터미널을 사용하면 뭔지모를 위화감이 드는 경우가 있다. 명령어 사용법은 비슷한데 출력되는 화면이 익숙하지 않은 느낌이다. 실제로 리눅스에서 ls 명령어를 실행했을 때와 맥에서 ls 명령어를 실행했을 때의 결과 화면은 차이점이 있다. ls 명령으로 출력되는 현재 디렉토리의 엔트리 리스트를 표현할 때, 리눅스와 맥의 색상이 다르다. 맥과 리눅스 환경을 동시에 사용하기 때문에 일관된 색상 설정으로 맞춰주고 싶었다. 맥과 리눅스의 ls 색상 차이 맥과 리눅스의 ls 명령어 사이에는 약간의 차이점이 있다. 리눅스는 GNU ls 명령을 사용하고, 맥은 BSD 계열의 ls 명령어를 사용한다. 동일한 이름의 명령어이지만 바이너리가 다르기 때문에 출력되는 결과물도 약간.. 2023. 3. 29.
AppleSilicon 맥에서 protobuf-2.5.0 빌드하기 #include #elif defined(GOOGLE_PROTOBUF_ARCH_ARM) #include #elif defined(GOOGLE_PROTOBUF_ARCH_AARCH64) #include #elif defined(GOOGLE_PROTOBUF_ARCH_ARM_QNX) #include #elif defined(GOOGLE_PROTOBUF_ARCH_MIPS) M1 Pro 맥 환경에서 구글 protobuf-2.5.0 바이너리를 빌드할 일이 있었다. 아쉽게도 최신 protobuf에서는 M1 Pro 같은 Arm64 환경을 지원했지만 사용해야하는 protobuf-2.5.0 버전에서는 지원하지 않아 빌드가 실패했다. 그래서 몇 가지 패치를 적용해서 빌드를 했다. 패치 내용 우선 Add Arm64 Atomic.. 2023. 3. 20.
[Mac] 맥에 Maven 설치하기 macOS에 개발환경을 세팅하고 있다. 자바 개발에 필요한 메이븐(Maven)을 설치하자. 우선 메이븐을 설치하기 위해서 Homebrew를 설치해야한다. 다음 포스트를 참고해서 Homebrew를 설치하면 된다. M1 Pro 맥북에 Git 설치하기, Homebrew 설치하기 개발용 노트북으로 M1 Pro 맥북 프로를 받았다. git을 설치해보자. 우선 git을 설치하기 위해서 맥을 위한 패키지 관리 소프트웨어인 Homebrew를 설치해야한다. 이미 설치되어 있는 경우면 Homebrew 설치 hbase.tistory.com homebrew를 설치하고 mvn을 설치하자. brew install mvn brew install을 이용해서 간단하게 메이븐을 설치할 수 있다. homebrew가 알아서 다운로드하고 잘.. 2023. 3. 16.
[Mac] iTerm2 설치 및 설정 맥 운영체제에는 기본 터미널 앱이 제공된다. 터미널 앱을 이용해서 ssh 접속을 하거나 CLI 명령들을 충분히 수행할 수 있다. 하지만 맥을 사용하는 개발자들은 기본 터미널 대신 더 많은 기능을 제공하는 iTerm2 앱을 많이 사용한다. 이번 포스트에서는 iTerm2 앱을 설치하고 기본적인 설정들을 해보겠다. 1. iTerm2 설치 iTerm2는 공식홈페이지를 통해 다운로드해서 설치하거나 Homebrew 명령을 통해서 설치할 수 있다. Homebrew를 통해 설치하려면 다음 명령을 실행하면 된다. $ brew install iterm2 명령을 실행하면 % brew install iterm2 Running `brew update --auto-update`... ==> Auto-updated Homebrew.. 2023. 3. 15.
[Mac] Homebrew 설치 후 'zsh: command not found: brew' 오류 해결방법 맥 운영체제에 개발환경을 세팅하는 과정에서 Homebrew를 설치하게 되었다. 원래는 정상적으로 돌아야하지만 brew install 명령을 실행하려니 다음 에러가 발생했다. $ brew install mvn zsh: command not found: brew macOS의 기본 쉘인 zsh에서 brew 명령어를 찾을 수 없다는 에러를 띄우는 것이다. macOS에 Homebrew를 설치하는 방법은 다음 포스트를 참고하자. (Link : Homebrew 설치) 이 에러는 Homebrew가 /usr/loca/* 경로가 아닌 /opt/homebrew/* 에 설정되어 있기 때문에 발생한다. PATH 환경변수에 /opt/homebrew/* 경로를 추가해주면 에러를 우회할 수 있다. zsh의 설정을 변경하자. vi ~.. 2023. 3. 14.
M1 Pro 맥북에 Git 설치하기, Homebrew 설치하기 개발용 노트북으로 M1 Pro 맥북 프로를 받았다. git을 설치해보자. 우선 git을 설치하기 위해서 맥을 위한 패키지 관리 소프트웨어인 Homebrew를 설치해야한다. 이미 설치되어 있는 경우면 Homebrew 설치는 넘어가도 된다. Homebrew 설치 https://brew.sh/ 페이지에 접속하면 Homebrew를 설치할 수 있는 명령어를 복사할 수 있다. 명령어를 복사하고 터미널 앱을 열어서 붙여넣고 실행하면 된다. 설치가 시작되면 Password: 문구가 출력되면서 비밀번호를 입력받는다. 맥북의 비밀번호를 입력하면 설치가 시작된다. 설치가 완료되고 brew help 명령어를 실행해서 제대로 설치되었는지 확인한다. M1 Pro 맥북의 경우 다음 에러가 발생했었다. zsh: command not.. 2023. 3. 11.
[Windows] 터미널 경고음 소리 끄기 윈도우에서 터미널 작업을 하다보면 지울 글씨가 없는 상황에서 백스페이스를 누르거나 자동완성 될 것이 없는데 TAB 키를 누르는 경우 경고음이 나온다. 개인적으로 백 스페이스와 탭 키를 자주 누르는 편인데, 그 때마다 터미널에서 경고 음이 들려나와 시끄럽고 거슬렸다. 윈도우 터미널 경고음 소리 끄기 윈도우 설정 앱을 실행한다. '시스템' 항목을 클릭한다. '소리' 탭을 선택하고 아래쪽에 '앱 볼륨 및 장치 기본 설정' 항목을 선택한다. 그러면 앱 볼륨 및 장치 기본 설정 메뉴 중에 '콘솔 창 호스트' 같은 항목이 있을 것이다. 이 항목의 볼륨 값을 0으로 설정하면 된다. 2023. 1. 23.
[Windows] WSL1을 WSL2로 업그레이드 하는 방법 윈도우에는 WSL(Windows Subsystem for Linux)라는 훌륭한 시스템이 있다. 윈도우에서 마치 리눅스를 사용하는 것처럼 인터페이스를 제공한다. WSL1 vs. WSL2 WSL은 버전 1과 버전 2가 있다. WSL 버전 2의 경우 OS 파일 시스템 간의 성능을 제외하면 WSL 버전 1보다 더 많은 기능과 뛰어난 성능을 보여준다. 그 밖에 WSL2로 올리지 않으면 사용할 수 없는 기능들이 몇 개 있어서 현재 사용 중인 WSL 버전 1을 WSL2로 올리기로 했다. WSL2 업그레이드 Powershell을 열고 다음 명령을 실행한다. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /nore.. 2023. 1. 18.