ch04. Chrome 프로필 전환 -- 공부/개인/회사/교양/AI
단축키 하나로 Chrome 프로필을 전환한다. 비슷한 구조의 매크로 5개를 분석하고, 반복 패턴을 효율적으로 관리하는 방법을 배운다.
이런 불편함, 겪어보셨나요?
Chrome을 여러 계정으로 사용하는 분이 많다. 회사 계정, 개인 계정, 공부용 계정. 각 계정마다 북마크, 확장 프로그램, 로그인 상태가 다르다.
프로필을 전환하려면 Chrome 우측 상단의 프로필 아이콘을 클릭해야 한다. 목록에서 원하는 프로필을 찾아 클릭한다. 하루에도 수십 번 반복하는 동작이다.
프로필이 5개라면 더 번거롭다. 공부, 개인, 회사, 교양, AI. 각각의 프로필로 전환할 때마다 마우스를 움직이고, 클릭하고, 기다린다.
이 챕터에서는 프로필별 단축키를 만들어서 이 문제를 해결한다. 5개 매크로의 구조가 거의 같으므로, 대표 매크로를 상세히 분석한 뒤 나머지는 패턴으로 정리한다.
5개 매크로 한눈에 보기
본격적인 분석에 앞서, 5개 매크로의 전체 구성을 표로 정리한다.
| 매크로 이름 | 단축키 | 액션 수 | 핵심 액션 | 특이사항 |
|---|---|---|---|---|
| Chrome - 프로필 전환 (공부) | ⌃A | 11 | SelectMenuItem, SafariControl | Safari 연동 포함 |
| Chrome - 프로필 전환 (개인) | ⌃S | 9 | SelectMenuItem | 기본 패턴 |
| Chrome - 프로필 전환 (회사) | ⌃4 | 14 | SelectMenuItem, SetVariable | 변수로 컴퓨터 판별 |
| Chrome - 교양프로필 | ⌥D | 4 | ExecuteJavaScript | YouTube 계정 전환 |
| Chrome - AI프로필 | ⌥A | 4 | ExecuteJavaScript | YouTube 계정 전환 |
5개 매크로는 크게 두 가지 유형으로 나뉜다.
- 메뉴 선택형 (공부, 개인, 회사): Chrome 메뉴에서 프로필을 선택하는 방식
- JavaScript 실행형 (교양, AI): YouTube 페이지에서 JavaScript로 계정을 전환하는 방식
매크로 분석: Chrome - 프로필 전환 (공부)
메뉴 선택형의 대표 매크로다. 가장 많은 액션(11개)을 가지고 있어서, 이 매크로를 이해하면 나머지 두 개(개인, 회사)도 쉽게 파악할 수 있다.
무엇을 하는 매크로인가
⌃A를 누르면 Chrome이 "공부" 프로필로 전환된다. 현재 어떤 브라우저를 쓰고 있는지에 따라 동작이 달라진다.
트리거
| 트리거 타입 | 값 | 설명 |
|---|---|---|
| HotKey | ⌃A | Chrome 또는 Safari가 활성화된 상태에서 동작 |
액션 흐름
그림 4-1. Chrome 프로필 전환 (공부) 매크로의 액션 흐름도 -- Safari/Chrome 조건 분기
- SetActionDelay -- 액션 간 딜레이를 설정한다. 빠른 연속 실행을 위해 짧게 잡는다.
- IfThenElse (1단계) -- 현재 앱이 Safari인지 확인한다.
- Safari일 때 (Then):
- SelectMenuItem -- "파일 > 새로운 윈도우 > 새로운 공부용 윈도우" 메뉴를 선택한다. Safari의 프로필 전환은 메뉴 경로가 "파일" 아래에 있다.
- SimulateKeystroke ⌥⌃C -- 사이드바를 닫는 단축키를 실행한다. 새 윈도우가 열릴 때 사이드바가 표시되는 것을 방지한다.
- SafariControl -- Safari 관련 추가 제어를 수행한다.
- Safari가 아닐 때 (Else) -- 중첩 IfThenElse로 Chrome 프로필을 판별한다.
- IfThenElse (2단계) -- 특정 Chrome 프로필인지 확인한다.
- 맞으면 -- "프로필 > 재식 (AI)" 메뉴를 선택하고, ⌥⌃C로 사이드바를 닫는다. SafariControl 액션도 실행한다.
- 아니면 -- "프로필 > AI" 메뉴를 선택하고, ⌥⌃C로 사이드바를 닫는다.
이 매크로의 핵심은 중첩 조건 분기다. Safari와 Chrome을 구분하고, Chrome 안에서도 현재 프로필 상태에 따라 메뉴 경로를 다르게 선택한다. Chrome은 프로필 이름 형식이 버전이나 설정에 따라 달라질 수 있기 때문이다.
핵심 기술 해설
SelectMenuItem -- 메뉴 선택 액션
Chrome의 메뉴 바에서 특정 항목을 자동으로 선택하는 액션이다. "프로필 > 재식 (AI)"처럼 메뉴 경로를 지정하면, KM이 해당 메뉴를 찾아서 클릭한다.
메뉴 경로는 앱마다 다르다. Chrome은 "프로필" 메뉴 아래에 프로필 목록이 있다. Safari는 "파일 > 새로운 윈도우" 아래에 프로필별 윈도우 생성 메뉴가 있다. 이 차이를 조건 분기로 처리하는 것이 이 매크로의 설계 포인트다.
SafariControl -- Safari 전용 제어
KM에는 Safari를 제어하는 전용 액션이 있다. 탭 이동, URL 가져오기, JavaScript 실행 등 Safari 고유의 기능에 접근할 수 있다. 이 매크로에서는 프로필 전환 후 Safari 상태를 정리하는 용도로 사용한다.
SimulateKeystroke ⌥⌃C
프로필 전환 후 새 윈도우가 열리면서 사이드바가 표시될 수 있다. ⌥⌃C 단축키로 사이드바를 닫아서 깔끔한 상태를 만든다. 이처럼 "부수적인 정리 동작"을 매크로에 포함시키면, 수동으로 할 때보다 더 나은 결과를 얻을 수 있다.
활용 팁
- 프로필 이름이 바뀌면 SelectMenuItem의 메뉴 경로도 수정해야 한다. Chrome 설정에서 프로필 이름을 변경한 경우 매크로도 함께 업데이트하자.
- Safari를 사용하지 않는다면 Safari 관련 조건 분기를 제거하여 매크로를 단순화할 수 있다.
매크로 분석: Chrome - 프로필 전환 (회사)
메뉴 선택형 중에서 가장 복잡한 매크로다. 액션이 14개로 가장 많다. 다른 매크로와의 차이점은 변수 활용이다.
무엇을 하는 매크로인가
⌃4를 누르면 Chrome이 "회사" 프로필로 전환된다. 사용 중인 컴퓨터(Mac)에 따라 프로필 메뉴 경로가 달라지는 것을 변수로 처리한다.
트리거
| 트리거 타입 | 값 | 설명 |
|---|---|---|
| HotKey | ⌃4 | Chrome이 활성화된 상태에서 동작 |
액션 흐름
- SetActionDelay -- 딜레이를 설정한다.
- SetVariableToText --
computerName변수에%MacName%값을 저장한다. 현재 사용 중인 Mac의 이름을 가져오는 것이다. - IfThenElse (1단계) -- Safari인지 확인한다.
- Safari일 때 -- "파일 > 새로운 윈도우 > 새로운 회사 윈도우" 메뉴를 선택한다.
- Safari가 아닐 때 -- 중첩 조건 분기에 진입한다.
- IfThenElse (2단계) -- Chrome 상태를 확인한다.
- IfThenElse (3단계) --
computerName변수를 기반으로 어떤 Mac인지 판별한다. - 컴퓨터에 따라 -- "프로필 > Jaesik (회사)" 또는 "프로필 > 직장" 메뉴를 선택한다.
- SimulateKeystroke ⌥⌃C -- 사이드바를 닫는다.
핵심 기술 해설
SetVariableToText와 %MacName% 토큰
KM에서 변수는 SetVariableToText 액션으로 설정한다.
%MacName%은 KM의 내장 토큰으로, 현재 Mac의 컴퓨터 이름을 반환한다.
이 매크로에서는 Mac 이름으로 어떤 컴퓨터를 사용 중인지 판별한다. 회사 Mac과 개인 Mac에서 Chrome 프로필 이름이 다를 수 있기 때문이다. 같은 매크로 파일을 여러 Mac에서 공유할 때 유용한 패턴이다.
이것이 변수 활용의 첫 번째 사례다. 변수를 사용하면 환경에 따라 동작을 다르게 할 수 있다. ch10에서 변수를 본격적으로 다룰 예정이니, 여기서는 "이런 것이 가능하다"는 정도로 이해하면 된다.
3단계 중첩 조건 분기
이 매크로는 IfThenElse가 3단계로 중첩되어 있다. 1단계: Safari vs Chrome 구분. 2단계: Chrome 프로필 상태 확인. 3단계: 컴퓨터 이름에 따른 분기.
중첩이 깊어지면 매크로의 가독성이 떨어진다. 하지만 다양한 환경을 하나의 매크로로 처리할 수 있다는 장점이 있다.
패턴 비교: 메뉴 선택형 3개 매크로
공부, 개인, 회사 매크로는 구조가 거의 같다. 차이점만 정리하면 다음과 같다.
| 항목 | 공부 (⌃A) | 개인 (⌃S) | 회사 (⌃4) |
|---|---|---|---|
| Safari 메뉴 경로 | 새로운 공부용 윈도우 | 새로운 개인 윈도우 | 새로운 회사 윈도우 |
| Chrome 프로필명 | 재식 (AI) / AI | Soul (개인) / DoubleSouls | Jaesik (회사) / 직장 |
| 변수 사용 | 없음 | 없음 | %MacName% |
| SafariControl | 사용 | 미사용 | 미사용 |
| 액션 수 | 11 | 9 | 14 |
공통 패턴은 이렇다.
- 딜레이 설정
- Safari인지 확인 (Safari면 "파일 > 새로운 윈도우 > ..." 메뉴 선택)
- Chrome이면 현재 프로필에 따라 적절한 메뉴 경로 선택
- ⌥⌃C로 사이드바 정리
이 패턴을 이해하면, 새로운 프로필이 추가되었을 때 기존 매크로를 복제하고 메뉴 경로만 수정하면 된다.
매크로 분석: Chrome - 교양프로필 / AI프로필
교양프로필(⌥D)과 AI프로필(⌥A)은 앞의 세 매크로와 접근 방식이 다르다. Chrome 메뉴를 통한 프로필 전환 대신, YouTube 페이지에서 JavaScript로 계정을 전환한다.
무엇을 하는 매크로인가
YouTube를 시청할 때 계정을 전환한다. 교양프로필은 교양 관련 콘텐츠 추천을 받는 계정으로, AI프로필은 AI 관련 콘텐츠 추천을 받는 계정으로 전환한다. YouTube의 추천 알고리즘은 계정별로 다르게 동작하기 때문에, 관심사별로 계정을 분리하면 더 정확한 추천을 받을 수 있다.
트리거
| 매크로 | 트리거 타입 | 값 |
|---|---|---|
| 교양프로필 | HotKey | ⌥D |
| AI프로필 | HotKey | ⌥A |
액션 흐름
두 매크로의 구조는 동일하다. 전환 대상 계정만 다르다.
- IfThenElse (1단계) -- 현재 상태를 확인한다.
- 맞으면 -- YouTube 페이지에서 JavaScript를 실행한다. 프로필 버튼을 클릭하고, 계정 전환 메뉴를 찾아 클릭한다.
- 아니면 -- 다른 조건을 확인하여 같은 방식으로 계정을 전환한다.
핵심 기술 해설
ExecuteJavaScript로 YouTube DOM 조작
이 매크로는 YouTube 페이지의 DOM 요소를 직접 조작한다.
document.querySelector('ytd-topbar-menu-button-renderer button')으로 프로필 버튼을 찾고, click()으로 클릭한다.
setTimeout으로 메뉴가 열릴 때까지 대기한 후, 계정 전환 링크를 찾아 클릭한다.
이 방식은 SelectMenuItem보다 세밀한 제어가 가능하다. 웹페이지의 UI 요소를 직접 다루기 때문이다. 다만, YouTube가 UI를 업데이트하면 선택자(selector)를 수정해야 한다는 단점이 있다.
메뉴 선택형 vs JavaScript 실행형
왜 같은 "프로필 전환"인데 두 가지 방식을 사용할까? 공부/개인/회사 프로필은 Chrome 브라우저 자체의 프로필이다. Chrome 메뉴에서 전환할 수 있다. 교양/AI 프로필은 YouTube 계정(Google 계정)이다. 브라우저 프로필과는 별개로, YouTube 안에서 계정을 전환해야 한다.
목적이 다르니 방법도 다른 것이다.
직접 만들어보기
가장 기본적인 "프로필 전환 (개인)" 매크로를 만들어보자. 개인 매크로는 9개 액션으로 구성되어 있어서, 핵심 패턴을 익히기에 적합하다.
- KM 에디터에서 Chrome&Safari 그룹을 만든다. 매크로 그룹의 Available in 설정에서 Chrome과 Safari만 선택한다.
- 새 매크로를 만들고 이름을 "Chrome - 프로필 전환 (개인)"으로 설정한다.
- 트리거를 추가한다: Hot Key Trigger -- ⌃S로 설정한다.
- 첫 번째 액션: Set Action Delay 를 추가한다. 딜레이를 짧게 설정한다(0.1초 이하).
- 두 번째 액션: If Then Else 를 추가한다.
- 조건: "The front application is Safari"로 설정한다.
- Then 경로: Select Menu Item 액션을 추가하고, "파일 > 새로운 윈도우 > 새로운 개인 윈도우"를 입력한다.
- Then 경로: Simulate Keystroke 액션을 추가하고, ⌥⌃C를 입력한다.
- Else 경로에 중첩 If Then Else 를 추가한다.
- Then 경로: Select Menu Item -- "프로필 > (본인의 프로필 이름)"을 입력한다.
- Then 경로: Simulate Keystroke -- ⌥⌃C를 입력한다.
- Else 경로: Select Menu Item -- "프로필 > (대체 프로필 이름)"을 입력한다.
- Else 경로: Simulate Keystroke -- ⌥⌃C를 입력한다.
- 테스트: Chrome에서 ⌃S를 누른다. 프로필 전환 메뉴가 자동으로 선택되는지 확인한다.
- 나머지 프로필(공부, 회사)도 같은 패턴으로 매크로를 복제하고, 단축키와 메뉴 경로만 변경한다.
이 챕터에서 배운 것
- SelectMenuItem으로 앱 메뉴를 자동 선택하는 방법
- IfThenElse 중첩으로 Safari와 Chrome을 구분하는 패턴
- SetVariableToText와 %MacName% 토큰으로 환경별 분기를 처리하는 방법
- ExecuteJavaScript로 YouTube DOM을 조작하여 계정을 전환하는 방법
- 비슷한 매크로를 복제하고 핵심 값만 변경하는 패턴화 기법
다음 챕터 예고
ch05에서는 텍스트 트리거를 다룬다. 특정 문자열을 입력하면 자동으로 URL이 열리는 Quicklink 매크로를 만든다. Google Drive, Google Calendar, Gmail 등 자주 쓰는 서비스를 빠르게 여는 방법을 배운다.