MacBook 을 κ΅¬μž…ν•˜κ³ , 계속 μž‘μ—…μ„ ν•  수 있게 ν™˜κ²½μ„ κ΅¬μ„±ν•˜λ©΄μ„œ, μ§„ν–‰ν•œ λ‚΄μš©μ„ κΈ°λ‘ν•©λ‹ˆλ‹€.

ν˜Ήμ‹œλ‚˜ λΉ„μŠ·ν•˜κ²Œ κ΅¬μ„±ν•˜μ‹œλŠ” 뢄이 μ°Έμ‘°ν•˜μ‹€ 수 있기 λ°”λžλ‹ˆλ‹€.

For General use

Homebrew

Macos νŒ¨ν‚€μ§€ κ΄€λ¦¬μž Homebrew λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.

v3.0.0 이후뢀터 μ• ν”Œμ‹€λ¦¬μ½˜(M1)을 μ§€μ›ν•©λ‹ˆλ‹€.

Git

MacOS 에 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” git 은 보톡 μ΅œμ‹  λΉŒλ“œκ°€ μ•„λ‹ˆλ―€λ‘œ, 버젼확인 ν›„ Homebrewλ₯Ό μ‚¬μš©ν•΄μ„œ git을 μ„€μΉ˜ν•©λ‹ˆλ‹€.

$ git --version

git 은 κΈ°λ³Έ μ„€μΉ˜ μ‘μš©ν”„λ‘œκ·Έλž¨ λͺ©λ‘μ—μ„œ μ œμ™Έλœ κ²ƒμœΌλ‘œ ν™•μΈλ©λ‹ˆλ‹€.

ν„°λ―Έλ„μ—μ„œ git λͺ…령을 μž…λ ₯ν•˜λ©΄ λ‹€μš΄λ‘œλ“œν•˜λŠ” κΈ°λŠ₯의 싀행을 λ¬»μŠ΅λ‹ˆλ‹€.

homebrew둜 git μ΅œμ‹ λΉŒλ“œλ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.

$ brew install git
$ git --version 
git version 2.32.0 (Apple Git-132)

for React frontent development

node.js 기반 κ°œλ°œν™˜κ²½μ΄ ν•„μš”ν•œ κ²½μš°μ— ν•΄λ‹Ήν•©λ‹ˆλ‹€.

nvm

NVM (Node version manager) 은 node.js μ„€μΉ˜λ₯Ό 맀우 νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” λ„κ΅¬μž…λ‹ˆλ‹€.

μ €λŠ” νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©μž κΆŒν•œμœΌλ‘œ node.js μ„€μΉ˜κ°€ κ°€λŠ₯ν•΄μ„œ μš°μ„ μ μœΌλ‘œ μ„€μΉ˜λ₯Ό κ³ λ €ν•©λ‹ˆλ‹€.

Homebrew μ—μ„œ μ œκ³΅ν•˜λŠ” νŒ¨ν‚€μ§€λ‘œ nvm 을 μ„€μΉ˜ν•©λ‹ˆλ‹€.

$ brew install nvm
# μƒλž΅
You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

Add the following to ~/.zshrc or your desired shell
configuration file:

  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

You can set $NVM_DIR to any location, but leaving it unchanged from
/opt/homebrew/opt/nvm will destroy any nvm-installed Node installations
upon upgrade/reinstall.

nvm μ„€μΉ˜ 슀크립트 λ§ˆμ§€λ§‰μ— 좜λ ₯λ˜λŠ” λ‚΄μš©μ„ ν™•μΈν•˜κ³  μ„€λͺ…λŒ€λ‘œ λ”°λΌν•©λ‹ˆλ‹€.

# μ‚¬μš©μž ν”„λ‘œν•„ 디렉터리에 .nvm 디렉터리λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.
$ mkdir ~/.nvm

.zshrc νŒŒμΌμ„ νŽΈμ§‘κΈ°λ‘œ μ—΄μ–΄μ„œ λ‚΄μš©μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.

# ZSH μ‚¬μš©μž ν”„λ‘œν•„μ„ νŽΈμ§‘κΈ°λ‘œ νŽΈμ§‘ν•©λ‹ˆλ‹€.
$ nano ~/.zshrc

