그동안 Windows11에서 WSL2를 이용해 Ubuntu로 개발을 해왔다. 웹캠과 Intel 내장 그래픽카드 등 하드웨어 장치를 WSL2에 인식시키는 것을 제외하고는 큰 불편함이 없었다. 그럼에도 Native Ubuntu보다는 항상 설정을 한두 가지 더 해주어야 하는 사소한 불편함이 있었다. 그래서 앞으로는 Ubuntu를 Native OS로 이용해보려고 한다.
(2024. 8. 30. 수정) Ubuntu 24.04를 이용해 보자.
개발 환경 정의
- OS
- Native: Ubuntu 24.04 LTS
- IDE
- VS Code latest-release
- Containerization
- Docker
- Language
- C++ STD 17
- Compiler
- GCC latest-release
- Clang latest-release
- Build System
- CMake latest-release
- VCS
- Git latest-release
① Regions & Language → Manage Installed Languages → "language support" 설치 → Install / Remove Language "Korean" 설치
② Settings 재실행 → Language를 Korean으로 설정 → Log Out -> "다시 묻지 않기", "예전 이름 유지" 선택
③ 키보드 → 입력 소스 → "한국어 (Hangul)" 추가 → 우측 상단 메뉴 바에서 "ko"를 "한국어"로 변경
④ 키보드 → 키보드 바로 가기 → 바로 가기 보기 및 사용자 설정 → 입력 중 → "사용 않음"으로 변경
⑤ 지역 및 언어 → 언어 "영어"로 변경 → 로그아웃
⑥ Keyboard → Input Sources → Korean (Hangul) ⋮ → Preferences → Hangul Toggle Key → Remove "Shift+space" → OK
① Region & Language → Language: '한국어'로 변경
② Restart
③ "현재 언어로 표준 폴더의 이름을 업데이트 하시겠습니까?" → 다시 묻지 않기 + 예전 이름 유지(영어로 유지)
④ 키보드 → 입력 소스: '한국어(Hangul)' 추가
⑤ Ubuntu 상단 bar 우측에서 'ko'를 '한국어'로 변경
⑥ 키보드 바로 가기 → 바로 가기 보기 및 사용자 설정 → 입력 중 → '사용 않음'으로 변경
⑦ 지역 및 언어 → 언어: '영어'로 변경
⑧ 다시 시작
TODO: .dockerfile
로 컨테이너 환경 구축 자동화하기 [zzwon1212 - 예시 파일]
$ sudo usermod -aG docker
key를 디폴트 위치에 저장하고, 비밀번호를 설정한다.
$ ssh-keygen -t ed25519 -C "zzwon1212@gmail.com"
> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
SSH 에이전트를 시작한다.
$ eval "$(ssh-agent -s)"
생성한 개인 키를 에이전트에 추가한다.
$ ssh-add ~/.ssh/id_ed25519
생성된 공개 키를 복사한다.
$ cat ~/.ssh/id_ed25519.pub
git config --global init.defaultBranch main
현재 디렉토리에서 Git 저장소를 초기화
$ git init
GitHub에서 repository 생성
Git과 GitHub 원격 저장소를 연결
$ git remote add origin <Repository URL>
작업 후 push
$ git add test.txt
$ git commit -sm "Test commit"
$ git push -u origin main
<CTRL-SHIFT-P>
)에서 'Preferences: Open User Settings (JSON)'에 아래 내용을 추가하자."clangd.detectExtensionConflicts": false,
"C_Cpp.intelliSenseEngine": "disabled"