본문으로 건너뛰기 윈도우 개발자를 위한 우분투 데스크톱 적응 가이드 | 복붙·단축키·터미널 습관 전환

윈도우 개발자를 위한 우분투 데스크톱 적응 가이드 | 복붙·단축키·터미널 습관 전환

윈도우 개발자를 위한 우분투 데스크톱 적응 가이드 | 복붙·단축키·터미널 습관 전환

이 글의 핵심

윈도우에서 개발하다가 우분투 노트북을 데일리로 쓰기 시작한 개발자가 겪는 조작 습관 차이 — 클립보드가 두 개로 나뉘는 이유, 창 관리 단축키, 터미널 적응, 패키지 설치 개념, 한/영 전환 설정까지 실전 관점에서 정리합니다.

들어가며

윈도우에서만 개발해온 사람이 우분투 노트북을 처음 데일리로 쓰기 시작하면, 리눅스 자체의 어려움보다 오히려 사소한 조작 습관의 차이 때문에 훨씬 더 스트레스를 받습니다. 명령어를 몰라서가 아니라 복사·붙여넣기가 안 되고, 창을 옮기려는데 단축키가 다르고, 터미널에서 익숙한 키를 눌렀더니 엉뚱한 일이 벌어지기 때문입니다.

이 글은 우분투를 서버로 운영하는 방법이나 특정 하드웨어 세팅, 특정 앱의 버그를 다루지 않습니다. 그런 내용은 이미 우분투 서버 명령어 가이드, 씽크패드 우분투 세팅 가이드, 우분투 VS Code 팁에서 다루고 있습니다. 이 글은 그 사이에 비어 있는, 윈도우 사용 습관을 가진 사람이 우분투 데스크톱을 일상적으로 조작할 때 겪는 손 꼬임에만 집중합니다.

대상 독자

  • 회사 지급 노트북이나 개인 장비를 윈도우에서 우분투로 막 바꾼 개발자
  • 복사·붙여넣기, 창 전환, 터미널 조작이 왜 다르게 동작하는지 원리부터 이해하고 싶은 사람
  • 우분투를 며칠 써봤지만 여전히 손이 무의식적으로 윈도우 단축키를 누르는 사람

이 글을 읽으면

  • 리눅스에 클립보드가 두 개 있다는 사실과 그것이 왜 그렇게 설계됐는지 이해하게 됩니다.
  • GNOME의 창 관리 단축키 체계를 윈도우와 비교해서 정리하게 됩니다.
  • cmd/PowerShell만 써본 사람이 bash 터미널에 왜 낯설어하는지, 무엇부터 익혀야 하는지 알게 됩니다.
  • .exe 더블클릭 설치 습관에서 apt/snap 개념으로 넘어가는 사고 전환을 하게 됩니다.
  • 한/영 전환 문제를 실제로 해결하는 설정 경로를 알게 됩니다.

전환 초기에 실제로 겪는 좌절

우분투로 넘어온 첫 주에 가장 당황스러웠던 순간은 터미널에서였습니다. 긴 로그 출력 중 일부를 복사하려고 반사적으로 마우스로 드래그한 뒤 Ctrl+C를 눌렀는데, 화면에 ^C가 찍히면서 실행 중이던 스크립트가 그대로 죽어버렸습니다. 윈도우의 cmd나 PowerShell에서 Ctrl+C는 보통 복사이거나 최소한 안전하게 무시되는 키인데, 리눅스 터미널에서는 실행 중인 프로세스를 강제 종료하는 시그널로 먼저 소비된다는 걸 몸으로 배운 순간이었습니다. 이후로는 터미널에서 뭔가를 중단시키고 싶을 때만 습관적으로 Ctrl+C를 쓰고, 복사는 의식적으로 Ctrl+Shift+C를 누르는 식으로 손을 다시 훈련해야 했습니다.

또 한번은 브라우저에서 문서 링크를 드래그로 선택하고, 잠깐 다른 창에서 코드를 편집하다가 실수로 마우스 가운데 버튼(휠)을 눌렀는데 전혀 관련 없는 그 링크 텍스트가 코드 한복판에 붙여넣기가 되어 당황한 적이 있습니다. 분명 아무것도 복사한 적이 없다고 생각했는데, 사실은 드래그로 선택만 해도 자동으로 별도의 클립보드에 저장된다는 걸 몰랐던 것입니다. 이 두 경험 모두 리눅스가 이상하게 동작하는 게 아니라, 애초에 설계가 다르다는 사실을 모른 채 윈도우의 멘탈 모델을 그대로 들고 온 데서 비롯된 혼란이었습니다.

