프로젝트를 독립시키자고 하면 로그인도 전부 새로 해야 하는지 묻게 된다. 내가 원한 것은 같은 계정을 필요할 때 다시 쓸 수 있으면서 작업 자료와 실행 상태는 프로젝트마다 남는 구조였다. 무엇을 공유하는지 정확히 이름 붙이지 않으면 편의와 격리를 동시에 과장하기 쉽다.

같은 계정을 고른다는 의미부터 정했다

같은 저장 프로필을 여러 프로젝트에서 고르면 북극성의 같은 로그인 세션을 사용한다. 사이트에 이미 로그인한 상태를 다시 활용할 수 있다는 장점이 있다. 하지만 같은 계정의 로그아웃이나 만료도 함께 반영된다. 프로젝트를 나눴다고 외부 사이트의 계정 상태까지 별개로 생기는 것은 아니다.

이 선택은 Chrome 계정이나 쿠키를 가져오는 연결과도 다르다. 해당 기능은 제거됐고 사용자가 북극성의 일반 프로필에서 직접 로그인하는 흐름을 쓴다. 이 글의 재료에 과거 연결 문서가 있어도 그것을 현재 방법으로 다시 안내하지 않는다. 로그인 공유의 주체와 실제 구현 시점을 나눠 확인했다.

공유하는 세션과 분리하는 작업 자료

프로젝트마다 탭과 지정된 실행 대상, 선택 첨부와 노트북 자료를 따로 둔다. Python 프로세스와 Jupyter 변수, 로컬 패키지와 플러그인 수정본, 예약과 결과 기록도 프로젝트에 속한다. 같은 로그인 상태로 접근할 수 있다는 이유로 이 자료들을 전역의 마지막 값으로 덮어쓰면 안 된다.

예를 들어 한 프로젝트에서 자료를 첨부했다고 다른 프로젝트의 실행 입력에 그 파일을 자동으로 끼워 넣어서는 안 된다. 같은 계정으로 들어가는 일과 이번 작업에서 어떤 자료를 선택했는지는 다른 판단이다. 계정 재사용이 편해질수록 이번 실행의 자료 경계를 더 분명하게 보여 줘야 한다고 생각했다.

아무 계정도 고르지 않은 상태를 존중했다

계정 선택은 필수가 아니다. 선택하지 않은 탭을 기본 계정이나 최근 로그인에 조용히 붙이면 사용자가 빈 상태라고 생각한 작업이 다른 계정으로 시작할 수 있다. 미지정은 별도 빈 세션이라는 뜻을 유지한다. 나중에 직접 로그인하거나 저장된 계정을 선택할 수 있지만 처음의 선택 없음도 유효한 상태다.

한 플랫폼의 저장 계정을 여러 개 프로젝트 목록에 고를 수도 있다. 그렇다고 탭 하나가 동시에 모든 계정을 쓰는 것은 아니다. 실제 탭에는 하나의 세션 연결이 필요하다. 프로젝트에서 선택 가능한 목록과 이번 탭에서 사용 중인 계정을 분리해 읽어야 계정 선택 화면을 이해하기 쉽다.

표시된 이름과 지금 유효한 인증을 나눴다

계정 목록에서 이름을 읽었다고 그 사이트의 인증이 유효하다고 말할 수는 없다. 로그인 흔적의 발견과 표시명의 수집, 현재 페이지에서 확인할 수 있는 인증 상태는 각각 다르다. 관찰 가능한 헤더에서 확인하지 못한 경우 이름을 직접 정할 수 있는 것과 자동으로 정확한 ID를 알았다는 주장도 다르다.

실행 전에 실제 페이지가 사람 확인이나 재로그인을 요구하면 그 상태로 인계해야 한다. 이전 계정이 저장돼 있다는 이유로 오류를 무시하거나 인증 자료를 추출해 다른 프로필로 복사하는 방식을 쓰지 않는다. 편한 로그인 유지와 사이트의 만료 정책을 무시하는 기능은 같은 것이 아니었다.

프로젝트 복사에서는 로그인 링크를 이어 쓴다

프로젝트 복사는 새 탭과 작업 폴더, 노트북 문서와 설정을 만든다. 같은 계정 연결을 사용할 수 있지만 살아 있는 프로세스와 커널 변수는 복사하지 않는다. 복사된 예약도 멈춘 상태로 두어 새 업무에서 바로 같은 외부 작업을 실행하지 않게 한다.

이 범위를 설명하지 않고 그대로 복사라고만 하면 사용자는 완료한 작업까지 또 실행되거나 실행 중 변수까지 이어질 것으로 기대할 수 있다. 무엇을 같은 값으로 남기고 무엇을 새로 만드는지 구체적인 목록이 필요했다. 계정 공유는 복사의 한 부분이며 프로젝트 실행 전체를 한 덩어리로 복제한다는 뜻은 아니다.

어디까지 독립적인지 사용자에게 설명한다

회사에서 브랜드별 작업을 나누더라도 같은 외부 계정을 쓰면 사용량 제한이나 로그아웃은 공유될 수 있다. 반대로 계정을 다르게 골랐더라도 같은 호스트의 디스크나 운영체제 권한이 완전히 격리된 것은 아니다. 나는 프로젝트별 실행 분리를 보안 샌드박스나 모든 서비스의 계정 분리 보증으로 쓰지 않는다.

근거는 현재 프로젝트·계정 연결 코드와 과거 소유 시험 환경의 세션 공유·미지정 격리·커널 분리 기록이다. 이번에는 실제 계정의 로그아웃을 반복하지 않았다. 독자가 이 구조를 도입할 때도 어떤 자원을 공유할지와 어떤 영향을 함께 받을지 설명할 수 있어야 한다. 계정을 다시 쓰는 편리함과 작업을 지키는 조건을 같은 문장에 남기고 싶었다.