M1 MacOS 개발 환경 세팅

김상웅·2023년 5월 24일
1
post-thumbnail
post-custom-banner

MacOS 이용 개발자라면 Intel 맥과 애플 실리콘을 이용하는 맥 이용자로 구분될 것입니다. 실제로 무언가 설치를 할 때 설치 경로가 다르거나 실행이 잘 안되는 경우가 있었을 것입니다.
이번 포스팅에서는 애플 실리콘 중 M1 칩을 사용하는 개발 입문자와 추후 M1 맥북을 다시 만났을 때를 위해 간단한 개발 환경 세팅을 할 수 있는 글을 적어보겠습니다. 물론 그 때는 마이그레이션을 사용할 수도 있겠네요.

iterm2


일반 터미널 애플리케이션 대신 사용할 수 있는 터미널 애뮬레이터

👉 공식홈페이지 👈

그동안 무지성으로 설치했던 iterm2였다면 이제는 iterm2를 왜 쓰는지도 간단하게 알아보겠습니다.
정말 간단하게 알아볼 것이니, 공식 홈페이지에서도 어떠한 기능을 제공하는지 확인해보세요!

특징

  • 하나의 iterm2 앱을 실행하여 여러 분할창과 탭을 이용할 수 있습니다.
cmd+D` 또는 cmd+shift+D
  • 재부팅 또는 터미널 종료 후에도 이전 작업 내용의 세션을 복원할 수 있습니다.

  • 사용자의 입맛에 맞게 커스터마이징을 할 수 있습니다.

  • 다양한 개발 툴과 통합되어 사용할 수 있습니다.

설치 방법

설치방법은 정말 간단합니다.
공식홈페이지에 접속 후 아래와 같이 다운로드 버튼을 눌러 압축 파일을 해제하기만 하면 됩니다.

추가) 한글일 때도 백틱을 쓰고 싶다면?

우선 ~/Library/KeyBindings 폴더에 설정 파일을 만들어야 합니다.
KeyBindings 폴더는 처음에는 원래 없으므로 없다면 아래와 같이 생성해줍니다.

키보드 설정을 오버라이드하기 위해서는 DefaultKeyBinding.dict 파일을 만들어야합니다. 여기에 개인별로 원하는 설정들을 저장해 놓을 수 있습니다. DefaultKeyBinding.dict 파일을 만들고 아래 내용을 작성하고 저장해주세요.

vi ~/Library/KeyBindings/DefaultKeyBinding.dict

우리가 ₩ (원화) 입력을 ` 입력으로 설정 해야하므로 아래와 같이 설정 파일을 작성하면 됩니다.

{
    "₩" = ("insertText:", "`");
}

위 내용을 입력 및 저장하고 재부팅하거나 애플리케이션을 다시 실행하면 됩니다.

Oh My Zsh


oh-my-zsh은 쉘의 설정과 테마를 관리하는 오픈 소스 프레임워크입니다.

👉 공식홈페이지 👈
👉 GitHub 👈

GUI를 사용할 수는 있어도 개발자에게 있어 터미널, 쉘 환경은 떼어놓을 수 없는 사이입니다.
생산성을 높이고 개발 작업을 더욱 편리하게 해주는 툴, Oh My Zsh에 대해 알아보겠습니다.

Bash 쉘의 대체품으로 유용한 보조 도구를 통해 쉘 환경을 향상시켜줍니다.
맥북은 macOS 10.15 이후로 부터 Bash가 아닌 Zsh을 기본 쉘로 적용하고 있기 때문에 Zsh을 따로 설치할 필요가 없습니다.

특징

  • 다양한 테마를 제공하여 쉘 환경을 사용자 입맛에 맞게 꾸밀 수 있습니다. 단순 검정색 바탕에 흰색 글씨가 마음에 들지 않는다면, Oh My Zsh에서 제공하는 디자인, 색상 스킨, 아이콘을 이용할 수 있습니다.

  • 플러그인을 제공하여 쉘 환경을 확장할 수 있습니다.

  • 명령어 단축키 기능을 제공하여 작업의 효율을 높일 수 있습니다.

설치방법

iterm2를 실행하여 아래 명령어를 입력해주세요.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

homebrew


Homebrew는 macOS 운영 체제에서 패키지 관리를 위한 오픈 소스 소프트웨어입니다. 이를 통해 macOS에 손쉽게 소프트웨어 패키지를 설치, 업데이트, 관리할 수 있습니다.

