VS Code용 Looker 확장 프로그램은 로컬 우선 개발 모델을 사용합니다. 이 모델은 로컬 파일 시스템, Looker 인스턴스의 개발 모드, 원격 Git 저장소 간의 3자 관계를 유지합니다.
이 가이드에서는 확장 프로그램이 파일을 동기화하는 방법과 로컬 Git 작업이 Looker 프로젝트에 미치는 영향을 설명합니다.
동기화 메커니즘
확장 프로그램은 로컬 IDE와 Looker 서버 간의 파일 콘텐츠 동기화를 자동으로 관리합니다.
파일 열기 (열 때 읽기)
로컬 IDE에서 .lkml 파일을 열면 확장 프로그램이 Looker 인스턴스의 개발 모드에서 체크아웃된 브랜치에서 해당 파일의 현재 버전을 자동으로 가져옵니다. 이렇게 하면 항상 최신 버전의 코드를 사용할 수 있습니다.
파일 저장 (저장 시 쓰기)
로컬에서 파일을 저장하면 (Mac의 경우 Command-S, Windows/Linux의 경우 Ctrl+S) 확장 프로그램이 로컬 변경사항을 Looker 서버로 즉시 푸시합니다. 그러면 개발 모드에 있을 때 브라우저 기반 Looker IDE에 이러한 변경사항이 표시됩니다.
동기화 충돌 처리
파일이 VS Code에서 열려 있는 동안 브라우저 기반 Looker IDE에서 수정되면 충돌이 발생할 수 있습니다.
기본적으로 확장 프로그램은 Looker 서버의 버전을 로컬 VS Code 버전으로 덮어씁니다.
하지만 looker.askBeforeOverwritingRemote 설정을 사용 설정한 경우 서버에서 수정된 파일을 저장하려고 하면 VS Code에 경고가 표시됩니다. 다음 작업 중 하나를 선택할 수 있습니다.
- 로컬 유지: Looker 서버의 버전을 로컬 VS Code 버전으로 덮어씁니다.
- 원격 가져오기: 로컬 파일을 Looker 서버의 버전으로 덮어씁니다.
looker.askBeforeOverwritingRemote 설정은 기본적으로 사용 중지되어 있습니다.
로컬 Git 작업
확장 프로그램은 파일 콘텐츠를 동기화하지만 로컬 터미널 또는 로컬 IDE의 소스 제어 탭에서 표준 Git 명령어를 사용하여 Git 저장소를 관리해야 합니다.
브랜치 관리
git checkout을 사용하여 로컬에서 브랜치를 전환하면 확장 프로그램이 변경사항을 감지하고 Looker 서버의 세션을 일치하는 브랜치로 자동으로 전환합니다.
Looker의 Git 상태
파일 변경사항을 저장하면 Looker 인스턴스와 동기화되고 브라우저 기반 Looker IDE에 커밋되지 않은 것으로 표시됩니다. 로컬 환경에서 Git을 사용하여 이러한 변경사항을 커밋하면 원격 저장소로 푸시할 때까지 Looker IDE에 커밋되지 않은 것으로 계속 표시됩니다.
git push를 사용하면 Looker 인스턴스가 원격 저장소에서 커밋된 변경사항을 가져옵니다. Looker 인스턴스가 원격에서 가져온 후에는 커밋하고 푸시한 변경사항이 Looker IDE에 커밋되지 않은 것으로 더 이상 표시되지 않습니다. 로컬에 저장되었지만 아직 커밋되고 푸시되지 않은 파일만 커밋되지 않은 것으로 표시됩니다.
LookML 검증
확장 프로그램은 변경사항을 저장할 때마다 Looker LookML 검사기를 자동으로 실행합니다. 검증 도구에서 반환된 구문 및 모델 오류는 로컬 IDE 내 파일에 인라인으로 표시됩니다. 원하는 경우 Looker: LookML 검증 명령어 팔레트 명령어를 사용하여 파일을 저장하지 않고 LookML 검사기를 수동으로 실행할 수도 있습니다.