Hve Blog
취소

Windows | 정션과 심볼릭 링크

개요 정션/심볼릭 링크는 대부분 윈도우에서 사용하는 NTFS 파일 시스템의 디렉토리/파일 간 연결이다. 리눅스의 ln을 통한 심볼릭/하드 링크와 유사한 역할을 한다. 경로를 단순화하거나 특정 도구에서 고정된 경로를 요구하는데 옮기기 복잡한 등의 경우 유용하다. 바로가기와도 비슷해 보이지만 바로가기는 사용자가 GUI에서 상호작용할 때 사용하는 파일...

Docker | docker 루트리스 모드로 실행하기

개요 docker은 루트 권한을 필요로 하므로 여러 부분에서 문제가 되는데 보안상 위험의 여지가 크고 공유 볼륨에 root 소유권으로 파일이 저장 및 수정되거나 반대로 UID를 변경하면 컨테이너 내에서도 root 권한을 사용할 수 없고 이를 해소하기 위한 userns-remap 기능을 사용하는 경우에도 제약이 많고 관리가 복잡함 ...

Git | rebase - 커밋 명칭 수정 및 합치기

git rebase 여러 커밋을 하나로 합치는게 더 추적하기 용이하거나, 커밋명을 변경해야 할 일이 있는 경우 git rebase -i를 사용한다. 기본적으로 rebase 작업은 기존 커밋을 새 커밋으로 대체하는, 기록 자체는 변경하는 작업이므로 공유된 브랜치에서 사용하는 것은 권장하지 않는다. 로컬 또는 개인 브랜치에서 공유되지 않은 영역에만 ...

트러블슈팅 | VSCode에서 vim과 copilot 키 충돌

VSCode에서 vim과 copilot 키 충돌 vim에서 esc는 Insert모드에서 빠져나갈때 사용하지만, copilot의 코드 자동완성을 취소할 때 쓰는 것과 꼬이는 경우가 많다. 해결하는 방법 중 하나는 자동완성 시 먼저 copilot에게 키 입력을 보내게 하고, 자동완성 제안이 없는 경우는 vim으로 입력을 넘겨주는 것이다. 방법 ...

JS | function을 사용하지 말것

기존 function의 특징 function foo() { console.log('bar'); } function으로 생성한 함수의 용도 및 특징은 다음과 같다 단순 함수로 사용 가능 생성자 함수로 사용 가능 객체 메서드로 사용 가능 this 바인딩의 비직관성 너무 범용적이기 때문에 이런 모든 상황에 대한 이해가 없다면...

MAC | 초기 세팅

개요 Windows 사용자 기준으로 macOS 사용시 사용하면 좋은 기능을 정리한다 주요 키 차이점 윈도우에서 Ctrl를 통한 단축키 대부분이 Cmd에 할당되어있고 Ctrl은 거의 사용하지 않는다 Enter는 실행, 폴더 들어가기가 아니라 파일 변경이다. Cmd + down이 실행 단축키다 단축키 ...

Claude Code | 팁

MCP claude mcp add MCP 목록 # context7 claude mcp add --transport http context7 https://mcp.context7.com/mcp --header "CONTEXT7_API_KEY: YOUR_API_KEY"

Git | git 병합 방법

깃 병합 방법 git에서 병합 방식은 크게 4가지로 분류할 수 있다. fast-forward merge 3-way merge rebase squash 아래 설명에서는 dev 브랜치를 main으로 병합하는 과정을 예시로 설명한다. fast-forward merge # <main 브랜치> git merge dev ...

트러블슈팅 | "동일한 사용자가 둘 이상의 사용자 이름으로 서버 또는 공유 리소스에 다중 연결할 수 없습니다"

개요 smb 서버 등에 여러번 연결하려고 시도할 때 발생하는 오류이다 주로 서버를 직접 구축하는 등의 상황에서 여러번 시도할때 발생한다 해결 방법 기본적으로 재부팅하면 연결이 끊기므로 해결된다 # 현재 연결된 서버 확인 net use # 지정한 서버 연결 끊기 net use 서버주소 /delete 또는 터미널에서 위 명령어를 입력해 ...