👉 공식홈페이지 👈

특징

  • Homebrew를 사용하면 터미널을 통해 손쉽게 다양한 소프트웨어 패키지를 설치할 수 있습니다. 많은 오픈 소스 프로젝트와 유틸리티, 개발 도구 등이 제공되며 간편하게 설치할 수 있습니다.

  • Homebrew는 패키지 간의 의존성을 자동으로 해결합니다. 패키지를 설치할 때 필요한 다른 패키지도 함께 설치하거나 업데이트해 줍니다.

  • Homebrew를 사용하면 설치된 패키지를 쉽게 업데이트할 수 있습니다. brew update 명령을 통해 Homebrew 자체를 업데이트하고, brew upgrade 명령을 사용하여 설치된 패키지를 최신 버전으로 업데이트할 수 있습니다.

  • Homebrew는 사용자가 직접 패키지를 추가하거나 수정할 수 있는 유연성을 제공합니다. Homebrew를 통해 패키지를 설치하고 관리하는 것 외에도, 사용자는 자체적으로 패키지를 생성하고 배포할 수 있습니다.

설치방법

마찬가지로 iterm2를 실행하여 아래 명령어를 입력해주세요.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

버전 확인을 통해 설치가 정상적으로 되었는지 확인해주세요.

brew --version

zsh: command not found: brew

brew 명령어를 사용할 때 해당 에러가 발생한다면 아래와 같이 조치를 해주세요.

  • .zshrc 파일 열기
vi ~/.zshrc
  • 아래 명령어 추가
export PATH=/opt/homebrew/bin:$PATH

Miniconda3


Miniconda는 Conda의 배포판 중에 하나로, 프로그래밍 환경 구축 및 패키지 저장소 관리를 도와주는 도구 입니다.

Python 프로젝트를 이용한다면 Miniconda를 이용해 보는 것도 좋을 것 같습니다.

👉 공식 홈페이지 👈

Conda

Conda란 언어의 패키지, 의존관계와 환경을 관리하는 가상환경 툴입니다. 파이썬의 경우 파이썬 2.x, 3.x부터 시작해서 패키지의 버전에 따른 의존성이 강하기 때문에 Conda와 같은 가상환경을 이용하여 패키지를 관리해야합니다.

특징

  • 배포판으로 불필요한 패키지를 전부 설치하지 않아도 됩니다.

  • Conda를 기본으로 하기 때문에 파이썬 패키지를 쉽게 설치하고 업데이트할 수 있습니다.

  • 가상 환경을 생성하여 프로젝트별로 독립된 환경을 구성할 수 있습니다.

설치방법

  • 공식 홈페이지에서 OS (운영체제)에 맞는 Miniconda3 설치 파일을 다운로드 합니다.
  • 파일이 설치된 경로로 이동하여 아래 명령어를 입력해주세요.
chmod +x "OS별_설치_파일_이름"
  • 설치 스크립트 실행
./OS별_설치_파일_이름

맥은 설치 과정 중 zsh에 적용할거냐는 질문이 나오는데 이때 Y로 적용하게 되면 별도로 zsh에 적용해주는 명령은 입력할 필요가 없습니다.

nvm


NVM은 Node Version Manager의 약어로, macOS 및 Linux 환경에서 Node.js 버전 관리를 쉽게 할 수 있도록 도와주는 도구입니다. NVM을 사용하면 여러 버전의 Node.js를 설치, 관리하고 프로젝트별로 다른 버전을 사용할 수 있습니다.

👉 공식 홈페이지 👈

특징

  • NVM을 사용하면 하나의 시스템에 여러 개의 Node.js 버전을 설치하고 전환할 수 있습니다. 각 프로젝트에 필요한 Node.js 버전을 선택하여 사용할 수 있으며, 버전 간의 충돌 없이 개발할 수 있습니다.

  • 각각의 프로젝트는 자체적인 Node.js 환경을 갖고 있어야 할 때가 있습니다. NVM을 사용하면 프로젝트마다 독립된 Node.js 환경을 생성할 수 있으며, 각 프로젝트의 요구에 맞게 버전을 선택하여 사용할 수 있습니다.

  • NVM을 사용하면 Node.js의 새로운 버전이 나왔을 때 쉽게 업데이트할 수 있습니다. 또한, 이전 버전으로 롤백하는 것도 간단합니다. 이를 통해 안정적인 개발 환경을 유지하거나 새로운 기능을 빠르게 적용할 수 있습니다.

  • NVM은 간단한 명령어를 통해 Node.js 버전을 설치, 사용, 관리할 수 있습니다. 터미널에서 명령어를 입력하여 원하는 작업을 수행할 수 있으며, 프로젝트의 요구에 따라 Node.js 버전을 손쉽게 전환할 수 있습니다.

