포스트

Zed로 PS/CP를 즐기기

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 ModeOn 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도 충분히 좋은 대안이 될 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.