답을 찾는 과정에 있던 일들을 기억을 더듬어가며 작성했습니다. 해결방법만 원하시는 분은 스크롤을 끝까지 내려주세요.
클론코딩을 하던 중 Sanity를 사용하게 되었습니다.
이전에 써봤던 기술인지라 별 어려움 없으리라 생각했습니다.
그러나 이게 왠걸,
처음 보는 오류를 맞닥뜨립니다.
project ID 문제는 아닙니다. 방금 생성한 프로젝트이며, Sanity에서 제공하는 client install코드를 copy버튼을 눌러 복사해왔습니다.
그럼 문제는 'you do not have access to it'. 권한이 없다.
이제 막 설치하려던 참인데?
프로젝트를 만드는 다른 방법인, cli에서의 프로젝트 생성을 시도해봅니다.
npm create sanity@latest
잘 됩니다?!
참고로 "The default dataset configuration has a public dataset named 'production'".을 yes라고 하면 견본 데이터셋을 만들어서 넣어줍니다. 원치 않으신다면. No라고 입력하시면 됩니다.
다 만들어졌습니다. 왜 웹에서는 작동하지 않았을까요? Sanity웹을 확인해봐야겠습니다.
깨끗합니다. 프로젝트가 만들어지지 않았습니다.
정확히는, 만들어졌지만, 이 계정에 만들어지지 않았습니다.
문득 떠오르는 과거의 기억. 저는 과거 클론코딩을 하면서 Sanity를 쓴 적이 있습니다. 다른 계정입니다.
그 계정으로 접속해봅니다.
세상에, 여기에 있습니다.
왜 이전 계정에 프로젝트가 생성된걸까요?
당시 프로젝트는 로컬에서 모두 삭제했고, Sanity모듈도 지웠습니다. 그게 아마 작년 9~10월. 거의 1년 전의 일입니다.
vscode에 뭔가 기록이 남아있을까요? 아닙니다. 그 때와는 다른 github계정을 쓰고있습니다.
스택 오버플로우를 계속 넘겨도 비슷한 이슈가 보이지 않습니다.
그 때 눈에 뛴 문구 하나.
슬랙 커뮤니티? 선임 개발자의 조언은 귀중합니다. 당장 가서 물어봅시다.
질문 작성!
이후 답변이 달리길 기다리며, 약 두 시간에 걸친 구글링에 지친 몸을 이끌고 카페에 갔습니다.
커피를 마시며 멍을 때리는데, 도통 답변이 달리질 않습니다. 시간이 너무 지체됩니다. 사람이 아닌 ai가 답변해주는 카테고리에 다시금 질문합니다.
오? sanity whoami ? sanity logout?
가슴이 뜁니다. 이거 뭔가 먹힐 것 같은 느낌입니다. 바로 집으로 달려와서 입력합니다.
아! 아찔했지만 정신차립니다. 아직 sanity 설치 안했습니다. 당연합니다.
설치합니다. 공식문서에 따르면, sanity cli를 사용하기 위해서 글로벌하게 설치해야합니다.
npm install --global sanity@latest
그 후 다시 "sanity whoami"
오! 커맨드는 틀렸지만 cli를 사용할 수 있게 되었습니다.
뒤에나온 sanity logout을 실행해봅니다
??????????????
로그아웃(로그인 한 적 없음)을 했습니다.
그 다음 부턴 일사천리였습니다.
로그인을 하고,
프로젝트도 무사히 만들었습니다.
잘됐구만요~~
하지만 아직 찜찜합니다.
대체 어떻게 1년 가까이 지난 지금까지도, 모듈이 삭제되었는데도 로그아웃을 유지하고 있던걸까요?
전역에서도, 프로젝트 폴더에서도 Sanity는 없었습니다.
Sanity cli라는 해결방법을 추천해준 야무진 ai에게 다시 물어봅니다.
useCurrentUser라는 훅이 최근 인증된 유저 정보를 검색한답니다. 하지만 이것도 아닙니다. 이 훅은 Sanity가 설치되어 있어야 동작합니다.
그러다 문득 공식문서를 유심히 보지 않았다는 사실을 깨달았습니다.
인증? authentication 검색.
...
"개입없이 개인 토큰은 1년동안 지속됩니다. Sanity CLi에서 로그아웃한 후 후속 로그인은 새 개인 토큰을 생성하고, 그렇게 하면서 이전 토큰을 무효화합니다"
sanity debut --secrets
그랬습니다.
약 1년전의 로그아웃을 하지 않은 저는 1년후의 저에게 유효기간이 채 한 달이 남지 않은 토큰을 선물로 주었던 것입니다. (모듈삭제 시에도 토큰이 남아있는것을 실험을 통해 재확인 하였습니다)
그리고 분명 cli로 로그인을 했을 저는 그 사실을 잊어버리고 온 사방을 헤멘 것입니다.
.
.
.
저는 지금껏 기록과 정리에 큰 노력을 기울이지 않았습니다. 쓰다보면 눈에 익겠지~라는 생각에 그랬던 것 같습니다.
그 결과 벌어진 이번 일은, 해결이 된 지금은 작은 해프닝이지만, 해결까지의 혼란은 상당한 것이었습니다. 분명 클론코딩을 하면서 익숙해졌다고 생각했는데, 시간이 지나니 생판 처음보는 기술처럼 느껴졌던 것입니다.
문제에 대한 접근도 반성할 점이 있습니다.
에러가 발생했을 때,그 해결책을 공식문서가 아닌 블로그를 통해 구하려고 했다는 점입니다.
만약 어떤 블로그에서 저보다 먼저 이 문제에 부딪힌 사람의 글을 발견했다면,
저는 그저 copy & paste를 통해 문제를 해결했을 것이 분명합니다.
그러고선 아 잘됐구만~ 하고 프로젝트를 마저 진행했을 것이고, 오늘 얻은 교훈이나 지식들은 한층 더 멀어졌을 것입니다.
오히려 행운이었다고 생각합니다. 앞으로는 블로그가 아닌 공식문서를 먼저 찬찬히 보는 습관을 들이려 합니다.
이번 일을 기록의 중요성을 실감하게 되는 계기가 되었습니다. 앞으론 공부한 내용을 잘 정리해보려 합니다.
블로그도 조금씩 써 볼 생각입니다. 블로그에 글을 쓰다보니, 모르는 것을 차마 얼버무릴 수가 없습니다.
읽어주셔서 감사합니다.
기존에 사용했던 계정이 logout되지 않은 상태에서 발생하는 에러입니다.
npm install --global sanity@latest
cli를 설치하신 다음,
sanity logout
로그아웃 하시고,
sanity login
프로젝트를 만드신 계정으로 로그인 하시면 해결됩니다.