노후 장비 교체 이슈로 신규 M2 맥북을 받았다. 매번 맥북을 교체할 때마다 애플의 '마이그레이션 지원' 기능으로 편하게 작업했었는데, 이번에는 인텔 칩셋 환경에서 애플 실리콘 환경으로 넘어가는 것이라서 수동으로 세팅하기로 했다.
사용하는 앱들 하나씩 확인해서 새로 설치하고 설정 Export 하고 Import 하고 한 땀 한 땀 작업했다. JetBrains의 IDE는 'Settings Sync'라는 좋은 기능이 있어서 매우 편하게 끝나는 줄 알았는데, Bookmarks 정보는 Sync에 미포함이다. 코드 내비게이션에 북마크를 애용하고 있어서, 이걸 모두 버리고 갈 수는 없었다.
구글링으로 찾은 아래 문서에서 IntelliJ의 'Bookmarks' 정보를 추출하는 방법에 대한 기본적인 정보를 찾았다.
참고 자료: https://en.liqiang.io/post/backup-bookmark-with-jetbrains-en?lang=US_EN
하지만, 이 문서의 내용은 아마도 Linux 환경의 'GoLand 2022.1' 버전을 기준으로 방법을 제시하고 있다.
내 개발 환경인 macOS에서는 그대로 사용할 수가 없었기에 JetBrains의 공식 문서에서 추가 정보를 찾았다.
위 문서에 따르면 macOS 설정은 다음의 위치에 있다.
Configuration (idea.config.path): ~/Library/Application Support/JetBrains/IntelliJIdea2022.2
'IntelliJIdea2022.2' 이건 위 문서가 쓰일 당시의 버전일 테니 현재 사용하는 IDE의 디렉토리가 "~/Library/Application Support/JetBrains" 이 위치에 있을 것이다.
나의 경우 IntelliJ는 'IntelliJ IDEA 2022.3'를 사용 중이었으니, 아래와 같은 방법으로 Bookmakrs 정보를 추출할 수 있다.
우선 북마크를 추출할 프로젝트가 있는 디렉토리로 이동한다.
$ cd [Project Path]
그리고, Project ID를 구한다.
$ PROJECT_ID=$(cat .idea/workspace.xml | grep ProjectId | awk '{print $3}' | awk 'BEGIN {FS="="} {print $2}' | tr -d '"')
위에서 구한 Project ID를 가지고 설정 파일의 위치를 아래와 같이 찾을 수 있다.
$ find ~/Library/Application\ Support/JetBrains/IntelliJIdea2022.3 -name "$PROJECT_ID".xml
위 경로의 하위 디렉토리 'workspace' 아래에 Project ID를 파일명으로 하는 xml 파일들이 있을 것이다.
만약, 현재 사용하고 있는 IDE의 정확한 버전을 모르겠다면 그냥 아래와 같이 해도 설정 파일의 위치를 찾을 수는 있다.
$ find ~/Library/Application\ Support/JetBrains -name "$PROJECT_ID".xml
하지만, 여러 IDE 버전을 사용했었다면 설정 파일이 여러 위치에 존재할 것이다. 아마도 여러 위치 중에 가장 높은 버전이 현재 사용 중인 버전일 것이다.
위 설정 파일에는 북마크 정보 외에도 'Run Configurations' 정보 등 프로젝트에 관련된 여러 정보가 들어있다. 나의 경우에는 Intel 맥북에서 M2 맥북으로 마이그레이션 하는 과정에서 북마크 정보를 가져갈 필요가 있었고, 거의 스냅샷처럼 그대로 옮겼기 때문에 위 설정 파일을 AirDrop으로 던져서 M2 맥북 환경의 'IntelliJ IDEA 2023.1.2'가 설치된 위치에 덮어씌웠고 모든 설정과 북마크가 살아있는 것을 확인했다.
이렇게, 하나의 프로젝트 설정 파일을 넘겨서 사이드 이펙트가 없는 것을 확인하고는 'workspace' 디렉토리 자체를 M2 맥북으로 복사했다.
주의 사항은 설정받을 타겟 맥북에 해당 프로젝트가 열려 있으면 안 된다. 그냥 IDE를 모두 종료해 두고 복사하는 것이 좋다.
위와 같은 방법으로 IntelliJ, Clion, PyCharm 등 여러 IDE에서 작업하는 프로젝트들의 북마크를 신규 장비로 모두 복사했다.
코드 내비게이션에 북마크를 애용하는 분들에게 도움이 되길 바란다.
'Dev' 카테고리의 다른 글
gdbserver ptrace issue on Apple Silicon M1/M2 (0) | 2023.06.06 |
---|---|
Sharing Containers Across Multiple Docker Compose (0) | 2023.05.29 |
자바 최적화 (Optimizing Java) (0) | 2023.05.13 |
쏙쏙 들어오는 함수형 코딩 (0) | 2023.05.06 |
좋은 코드, 나쁜 코드 (Good Code, Bad Code) (0) | 2023.03.04 |