Zed로 PS/CP를 즐기기
이 글에서는 다음과 같은 내용을 다룹니다.
- 윈도우 환경에서 IDE, 에디터, 개발환경
- 윈도우에서 WSL을 통한 PS/CP 환경 설정
- 윈도우에서 Zed를 사용한 C++ 컴파일 설정
다양한 IDE 및 에디터
윈도우 환경에서 PS/CP를 즐길 때 주로 아래 에디터 혹은 IDE를 사용합니다. 에디터와 IDE의 차이점은 컴파일러와 빌드 환경의 제공 여부입니다. IDE는 컴파일러와 빌드 환경을 제공하고 에디터의 경우에는 그렇지 않습니다.
- Visual Studio (IDE)
- Code::Blocks (IDE)
- Dev-C++ (IDE)
- Visual Studio Code (Editor)
추천하지 않습니다. Visual Studio는 개발 환경을 구성하기 쉽고 강력한 디버깅 기능을 제공하며 윈도우 앱을 개발한다면 표준적인 IDE입니다. 다만, PS/CP에서 사용하기에는 너무 방대한 기능과 많은 리소스를 사용합니다. 즉, IDE가 다소 무겁습니다.
초보자에게 추천합니다. Code::Blocks와 Dev-C++에 경우에는 설치 후 즉시 사용 가능이라는 간편함을 제공하여 초보자에게 추천되지만 현대적이지 못한 UI, 부족할 수도 있는 기능, 불안정한 유지보수, 버전에 따라 최신 C++ 기능을 사용하지 못하는 문제가 존재합니다.
중급자 이상에게 추천합니다. Visual Studio Code는 Electron 기반으로 제작된 앱으로써 가볍고 확장성이 뛰어나며 다양한 커스터마이징을 제공합니다. CPH-Helper와 같이 PS/CP에 유용한 확장이 존재합니다. 반면, 초기 설정이 필요하고 많은 확장을 설치할 경우 느려질 수 있습니다. PS/CP를 위해 사용할 경우 AI 기능을 비활성화하는 과정이 다소 번거로울 수 있습니다.
Zed를 추천하는 이유
이 글에서 소개할 Zed는 Rust로 개발되어 빠른 속도와 쾌적한 환경을 제공하는 에디터입니다. 지속적인 유지보수과 업데이트가 계속되고 있으며 AI 기능을 제공하면서도 쉽게 On-Off 할 수 있는 장점이 있습니다. 다만 아직 개발 중인 에디터로 미완성 기능이나 일부 버그가 있을 수 있으며 초기 설정이 필요합니다. 빠른 속도와 쾌적한 개발 환경을 원하신다면 Zed를 추천합니다.
다양한 빌드 환경
윈도우 환경에서 C++를 컴파일, 빌드하기 위해서는 아래와 같은 환경을 사용합니다.
- MSVC (Visual Studio에서 사용)
- MinGW (Code::Blocks, Dev-C++에서 사용)
- MSYS2
- WSL (Windows Subsystem for Linux)
MSVC는 Visual Studio에서 사용하는 C++ 빌드 도구로 마이크로소프트에서 개발하였습니다. Visual Studio을 설치하여 C++로 개발할 경우 MSVC를 사용하게 됩니다.
MinGW와 MSYS2은 GCC 기반 C/C++ 컴파일러와 Unix 스타일 개발 도구를 윈도우 환경에서 사용할 수 있게 해 주는 환경입니다.
PS에서 WSL 사용을 추천하는 이유
WSL은 Windows Subsystem for Linux의 약자로 윈도우 환경에서 Linux 환경을 제공합니다. WSL을 사용하면 아래와 같은 이점을 얻을 수 있습니다.
- 채점 서버와 비슷한 환경 구성
- 컴파일러 등 다양한 개발 도구의 쉬운 설치
- Linux CLI의 명령어 사용
- Visual Studio Code, Zed와 높은 연동성
다만, WSL을 원활하게 사용하기 위해서는 Linux에 대한 이해가 필요합니다.
WSL을 설치하는 방법
WSL을 설치하는 방법은 간단합니다. 관리자 모드에서 PowerShell을 열고 wsl --install을 입력한 후 재부팅하면 설치할 수 있습니다.
1
wsl --install
재부팅 후 WSL을 실행하여 아이디와 비밀번호를 입력해 프로필을 생성합니다.
아래를 입력하여 패키지를 업데이트합니다.
1
sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove
아래를 입력하여 개발 도구와 GDB를 설치합니다.
1
sudo apt install build-essential gdb -y
WSL 설치가 완료되었습니다.
Zed 설치 및 설정
Zed 홈페이지에서 Zed를 설치합니다.
WSL 터미널에서 아래를 실행하여 폴더를 생성하고 Zed를 실행합니다.
1
2
3
4
cd ~
mkdir baekjoon
cd baekjoon
zed .
환경 설정
zed가 실행되었다면 ctrl+shift+p를 눌러 명령어 팔레트를 열어 zed: open tasks을 검색합니다. 아래 내용을 대괄호 안에 추가합니다.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"label": "C++: Build active file",
"command": "g++",
"args": [
"-std=gnu++20",
"-O2",
"-Wall",
"-Wextra",
"-o",
"$ZED_DIRNAME/$ZED_STEM",
"$ZED_FILE"
],
"cwd": "$ZED_DIRNAME",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always"
},
{
"label": "C++: Build active file (Debug)",
"command": "g++",
"args": [
"-std=gnu++20",
"-O0",
"-g",
"-Wall",
"-Wextra",
"-o",
"$ZED_DIRNAME/$ZED_STEM",
"$ZED_FILE"
],
"cwd": "$ZED_DIRNAME",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always"
},
{
"label": "C++: Run active file",
"command": "$ZED_DIRNAME/$ZED_STEM",
"cwd": "$ZED_DIRNAME",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always"
}
ctrl+shift+p를 눌러 명령어 팔레트를 열어 zed: open debug tasks을 검색합니다. 아래 내용을 대괄호 안에 추가합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"label": "Debug active C++ file",
"adapter": "CodeLLDB",
"request": "launch",
"build": {
"command": "g++",
"args": [
"-std=gnu++20",
"-O0",
"-g",
"-Wall",
"-Wextra",
"-o",
"$ZED_DIRNAME/$ZED_STEM",
"$ZED_FILE"
],
"cwd": "$ZED_DIRNAME"
},
"program": "$ZED_DIRNAME/$ZED_STEM",
"cwd": "$ZED_DIRNAME"
}
ctrl+shift+p를 눌러 명령어 팔레트를 열어 zed: open keymap을 검색합니다. 아래 내용을 대괄호 안에 추가합니다.
1
2
3
4
5
6
7
{
"context": "Workspace",
"bindings": {
"shift-b shift-b": ["task::Spawn", {"task_name": "C++: Build active file (Debug)"}],
"shift-r shift-r": ["task::Spawn", {"task_name": "C++: Run active file"}],
}
}
필수 옵션
ctrl+,을 입력하여 설정에 들어가 auto save를 검색합니다. Auto Save Mode를 On Focus Change혹은 선호하는 설정으로 변경합니다.
ctrl+,을 입력하여 설정을 엽니다. AI -> Disable AI에서 AI 기능을 비활성화 할 수 있습니다.
테스트
ctrl-n을 활용해 main.cpp파일을 생성하여 아래를 입력합니다.
1
2
3
4
5
6
7
8
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "Hello, Zed\n";
}
만약 한글 입력 상태라면 실행이 안 될 수 있습니다. shift+b를 연속해서 2번 눌러 컴파일을 할 수 있습니다. shift+r를 연속해서 2번 눌러 실행을 할 수 있습니다. 컴파일 후에 실행이 가능합니다.
F4 혹은 F5를 눌러 Debug active C++ File을 실행합니다. Zed는 자동으로 CodeLLDB를 설치할 것입니다.
결론
이제 윈도우에서도 WSL + Zed 조합으로 빠르고 쾌적한 C++ PS/CP 환경을 사용할 수 있습니다.
- 빠른 실행 속도
- 가벼운 에디터 환경
- Linux 기반 채점 환경과 유사한 개발 경험
VS Code가 무겁게 느껴졌다면 Zed도 충분히 좋은 대안이 될 수 있습니다.