1. 복사/붙여넣기 혼란의 진짜 원인

클립보드가 두 개인 이유

윈도우와 macOS는 클립보드가 하나뿐입니다. Ctrl+C(또는 Cmd+C)로 복사하고 Ctrl+V로 붙여넣는 것이 유일한 경로입니다. 하지만 X11 기반 리눅스 데스크톱(우분투의 GNOME도 기본적으로 여기에 해당)에는 두 개의 독립된 클립보드가 동시에 존재합니다.

  • CLIPBOARD: 우리가 흔히 아는 클립보드. Ctrl+C로 명시적으로 복사한 내용이 저장되고, Ctrl+V로 붙여넣습니다.
  • PRIMARY selection(프라이머리 셀렉션): 텍스트를 마우스로 드래그해서 선택하기만 해도 별도의 명령 없이 자동으로 여기에 저장됩니다. 마우스 가운데 버튼(휠 클릭)을 누르면 커서가 있는 위치에 즉시 붙여넣어집니다.

이 설계는 1980년대 X Window System 초기부터 내려온 관례입니다. 당시 목표는 “선택한 것을 바로 다른 곳에 넣는” 동작을 별도의 키 입력 없이 마우스만으로 가능하게 하는 것이었습니다. 문제는 현대 사용자 대부분이 이 관례를 모른 채 GUI를 쓴다는 점입니다. 그 결과 “분명히 뭔가를 선택했을 뿐인데 그게 왜 복사가 되어 있냐”는 혼란과, 반대로 “Ctrl+C로 복사했는데 마우스 가운데 버튼을 눌렀더니 전혀 다른 이전 텍스트가 붙여넣어진다”는 혼란이 동시에 생깁니다. 이 두 클립보드는 서로의 존재를 모르는 완전히 독립된 저장소이기 때문에, 어느 쪽을 썼는지 의식하지 않으면 예측 불가능한 결과가 나옵니다.

실무에서는 이 특성을 오히려 활용할 수도 있습니다. 예를 들어 한 문서에서 값을 드래그로 선택해두고, Ctrl+C로 별도의 텍스트를 복사한 채로 두 곳에 서로 다른 내용을 순서대로 붙여넣는 식의 조합이 가능합니다. 다만 익숙해지기 전까지는 의도치 않은 붙여넣기 사고를 줄이기 위해, 중요한 내용을 다룰 때는 가운데 버튼 클릭을 피하고 항상 Ctrl+V만 쓰는 것이 안전합니다.

터미널에서 Ctrl+C가 복사가 아닌 이유

GNOME 터미널을 비롯한 대부분의 리눅스 터미널 에뮬레이터에서 Ctrl+C는 복사 단축키가 아닙니다. 유닉스 셸의 오랜 관례상 Ctrl+C는 포그라운드에서 실행 중인 프로세스에 SIGINT 시그널을 보내 실행을 중단시키는 키였습니다. 이 관례는 셸이 GUI를 갖기 훨씬 전부터 존재했고, 이후 터미널 에뮬레이터에 복사·붙여넣기 기능이 추가될 때도 이 시그널 처리 관례를 깨뜨리지 않기 위해 별도의 조합키인 Ctrl+Shift+C(복사), Ctrl+Shift+V(붙여넣기)가 표준으로 자리잡았습니다.

윈도우의 cmd나 PowerShell, 혹은 Windows Terminal에서는 Ctrl+C가 상황에 따라 복사로 동작하기도 하고 프로세스 중단으로 동작하기도 해서 이 구분이 상대적으로 흐릿합니다. 그래서 윈도우 습관을 그대로 가져온 개발자는 터미널에서 뭔가를 복사하려다가 실행 중인 서버나 스크립트를 실수로 죽이는 경험을 한 번쯤 겪게 됩니다. 이 차이를 몸에 익히는 가장 빠른 방법은, 터미널 안에서는 “Ctrl+C는 무조건 중단”이라고 규칙을 단순화해서 외우고, 복사가 필요할 때는 항상 Shift를 함께 누르는 습관을 만드는 것입니다.

