← 블로그로 돌아가기

Visual Studio에서 Mac으로 실전: 첫날 환경 체크리스트, IDE 선택, 단축키 이전

Visual Studio에서 Mac으로 실전: 첫날 환경 체크리스트, IDE 선택, 단축키 이전

MacBook을 받았는데도 <kbd>Ctrl+S</kbd>로 저장하고 탐색기에서 솔루션을 찾는다면—근육 기억이 SDK보다 이전이 어렵습니다. 첫날 컴파일, 첫주 PR, 첫달 CI 단계별 체크리스트입니다.

MacBook을 막 받았는데도 습관적으로 「시작 메뉴」에서 Visual Studio를 찾거나 탐색기에서 .sln을 더블클릭하려 한다면——가장 어려운 이주 대상은 SDK가 아니라 근육 기억이라는 뜻입니다. 이 글은 Windows에서 Visual Studio / Visual Studio Code를 오래 쓴 .NET, C++, 풀스택 개발자를 대상으로, 「첫날 컴파일, 첫 주 PR, 첫 달 CI」 세 단계에 맞춘 재현 가능한 환경 체크리스트를 제시하고, 마지막에 iOS 빌드를 클라우드 Mac으로 넘길 시점을 설명합니다.

첫날 2시간: 터미널, Git, dotnet부터 가동

처음부터 풀 Xcode를 깔지 마세요. 아래 순서대로 하면 보통 120분 안에 「솔루션 열기 → F5 디버그」 주 경로를 복구할 수 있습니다.

1. Command Line Tools와 Homebrew

xcode-select --install          # 대화상자 확인; Git·clang만 필요하면 충분
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Apple Silicon에서 Homebrew 접두사는 /opt/homebrew(Intel은 /usr/local). 설치 후 brew doctor로 오류 없는지 확인.

2. .NET SDK와 자주 쓰는 CLI

brew install --cask dotnet-sdk
brew install git gh jq fzf ripgrep
dotnet --info                   # SDK 버전과 RID(osx-arm64) 확인

팀이 SDK 버전을 고정하면 프로젝트 루트에 global.json 추가:

{
  "sdk": {
    "version": "8.0.400",
    "rollForward": "latestFeature"
  }
}

3. Git 신원과 줄바꿈

git config --global user.name "이름"
git config --global user.email "you@company.com"
git config --global core.autocrlf input   # Mac에서는 input 권장; Windows 동료에게 전체 줄바꿈 diff 방지

함정 기록: Windows에서 클론한 저장소에서 「모든 파일 modified」가 뜨면 9할은 core.autocrlf.gitattributes 불일치. 첫날 팀 규칙을 맞추는 편이 나중에 히스토리 정리보다 싸다.


IDE 선택: Rider, VS Code, 아니면 Windows 유지?

마이크로소프트는 Visual Studio for Mac 지원을 종료했습니다(2024-08). 현실적인 선택지:

도구적합 대상이주 비용비고
JetBrains Rider기존 Visual Studio 헤비 유저, ReSharper 파낮음솔루션 구조, 리팩터, NuGet, 디버깅이 VS에 가장 가깝다; 유료
VS Code + C# Dev Kit이미 VS Code 익숙, 가벼운 저장소매우 낮음무료; 대형 솔루션 인덱싱·리팩터는 Rider보다 약함
VS Code + CursorAI 보조 코딩 중심낮음VS Code 확장 생태계 호환; Agent가 터미널을 자주 호출
풀 XcodeiOS / macOS / MAUI iOS 타깃중간Apple 플랫폼 작업 시에만 필수; 용량 크고 업데이트 잦음
Parallels / 원격 Windows레거시 WinForms, WPF, 특정 VS 플러그인높음비상용은 가능, 일상 주력 비권장

결정 가이드:

  • 순수 ASP.NET Core / API / 콘솔 → Rider 또는 VS Code 중 하나면 충분.
  • .NET MAUI로 iOS 배포 → 로컬 Rider + Xcode(또는 VS Code + Xcode CLI); Android 에뮬레이터는 Mac에서 바로 실행.
  • 팀 ReSharper 규칙 통일 → Rider 라이선스를 회사 JetBrains 계정과 맞춤.

키맵과 창 관리: Ctrl 근육 기억 3일 전환