설치방법

brew를 사용하여 nvm을 설치해보겠습니다.

  • iterm2를 실행하여 아래 명령어를 입력해주세요.
brew install nvm
  • 이후 ~/.zshrc 파일 가장 하단에 아래 코드를 작성해주세요.
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

nvm으로 node 설치하기

  • 특정 버전 설치
nvm install [version]
  • LTS 버전 설치
nvm install --lts

MySQL


RDBMS 중 대표적인 데이터베이스 시스템 중 MySQL을 설치해보려고 합니다.

👉 공식 홈페이지 👈

특징

  • MySQL은 오픈 소스 프로젝트로 개발되어 누구나 소스 코드를 열람하고 수정할 수 있는 오픈소스입니다. 이는 커뮤니티의 기여와 개선으로 인해 빠른 버그 수정 및 기능 개선이 가능하다는 장점을 제공합니다.

  • MySQL은 테이블 간의 관계를 기반으로 데이터를 저장하고 관리하는 관계형 데이터베이스 시스템입니다. 이를 통해 데이터의 일관성, 무결성, 중복 제거 등을 보장할 수 있습니다.

  • 다양한 데이터 유형: MySQL은 다양한 데이터 유형을 지원합니다. 문자열, 숫자, 날짜 및 시간, 이진 데이터 등을 저장하고 처리할 수 있습니다.

  • MySQL은 트랜잭션을 지원하여 데이터베이스 작업의 원자성, 일관성, 격리성, 지속성(ACID)을 보장합니다. 이는 데이터의 안정성과 데이터 조작의 정확성을 유지하는 데 도움이 됩니다.

  • MySQL은 대규모 데이터베이스와 많은 동시 사용자를 처리할 수 있는 확장성을 제공합니다. 클라이언트-서버 아키텍처와 여러 기능을 활용하여 성능과 확장성을 향상시킬 수 있습니다.

  • MySQL은 다양한 프로그래밍 언어(예: Python, Java, PHP)와의 연동을 지원합니다. 이를 통해 다양한 응용 프로그램과의 데이터 통합이 용이합니다.

설치방법

  • iterm2를 실행하여 아래 명령어를 입력해주세요.
brew install mysql
  • 아래 명령어로 mysql을 시작합니다.
mysql.server start
  • 아래 명령어로 기본 설정을 시작합니다.
mysql_secure_installation

VSCode (Visual Studio Code)


vim을 사용해보려 했으나, 익숙해지기까지의 시간이 오래걸려 아직도 사용 중인 에디터입니다.

👉 공식 홈페이지 👈

설치방법

  • 공식 홈페이지에서 운영 체제에 맞는 다운로드를 해주세요.
  • 또는 brew를 이용하여 설치할 수 있습니다.
brew install --cask visual-studio-code

iterm2를 사용하면서 바로 실행하고 싶을 때

iterm2에서 작업을 하다가 에디터를 사용하고 싶을 때,
아직 나는 vim에 익숙하지 않다면 현재 작업 중인 디렉토리의 모든 내용을 에디터로 옮길 수 있습니다.

  • 아래 명령어를 입력해주세요
code .

code command not found

  • VSCode 앱을 실행 > cmd+shift+p > >path
    Window 유저라면 cmd를 ctr로 바꿔주세요.

  • 이후 다시 iterm2에서 code .을 입력해보세요

마치며


기존에 맥을 이용하고 있었지만 회사에서 제공하던 Intel 맥북이었고, 이마저도 M1으로 갈아타기 전에 회사에 반납을 해버렸다.. 사실 M1을 늦게 구매한 것뿐.

내가 겪으면서도 멘토링을 하면서도 첫 개발을 입문할 때는 역시 세팅이 코드 한줄 치는 것 보다 더 힘들다는 사실을 뼈저리게 느꼈다.

많은 분들에게 작게나마 도움이 되길 바랍니다.

버전이 달라졌거나 명령어가 실행이 안되는 부분은 댓글로 알려주시면 열심히 확인하여 반영하겠습니다.

profile
누구나 이해할 수 있도록
post-custom-banner

0개의 댓글