모든 테마는 결국 다른 사람의 취향입니다. Codeshot에는 30가지가 들어 있고 저마다 라이트와 다크가 있어서, 보통은 그중 하나가 충분히 가깝습니다. 하지만 내 이름이 붙는 이미지에서 충분히 가깝다에 만족하는 건 생각해 보면 이상한 일입니다.

Mac에서는 더 이상 그럴 필요가 없습니다. 설정 → 테마에서 나만의 테마를 가질 수 있습니다. 색 열세 가지, 고르는 대로 다시 그려지는 미리보기, 그리고 누군가에게 건넬 수 있는 파일.

어디에 있나

Codeshot 설정을 열고 테마 탭으로 갑니다. 왼쪽이 내 테마 목록입니다. **+**로 추가하고 로 선택한 것을 지웁니다.

오른쪽에는 선택한 테마로 그려진 샘플 코드가 있고, 그 아래에 이름 입력란, 다시 그 아래에 색 목록이 있습니다. 이 패널은 전부 실시간입니다. 색을 바꾸면 위의 샘플이 곧바로 다시 그려집니다.

중요한 조작이 두 가지입니다. 이름 입력란은 테마 이름을 바꿉니다. Use This Theme은 그 테마를 앱이 실제로 그릴 때 쓰는 테마로 만듭니다. 테마를 편집한다고 해서 그 테마로 바뀌지는 않으니, 사람들이 잊는 단계가 바로 여기입니다.

열세 가지 색

구문 테마는 무게가 같은 열세 개의 결정이 아닙니다. 둘이 분위기를 정하고 열하나가 일을 합니다.

적용 대상
Background 코드 뒤의 종이
Plain Text 하이라이터가 가져가지 않는 나머지 전부 — 문장부호, 괄호, 연산자
Keywords let, var, struct, func, return
Strings 따옴표 안의 텍스트
Numbers 숫자 리터럴
Comments 주석과 문서화
Declared Types 코드 안에서 직접 정의한 타입
Library Types 프레임워크에서 오는 타입 — String, View, CGFloat
Functions 함수와 메서드 이름
Members 다른 것에 접근해서 쓰는 프로퍼티와 멤버
Variables 변수 이름
Annotations 프로퍼티 래퍼와 어노테이션, @State 같은 것들
Attributes 속성 이름, 주로 마크업 언어에서

열세 가지를 전부 다른 색으로 채울 필요는 없습니다. 잘 읽히는 테마는 보통 네다섯 가지 색을 쓰고 반복합니다. 타입과 함수가 하나를 나눠 쓰고, 키워드와 어노테이션이 다른 하나를 나눠 쓰는 식입니다. 서로 다른 색 열세 가지는 테마가 아니라 과일 바구니입니다.

통하는 순서

BackgroundPlain Text부터 시작해서, 이 한 쌍을 정한 다음에 나머지를 건드리세요. 다른 모든 결정은 이 둘을 기준으로 판단되기 때문에, 이걸 마지막에 고르면 전부 다시 고르게 됩니다.

다음은 Comments, 그것도 낮은 톤으로. 주석은 유일하게 뒤로 물러나야 하는 토큰입니다. 코드가 아니라 맥락이니까요. 주석이 키워드만큼 큰 소리를 내는 테마는 나머지 팔레트가 아무리 좋아도 소음처럼 읽힙니다.

그다음이 키워드, 문자열, 숫자입니다. 실제 코드에서 색의 대부분이 떨어지는 곳이 여기입니다. 타입, 함수, 멤버는 그 뒤에, 마지막 몇 개는 이미 고른 색을 다시 써도 전혀 문제없습니다.

마지막에 몰아서 보지 말고 단계마다 미리보기를 확인하세요. 이 패널은 실제 코드 위에서 팔레트를 판단하라고 있는 겁니다. 색상 선택기는 거짓말을 하지만 코드는 하지 않습니다.

고르기 전에 알아둘 것

대비는 선택 사항이 아닙니다. 코드 이미지는 피드에서 축소되고, 대낮의 휴대폰에서 보이고, 올린 플랫폼에서 다시 압축됩니다. 원래 크기에서 세련돼 보이던 저대비 팔레트는 상대에게 닿을 무렵이면 읽을 수 없습니다. 미리보기에서 읽기 힘든 색은 피드에서는 사라진 색입니다.

순수한 검정 배경은 피하세요. 투명하게 내보내거나 어두운 배경 위에 올릴 때는 예외입니다. 밝은 배경화면 위에서 #000000은 구멍처럼 보입니다. 잘 만든 다크 테마들이 #1F1F24에서 #282C34 사이에 있는 이유가 바로 이것입니다.

주석과 일반 텍스트는 달라야 합니다. 밝기가 비슷하면 글과 코드가 하나의 회색 덩어리로 뭉쳐서 코드의 형태가 사라집니다.

에디터를 따라 해도 좋지만, 맥락 밖에서 확인하세요. Xcode 테마는 책상 위 큰 창에 맞춰져 있습니다. 같은 색이 남의 휴대폰에서 폭 1000픽셀 이미지가 되면 이야기가 달라지고, 보통 원본보다 조금 더 높은 대비가 필요합니다.

테마 공유하기

테마 목록 아래의 메뉴가 테마 파일을 가져오고 내보냅니다.

내보내면 테마가 파일로 저장되고, 가져오면 다시 읽힙니다. 내 Mac에서 다른 Mac으로, 백업으로, 팀의 누군가에게 테마가 옮겨가는 방법이 이것이고, 공통 팔레트를 한 사람 이상이 쓸 수 있게 만드는 것도 이것입니다.

기본 30가지가 더 나은 답일 때

테마를 직접 만드는 게 값어치를 하는 건 이미지를 꾸준히 만들면서 그것들이 한 세트처럼 보이길 바랄 때입니다. 연재 게시물, 제품 문서, 발표 슬라이드 같은 경우죠.

일회성 코드 한 조각이라면 아닙니다. 앱에 들어 있는 30가지는 모두 제대로 설계되었고, 모두 라이트와 다크가 있고, 두 번 클릭이면 됩니다. 나란히 놓고 비교해서 그 코드에 어울리는 걸 고르세요.

테마 편집기는 그걸 이미 다 해봤는데도 답이 여전히 거의였을 때를 위한 것입니다.