Appearance
Windows에서 환경 설정하기
Windows에서는 WSL2 안의 Ubuntu를 실습 환경으로 사용합니다. IOI 채점 환경은 Ubuntu 계열입니다.
Windows에서는 Windows Subsystem for Linux(WSL)를 사용해 Ubuntu를 설치하고, 이후 실습과 컴파일은 WSL 내부에서 진행합니다.
WSL을 설치하면 Windows 안에 Ubuntu용 Linux 파일 시스템이 만들어집니다. Windows의 C 드라이브와 완전히 같은 위치는 아니지만, Windows와 Ubuntu 양쪽에서 서로의 파일에 접근할 수 있습니다.
질문이 필요하면 문제 해결 문서의 질문 양식대로 준비한 뒤 문의합니다.
설치 중 막히면 임의로 다른 도구를 설치해 우회하지 말고 문제 해결 문서의 질문 양식에 맞춰 문의합니다.
Windows에 WSL과 Ubuntu 설치하기
Windows에서 WSL을 설치하는 순서는 다음과 같습니다. 실습과 KOI/IOI 채점 환경과의 호환을 위해 Ubuntu 24.04만 사용합니다. wsl --install만 실행하면 기본 배포판으로 더 새 버전(예: 26.04)이 설치될 수 있으므로, 아래처럼 배포판 이름을 지정합니다.
- 시작 메뉴에서 Windows PowerShell 또는 명령 프롬프트를 검색한 뒤, 관리자 권한으로 실행합니다.
- 그 다음, 터미널 창에 아래의 명령어를 입력하고 엔터를 누르세요.

powershell
wsl --install -d Ubuntu-24.04
이 명령어는 WSL을 활성화하고 Ubuntu 24.04를 다운로드하여 설치합니다. 설치가 완료될 때까지 잠시 기다려 주세요.
IMPORTANT
Microsoft Store나 설치 화면에서 "최신 버전"으로 Ubuntu가 보여도, 이 커리큘럼에서는 Ubuntu 24.04를 설치해야 합니다. 26.04 등 다른 버전이 설치되었다면 문제 해결의 "Ubuntu 24.04가 아닌 버전이 설치됨"을 따릅니다.
설치 도중 혹은 완료 후 시스템 재부팅이 필요할 수 있습니다. 재부팅을 하라는 메시지가 나타나면 컴퓨터를 껐다 켜주시면 됩니다.


WARNING
설치 중 가상 머신 플랫폼 기능 관련 오류가 발생하나요?
간혹 가상 머신 플랫폼 기능을 활성화해야 합니다 혹은 이와 비슷한 오류 메시지가 나타나며 설치가 실패하는 경우가 있습니다. WSL은 Windows 환경에서 Linux를 가상으로 실행하는 기능이기 때문에, 일반적으로는 문제가 없지만 환경에 따라 가상 머신 플랫폼 기능이 꺼져있으면 오류가 발생할 수 있습니다.
이 경우 컴퓨터의 BIOS(또는 UEFI) 설정에서 CPU 가상화(Hyper-V, Virtualization Technology, VT-x, SVM 등)가 꺼져 있다면 컴퓨터를 재부팅하여 BIOS 설정에 진입한 뒤, 가상화 관련 옵션을 켜주어야 합니다. PC 제조사마다 진입 방법과 메뉴 이름이 다르므로, 인터넷에 (PC 제조사 또는 메인보드 제조사) 바이오스 가상화 켜기 등을 검색하여 진행해 보세요.
BIOS/UEFI 설정 변경이 필요해 보이면 혼자 진행하지 말고 보호자나 선생님에게 먼저 알립니다. 학교, 학원, 가족 공용 PC처럼 관리자 권한이 없는 환경에서는 WSL 설치가 불가능할 수 있습니다. 이 경우 임의로 설정을 바꾸지 말고 문의합니다.
Ubuntu 초기 설정하기
설치가 성공적으로 끝났다면, 시작 메뉴에서 Ubuntu 24.04 또는 Ubuntu-24.04를 찾아 실행할 수 있습니다. 처음 실행하면 초기 설정이 진행되며, 사용할 사용자 이름(UNIX username)과 비밀번호(password)를 설정하라는 화면이 나타납니다.