2. 창 관리 단축키 차이

Win 키와 Super 키

윈도우에서는 Win 키를 기준으로 Win+화살표(좌우 스냅, 상하 최대화/최소화), Win+D(바탕화면 표시), Win+E(탐색기 열기) 같은 체계가 통일되어 있습니다. GNOME도 동일한 물리 키(대부분 Super 키로 불림)를 활용하지만 기본 동작은 다릅니다.

  • Super 키 단독: 활동 개요(Activities Overview)를 열어 실행 중인 창을 한눈에 보여줍니다. 윈도우의 작업 보기(Win+Tab)와 비슷하지만 기본 동작은 이쪽이 우선입니다.
  • Super+화살표: 좌우로는 화면 절반 스냅, 위로는 최대화가 되어 Windows의 Win+화살표와 거의 동일하게 동작합니다.
  • Super+A: 설치된 애플리케이션 목록을 보여줍니다. 윈도우의 시작 메뉴에 대응합니다.

다만 Windows처럼 창을 화면 모서리로 드래그했을 때 자동으로 4분의 1 크기로 스냅되는 기능은 GNOME 기본 상태에는 없습니다. 이 기능이 필요하면 GNOME 확장 프로그램(예: Tiling Assistant)을 별도로 설치해야 합니다. 기본 셸이 이 기능을 지원하지 않는 이유는 GNOME 프로젝트가 미니멀한 기본 경험을 지향하고, 세부 창 관리는 확장 생태계에 맡기는 설계 철학을 따르기 때문입니다. 즉 “기능이 없다”기보다 “기본값에는 없고 사용자가 선택해서 추가해야 한다”에 가깝습니다.

Alt+Tab이 창이 아니라 앱을 전환한다

윈도우의 Alt+Tab은 열려 있는 모든 창을 하나씩 순회합니다. 같은 앱의 창이 여러 개 열려 있어도 각각 별도의 항목으로 나타납니다. GNOME의 기본 Alt+Tab은 다릅니다. 애플리케이션 단위로 전환하며, 같은 앱의 창이 여러 개 있으면 Alt+Tab으로는 앱만 선택되고 그 앱의 개별 창들 사이를 전환하려면 별도의 단축키인 Alt+`(백틱, 숫자 1 왼쪽 키)를 눌러야 합니다.

이 차이는 코드 에디터 창 두 개와 터미널 창 여러 개를 동시에 띄워놓고 작업하는 개발자에게 특히 자주 걸립니다. Alt+Tab을 아무리 눌러도 원하는 터미널 창이 나오지 않아서 “창이 없어졌나” 하고 당황하는 경우가 많은데, 사실은 같은 앱의 다른 창으로 묶여 있어서 Alt+`를 눌러야 그 안에서 전환되는 것뿐입니다. GNOME이 이렇게 설계한 이유는 macOS의 Dock 방식과 유사하게 “앱 중심” 작업 흐름을 기본값으로 삼았기 때문이며, 이는 윈도우의 “창 중심” 작업 흐름과 근본적인 사고방식 차이에서 비롯됩니다.

