Skip to content
isdnetworks
Go back

프로필을 나누자 로그인까지 갈렸다

(수정됨)

거래소 관리자 운영 계정과 개발 계정을 같은 Chrome 창에서 쓰다가 잘못 누르는 일이 몇 번 있어서, 프로필을 아예 나눠 쓰기로 했다.

Table of contents

Open Table of contents

목표 — 잘못 누르는 것을 구조로 막는다

주의해서 쓰자는 약속만으로는 몇 달째 아무것도 해결되지 않고 있었다. 사람이 조심하는 것 말고 구조로 갈라야 했다.

동시에 자주 쓰는 서비스의 로그인은 그대로 유지되기를 바랐으므로, 격리와 편의가 정면으로 부딪히는 지점이 있었다.

원인 — 자격 저장소에 없던 항목

프로필을 나누자 로그인이 전부 풀렸는데, macOS Keychain의 Chrome Safe Storage 항목이 있는데도 그랬다.

Keychain에 들어 있는 것은 쿠키와 비밀번호를 암호화하는 키의 재료이지 세션 쿠키 자체가 아니었다. Chromium 84 소스의 chrome_constants.cc대로 쿠키는 프로필 폴더 안 Cookies라는 SQLite 파일에 있고 History·Login Data·Web Data도 같은 자리에 프로필별로 따로 있다.

프로필을 나눈다는 것은 그 폴더를 나눈다는 뜻이었다. 기본 프로필 Default 옆에 Profile 1이 생기면서 쿠키·로컬 스토리지·확장 설정이 통째로 갈렸다.

부분 공유가 안 됐다

Cookies만 따로 공유하는 방법을 찾아봤지만 없었다. Chrome 프로필은 통째로 하나의 단위였다.

Cookies 파일을 Profile 1로 복사해 보니 그 순간의 로그인은 살아났다. os_crypt_mac.mm을 보면 macOS에서는 키를 Keychain 비밀번호에서 PBKDF2로 유도하므로 같은 기기의 프로필끼리는 복호화가 된다. 그러나 복사본은 그 시점의 스냅숏이라 한쪽에서 세션이 갱신되면 다른 쪽은 며칠 안에 풀렸고, Chrome이 떠 있는 동안은 그 SQLite 파일이 잠겨 있어 매번 종료하고 복사해야 했다. 되기는 하지만 공유라고 부를 수 없는 방식이었다.

선택지와 고른 것의 대가

방법이 셋이었다. 프로필을 나누고 매번 로그인하거나, 계정별로 브라우저를 다르게 쓰거나, 나누지 않고 확장으로 경고만 띄우는 것이다.

확장으로 경고만 띄우는 쪽은 편하지만 실수 자체를 막지는 못하는데, 지금까지가 바로 그 상태였다.

브라우저를 다르게 쓰는 쪽은 갈리는 것은 확실한데 도구가 둘이라 설정을 두 벌 관리하게 된다.

프로필을 나누고 매번 로그인하는 쪽을 골랐다. 이유는 잘못 누르는 사고 한 번의 비용이 다른 어느 비용보다 훨씬 커서다. 대신 하루에 두세 번 로그인하는 번거로움을 감수하기로 했다.

되돌릴 조건과 적용 범위

이 방식은 운영과 개발 계정 둘에만 적용했다. 개인 용도까지 나누면 프로필이 셋이 되고 관리가 늘어난다.

로그인 횟수가 하루 다섯 번을 넘으면 다시 보기로 했다. 그 수를 넘으면 감수하기로 한 비용이 처음 예상을 벗어난 것이다.

확인한 것과 추론으로 남긴 것

쿠키가 Cookies에 있다는 것은 sqlite3로 직접 열어 확인했다. 복사본의 세션이 며칠 안에 풀리는 것도 실제로 겪었다.

Firefox나 Edge도 같은 구조인지는 확인하지 않았다. 저장 구조가 다르면 여기서 정한 것이 그대로 옮겨지지 않을 수 있다.

정리


Share this post on:

Previous Post
큐에 넣는 쪽의 부재
Next Post
마이그레이션이 두고 간 이력