λ§ˆμ§€λ§‰ 쀄에 ν•΄λ‹Ή λ‚΄μš©μ„ λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€.

PATH ν™˜κ²½λ³€μˆ˜μ— .nvm 경둜λ₯Ό μΆ”κ°€ν•˜κ³ , nvm μ‚¬μš©μ„ μ€€λΉ„ν•˜λŠ” λͺ…λ Ήμž…λ‹ˆλ‹€.

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

μ•„λž˜ λͺ…λ ₯으둜 μ‰˜ ν”„λ‘œν•„μ„ λ‹€μ‹œ λ‘œλ“œν•©λ‹ˆλ‹€.

$ source ~/.zshrc

μ„€μΉ˜λœ NVM 버젼을 ν™•μΈν•©λ‹ˆλ‹€.

$ nvm --version
0.39.1

μ•„λž˜ λͺ…λ ΉμœΌλ‘œ μ΅œμ‹  LTS λΉŒλ“œλ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.

$ nvm install --lts

μ„€μΉ˜λœ node.js 버젼을 ν™•μΈν•©λ‹ˆλ‹€.

$ node --version
v16.13.2

μ„€μΉ˜λœ node.js κ°€ μ• ν”Œ μ‹€λ¦¬μ½˜μš© λ°”μ΄λ„ˆλ¦¬μΈμ§€ ν™•μΈν•©λ‹ˆλ‹€.

$ node -p "process.arch"
arm64
  • [x] μ• ν”Œμ‹€λ¦¬μ½˜μœΌλ‘œ μ‹€ν–‰λ˜λŠ” λ°”μ΄λ„ˆλ¦¬κ°€ μ„€μΉ˜λ˜μ—ˆλŠ”μ§€ 확인

Visual Studio Code

Visual Studio CodeλŠ” React κ°œλ°œμ‹œ 주둜 μ‚¬μš©ν•˜λŠ” Microsoft μ—μ„œ μ œκ³΅ν•˜λŠ” IDE μž…λ‹ˆλ‹€.

v1.54 이후뢀터 μ• ν”Œ μ‹€λ¦¬μ½˜μ„ μ§€μ›ν•©λ‹ˆλ‹€.

Visual Studio Code μ‹€ν–‰ ν›„ 컀맨트 νŒ”λ ˆνŠΈλ₯Ό μ—΄κ³  (Command ⌘ + Shift ⇧ + p) μ•„λž˜ 메뉴λ₯Ό μ‹€ν–‰ν•΄μ„œ ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰ν•  수 있게 κ΅¬μ„±ν•©λ‹ˆλ‹€.

>shell command: Install 'code' command in PATH

이 ν›„ ν„°λ―Έλ„μ—μ„œ μ•„λž˜ λͺ…λ ΉμœΌλ‘œ Visual Studio Codeλ₯Ό μ‹€ν–‰ν•œ ν›„ ν˜„μž¬ 디렉터리λ₯Ό μ—΄μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

$ cd path-to-work
$ code .

κ΄€λ ¨κΈ€: Start Visual Studio Code on Terminal on MacOS

for .NET development

.NET SDK

.NET 6 λΆ€ν„° μ• ν”Œ μ‹€λ¦¬μ½˜μš© SDKκ°€ μ œκ³΅λ©λ‹ˆλ‹€.

Visual Studio 2022

프리뷰 λ‹¨κ³„μ˜ Visual Studio 2022 for Mac (을)λ₯Ό μ œκ³΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ„€μΉ˜ν•΄λ³΄λ‹ˆ μ„€μΉ˜ 직후 Visual Studio 2022 라고 제λͺ©μ΄ 좜λ ₯λ˜μ—ˆλŠ”λ°, μ—…λ°μ΄νŠΈ ν›„ Visual studio 2019 for Mac 으둜 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

제거 ν›„ λ‹€μ‹œ μ„€μΉ˜λ₯Ό 진행할 μ˜ˆμ •μž…λ‹ˆλ‹€. μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μ‹œ μ„€μΉ˜ν•œ 직후 ν™•μΈν•œ μ‘μš©ν”„λ‘œκ·Έλž¨ μ •λ³΄μž…λ‹ˆλ‹€.