Mac에서는 가 Windows Ctrl 역할(저장, 복사, 붙여넣기, 실행 취소)을 맡습니다. 대조표는 인쇄해 모니터 옆에 붙이세요:

동작Windows (VS)macOS
저장Ctrl+S+S
실행 취소Ctrl+Z+Z
줄 주석Ctrl+K, Ctrl+C+/(VS Code/Rider에서 변경 가능)
디버그F5+ 또는 F5(기능 키 사용 설정 필요)
솔루션 전체 검색Ctrl+Shift+F+Shift+F
앱 전환Alt+Tab+Tab

창 관리가 두 번째 고통 포인트: Rectangle(무료) 또는 Magnet을 설치하고 ++방향키로 Win11 스냅 레이아웃을 구현. 다중 모니터에서는 시스템 설정 → 디스플레이 → 디스플레이마다 별도 Spaces로 전체 화면 앱이 화면 간에 뛰는 것을 방지.


터미널, 셸, Docker: PowerShell에서 zsh로

권장 최소 키트

brew install starship eza bat fd
# ~/.zshrc 조각
eval "$(starship init zsh)"
alias ls='eza --icons'
alias cat='bat'
PowerShell 사용자
`brew install powershell` 가능하지만 팀 스크립트는 bash/zsh가 많음; 장기적으로 개인 alias는 zsh로 옮기는 편이 낫다.
Docker Desktop
Windows판과 유사; Apple Silicon에서는 이미지 아키텍처(linux/arm64 vs amd64) 주의. DB 컨테이너화 후 연결 문자열의 localhost는 Mac에서도 동일하게 동작.
데이터베이스 GUI
Azure Data Studio, DBeaver, TablePlus 모두 macOS판 있음; SSMS는 네이티브 Mac 없음——Azure Data Studio로 대체.

.NET MAUI와 iOS: 로컬 개발, 빌드 분리

Mac에서 MAUI 크로스플랫폼 프로젝트의 전형적 역할 분담:

  1. Rider / VS Code: 공유 UI와 비즈니스 로직 편집.
  2. 로컬 시뮬레이터: iOS/Android UI 디버그(Xcode + Android Studio 에뮬레이터 필요).
  3. Release Archive: dotnet publish가 Xcode 툴체인 트리거; CI에서는 고정 macOS 노드가 더 안정적.

Windows 전용 Visual Studio 출신이면 첫 iOS 패키징은 서명·Provisioning Profile에서 오래 막힌다——IDE 문제가 아니라 Apple 워크플로. Apple Developer — Xcode 지원에서 SDK와 macOS 버전 대응 확인.

하이브리드 워크플로: 16–24GB 메모리 MacBook으로 일상 코딩; 야간 전체 Archive, 다중 브랜치 CI는 클라우드 Mac mini에 맡겨 노트북 팬이 밤새 도는 것과 DerivedData가 디스크를 채우는 것을 피한다. SSH로 스크립트 실행, 인증서 문제 시 VNC——도움말 센터 참고.

첫 주 체크리스트: 팀 협업에서 빠뜨리지 말 것

범주 확인 항목
신원·키 SSH key를 GitHub/GitLab에 등록; gh auth login 또는 회사 SSO
패키지 소스 nuget.config가 내부 feed 가리킴; dotnet nuget list source
인증서 Apple 개발 인증서 .p12보내기 또는 CI에서 Base64 secret
환경 변수 direnv 또는 .env는 저장소에 넣지 않음; 1Password / 회사 Vault 사용
포맷 editorconfig + dotnet format을 Windows 동료와 맞춤
사전 커밋 husky / pre-commit은 Mac에서도 동일하게 실행

Visual Studio 기능이 Mac에서 어디로 가는가

VS (Windows) 습관Mac 대응
솔루션 탐색기Rider Solution 창 / VS Code Explorer
NuGet 패키지 관리자 UIRider NuGet 도구 창; 또는 CLI dotnet add package
서버 탐색기 / SQLAzure Data Studio, Rider DB 도구
IIS Expressdotnet run Kestrel; Docker 리버스 프록시
WinForms 디자이너네이티브 Mac 디자이너 없음 → Windows VM 또는 Web/MAUI로 재작성
테스트 탐색기Rider 테스트 창; dotnet test
프로파일러dotnet-trace, Instruments(네이티브), JetBrains dotTrace

