diff --git a/final/FOSS/build1.png b/final/FOSS/build1.png new file mode 100644 index 0000000000000000000000000000000000000000..2e84b82bc1aa372f51fe2e279f87636ed54264b6 Binary files /dev/null and b/final/FOSS/build1.png differ diff --git a/final/FOSS/build2.png b/final/FOSS/build2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c935b40b6c9203e95ecaaabbeddd36f9dd562d4 Binary files /dev/null and b/final/FOSS/build2.png differ diff --git a/final/FOSS/build3.png b/final/FOSS/build3.png new file mode 100644 index 0000000000000000000000000000000000000000..313262b6b06df4f27e420ecfbf63fe6827cdf453 Binary files /dev/null and b/final/FOSS/build3.png differ diff --git a/final/FOSS/clone1.png b/final/FOSS/clone1.png new file mode 100644 index 0000000000000000000000000000000000000000..d16fe72e5ef3d82d2118d3008ea0e61ddf6b5aa2 Binary files /dev/null and b/final/FOSS/clone1.png differ diff --git a/final/FOSS/debug1.png b/final/FOSS/debug1.png new file mode 100644 index 0000000000000000000000000000000000000000..da1a2da6598ff9dcb93fcc6cca260962a2a62473 Binary files /dev/null and b/final/FOSS/debug1.png differ diff --git a/final/FOSS/debug2.png b/final/FOSS/debug2.png new file mode 100644 index 0000000000000000000000000000000000000000..8b08d9c173b7e332a3d9697e739daf766364d22f Binary files /dev/null and b/final/FOSS/debug2.png differ diff --git a/final/FOSS/debug3.png b/final/FOSS/debug3.png new file mode 100644 index 0000000000000000000000000000000000000000..58cc1acff90e7838a1320c44ea11150aeb2c33fa Binary files /dev/null and b/final/FOSS/debug3.png differ diff --git a/final/FOSS/git2.png b/final/FOSS/git2.png new file mode 100644 index 0000000000000000000000000000000000000000..6baad5a007b9f136f752158785fcc48b4e566a47 Binary files /dev/null and b/final/FOSS/git2.png differ diff --git a/final/FOSS/gitclone.png b/final/FOSS/gitclone.png new file mode 100644 index 0000000000000000000000000000000000000000..9c21083bda4fe95e84721cc51b63ab08169d38ef Binary files /dev/null and b/final/FOSS/gitclone.png differ diff --git a/final/FOSS/mingw_install.png b/final/FOSS/mingw_install.png new file mode 100644 index 0000000000000000000000000000000000000000..cb53250715c50a9a50a2c6cc4d634c621f9d45a2 Binary files /dev/null and b/final/FOSS/mingw_install.png differ diff --git a/final/FOSS/path1.png b/final/FOSS/path1.png new file mode 100644 index 0000000000000000000000000000000000000000..621f183d8d0af265ed1678d4d03d4f8e63a69fbc Binary files /dev/null and b/final/FOSS/path1.png differ diff --git a/final/FOSS/path2.png b/final/FOSS/path2.png new file mode 100644 index 0000000000000000000000000000000000000000..be84aac789135732163938686c8cd63a30cc8480 Binary files /dev/null and b/final/FOSS/path2.png differ diff --git a/final/FOSS/path3.png b/final/FOSS/path3.png new file mode 100644 index 0000000000000000000000000000000000000000..fc502d4d85e6d408de76d5c903950ddcde9e946d Binary files /dev/null and b/final/FOSS/path3.png differ diff --git a/final/FOSS/path4.png b/final/FOSS/path4.png new file mode 100644 index 0000000000000000000000000000000000000000..7a545d2b42d481c4ff1db9375959a4f9c9a6863c Binary files /dev/null and b/final/FOSS/path4.png differ diff --git a/final/FOSS/vs_git.png b/final/FOSS/vs_git.png new file mode 100644 index 0000000000000000000000000000000000000000..03b51014718ccbbecddc63587a3f8203be09b935 Binary files /dev/null and b/final/FOSS/vs_git.png differ diff --git a/final/FOSS/vsc_black.png b/final/FOSS/vsc_black.png new file mode 100644 index 0000000000000000000000000000000000000000..07622db6689499a31f3ac771d89318d87c09d6af Binary files /dev/null and b/final/FOSS/vsc_black.png differ diff --git a/final/FOSS/vsc_kor_addon.png b/final/FOSS/vsc_kor_addon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4317229245267d3b39b7ea3d63cad5a37d7756 Binary files /dev/null and b/final/FOSS/vsc_kor_addon.png differ diff --git a/final/FOSS/vsc_py.png b/final/FOSS/vsc_py.png new file mode 100644 index 0000000000000000000000000000000000000000..17cfd3f27fa07295d2e416f65ddbf0d2a0216f89 Binary files /dev/null and b/final/FOSS/vsc_py.png differ diff --git a/final/FOSS/vsc_py2.png b/final/FOSS/vsc_py2.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd64b703606fba262d9900ba930d4ba0ffee759 Binary files /dev/null and b/final/FOSS/vsc_py2.png differ diff --git a/final/FOSS/vsc_white.png b/final/FOSS/vsc_white.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa3615cbe204af1829c55c6087af68336d7fb48 Binary files /dev/null and b/final/FOSS/vsc_white.png differ diff --git a/final/FOSS/vscode1.png b/final/FOSS/vscode1.png new file mode 100644 index 0000000000000000000000000000000000000000..492bb3102db4e7b49b72273e7fc7084c231e398e Binary files /dev/null and b/final/FOSS/vscode1.png differ diff --git a/final/FOSS/vscode2.png b/final/FOSS/vscode2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c8be7790ab75e8aa8c9b9c64c73074cb312ab4 Binary files /dev/null and b/final/FOSS/vscode2.png differ diff --git a/final/FOSS/vscode3.png b/final/FOSS/vscode3.png new file mode 100644 index 0000000000000000000000000000000000000000..082936eaff783df24c6943829b8b6e7b96933937 Binary files /dev/null and b/final/FOSS/vscode3.png differ diff --git a/final/FOSS/vserror1.png b/final/FOSS/vserror1.png new file mode 100644 index 0000000000000000000000000000000000000000..be66ac7eaa1570f2255f82fa4d219da1bd236540 Binary files /dev/null and b/final/FOSS/vserror1.png differ diff --git a/final/FOSS/vserror2.png b/final/FOSS/vserror2.png new file mode 100644 index 0000000000000000000000000000000000000000..61e76f7bee18c3eb8f95e71dd55ea688c1ec50a1 Binary files /dev/null and b/final/FOSS/vserror2.png differ diff --git a/final/FOSS/winget.png b/final/FOSS/winget.png new file mode 100644 index 0000000000000000000000000000000000000000..284c4480804ab5b4dc631c7590fec9b5c4e0e8f7 Binary files /dev/null and b/final/FOSS/winget.png differ diff --git a/final/HelloWorld.py b/final/HelloWorld.py new file mode 100644 index 0000000000000000000000000000000000000000..1dc45ac13680332bc368aa383fec751aed9e6220 --- /dev/null +++ b/final/HelloWorld.py @@ -0,0 +1 @@ +print("Hello World!") \ No newline at end of file diff --git a/final/vsc_manual.md b/final/vsc_manual.md new file mode 100644 index 0000000000000000000000000000000000000000..2d6d140e8df1bd772e0911dc99e681b1fd185d7a --- /dev/null +++ b/final/vsc_manual.md @@ -0,0 +1,476 @@ +--- +title: "VSCodium Install & Usage Manual" +author: "김지훈" +date: '2021년 12월 27일' +output: html_document +--- + +# VSCodium 설치 및 사용법 + +## 목차 + +1. [VSCodium 소개](#1-vscodium-소개) + - [VSCode와 비교](#11-vscode와의-비교) + +2. [VSCodium 설치](#2-vscodium-설치) + - [Windows](#21-windows) + - [macOS](#22-macos) + - [Linux(Debian, Ubuntu)](#23-linux-debian-ubuntu) + - [RHEL](#24-rhel계열-linux-rhel-centos-fedora) + +- [VSCodium 설치 및 사용법](#vscodium-설치-및-사용법) + - [목차](#목차) +- [1. VSCodium 소개](#1-vscodium-소개) + - [1.1. VSCode와의 비교](#11-vscode와의-비교) +- [2. VSCodium 설치](#2-vscodium-설치) + - [2.1. Windows](#21-windows) + - [2.2. macOS](#22-macos) + - [2.3. Linux (Debian, Ubuntu)](#23-linux-debian-ubuntu) + - [2.4. RHEL계열 Linux (RHEL, CentOS, Fedora)](#24-rhel계열-linux-rhel-centos-fedora) +- [3. 프로그래밍 환경 구축](#3-프로그래밍-환경-구축) + - [3.1. C/C++ 프로그래밍 환경 구축](#31-cc-프로그래밍-환경-구축) + - [3.2. Python 작업환경 구축하기](#32-python-작업환경-구축하기) +- [4. Git 연동](#4-git-연동) +- [5. 단축키 소개](#5-단축키-소개) +- [6. 기타 유용한 Addon](#6-기타-유용한-addon) +- [7. VSCodium의 한계](#7-vscodium의-한계) +- [8. clangd with Ubuntu](#8-clangd-with-ubuntu) + - [굳이 오픈소스를 써야한다면... LINUX를 쓰자!](#굳이-오픈소스를-써야한다면-linux를-쓰자) + - [7.1. 부가기능이 뭐가 중요해?](#71-부가기능이-뭐가-중요해) +- [9. VSCode의 Repository로 변경?](#9-vscode의-repository로-변경) +- [10. 부록.](#10-부록) + - [10.1. VSCode에서 C/C++ 빌드 및 디버깅 환경 구축](#101-vscode에서-cc-빌드-및-디버깅-환경-구축) + - [10.2. VSCode에서 Python 빌드 및 디버깅 환경 구축](#102-vscode에서-python-빌드-및-디버깅-환경-구축) + - [10.3. git commit](#103-git-commit) +- [11. 마무리](#11-마무리) + - [너무나도 강력한 에디터](#너무나도-강력한-에디터) + - [그러나 단점도...](#그러나-단점도) + - [결론](#결론) + +*** + +# 1. VSCodium 소개 + + - VSCodium은 MS사가 개발한 Electon 프레임워크 기반 텍스트 에디터의 **하드포크**임 + + - VSCode는 소스코드는 MIT라이선스로 공개되어있음 + + - 하지만 바이너리 릴리즈는 MS사의 상표가 포함되어있는 **프리웨어**임 + - 이러한 문제를 제거한 하드포크가 VSCodium임 + + - 따라서 VSCodium은 **오픈소스 소프트웨어** 임 + +## 1.1. VSCode와의 비교 + + ||VSCodium|VS Code| + |---|---|---| + |소프트웨어 구분|오픈소스 소프트웨어|프리웨어| + |Repository|자체|MS 제공| + |MS 추가 기능|없음|있음| + |사용자 정보 수집|없음|있음| + +*** + +# 2. VSCodium 설치 + +## 2.1. Windows + +- 윈도우 패키지 매니저 사용 + > 주의 : 윈도우 패키지 매니저는 Windows 10 1709 이상에서만 작동합니다. + + Windows Terminal(Powershell) or Command Promport에 아래 코드 입력 + + winget install vscodium + winget 미작동시 + - [Microsoft Store](https://www.microsoft.com/en-us/store/apps/windows) 에서 윈도우 패키지 매니저 다운로드 + +## 2.2. macOS + +- brew 사용 +> brew 설치에 관하여는 이 [링크](https://brew.sh/index_ko) 참조 + + brew install --cask vscodium + +## 2.3. Linux (Debian, Ubuntu) + - Repository GPG 키 추가 + + wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \ + | gpg --dearmor \ + | sudo dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg + + - Repository 추가 + + echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main' \ + | sudo tee /etc/apt/sources.list.d/vscodium.list + - Repository 업데이트 밑 설치 + + sudo apt update && sudo apt install codium + +## 2.4. RHEL계열 Linux (RHEL, CentOS, Fedora) + + - Repository GPG 키 추가 + + sudo rpmkeys --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg + + - Repository 추가 + + printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=download.vscodium.com\nbaseurl=https://download.vscodium.com/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg\nmetadata_expire=1h" | sudo tee -a /etc/yum.repos.d/vscodium.repo + + - VSCodium 설치 + + sudo dnf install codium + +*** + +# 3. 프로그래밍 환경 구축 + +## 3.1. C/C++ 프로그래밍 환경 구축 + +1. gcc compiler 다운로드 (MinGW-w64 사용) 및 설치 + [MinGW-w64 다운로드](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download) : Sourceforge + 이 때 설치폴더는 ```C:\mingw64```로 지정한다. + +2. 환경 변수 추가 +시스템 환경변수 Path에 MinGW-w64에서 gcc등 컴파일러가 있는 bin 폴더를 추가한다. + + C:\mingw64\bin + +1. 빌드 환경 구성하기 + + 실행 -> 빌드 작업 실행 -> 빌드 작업 구성... -> task.json 파일 만들기 -> Others + 이후 tasks.json 파일의 내용을 전부 지우고 아래의 내용으로 교체하기 + >주의 : 이 때 정상적으로 터미널이나 명령프롬포트에서 gcc 명령을 수행 할 수 있어야 하며 환경변수 추가 후 VSCodium에서 터미널 재실행 필요 + + { + "version": "2.0.0", + "runner": "terminal", + "type": "shell", + "echoCommand": true, + "presentation": { + "reveal": "always" + }, + "tasks": [ + { + "label": "C++ 파일 저장하고 컴파일하기", + "command": "g++", + "args": [ + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "group": "build", + "problemMatcher": { + "fileLocation": [ + "relative", + "${workspaceRoot}" + ], + "pattern": + { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + } + }, + { + "label": "C파일 저장하고 컴파일", + "command": "gcc", + "args": [ + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "group": "build", + "problemMatcher": { + "fileLocation": [ + "relative", + "${workspaceRoot}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + } + }, + { + "label": "실행", + "command": "cmd", + "group": "test", + args": [ + "/C", + "${fileDirname}\\${fileBasenameNoExtension}" + ] + }, + ] + } + +## 3.2. Python 작업환경 구축하기 + +1. Python 확장 설치하기 + Ctrl + Shift + X를 눌러 Marketplace 방문 -> Python 검색후 ms-python이 제공하는 Python 확장 설치 + >주의 : VSCodium은 IDE가 아니므로 해당 언어에 대한 인터프리터가 미리 설치되어 있지 않다. 해당 확장 프로그램은 파이썬을 설치하는 것이 아닌 IntelliSense, Code Highlight 등 파이썬 편집에 도움이 되는 도구 등을 설치한 것으로 파이썬 코드 실행을 위해선 시스템에 맞는 파이썬이 별도로 설치되어 있어야 한다. + +2. System 환경에 맞는 Python 설치 + >팁 : VSCodium은 터미널 명령어를 통해 Python을 실행하므로 파이선 설치시 환경변수에 파이썬 경로를 추가하는 옵션을 선택하면 이후에 따로 환경변수를 추가 할 필요없이 터미널에서 Python이 실행 가능해진다 + + >주의 : Python 다운로드 후 터미널 재 실행 필요 + + Python : [Python 다운로드](https://www.python.org/) + +3. Python 디버깅 환경 설정 + 1. 실행 및 디버그 (CTRL + SHIFT + D) 탭 선택 후 launch.json 파일 만들기 선택 + <img src="./FOSS/debug1.png" alt="debug1"/> + 2. 파이썬 버튼 클릭 + <img src="./FOSS/debug2.png" alt="debug2"/> + 3. 파이썬 파일 선택 + <img src="./FOSS/debug3.png" alt="debug3"/> + +4. 파이썬 빌드 환경 설정 + tasks.json 파일의 마지막 }, 다음줄에 해당 코드를 추가해준다. + >주의 : 이 때 정상적으로 터미널이나 명령프롬포트에서 python 명령을 수행 할 수 있어야 하며 VSCodium에서 터미널 재실행 필요 + ``` + { + "label": "Python 3", + "type": "shell", + "command":"python", + "args":["${file}"], + "group":{ + "kind":"build", + "isDefault":true + }, + "presentation":{ + "echo":true, + "reveal":"always", + "focus":false, + "panel":"shared", + "showReuseMessage":true, + "clear":true + } + }, + + +*** + +# 4. Git 연동 + +1. System에 맞는 Git 설치 +git [다운로드](https://git-scm.com/download/win) : git-scm +2. F1을 눌러 git-clone 명령어 실행 + <img src="./FOSS/gitclone.png" alt="git1"/> +3. 또는 소스제어 버튼 (CTRL + SHIFT + G)를 눌러 새 Git repository 현재 워크스페이스에 설정 + <img src="./FOSS/git2.png" alt="git2"/> + + +*** + +# 5. 단축키 소개 +- 필자가 중요하다고 생각하는 단축키를 소개해보고자 함 + +|단축키|단축키 설명|단축키 명령어 ID| +|---|---|---| +|CTRL + X|현재 커서의 행 잘라내기|editor.action.clipboardCutAction| +|CTRL + SHIFT + K|현재 커서의 행 삭제|editor.action.deleteLines| +|CTRL + /|현재 줄 주석처리|editor.action.commentLine| +|CTRL + K 이후 CTRL + C|여러 행 주석처리|editor.action.addCommentLine| +|CTRL + K 이후 CTRL + U|주석처리 해제|editor.action.removeCommentLine| +|CTRL + SHIFT + Enter|현재 커서 위에 행 추가|editor.action.insertLineBefore| +|CTRL + SHIFT + F|현재 폴더에서 찾기|workbench.view.search| +|CTRL + H|현재 파일 내용 바꾸기|editor.action.startFindReplaceAction| +|CTRL + SHIFT + H|현재 폴더 내용 바꾸기|workbench.action.replaceInFiles| +|CTRL + S|파일 저장|workbench.action.files.save| +|CTRL + W|열린 파일 닫기|workbench.action.files.closeWindow| +|CTRL + O|파일 열기|workbench.action.files.openFile| +|CTRL + N|파일 생성|workbench.action.files.newUntitiledFile| +|CTRL + K 이후 CTRL + F|(지원하는 파일에 한에서) 들여쓰기 정렬|editor.action.formatSelection| + +# 6. 기타 유용한 Addon + +1. Error Lens : `usernamehw.errorlens ` + - 코드에 에러가 있으면 오버레이로 보여주는 확장 +2. Braket Pair Colorizer 2 : `coenraads.bracket-pair-colorizer-2` + - 서로 맞는 괄호끼리 같은 색상으로 보여줘 가독상을 향상시켜주는 확장 +3. Better Comments : `aaron-bond.better-comments` + - 주석의 색을 지정할 수 있게 되어 가독성을 향상시켜주는 확장 + +*** + +# 7. VSCodium의 한계 + +- VSCodium은 VSCode를 기반으로 한 강력한 오픈소스 텍스트 에디터임은 분명하다 +- 하지만 오픈소스를 택하면서 MS와 관련된 것을 제거하는 데에 있어 VSCode의 분명한 장점인 VSCode의 Marketplace를 이용할 수가 없다. +- VSCode에서 제공되는 강력한 툴이 VSCodium에선 사용이 불가능한 경우도 있고 정말 필요한 Addon이 VSCodium에선 제공되지 않는 경우도 있다. +- C/C++ 개발의 경우가 그러한데 VSCodium에서는 VSCode의 C/C++ Addon을 사용할 수 없어 디버깅이나 IntelliSense등의 기능이 제공되지 않는 불편함이 존재한다. + > [소스코드 라이선스](https://github.com/microsoft/vscode-cpptools/blob/main/LICENSE.md) + [런타임 라이선스](https://github.com/microsoft/vscode-cpptools/blob/main/RuntimeLicenses/cpptools-LICENSE.txt) + 즉 Visual Studio Code의 모든 Microsoft의 Addon은 VSCodium에선 사용할 수 없다. +- 훌륭한 대체제인 LLVM의 clang은 사실상 Windows에선 Visual Studio 사용을 강제하기 때문에 Windows 사실상 완전한 오픈소스 소프트웨어만을 사용한 C/C++ 개발은 많이 불편할 수 밖에 없다. + > Ubuntu계열에선 VS Build tools 없이 clang, clangd 설치로 clangd 확장기능을 이용할 수 있다. + +*** + +# 8. clangd with Ubuntu + +## 굳이 오픈소스를 써야한다면... LINUX를 쓰자! + + +1. clang 설치 + + sudo apt install clang + +2. clangd 설치 + + sudo apt install clangd-12 +3. clangd 확장 설치 +```llvm-vs-code-extensions.vscode-clangd``` +4. task.json에 구문 추가 + + { + "label": "Save file and Compile C With clang", + "command": "clang", + "args": [ + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}.out" + ], + "group": "build", + "problemMatcher": { + "fileLocation": [ + "relative", + "${workspaceRoot}" + ], + "pattern": { + "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + } + }, + +## 7.1. 부가기능이 뭐가 중요해? + +- Windows에서 C/C++ 부가기능 없이 오류가 있는 C코드를 보았을 때 + <img src="./FOSS/vserror1.png" alt="err"/> +- 빌드 수행 시 + + c:\Users\tarry\Documents\vscode_workspace\HelloWorld.c: In function 'main': + c:\Users\tarry\Documents\vscode_workspace\HelloWorld.c:5:27: error: expected ';' before '}' token + printf("Hello World!") + ^ + ; + } +- clangd가 설치되어있는 Ubuntu에서 오류가 있는 C코드를 보았을 때 + <img src="./FOSS/vserror2.png" alt="err2"/> + - clangd가 현재 파일에 오류가 있음을 보여주고 어느 부분에서 오류가 발생했는지 빌드하지 않아도 알 수 있음 + +# 9. VSCode의 Repository로 변경? + +- VSCodium이 Repository를 변경했듯이 유저가 원하는 Repository로 변경이 가능하긴 하다. +- 하지만. VSCode의 Repository를 다른 소프트웨어에서 사용하는 것은 __라이선스 위반이다__. +- 따라서 필자는 그러한 방법을 여기서 제공하지 않기로 한다. + +*** + +# 10. 부록. + +## 10.1. VSCode에서 C/C++ 빌드 및 디버깅 환경 구축 + +1. VSCode 설치하기 + + - Windows + + winget install vscode + - macOS + + brew install --cask visual-studio-code + - Ubuntu / Debian + + sudo apt-get install curl + + sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg' + + sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' + + sudo apt update && apt install code + +2. VSCode 확장 설치 + + Marketplace (CTRL + SHIFT + X) 에서 ```ms-vscode.cpptools``` 검색 후 설치 + +3. 빌드 작업 실행 (CTRL + SHIFT + B) + - 이전 실습에서 MinGW, PATH 환경변수 설정을 모두 완료했다고 가정 + <img src="./FOSS/vscode1.png" alt="code1"/> + +4. 디버깅 실행 (F5) + 1. C++ (GDB/LLDB) 선택 + <img src="./FOSS/vscode2.png" alt="code2"/> + 2. gcc.exe 선택 + <img src="./FOSS/vscode3.png" alt="code3"/> + - 디버깅을 완료했다면 자동으로 디버거가 launch.json 환경설정을 추가해줘 활성파일에서 CTRL + SHIFT + B 만으로 바로 빌드할 수 있다. + +## 10.2. VSCode에서 Python 빌드 및 디버깅 환경 구축 + +1. Python 확장 설치 + + Marketplace (CTRL + SHIFT + X)에서 ```donjayamanne.python-extension-pack``` 검색 후 설치 + +2. tasks.js 추가 + + - 마지막 대괄호 전 중괄호에 ,를 추가하고 해당 문구 추가후 설정 저장 + + { + "label": "Python 3", + "type": "shell", + "command":"python", + "args":["${file}"], + "group":{ + "kind":"build", + "isDefault":true + }, + "presentation":{ + "echo":true, + "reveal":"always", + "focus":false, + "panel":"shared", + "showReuseMessage":true, + "clear":true + } + }, + +3. 디버깅 환경 구축 + + 1. 실행 및 디버그(CTRL + SHIFT + D)에서 실행할 디버거 선택 -> 구성추가 + <img src="./FOSS/vsc_py.png" alt="py1"/> + 2. Python 선택 + <img src="./FOSS/vsc_py2.png" alt="py2"/> + + - 자동으로 디버그 구성환경인 launch.json에 파이썬 구성이 추가된다. + +## 10.3. git commit + +- 소스제어 (CTRL + SHIFT + G)로 현재 변경사항 확인 후 메세지 작성 및 커밋 +<img src="./FOSS/vs_git.png" alt="git1"/> + +# 11. 마무리 + +## 너무나도 강력한 에디터 + - VSCode/VSCodium은 Electon 프레임워크를 이용한 텍스트에디터 **Atom**의 정신적 후계자이며 수많은 Addon으로 IDE 못지않은 기능을 제공한다. + - 기존의 IDE보다 월등히 가벼운 프로그램 + - 운영체제에 구애받지 않는 폭넓은 지원 + - git과의 연동성이 무척 강한것도 큰 장점 + +## 그러나 단점도... + - VSCodium은 오픈소스 소프트웨어란 장점도 있지만 MS사의 강력한 Addon을 사용하지 못하는 단점도 분명히 *존재*. + - 강력함에도 불구하고 모든 개발환경이 설치하면 자동으로 구성되는 IDE와는 다르게 직접 인터프리터와 어떠한 인터프리터를 어떻게 사용할건지 설정해야한다는 어려움도 존재. + +## 결론 + - 다양한 환경에서 발휘할수 있는 강력한 텍스트 에디터로 *컴퓨터 공학* 을 전공한다면 꼭 알아야할 프로그램이다. \ No newline at end of file