스크란샷 2022-01-12 14.51.30.png
스크란샷 2022-01-12 14.51.30.png

스크란샷 2022-01-12 14.51.52.png
스크란샷 2022-01-12 14.51.52.png

Docker

개발용 μ„œλ²„λ₯Ό μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ— ν•„μš”ν•˜λ‹€κ³  μƒκ°λ©λ‹ˆλ‹€.

μ„€μΉ˜ν•œ ν›„ ν•„μš”ν•  λ•Œμ—λ§Œ μ‹€ν–‰ν•˜λŠ” 것을 λͺ©μ μœΌλ‘œ ν•©λ‹ˆλ‹€.

μ›Ήμ„œλ²„, μ›Ή μ‘μš©ν”„λ‘œκ·Έλž¨, λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„λ₯Ό μ»¨ν…Œμ΄λ„ˆλ‘œ μ‹€ν–‰ν•΄μ„œ 확인이 ν•„μš”ν•œ κ²½μš°μ— ν™œμš©ν•©λ‹ˆλ‹€.

Docker Desktop νŽ˜μ΄μ§€μ—μ„œ μ„€μΉ˜ νŒŒμΌμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ• ν”Œ μ‹€λ¦¬μ½˜μš© λ°”μ΄λ„ˆλ¦¬κ°€ μ œκ³΅λ˜λ―€λ‘œ, Mac with Apple Chip 링크λ₯Ό ν΄λ¦­ν•΄μ„œ λ‹€μš΄λ‘œλ“œν•΄μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€.

Docker Desktop μ‚¬μš©μ— κ΄€ν•œ 약관을 ν™•μΈν•˜μ…”μ•Ό ν•©λ‹ˆλ‹€. 개인적 μš©λ„λ‘œ μ‚¬μš©ν•  λ•ŒλŠ” μ œμ•½μ΄ 없을 것 같은데, μ—…λ¬΄μš©μœΌλ‘œ μ‚¬μš©ν•œλ‹€λ©΄ 직원이 250λͺ… 미만이고 μ—°κ°„ 맀좜이 1천만 λ‹¬λŸ¬ 미만인 κ²½μš°μ—λ§Œ 무료둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. It remains free for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects.

이미지λ₯Ό 내렀받을 λ•Œμ—λ„ ν•΄λ‹Ή ν”„λ‘œμ νŠΈκ°€ arm64용 이미지λ₯Ό μ œκ³΅ν•˜λŠ”μ§€ ν™•μΈν•˜κ³ , κ°€λŠ₯ν•˜λ©΄ arm64용 이미지λ₯Ό λ‚΄λ €λ°›μœΌλ©΄ μ„±λŠ₯상 이점이 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€.

그런데, arm64용 이미지λ₯Ό μ œκ³΅ν•˜λŠ” ν”„λ‘œμ νŠΈλŠ” 잘 보이지 μ•ŠμŠ΅λ‹ˆλ‹€.

linux/amd64 용 이미지λ₯Ό λ‚΄λ €λ°›μ•„μ„œ μ‚¬μš©ν•΄λ„ 크게 λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” κ²½μš°λŠ” μ—†λ‹€κ³  ν•©λ‹ˆλ‹€.

아직 κ΄€λ ¨ μ΄μŠˆκ°€ μ—†μ§€λ§Œ, μ΄μŠˆκ°€ λ°œμƒν•˜λ©΄ 해결방법을 μ—΄μ‹¬νžˆ 찾아봐야 ν•©λ‹ˆλ‹€.

$ docker --version
Docker version 20.10.11, build dea9396
$ docker-compose --version
Docker Compose version v2.2.1

Local database

개발용 둜컬 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 도컀λ₯Ό ν™œμš©ν•©λ‹ˆλ‹€.

Windows μ—μ„œλŠ” Visual Studio μ„€μΉ˜μ‹œ μ‚¬μš©ν•  수 μžˆλŠ” 둜컬 λ°μ΄ν„°λ² μ΄μŠ€κ°€ μžˆμ–΄ 맀우 νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Macos μ—λŠ” μ§€μ›λ˜μ§€ μ•ŠμœΌλ―€λ‘œ μž‘μ—…μ‹œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•΄μ„œ λΉ„μŠ·ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SQL Server 엔진이 ν•„μš”ν•œ 경우 SQL server 2019 이미지λ₯Ό μ‚¬μš©ν•˜λ©΄ 될 κ²ƒμœΌλ‘œ μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

