
VS Code로 SSH 세션 여러 개 띄워놓고 작업하는데 창이 다 똑같이 생겨서 진짜 아찔한 순간이 있었다. 방금 전에도 개발 서버인 줄 알고 rm -rf 섞인 명령어를 쳤는데 알고보니 운영 서버였음. 진짜 식은땀 났다.
왜 창 하나에 여러 서버를 못 합칠까
VS Code를 쓰다 보면 "왜 창 하나에 서버 A랑 서버 B를 같이 못 띄우나" 싶을 때가 있다. 한 창에서 탭만 나눠서 다른 서버 폴더를 보고 싶기도 하고. 근데 이게 구조적으로 안 된다. 하나의 VS Code 윈도우는 하나의 'Remote Server' 엔진에 종속되어 있어서, 서로 다른 IP를 가진 서버들을 하나의 사이드바에 물리적으로 합치는 건 불가능하다.
결국 창을 따로 띄워야 하는데, 문제는 창이 너무 많아지면 지금 내가 어떤 창을 보고 있는지 구분이 안 된다는 거다. 처음에는 그냥 전체 테마를 바꾸려고 User Settings를 건드렸는데, 그랬더니 접속한 모든 서버의 테마가 다 바뀌어서 오히려 더 혼란만 가중됐다. 결국 문서 안 읽고 삽질한 거였다.
서버별로 색깔 다르게 하는 법
결국 해결책은 각 서버에 종속된 전용 설정 파일을 사용하는 것이었다. Remote [SSH: 내부경로] Settings (JSON)을 열어서 설정을 박아버리면 된다.
{
"workbench.colorTheme": "Monokai",
"workbench.colorCustomizations": {
"statusBar.background": "#ff0000",
"statusBar.foreground": "#ffffff",
"titleBar.activeBackground": "#8b0000",
"titleBar.activeForeground": "#ffffff"
}
}
위 코드를 적용하면 해당 서버에 접속했을 때만 전체적인 테마가 Monokai로 변하고, 하단 상태 표시줄뿐만 아니라 상단 타이틀 바 색상까지 붉은 계열로 변한다. 이렇게 하면 창을 전환할 때 색상만 보고도 "아, 여기는 운영 서버구나" 하고 뇌가 즉각 반응하게 된다.
설정 위치와 방식 비교
어디에 설정하느냐에 따라 동작이 완전히 다르니 주의해야 한다.
구분 | 적용 범위 | 권장 용도 |
|---|
User Settings | 모든 VS Code 세션 (로컬 포함) | 공통적인 폰트, 테마, 기본 단축키 설정 |
Remote Settings | 현재 접속 중인 특정 SSH 서버 | 서버별 테마, 색상, 특정 익스텐션 설정 |
자주 묻는 질문과 실수한 포인트
User Settings는 내 컴퓨터의 전체 설정이다. 여기에 색상 코드를 넣으면 로컬에서 코딩할 때도, 다른 개발 서버에 접속했을 때도 모두 그 색상이 적용된다. 특정 서버의 특성을 반영하고 싶다면 반드시 Remote Settings를 써야 한다.
workbench.colorCustomizations 안에 있는 키값을 알면 거의 다 바꿀 수 있다. 예를 들어 editor.background를 건드리면 코드 편집창 배경색도 바꿀 수 있다. 하지만 너무 과하면 코드가 안 보일 수 있으니 상태바 정도가 적당하다.
설정을 저장했다고 바로 적용되지 않는 경우가 있었다. 이럴 땐 SSH 연결을 끊었다가 다시 접속하거나, VS Code 창을 아예 새로 열어야 확실하게 적용된다.
솔직히 귀찮다. 근데 운영 서버나 중요한 DB가 있는 서버는 딱 한 번만 제대로 해두면, 나중에 발생할 수 있는 수백만 원짜리 실수(데이터 날려먹기 등)를 막아주는 보험이라고 생각하는 게 정신 건강에 좋다.