새 노트북으로 옮겼는데 자꾸 뭔가 안 맞을 때

오래 쓰던 노트북이 완전히 맛이 가서, 새 노트북으로 급하게 작업 환경을 옮겨야 했습니다.
같은 프로젝트를 새 컴퓨터에서 열었는데, 분명 어제까지 잘되던 검사 하나가 자꾸 실패했습니다.

어제까지 잘되던 검사가 새 컴퓨터에서만 실패할 때, 드리프트

text
1Expected node v20.11.0, found v20.9.0
2Config mismatch: 3 settings differ from team baseline
같은 실패가 반복되는 걸 보고 팀 설정 문서를 찾아봤습니다. 팀에서 정해둔 기준 버전과 제 새 노트북에 깔린 버전이 미묘하게 어긋나 있었습니다.
다들 같은 기준에서 출발했더라도, 시간이 지나며 각자의 환경이 조금씩 다른 방향으로 틀어지는 현상이었습니다. 같은 시각에 맞춰둔 시계 여러 개가 시간이 지나면서 조금씩 어긋나는 것과 비슷합니다. 팀 설정 문서를 기준으로 다시 맞추고 나서야 검사가 통과했습니다.
같은 기준에서 출발했지만 시간이 지나며 각자 조금씩 어긋나는 모습
같은 기준에서 출발했지만 시간이 지나며 각자 조금씩 어긋나는 모습
버전을 맞추고 나니, 회사 로고가 들어간 스크린샷 하나가 어딘가 이상하다는 게 눈에 들어왔습니다.

AI가 만든 이미지 구석에 흐릿한 무늬가 있을 때, 워터마크가 남는 이유

디자이너 동료가 슬랙에 올린 이미지를 보고 물어봤더니, 구석의 흐릿한 무늬가 원래부터 있는 거라고 알려줬습니다.
사람 눈에는 잘 안 띄지만, 이 이미지가 AI로 만들어졌다는 걸 나중에라도 구분할 수 있도록 심어둔 표식이었습니다. 빛에 비춰야 보이는 지폐 속 무늬와 같은 발상이었습니다.
눈에 잘 띄지 않게 이미지 안에 심어두는 출처 표식
눈에 잘 띄지 않게 이미지 안에 심어두는 출처 표식
이미지 문제는 그렇다 치고, 자주 쓰던 명령어 하나가 새 노트북에서만 "찾을 수 없다"는 메시지를 냈습니다.

어제까지 되던 명령어가 새 컴퓨터에서 안 먹힐 때, 환경변수와 PATH

bash
1$ mytool --version
2zsh: command not found: mytool
쉘 설정 파일을 열어보다가 이유를 알게 됐습니다. 예전 노트북엔 이 도구가 있는 폴더 경로가 등록돼 있었는데, 새 노트북에는 그 등록이 아직 안 되어 있었습니다.
여러 설정값이 담긴 서랍 안에 PATH도 그중 하나로 들어있는 구조
여러 설정값이 담긴 서랍 안에 PATH도 그중 하나로 들어있는 구조
컴퓨터는 명령어를 실행할 때, PATH라는 목록에 등록된 폴더들만 뒤져서 찾습니다. 등록이 안 된 폴더에 있는 도구는 이름을 정확히 알아도 못 찾는 셈입니다. 환경변수는 이런 설정값들이 담긴 공용 서랍 같은 것으로, PATH는 그 서랍 안에 있는 여러 목록 중 하나였습니다.
명령어를 실행할 때 PATH에 등록된 폴더만 훑어보는 구조
명령어를 실행할 때 PATH에 등록된 폴더만 훑어보는 구조
터미널 설정 파일을 열어 새 경로를 한 줄 추가하는 장면
경로를 등록하고 나니 명령어는 다시 잘 돌았는데, 마지막으로 터미널 화면 자체가 예전과 다르게 생겨서 어색했습니다.

터미널 앞부분 표시가 컴퓨터마다 다르게 생긴 이유, 쉘 프롬프트

text
1예전 노트북: user@old-mac ~/project %
2새 노트북: ➜ project git:(main)
같은 회사 동료 컴퓨터 화면을 옆에서 보다가, 왜 이렇게 다르게 생겼는지 물어봤습니다. 동료는 이게 그냥 취향껏 꾸밀 수 있는 부분이라고 했습니다.
터미널에서 명령어를 입력하기 직전에 뜨는 이 줄을 프롬프트라고 부르는데, 현재 폴더나 브랜치 이름처럼 필요한 정보를 얼마나 보여줄지는 각자 설정하기 나름이었습니다. 같은 기능을 쓰는 앱이라도 사람마다 잠금화면 배경이 다른 것과 비슷했습니다. 이사한 지 며칠 만에야 새 노트북이 손에 익기 시작했습니다.
같은 역할을 하는 프롬프트라도 설정에 따라 보여주는 정보와 모양이 다른 모습
같은 역할을 하는 프롬프트라도 설정에 따라 보여주는 정보와 모양이 다른 모습
정리가 끝난 새 책상, 노트북 화면에 손에 익은 터미널 프롬프트가 떠 있는 장면
이틀에 걸쳐 옮긴 작업 환경은 그럭저럭 예전 모습을 되찾았습니다. 새 컴퓨터에서 안 되던 것들은 대부분 코드가 아니라 코드 바깥에 적혀 있던 설정 문제였습니다. 다음에 또 옮길 때를 대비해, 이번엔 그 설정들을 파일로 남겨뒀습니다.

자주 묻는 질문

드리프트는 어떻게 미리 막을 수 있나요?

팀 설정 파일을 저장소에 함께 커밋해두고, 새 환경을 세팅할 때 그 파일을 기준으로 자동 설치되게 만들어두면 손으로 하나씩 맞추는 실수를 줄일 수 있습니다.

AI 이미지의 워터마크는 항상 눈에 보이나요?

아닙니다. 눈에 보이지 않게 픽셀 값 안에 정보를 숨겨두는 방식도 있어서, 전용 도구로 확인해야만 드러나는 경우도 많습니다.

PATH에 아무 폴더나 추가해도 되나요?

기술적으로는 가능하지만 출처가 불분명한 폴더를 추가하면 보안 위험이 있습니다. 신뢰할 수 있는 도구가 설치된 폴더만 추가하는 게 안전합니다.

<a href="/glossary/code-generation" class="glossary-link" title="AI가 자연어 설명이나 기존 코드 문맥을 바탕으로 프로그래밍 코드를 자동으로 작성하는 기술입니다.">AI 코딩</a> 도구 용어 사전 연작의 6편입니다. 다음 편 예고 · 7편 장애 당직을 서던 밤, 알림이 울리기 전에 이미 벌어지고 있던 일들 하트비트 · 브레드크럼 · 그림자 모드 · 파이프 · 리다이렉션

관련 글