SQL Server 2019 amd64 μ΄λ―Έμ§€μ˜ 경우 μ• ν”Œ μ‹€λ¦¬μ½˜μ—μ„œ μ»¨ν…Œμ΄λ„ˆ 싀행이 λΆˆκ°€λŠ₯ν•œ κ²ƒμœΌλ‘œ ν™•μΈλ©λ‹ˆλ‹€.

SQL Server 2019 도컀 μ΄λ―Έμ§€λ‘œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μž‘μ„±ν•  λ•Œ, 마운트된 λ³Όλ₯¨μ— μ“°κΈ° κΆŒν•œ λ¬Έμ œκ°€ μžˆλŠ” κ²ƒμœΌλ‘œ ν™•μΈλ©λ‹ˆλ‹€. 이 λ¬Έμ œμΈμ§€λŠ” μ°¨ν›„ 확인할 κ³„νšμž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ, Azure SQL Edge λ₯Ό ν™œμš©ν•©λ‹ˆλ‹€.

Azure SQL Edge λŠ” IoT μž₯치의 데이터λ₯Ό μ €μž₯ν•˜λŠ” 데 νŠΉν™”λœ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μž…λ‹ˆλ‹€.

SQL Server와 λ™μΌν•˜κ²Œ λ™μž‘ν•˜λŠ” κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ΄λ©΄ κ°œλ°œμ— ν™œμš©ν•  수 μžˆμœΌλ―€λ‘œ Azure SQL Edge 이미지λ₯Ό μ‚¬μš©ν•΄μ„œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜λ©΄ 될 κ²ƒμœΌλ‘œ μƒκ°λ©λ‹ˆλ‹€.

Azure SQL Edge docker-compose

version: '3'

services:
  azuresqledge:
    image: mcr.microsoft.com/azure-sql-edge:latest
    container_name: azuresqledge
    # restart: always
    ports:
      - "1433:1433"
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_SA_PASSWORD=your-password
      - MSSQL_TELEMETRY_ENABLED=FALSE
      - TZ=Asia/Seoul
    volumes:
      - ./mssql:/var/opt/mssql
    network_mode: bridge

μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ ν›„ Azure Data Studio λ“±μ˜ λ„κ΅¬λ‘œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•˜κ³  ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

마침

μ˜¨λ³΄λ”©(Onboarding)μ΄λž€ μš©μ–΄κ°€ λ§žμ§€ μ•Šμ„ 수 μžˆμ§€λ§Œ, 쀀비단계λ₯Ό 거쳐 κ°œλ°œν™˜κ²½μ„ μ€€λΉ„ν•œλ‹€λΌλŠ” 의미둜 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹Ήμž₯ ν•„μš”ν•œ κ²ƒλ§Œ μ€€λΉ„ν–ˆμŠ΅λ‹ˆλ‹€.

μΆ”κ°€λ‘œ ν•„μš”ν•œ 사항은 ν•„μš”ν•΄μ§ˆ λ•Œ, 천천히 κ΅¬μ„±ν•©λ‹ˆλ‹€.

ꡬ성이 ν•„μš”ν•œ λ‚΄μš©μ΄ λ°œμƒν•΄μ„œ μ‘μš©ν”„λ‘œκ·Έλž¨μ„ λ‹€μš΄λ‘œλ“œν•˜κ³ , μ„€μΉ˜ν•  λ•Œ μ œκ³΅λ˜λŠ” Mac용 λ°”μ΄λ„ˆλ¦¬κ°€ Intel CPU 용, Apple Silicon 용으둜 λ‚˜λˆ μ„œ μ œκ³΅λœλ‹€λ©΄ κ°€λŠ₯ν•˜λ©΄ Apple Siliconμš©μ„ λ‹€μš΄λ‘œλ“œ λ°›μ•„μ„œ μ‚¬μš©ν•  κ³„νšμž…λ‹ˆλ‹€.