Git | 임시로 커밋하고 제거하기

개요 PC1과 PC2 사이를 이동하며 프로젝트를 작업해야 할 때, 커밋하기에는 현재 작업물이 애매한 경우 임시로 저장 후 이동하는 상황에 이용할 수 있는 방법이다. PC1이 임시로 변경 사항을 저장하고 옮겨야 하는 PC, PC2가 옮겨야 하는 PC다. (PC1) 임시로 커밋 및 푸시 git add . git commit -m "DEV: 2508...

DISKPART | 윈도우 디스크 및 파티션 관리

DISKPART DISKPART는 Windows에서 기본 제공되는 디스크 및 파티션 관리를 위한 CLI 프로그램이다 일반적인 경우 디스크 관리 GUI 창에서 관리할 수 있으나, 파일시스템이 깨졌거나 타 OS를 설치해 디스크 관리에서 확인할 수 없는 경우 DISKPART를 이용해 관리할 수 있다. 사용법 () 터미널에서 diskpa...

VSCode | typescript 설정

인레이 힌트 추가 javascript/typescript에서 암시적으로 지정된 타입 힌트를 표시한다 확장이 아닌 VSCode 내장 기능이다 Ctrl + ,로 설정에 들어가 “inlay” 를 검색 Editor > Inlay Hints : Enabled 옵션을 활성화한다. (on 또는 onUnlessPressed) 스크롤을 아래로...

Go | 설치

1. 설치 go.dev 홈페이지에서 플랫폼에 맞는 tar 파일을 내려받는다 이 글에서는 Linux를 기준으로 설명한다 2. 이전 버전 해 삭제 및 설치 rm -rf /usr/local/go tar -C /usr/local <tar 파일 경로> sudo가 필요할 수 있다. 3. 환경변수 지정 echo "export PATH...

Hub | Golang

Go 언어 설치 설치

Node.js | npm 패키지 프로젝트 세팅

개요 npm 패키지의 기반 프로젝트 세팅에 대해 작성한다. typescript 사용 alias import 사용 rollup을 통한 빌드 및 번들링 *.cjs, *.mjs에 대해 각각 결과물 출력 *.d.ts 를 통한 타입 지원 배경지식 WIP ESM, CommonJS 차이 프로젝트 생성 yarn 이 포스트에서는 n...

VSCode | jest 확장 자동실행 방지

자동실행 방지 “Settings” 이동 (Ctrl + ,) settings.json 이동 jest 검색 후 아무 옵션에서 *settings.json에서 편집 클릭 마지막에 다음 줄 추가 "jest.runMode": "on-demand"

Rust | rust 개념 정리 - 컬렉션

vector let v: Vec<i32> = Vec::new(); let v: Vec<i32> = vec![]; let v = vec![1, 2, 3, 4]; 크기가 가변적인 배열이다. 초기값을 지정하지 않는다면 명시적으로 타입을 지정해야 한다. 메서드 //push()로 추론이 가능하므로 타입 생략 가능 let mut ...

Rust | rust 개념 정리 - 구조체

구조체 정의 // 구조체 정의 struct User { name : String, email: String, } // 구조체 생성 let user = User { name : String::from("hve"), email: String::from("hve@example.com") } 필드 초기화 단축 문법 (fie...

Hub | Rust 언어 정리

Rust 설치 설치 Rust 설명 기본 정리 소유권 구조체

Rust | rust 개념 정리 - 소유권

소유권 소유권(ownership)은 메모리 안전성을 보장하기 위한 개념으로 세가지 규칙을 가진다. 각 값은 소유자(owner)라 불리는 변수를 가진다. 한 시점에 특정 값의 소유자는 단 하나 뿐이다. 소유자의 생명 주기가 끝나면 그 값은 자동으로 해제(drop)된다. c++에서 사용되는 RAII와 유사한 개념으로 볼 수 있으며, 해...