개요 정션/심볼릭 링크는 대부분 윈도우에서 사용하는 NTFS 파일 시스템의 디렉토리/파일 간 연결이다. 리눅스의 ln을 통한 심볼릭/하드 링크와 유사한 역할을 한다. 경로를 단순화하거나 특정 도구에서 고정된 경로를 요구하는데 옮기기 복잡한 등의 경우 유용하다. 바로가기와도 비슷해 보이지만 바로가기는 사용자가 GUI에서 상호작용할 때 사용하는 파일...
개요 docker은 루트 권한을 필요로 하므로 여러 부분에서 문제가 되는데 보안상 위험의 여지가 크고 공유 볼륨에 root 소유권으로 파일이 저장 및 수정되거나 반대로 UID를 변경하면 컨테이너 내에서도 root 권한을 사용할 수 없고 이를 해소하기 위한 userns-remap 기능을 사용하는 경우에도 제약이 많고 관리가 복잡함 ...
git rebase 여러 커밋을 하나로 합치는게 더 추적하기 용이하거나, 커밋명을 변경해야 할 일이 있는 경우 git rebase -i를 사용한다. 기본적으로 rebase 작업은 기존 커밋을 새 커밋으로 대체하는, 기록 자체는 변경하는 작업이므로 공유된 브랜치에서 사용하는 것은 권장하지 않는다. 로컬 또는 개인 브랜치에서 공유되지 않은 영역에만 ...
VSCode에서 vim과 copilot 키 충돌 vim에서 esc는 Insert모드에서 빠져나갈때 사용하지만, copilot의 코드 자동완성을 취소할 때 쓰는 것과 꼬이는 경우가 많다. 해결하는 방법 중 하나는 자동완성 시 먼저 copilot에게 키 입력을 보내게 하고, 자동완성 제안이 없는 경우는 vim으로 입력을 넘겨주는 것이다. 방법 ...
기존 function의 특징 function foo() { console.log('bar'); } function으로 생성한 함수의 용도 및 특징은 다음과 같다 단순 함수로 사용 가능 생성자 함수로 사용 가능 객체 메서드로 사용 가능 this 바인딩의 비직관성 너무 범용적이기 때문에 이런 모든 상황에 대한 이해가 없다면...
개요 Windows 사용자 기준으로 macOS 사용시 사용하면 좋은 기능을 정리한다 주요 키 차이점 윈도우에서 Ctrl를 통한 단축키 대부분이 Cmd에 할당되어있고 Ctrl은 거의 사용하지 않는다 Enter는 실행, 폴더 들어가기가 아니라 파일 변경이다. Cmd + down이 실행 단축키다 단축키 ...
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에서 병합 방식은 크게 4가지로 분류할 수 있다. fast-forward merge 3-way merge rebase squash 아래 설명에서는 dev 브랜치를 main으로 병합하는 과정을 예시로 설명한다. fast-forward merge # <main 브랜치> git merge dev ...
개요 smb 서버 등에 여러번 연결하려고 시도할 때 발생하는 오류이다 주로 서버를 직접 구축하는 등의 상황에서 여러번 시도할때 발생한다 해결 방법 기본적으로 재부팅하면 연결이 끊기므로 해결된다 # 현재 연결된 서버 확인 net use # 지정한 서버 연결 끊기 net use 서버주소 /delete 또는 터미널에서 위 명령어를 입력해 ...
개요 PC1과 PC2 사이를 이동하며 프로젝트를 작업해야 할 때, 커밋하기에는 현재 작업물이 애매한 경우 임시로 저장 후 이동하는 상황에 이용할 수 있는 방법이다. PC1이 임시로 변경 사항을 저장하고 옮겨야 하는 PC, PC2가 옮겨야 하는 PC다. (PC1) 임시로 커밋 및 푸시 git add . git commit -m "DEV: 2508...
DISKPART DISKPART는 Windows에서 기본 제공되는 디스크 및 파티션 관리를 위한 CLI 프로그램이다 일반적인 경우 디스크 관리 GUI 창에서 관리할 수 있으나, 파일시스템이 깨졌거나 타 OS를 설치해 디스크 관리에서 확인할 수 없는 경우 DISKPART를 이용해 관리할 수 있다. 사용법 () 터미널에서 diskpa...
인레이 힌트 추가 javascript/typescript에서 암시적으로 지정된 타입 힌트를 표시한다 확장이 아닌 VSCode 내장 기능이다 Ctrl + ,로 설정에 들어가 “inlay” 를 검색 Editor > Inlay Hints : Enabled 옵션을 활성화한다. (on 또는 onUnlessPressed) 스크롤을 아래로...
1. 설치 go.dev 홈페이지에서 플랫폼에 맞는 tar 파일을 내려받는다 이 글에서는 Linux를 기준으로 설명한다 2. 이전 버전 해 삭제 및 설치 rm -rf /usr/local/go tar -C /usr/local <tar 파일 경로> sudo가 필요할 수 있다. 3. 환경변수 지정 echo "export PATH...
Go 언어 설치 설치
개요 npm 패키지의 기반 프로젝트 세팅에 대해 작성한다. typescript 사용 alias import 사용 rollup을 통한 빌드 및 번들링 *.cjs, *.mjs에 대해 각각 결과물 출력 *.d.ts 를 통한 타입 지원 배경지식 WIP ESM, CommonJS 차이 프로젝트 생성 yarn 이 포스트에서는 n...
자동실행 방지 “Settings” 이동 (Ctrl + ,) settings.json 이동 jest 검색 후 아무 옵션에서 *settings.json에서 편집 클릭 마지막에 다음 줄 추가 "jest.runMode": "on-demand"
vector let v: Vec<i32> = Vec::new(); let v: Vec<i32> = vec![]; let v = vec![1, 2, 3, 4]; 크기가 가변적인 배열이다. 초기값을 지정하지 않는다면 명시적으로 타입을 지정해야 한다. 메서드 //push()로 추론이 가능하므로 타입 생략 가능 let mut ...
구조체 정의 // 구조체 정의 struct User { name : String, email: String, } // 구조체 생성 let user = User { name : String::from("hve"), email: String::from("hve@example.com") } 필드 초기화 단축 문법 (fie...
Rust 설치 설치 Rust 설명 기본 정리 소유권 구조체
소유권 소유권(ownership)은 메모리 안전성을 보장하기 위한 개념으로 세가지 규칙을 가진다. 각 값은 소유자(owner)라 불리는 변수를 가진다. 한 시점에 특정 값의 소유자는 단 하나 뿐이다. 소유자의 생명 주기가 끝나면 그 값은 자동으로 해제(drop)된다. c++에서 사용되는 RAII와 유사한 개념으로 볼 수 있으며, 해...