언제 클라우드 Mac을 쓰고 로컬 설정을 더 쌓지 않을까

Visual Studio에서 Mac으로 이주하는 팀에서 흔한 시나리오:

  • Windows가 회사 표준 데스크톱이고 모바일 팀만 macOS 빌드 필요 → 전용 Mac 임대, Windows에서 SSH로 파이프라인 트리거.
  • 다중 Xcode 버전 매트릭스(iOS 16/17/18 클라이언트 동시 유지) → 로컬에 Xcode 여러 개는 디스크 소모; 클라우드 노드 분리가 깔끔.
  • 단기 고객 프로젝트, 3개월 뒤 iOS 납품 → 일/주 임대가 Mac mini 구매보다 회수 빠름.

확신이 없으면 두 번째 「빌드 전용 Mac」 구매 전에 일일 임대로 실제 저장소 xcodebuild archive를 돌리고 36개월 TCO와 비교. 사이트의 GitHub Actions macOS Runner 노드 비용도 참고.


정리: 이주하는 것은 워크플로이지, IDE 하나가 아니다

Visual Studio 개발자가 Mac으로 옮길 때 첫날 Homebrew, dotnet, Git, IDE 선택; 첫 주 줄바꿈·키·팀 스크립트 통일; 첫 달 iOS CI와 무거운 컴파일을 노트북에서 안정 macOS 노드로 분리. 도구는 바뀐다(Rider, VS Code, Cursor) 해도 「컴파일·디버그·배포」 리듬은 끊기면 안 된다.

MAUI + iOS 파이프라인을 구성 중이라면 로컬은 가볍게, Archive는 클라우드 Mac에——연산은 컴파일에 쓰고, 서랍 속 유휴 하드웨어에 두지 말 것.

로컬에서 코딩, 클라우드 Mac에서 iOS 빌드

Visual Studio에서 이전 후 .NET 일상 개발은 MacBook에서; MAUI/네이티브 iOS Archive와 CI는 전용 클라우드 Mac mini에 오프로드가 적합. SSH, 일/주/월 과금—가끔 빌드용 두 번째 기기 불필요.

환경이 충분한지 모르겠다면? 일일 임대로 실제 `xcodebuild`를 돌려 본 뒤 로컬 Xcode 설치 범위를 결정하세요.

추가 읽기

자주 묻는 질문

Mac에 Visual Studio가 아직 있나요?

Microsoft는 Visual Studio for Mac 지원을 종료했습니다(2024년 8월). .NET 개발자는 JetBrains Rider 또는 VS Code + C# Dev Kit을 권장합니다. Windows 전용 도구가 필요하면 Parallels/원격 Windows는 가능하나 일상 주력으로는 비추천.

Ctrl과 Cmd에 빨리 적응하려면?

시스템 설정 → 키보드에서 기능키 조정; Rider/VS Code에 IntelliJ IDEA Keymap 또는 Visual Studio Keymap 설치. 처음 3일은 외장 키보드에 Ctrl→⌘ 치트시트를 붙이면 효과적.

.NET 프로젝트를 Mac에서 그대로 실행할 수 있나요?

ASP.NET Core, 콘솔, 클래스 라이브러리는 보통 dotnet restore && dotnet run으로 됩니다. 경로 구분자, 줄바꿈(core.autocrlf), Windows 전용 API(WMI 등) 주의. MAUI iOS는 macOS + Xcode 필수, Android는 Mac에서 완전 개발 가능.

Xcode 전체 설치가 필수인가요?

.NET/Web/백엔드만이면 불필요합니다. Xcode Command Line Tools(xcode-select --install)로 Git과 네이티브 의존성 충분. iOS 시뮬레이터, Archive, Swift 혼합 시 전체 Xcode(30GB+) 필요.

iTerm vs Terminal?

둘 다 가능. PowerShell 사용자는 iTerm2 + Homebrew zsh + starshiplseza 등 별칭 추천. bash 스크립트는 #!/usr/bin/env bash로 shebang 명시.

언제 클라우드 Mac을 임대해야 하나요?

24/7 iOS CI, 여러 Xcode 버전, Windows 주력 + 가끔 서명이 필요할 때. 전용 Mac mini로 xcodebuild/Runner를 돌리고 로컬은 Rider—개발자마다 빌드 Mac을 두는 것보다 경제적.

한정 특가 →