flowchart TD
    A["Alt+Tab 누름"] --> B{"같은 앱의
창이 여러 개인가?"} B -- "아니오" --> C["해당 앱으로 즉시 전환"] B -- "예" --> D["앱만 선택된 상태"] D --> E["Alt+백틱(`) 추가 입력"] E --> F["그 앱 안의 개별 창 순회"]

파일 관리자에서 헷갈리는 지점

윈도우 탐색기에 익숙한 사람이 우분투 기본 파일 관리자인 Nautilus(파일)를 처음 쓰면 몇 가지가 낯섭니다. 주소창이 기본적으로 경로 텍스트 입력이 아니라 breadcrumb(경로 버튼) 형태로 표시되어, 직접 경로를 타이핑하려면 Ctrl+L을 눌러야 텍스트 입력 모드로 전환됩니다. 또한 숨김 파일(윈도우의 “숨김 속성 파일”에 대응하는, 파일명이 마침표로 시작하는 파일)을 보려면 Ctrl+H를 눌러야 하는데, 이는 윈도우 탐색기의 “숨김 항목 표시” 체크박스와 개념은 같지만 조작 방법이 다릅니다. 압축 파일도 우클릭 메뉴의 이름이 다르고, 네트워크 드라이브 연결 방식(smb://, sftp:// 같은 URI를 주소창에 직접 입력)도 윈도우의 “네트워크 드라이브 연결”과는 다른 접근 방식을 씁니다.

3. 터미널 적응

왜 bash가 cmd/PowerShell 사용자에게 낯선가

cmd나 PowerShell만 써봤다면 bash 셸에서 몇 가지 기본 개념부터 다시 익혀야 합니다.

  • 경로 구분자: 윈도우는 백슬래시(\)를 쓰지만 유닉스 계열은 슬래시(/)를 씁니다. 스크립트를 복사해서 쓸 때 이 차이 때문에 경로가 깨지는 경우가 흔합니다.
  • 명령어 체이닝: PowerShell은 ;(순차 실행)와 파이프 |를 씁니다. bash도 파이프는 같지만, “앞 명령이 성공했을 때만 다음 실행”은 &&, “실패했을 때만 실행”은 ||로 표현합니다. PowerShell 5.1에는 이 연산자가 없어서(최신 PowerShell 7+에는 추가됨) 전환 초기에 이 구문 자체가 새롭게 느껴집니다.
  • 실행 권한 개념: 윈도우에서는 파일 확장자(.exe, .bat)로 실행 가능 여부가 결정되지만, 리눅스는 파일 자체에 붙는 실행 권한 비트로 결정됩니다. 스크립트를 다운로드하고 바로 실행하려 하면 Permission denied가 뜨는데, 이는 파일이 손상된 게 아니라 단순히 실행 권한이 없어서입니다. chmod +x script.sh로 권한을 추가해야 실행할 수 있습니다.
  • 홈 디렉토리 표기: ~는 현재 사용자의 홈 디렉토리(/home/사용자명)를 가리키는 축약 표기입니다. 윈도우의 %USERPROFILE%에 대응하지만, 거의 모든 리눅스 명령어와 스크립트에서 관례적으로 쓰이기 때문에 익숙해지는 것이 좋습니다.

왜 파워유저는 마우스보다 터미널을 선호하는가

GUI 파일 관리자로 수십 개의 파일을 한꺼번에 이름 규칙에 맞게 바꾸거나, 특정 조건에 맞는 로그 라인만 걸러내려면 클릭을 수십 번 반복해야 합니다. 터미널에서는 이런 작업이 한 줄의 명령으로 끝나고, 무엇보다 같은 명령을 재현 가능합니다. 어제 실행한 명령을 다시 실행하거나, 동료에게 “이 명령을 그대로 복사해서 실행하라”고 전달하는 것이 GUI 조작보다 압도적으로 쉽습니다. 이 재현성이야말로 리눅스 환경에서 터미널이 여전히 중심 도구로 남아있는 이유이며, 처음에는 느리게 느껴지더라도 자주 쓰는 명령 몇 개(파일 검색, 프로세스 확인, 네트워크 상태 확인)만 손에 익혀도 체감 생산성이 크게 달라집니다.

4. 패키지 설치 개념 전환

.exe 더블클릭에서 apt/snap으로

윈도우에서 소프트웨어를 설치하는 절차는 대체로 “웹사이트에서 설치 파일(.exe나 .msi)을 다운로드하고 더블클릭해서 마법사를 따라간다”입니다. 우분투에서는 이 절차 자체가 예외적인 경우(서드파티 .deb 파일을 직접 받아 설치하는 경우 등)에만 쓰이고, 대부분은 패키지 관리자를 통해 설치합니다.

# apt: 시스템 공식/등록된 저장소에서 패키지 설치
sudo apt update
sudo apt install curl git

# snap: 컨테이너화된 패키지, 배포판 버전과 무관하게 동일하게 동작
sudo snap install code --classic

이 차이가 낯선 이유는, 윈도우에서는 “실행 파일 하나 = 설치 프로그램 하나”라는 사고방식이 굳어져 있는데, 리눅스의 패키지 관리자는 의존성을 자동으로 해결하는 중앙 저장소 모델이기 때문입니다. 즉 어떤 프로그램을 설치하면 그 프로그램이 필요로 하는 라이브러리들까지 패키지 관리자가 자동으로 찾아서 함께 설치하고, 나중에 업데이트할 때도 apt update && apt upgrade 한 번으로 시스템 전체의 패키지를 한꺼번에 최신 상태로 맞출 수 있습니다. 윈도우처럼 프로그램마다 개별 업데이트 프로그램이 백그라운드에서 따로 도는 방식과는 근본적으로 다른 유지보수 모델입니다.

snap은 이와 별개로, 배포판이나 시스템 라이브러리 버전에 관계없이 동일하게 동작하도록 필요한 라이브러리를 패키지 안에 함께 담아 배포하는 방식입니다. 설치는 더 간단하지만 디스크 용량을 더 쓰고 시작 속도가 느린 경우가 있어, 가능하면 apt로 설치하고 apt 저장소에 없는 경우에만 snap을 보조적으로 쓰는 것이 일반적인 관례입니다.

실행 파일 개념 차이

윈도우에서는 .exe 확장자 자체가 “이건 실행 파일이다”라는 표식 역할을 합니다. 리눅스에는 이런 확장자 기반 규칙이 없습니다. 확장자가 없는 파일도 실행 권한 비트만 있으면 실행되고, .sh.py 같은 확장자는 어떤 인터프리터로 해석해야 하는지를 사람이 알아보기 위한 관례일 뿐 시스템이 강제하는 규칙이 아닙니다. 그래서 리눅스에서 파일을 실행할 때 파일 확장자보다 “실행 권한이 있는가”와 “셔뱅(#!/bin/bash 같은 첫 줄)이 올바른가”가 훨씬 중요한 판단 기준이 됩니다.

5. 한/영 전환, 특수키 매핑

한국어 사용자가 우분투로 전환할 때 자주 겪는 불편 중 하나가 한/영 전환키입니다. 윈도우에서는 한/영 키를 누르면 즉시 입력 언어가 바뀌지만, 우분투는 배포판이나 설치 시점의 입력기 설정에 따라 이 키가 아예 매핑되어 있지 않은 경우가 있습니다.

해결 방법은 다음과 같습니다.

  1. 설정 > 키보드 > 입력 소스에서 한국어(2벌식) 입력 소스를 추가합니다.
  2. 설정 > 키보드 > 단축키 > 입력 소스 전환에서 한/영 키를 직접 등록합니다. 기본값으로 등록되어 있지 않다면 이 단계를 빼먹기 쉽습니다.
  3. 한/영 키 자체가 물리적으로 인식되지 않는 경우(일부 노트북 키보드 레이아웃), Caps Lock 키를 한/영 전환키로 재매핑하는 방법이 실용적입니다. 설정 > 키보드 > 키보드 배치 옵션(또는 gnome-tweaks의 “Caps Lock 동작 변경” 항목)에서 “Caps Lock을 그룹 전환 키로 사용”과 유사한 옵션을 선택하면 됩니다.

이렇게 설정하고 나면 윈도우와 거의 동일한 감각으로 한/영 전환이 가능해지며, 이 부분만 해결해도 우분투 데스크톱 사용의 불편함 상당 부분이 줄어듭니다.

마치며

윈도우에서 우분투로 넘어올 때 겪는 어려움의 대부분은 리눅스가 어려워서가 아니라, 오랫동안 몸에 밴 조작 습관이 다른 설계 철학과 충돌하기 때문입니다. 클립보드가 두 개로 나뉜 것도, Alt+Tab이 앱 단위로 동작하는 것도, 터미널에서 Ctrl+C가 프로세스를 죽이는 것도 모두 나름의 역사적 이유와 설계 근거가 있습니다. 이 차이를 원리로 이해하고 나면 “왜 이렇게 이상하게 동작하지”라는 답답함이 “아, 이래서 이렇게 되는구나”로 바뀌고, 그 순간부터 전환 속도가 눈에 띄게 빨라집니다. 처음 1~2주만 의식적으로 손을 다시 훈련하면, 그 이후에는 오히려 터미널과 패키지 관리자 중심의 작업 흐름이 더 빠르게 느껴지는 경우가 많습니다.