이곳에 입력하는 비밀번호는 화면에 글자가 나타나지 않으므로 당황하지 말고 정확히 입력한 뒤 엔터를 누르면 됩니다. 이 비밀번호는 이후 프로그램을 설치하거나 시스템 관리 권한이 필요할 때마다 자주 사용되므로 꼭 기억해 두세요.
IMPORTANT
사용자 이름은 반드시 영어 소문자로 작성하세요. 한글이나 공백, 특수문자가 섞인 이름을 사용하면 개발 도구를 사용할 때 예기치 않은 오류가 발생할 수 있습니다.
설정이 완료되면 Ubuntu의 명령 프롬프트가 나타나며, 이제부터는 이 창 안에서 Linux 명령어를 사용할 수 있습니다.

GCC 설치하기
Ubuntu 설정이 끝났다면 코드를 컴파일하기 위한 도구인 GCC를 설치해야 합니다. 먼저, 우리가 설치한 Ubuntu가 24.04 버전이 맞는지 다음 명령어로 확인해 보세요.
bash
cat /etc/os-release출력 결과에 VERSION="24.04 LTS"와 같은 문구가 포함되어 있다면 정상입니다.

이제 아래의 명령어를 차례대로 입력하여 패키지 목록을 최신 상태로 업데이트하고, C/C++ 컴파일러(GCC 13)가 포함된 패키지를 설치합니다. 비밀번호를 요구할 경우 설정했던 비밀번호를 입력해 주세요.
bash
sudo apt update
sudo apt install build-essentialNOTE
sudo 명령어란 무엇인가요?
sudo는 "Superuser DO"의 약자로, 관리자(root) 권한으로 명령어를 실행할 때 사용하는 명령어입니다. 새로운 프로그램을 설치하거나 시스템 설정을 변경할 때 주로 사용되며, 실행 시 보안을 위해 처음에 설정했던 사용자 비밀번호를 요구합니다.
주의: 명령어가 제대로 실행되지 않는다고 sudo를 습관적으로 남용해서는 안 됩니다. 일반적인 명령어나 파일 생성 등에 무턱대고 sudo를 붙여 실행하면, 생성되는 폴더나 파일(아티팩트)의 소유권이 관리자(root)로 설정되어 버립니다. 이렇게 되면 나중에 일반 사용자 권한으로 해당 파일을 수정하거나 컴파일하려고 할 때 권한이 부족할 수 있습니다. 반드시 패키지 설치 등 시스템 권한이 필요한 경우에만 주의해서 사용하세요.
설치가 끝났다면, 컴파일러가 제대로 설치되었는지 확인하기 위해 다음 명령어를 입력합니다.
bash
g++ --version출력되는 첫 번째 줄에 g++ (Ubuntu 13.x.x... 와 같이 버전 13이 나타나는지 확인해 주세요.

참고로, 앞으로 실습에서 코드를 컴파일할 때는 다음과 같은 기본 명령어를 사용하게 됩니다. (지금 당장 실행할 필요는 없습니다.)
bash
g++ main.cpp -std=gnu++20 -O2 -pipe -Wall -o mainWARNING
출력된 버전이 13이 아닌가요?
Ubuntu 24.04를 새로 설치한 환경이라면 보통 build-essential 설치 후 g++ --version이 바로 13.x로 표시됩니다. 이전에 WSL을 설치한 적이 있거나 설치된 Ubuntu가 24.04가 아니라면(예: 22.04, 26.04 등), 기본 패키지로 다른 메이저 버전의 컴파일러가 설치될 수 있습니다. Ubuntu 버전이 24.04가 아니면 먼저 문제 해결에서 배포판을 교체하고, GCC만 다른 경우에 아래 절차를 사용합니다. 이런 경우 아래의 명령어를 차례대로 입력하여 GCC 13을 추가로 설치하고 기본 컴파일러로 설정해 주세요.
bash
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt update
sudo apt install gcc-13 g++-13 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 130 --slave /usr/bin/g++ g++ /usr/bin/g++-13설정 후 다시 g++ --version 명령어를 입력해 버전 13이 정상적으로 표시되는지 확인합니다.
VS Code 설치하기
코드 편집기는 Visual Studio Code(이하 VS Code)를 사용합니다.
Windows 환경에서 웹 브라우저를 열고 VS Code 공식 홈페이지에 접속하여 Windows용 설치 파일을 다운로드한 뒤, 화면의 안내에 따라 설치를 완료해 주세요.
다운로드 링크: Visual Studio Code 공식 다운로드 페이지


VS Code로 WSL 작업 환경 연결하기
VS Code를 설치했다면, 이제 Windows의 VS Code에서 WSL 안에 있는 Ubuntu 환경에 접속할 수 있도록 만들어야 합니다.
- VS Code를 실행합니다.
- 좌측 메뉴에서 확장(Extensions) 탭(네 개의 네모가 모여 있는 아이콘)을 클릭합니다.
- 검색창에
WSL을 입력하고, Microsoft에서 만든 WSL 확장 프로그램을 찾아 설치합니다. - 설치가 완료되면, 좌측 하단에 있는 파란색
><모양의 아이콘을 클릭합니다. - 화면 상단에 나타나는 메뉴에서 WSL에 연결(Connect to WSL)을 선택합니다.

이제 VS Code가 Ubuntu 환경과 연결되었습니다. VS Code의 좌측 하단에 WSL: Ubuntu라고 표시되어 있다면 성공적으로 연결된 것입니다.

TIP
Ubuntu 터미널에서 VS Code 바로 열기 Ubuntu 터미널에서 코드를 작성하고 싶은 폴더로 이동한 뒤 code . 명령어를 입력하면, 해당 폴더가 열린 상태로 VS Code가 즉시 실행됩니다.
WSL 파일 시스템 이해하기
WSL의 Ubuntu에는 Windows와 별개의 Linux 파일 시스템이 있습니다. Ubuntu 터미널에서 보이는 홈 디렉토리(~)는 보통 다음과 같은 위치입니다.
bash
/home/사용자이름앞으로 작성할 코드는 Windows 바탕화면이나 문서 폴더가 아니라, Ubuntu 홈 디렉토리 아래에 저장하는 것을 권장합니다. 예를 들어 다음과 같이 실습 폴더를 만들 수 있습니다.
bash
mkdir ~/cpp-practice
cd ~/cpp-practice
Windows에서 Ubuntu 파일 열기
Ubuntu 홈 디렉토리와 실습 폴더는 Windows 파일 탐색기에서도 열 수 있습니다.
- 파일 탐색기를 엽니다.
- 주소창에
\\wsl.localhost\Ubuntu를 입력하고 엔터를 누릅니다. home폴더로 들어갑니다.- Ubuntu 초기 설정 때 만든 사용자 이름의 폴더로 들어갑니다.
cpp-practice와 같은 실습 폴더를 확인합니다.
환경에 따라 주소창의 배포판 이름이 Ubuntu-24.04로 표시될 수 있습니다. 이 경우에는 \\wsl.localhost\Ubuntu-24.04를 사용합니다.
파일 탐색기 왼쪽 탐색 영역에 Linux 항목이 보인다면, 해당 항목을 클릭한 뒤 Ubuntu 또는 Ubuntu-24.04로 들어가도 됩니다.
주소창 예시는 다음과 같습니다.
text
\\wsl.localhost\Ubuntu\home\사용자이름\cpp-practice
\\wsl.localhost\Ubuntu-24.04\home\사용자이름\cpp-practiceWindows에서 Ubuntu로 파일 옮기기
인터넷에서 내려받은 예제 파일이나 기존에 Windows에 있던 소스 파일을 Ubuntu 작업 폴더로 옮겨야 할 수 있습니다. 다음 방법 중 하나를 사용합니다.
파일 탐색기와 VS Code 사용하기
VS Code가 WSL: Ubuntu 상태로 연결되어 있고, Ubuntu 안의 실습 폴더가 열려 있다면 Windows 파일 탐색기에서 파일을 끌어와 VS Code의 파일 목록 영역에 놓을 수 있습니다.
- Windows 파일 탐색기에서 옮길 파일이 있는 폴더를 엽니다.
- VS Code에서 Ubuntu 실습 폴더(
~/cpp-practice등)를 엽니다. - 파일 탐색기의 파일을 VS Code 왼쪽 파일 목록 영역으로 끌어다 놓습니다.
- VS Code 안에 파일이 생겼는지 확인합니다.
파일 탐색기에서 WSL 폴더를 직접 연 뒤 복사해도 됩니다. 예를 들어 \\wsl.localhost\Ubuntu\home\사용자이름\cpp-practice 폴더를 열고, Windows에 있던 파일을 이 위치로 복사합니다.


Ubuntu 터미널에서 cp 사용하기
Ubuntu 터미널에서는 Windows의 C 드라이브가 /mnt/c 아래에 연결됩니다. 처음에는 원본 파일을 Windows 쪽에 남겨 두는 cp를 먼저 사용하는 편이 안전합니다. 예를 들어 Windows의 다운로드 폴더에 main.cpp가 있다면 다음과 같이 복사할 수 있습니다.
bash
cp /mnt/c/Users/Windows사용자이름/Downloads/main.cpp ~/cpp-practice/Windows사용자이름 부분은 Windows 계정 폴더 이름으로 바꿔야 합니다. 정확한 경로를 모르면 다음 명령어로 폴더 목록을 확인할 수 있습니다.
bash
ls /mnt/c/Users
ls /mnt/c/Users/Windows사용자이름/Downloads사용자 이름을 직접 쓰는 대신, 현재 Windows 사용자 홈 경로를 변수에 담아 사용할 수도 있습니다. 예를 들어 다운로드 폴더의 Hello World.cpp를 복사하려면 다음과 같이 입력할 수 있습니다.
bash
WINHOME=$(wslpath "$(cmd.exe /c echo %USERPROFILE% 2>/dev/null | tr -d '\r')")
cp "$WINHOME/Downloads/Hello World.cpp" ~/cpp-practice/
Windows 쪽 원본 파일을 없애고 Ubuntu 작업 폴더로 이동하려면 mv를 사용합니다.
bash
mv /mnt/c/Users/Windows사용자이름/Downloads/main.cpp ~/cpp-practice/mv는 복사가 아니라 이동입니다. 실행 후 Windows 다운로드 폴더에 있던 원본 파일은 사라집니다.
옮긴 뒤에는 Ubuntu 작업 폴더로 이동해 파일이 있는지 확인합니다.
bash
cd ~/cpp-practice
lsWindows에서 가져온 파일 이름에 한글, 공백, 대문자, 특수문자가 들어 있다면 Ubuntu 작업 폴더 안에서 간단한 이름으로 바꿉니다.
bash
mv "Hello World.cpp" hello_world.cpp
/mnt/c/... 경로는 Windows 파일을 가져올 때만 사용하고, 실습 코드는 Ubuntu 홈 디렉토리(~) 아래에 저장하는 것을 권장합니다. Windows 파일 시스템에서 직접 컴파일하면 파일 접근 속도가 느려지거나 권한 문제가 발생할 수 있습니다.
Ubuntu에서 Windows로 파일 옮기기
Ubuntu 작업 폴더에서 만든 파일을 Windows 쪽으로 옮겨야 한다면 반대 방향으로 복사하면 됩니다. 예를 들어 ~/cpp-practice/main.cpp를 Windows 다운로드 폴더로 복사하려면 다음과 같이 입력합니다.
bash
cp ~/cpp-practice/main.cpp /mnt/c/Users/Windows사용자이름/Downloads/파일을 옮긴 뒤 Ubuntu 쪽 원본을 지우고 싶다면 cp 대신 mv를 사용할 수 있습니다.
bash
mv ~/cpp-practice/main.cpp /mnt/c/Users/Windows사용자이름/Downloads/파일 탐색기에서 Ubuntu 폴더를 연 상태라면, Ubuntu 폴더의 파일을 Windows 바탕화면이나 다운로드 폴더로 끌어다 놓아도 됩니다.

주의 사항
WARNING
경로와 파일 이름 규칙 한글, 공백, 대문자, 특수문자가 들어간 파일명도 운영체제에서 지원되는 경우가 많지만, 터미널에서 경로를 입력하거나 명령어를 복사해 실행할 때 실수하기 쉽습니다. 이 교육에서는 오류를 줄이기 위해 영어 소문자 중심의 ASCII 문자만 사용합니다.
- 파일이나 폴더 이름에 한글, 공백, 대문자, 특수문자를 혼합해서 사용하지 마세요.
- 영문 소문자와 숫자, 하이픈(
-)이나 언더스코어(_) 정도만 사용하는 것이 가장 안전합니다. - 잘못된 예:
C++ 연습(한글 및 공백 포함),Hello World.cpp(대문자 및 공백 포함) - 올바른 예:
cpp-practice,hello_world.cpp
이 규칙을 지키지 않으면 경로 입력, 따옴표 처리, 복사/붙여넣기 과정에서 실수하기 쉬워집니다.
성공 기준
다음 네 가지가 되면 Windows 환경 세팅은 끝입니다.
- Ubuntu 터미널에서
cat /etc/os-release를 실행했을 때24.04가 보입니다. - Ubuntu 터미널에서
g++ --version을 실행했을 때13.x가 보입니다. - VS Code 왼쪽 아래에
WSL: Ubuntu또는WSL: Ubuntu-24.04가 보입니다. - 터미널에서 간단한 C++ 파일을
g++ main.cpp -std=gnu++20 -O2 -pipe -Wall -o main으로 컴파일하고./main으로 실행할 수 있습니다.
제출 단계는 다음 문서인 CMS 제출 방법에서 확인합니다.