LunarVim 설치 가이드 LunarVim이란? 2015년 neovim이 출시되고 나서 5년이 넘는 기간 동안 neovim이 제공하는 훌륭한 native API를 이용해서 수많은 플러그인들이 릴리즈 되어 왔습니다. LunarVim은 이 플러그인들을 모아서 IDE처럼 사용해보고자 2021년에 릴리즈된 opinionated neovim입니다. 왜 LunarVim을 써야 하나요? 해보신 분들은 아시겠지만 neovim을 손수 IDE만큼 기능을 갖출 수 있게 플러그인을 설치하는 것은 생각보다 쉽지 않습니다. 플러그인을 선별하는 것부터 에러없이 설치하고 config까지 세팅하는 것은 꽤나 시간과 정신력을 갉아먹는 일이죠. 그러므로 LunarVim은 다음과 같은 분들에게 추천드립니다: 프로그래밍에 이제 막 입문했는..
DAP 세팅 lunarvim(혹은 neovim)에서 DAP를 세팅하는 방법에 대해 알아봅니다. DAP란? DAP는 마이크로소프트에서 본인들의 제품인 vscode에 적용하기 위해 작성한 명세서로 LSP 와 같은 개념으로 이해할 수 있습니다. 다만 대부분의 텍스트 에디터에서 LSP는 중요한 기능이므로 first-class 취급을 받는데 반해 DAP는 상대적으로 등한시되는 부분이 분명히 존재합니다. 실제로 neovim에서 DAP는 built-in이 되어있지 않기도 하며 이로 인해 기본적인 세팅을 하는데 상당한 어려움이 존재하여 이에 대한 가이드를 작성합니다. DAP 구조 이해하기 DAP는 크게 아래 3개의 컴포넌트로 구성되어 있습니다. DAP Adapter 위에서도 언급하였듯이 DAP는 실체가 없는 명세서이므..
일반적인 환경이라면 ~/.vimrc에 다음과 같은 설정 한줄만으로 neovim의 y, d, c 등의 커맨드가 OS의 클립보드가 복사가 되어야 합니다. set clipboard+=unnamedplus:checkhealth를 통해 clipboard의 동작 여부를 확인해보면 제대로 동작하고 있다면 다음과 같이 나와야 합니다. ## Clipboard (optional) - OK: Clipboard tool found: win32yank하지만 WSL2의 환경에서 동작이 되지 않는 경우 다음과 같은 에러 메시지를 보게 됩니다. ## Clipboard (optional) - WARNING: No clipboard tool found. Clipboard registers (`"+` and `"*`) will not w..
ESC 클릭시에 한영 전환되도록 설정하는 스크립트는 많이 존재하는데 특정 프로그램 실행 중에만 한영 전환 되도록 하는 스크립트를 찾을 수 없어 해당 코드를 공유하고자 합니다. #If WinActive("ahk_exe notepad.exe") OR WinActive("ahk_exe notepad++.exe") OR WinActive("ahk_exe Code.exe") OR WinActive("ahk_exe studio64.exe") OR WinActive("ahk_exe idea64.exe") OR WinActive("ahk_exe webstorm64.exe") $Esc:: if(IME_CHECK("A")) Send, {VK15} Send, {Escape} return #If /* IME check */ ..
최근에 오렌지파이5를 구매하고 기존에 진행했던 프로젝트를 해당 기기에 도커를 통해 배포하면서 만난 여러가지 문제점들을 기록해두고자 한다. 사실 대부분의 문제점은 도커를 오랜만에 사용하면서 기존에 만나보았던 문제점들이지만 도커를 자주 사용할 것같지 않아 미리 정리해두려 한다. 아키텍처 가장 먼저 직면했던 것은 아키텍처 문제였다. Windows 환경에서 개발한, 즉 x86_64, amd64 아키텍처 환경에서 개발하고 amd64 아키텍처에 배포하던 기존의 환경에서 arm64, aarch64 아키텍처에 배포하면서 아키텍처가 다른 문제가 발생한 것이었다. 가장 먼저 개발 환경의 아키텍처와 배포 환경의 아키텍처를 확인이 필요한데 다음 커맨드를 통해 확인할 수 있다. $ lscpu | grep Architecture..
CRDT CRDT란 무엇일까? CRDT는 synchronization이나 consensus와 같은 비싼 작업없이도 conflict가 발생하지 않음이 보장되는 오브젝트를 의미합니다. CRDT이기 위해서는 모든 업데이트가 commutative하고 eventual consistency함을 만족해야 합니다. CRDT에 대해 설명하기 전에 2011년에 처음으로 발표된 논문의 Abstract를 읽고 시작하겠습니다. Eventual Consistency(EC)를 기반으로 하는 분산 데이터 시스템은 어떤 로컬 머신이라도 리모트 머신의 동기화의 도움없이 업데이트하는 것이 가능해진다. 이는 클라우드와 같은 큰 규모의 분산 시스템에서도 performance와 scalibility를 보장해준다. 하지만 이전까지의 EC를 이용..
Capslock을 오래(0.1초 이상) 누르고 있으면 Ctrl로 동작하고 0.1초 이내로 짧게 누르는 경우 0.1초 이내에 Capslock 요청이 한 번 더 온다면 Esc로 동작, 짧게 눌렀고 요청이 한 번 더 오지 않는다면 한영전환(vk15)로 동작하게 된다. Ctrl을 누르는 경우 Modifier key로 동작하게 하기 위함(다른 키가 더 입력되기를 기다리는)이 대부분이기 때문에 오래 누르고 있는 경우 {Control Down}으로 인식하고 로직이 끝난 후에 {Control Up}을 진행한다. $Capslock:: KeyWait, Capslock, T0.1 if (ErrorLevel) ;long press Send, {Ctrl Down} else { KeyWait, Capslock, D T0.1 ;s..
docker-compose.yml docker-compose.yml 파일을 생성 후 다음과 같이 작성해준다. version: '3.8' services: mongodb: image: mongo container_name: my_mongo restart: always ports: - 27017:27017 volumes: - my_volume:/data/db environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=root - MONGO_INITDB_DATABASE=my_schema volumes: my_volume: 이때 docker에 의해 관리되는 volume으로 생성하기 위해서는 services와 같은 level에서 volu..
root 계정 비밀번호 변경 오렌지파이는 기본적으로 root 계정의 비밀번호가 orangepi로 되어있으므로 이를 수정해줘야 한다. root 계정으로 전환 su root Password: {orangepi 입력} 비밀번호 변경 sudo passwd root New password: Retype new password: 일반 계정 sudo 기능 활성화 usermod -aG sudo orangepi su orangepi 방화벽 설정 간단하게 방화벽을 설정할 수 있는 ufw 패키지 설치 (좀 더 복잡하게 이용해야 하는 유즈케이스라면 iptable을 이용한다) sudo apt-get install ufw 로컬 내의 모든 기기에서 SSH 접속 허용 sudo ufw allow from 192.168.xxx.0/24..
해당 포스트는 이제 막 MicroController에 입문하고 공식 문서를 따라해본 초보가 작성한 것이므로 영어로 된 공식 문서를 읽는데 문제가 없는 분들은 공식 메뉴얼을 보고 따라하는 것을 추천합니다. 구매 Shenzhen Xunlong Software CO.,Limited 오피셜 사이트에 나와있는 오피셜 벤더 4곳 중 하나로 8GB 기준 11만 5천원 + 배송비 1만 2천원 총합 12만 7천원의 가격으로 구매하였다. (2022-12-12 기준) 충전기 충전기는 5V 4A 이상의 "믿을만한" 충전기(애플, 삼성 수준의) 를 이미 가지고 있다면 오렌지파이 정식 충전기를 구매하지 않아도 된다. 고속 충전기를 사용하더라도 contract에 따른 PD negotiation 이후에 고속 충전이 시작되므로 이론적..
- Total
- Today
- Yesterday
- 루나빔
- vim
- lunarvim
- 도커
- RequestBody
- 배포
- 레디스
- IDE
- Dap
- JavaScript
- neovim
- RequestPart
- RequestParam
- 아키텍처
- ModelAttribute
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |