풀스택 개발자를 위한 맥북 올인원 설정 가이드 – Part 2

풀스택 개발자를 위한 맥북 올인원 설정 가이드 – Part 2

프로그래밍 언어 환경 설정

앞선 Part 1에서 기본 개발 환경을 구축했다면, 이제 실제 개발에 필요한 프로그래밍 언어들을 설정할 차례입니다. 2025년 현재, 풀스택 개발자가 가장 많이 사용하는 언어는 JavaScript(Node.js), Python, 그리고 Go입니다.

각 언어마다 최적의 버전 관리 도구와 패키지 관리자가 있으며, M3/M4 맥북의 ARM 아키텍처에 최적화된 설정 방법을 소개합니다.

4단계: Node.js 환경 설정

fnm으로 Node.js 버전 관리

fnm(Fast Node Manager)은 기존 nvm보다 훨씬 빠른 Node.js 버전 관리자입니다.

# fnm 설치
brew install fnm

# fnm 초기화 (zshrc에 추가)
echo 'eval "$(fnm env --use-on-cd)"' >> ~/.zshrc
source ~/.zshrc

# 최신 LTS 버전 설치
fnm install --lts
fnm use lts-latest

# 개발용 최신 버전 설치
fnm install latest
fnm alias latest default

# 버전 목록 확인
fnm list

Node.js 개발 도구 설치

# 전역 패키지 관리자
npm install -g yarn pnpm bun

# 유용한 CLI 도구들
npm install -g \
  typescript \
  tsx \
  eslint \
  prettier \
  pm2 \
  serve \
  http-server \
  json-server \
  nodemon \
  @nestjs/cli \
  create-react-app \
  next

프로젝트별 Node 버전 관리

# 프로젝트 디렉토리에서
fnm install 18.19.0
echo "18.19.0" > .nvmrc  # 또는 .node-version

# 자동 버전 전환 설정 확인
cd /your/project
fnm use  # .nvmrc 파일을 자동으로 읽어서 버전 적용

5단계: Python 환경 설정

uv로 Python 환경 현대화

uv는 Astral에서 개발한 차세대 Python 패키지 관리자로, pip, virtualenv, pyenv를 모두 대체합니다.

# uv 설치
brew install uv

# Python 최신 버전 설치
uv python install 3.12

# 프로젝트 생성 및 가상환경 설정
mkdir my-python-project
cd my-python-project

# uv로 프로젝트 초기화
uv init --python 3.12
uv venv

# 패키지 설치
uv pip install fastapi uvicorn sqlalchemy pydantic pytest black mypy

# 개발 의존성 따로 관리
uv pip install --dev pytest-cov ruff

Poetry 대안으로 uv 활용

# pyproject.toml 파일 생성
cat > pyproject.toml << EOF

[project]

name = “my-project” version = “0.1.0” description = “” authors = [“Your Name <your.email@example.com>”] dependencies = [ “fastapi>=0.100.0”, “uvicorn>=0.24.0”, “sqlalchemy>=2.0.0”, ]

[tool.uv]

dev-dependencies = [ “pytest>=7.4.0”, “black>=23.0.0”, “mypy>=1.5.0”, “ruff>=0.0.290”, ]

[tool.black]

line-length = 88 target-version = [‘py312’]

[tool.ruff]

select = [“E”, “F”, “W”, “I”, “N”] ignore = [] line-length = 88 EOF # 의존성 설치 uv sync

Jupyter와 데이터 분석 환경

# Jupyter 관련 패키지 설치
uv pip install jupyter jupyterlab notebook ipykernel

# 데이터 분석 라이브러리
uv pip install pandas numpy matplotlib seaborn plotly

# 머신러닝/딥러닝 (M3/M4 최적화)
uv pip install torch torchvision scikit-learn

# Jupyter 커널 등록
uv run python -m ipykernel install --user --name myproject

6단계: Go 언어 설정

Go 설치 및 환경 설정

# Go 설치
brew install go

# Go 환경 변수 설정
echo 'export GOPATH=$HOME/go' >> ~/.zshrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshrc
echo 'export GO111MODULE=on' >> ~/.zshrc
source ~/.zshrc

# Go 버전 확인
go version

# Go 모듈 프록시 설정 (한국 최적화)
go env -w GOPROXY=https://proxy.golang.org,direct
go env -w GOSUMDB=sum.golang.org

Go 개발 도구 설치

# 유용한 Go 도구들
go install golang.org/x/tools/cmd/goimports@latest
go install golang.org/x/tools/cmd/godoc@latest
go install golang.org/x/tools/gopls@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go install github.com/cosmtrek/air@latest  # 핫 리로딩

# 프로젝트 초기화
mkdir my-go-project
cd my-go-project
go mod init github.com/yourusername/my-go-project

Go 프로젝트 구조

# 표준 Go 프로젝트 구조 생성
mkdir -p cmd pkg internal api configs scripts

# main.go 생성
cat > cmd/main.go << 'EOF'
package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello from Go!")
    })

    log.Println("Server starting on :8080")
    if err := http.ListenAndServe(":8080", nil); err != nil {
        log.Fatal(err)
    }
}
EOF

# Makefile 생성
cat > Makefile << 'EOF'
.PHONY: build run test clean

build:
    go build -o bin/app cmd/main.go

run:
    air -c .air.toml

test:
    go test ./...

clean:
    rm -rf bin/

lint:
    golangci-lint run
EOF

7단계: 언어별 VSCode 설정

VSCode 확장 설치

# 필수 확장들
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
code --install-extension golang.go
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension rust-lang.rust-analyzer
code --install-extension bradlc.vscode-tailwindcss

# 유용한 개발 확장들
code --install-extension eamodio.gitlens
code --install-extension streetsidesoftware.code-spell-checker
code --install-extension gruntfuggly.todo-tree
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-kubernetes-tools.vscode-kubernetes-tools

VSCode settings.json 설정

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.organizeImports": true,
    "source.fixAll": true
  },
  "python.defaultInterpreterPath": "uv",
  "python.terminal.activateEnvironment": false,
  "[python]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "ms-python.python"
  },
  "[go]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "golang.go"
  },
  "go.useLanguageServer": true,
  "go.formatTool": "goimports",
  "typescript.updateImportsOnFileMove.enabled": "always",
  "javascript.updateImportsOnFileMove.enabled": "always"
}

8단계: 통합 개발 워크플로우

프로젝트 템플릿 생성

#!/bin/bash
# ~/scripts/create-project.sh

project_name=$1
project_type=$2

if [ -z "$project_name" ] || [ -z "$project_type" ]; then
    echo "Usage: create-project.sh <project-name> <project-type>"
    echo "Types: node, python, go, fullstack"
    exit 1
fi

case $project_type in
    "node")
        mkdir -p $project_name/{src,test,scripts}
        cd $project_name
        fnm use lts-latest
        npm init -y
        npm install -D typescript @types/node tsx eslint prettier
        ;;
    "python")
        mkdir -p $project_name/{src,tests,scripts}
        cd $project_name
        uv init --python 3.12
        uv venv
        uv pip install black pytest mypy ruff
        ;;
    "go")
        mkdir -p $project_name/{cmd,pkg,internal,api}
        cd $project_name
        go mod init github.com/yourusername/$project_name
        ;;
    "fullstack")
        mkdir -p $project_name/{frontend,backend,docker}
        cd $project_name
        # Frontend setup
        cd frontend && npx create-react-app . --template typescript
        cd ../backend && uv init --python 3.12
        ;;
esac

# Common files
cat > .gitignore << EOF
.DS_Store
node_modules
.env
*.log
__pycache__
.venv
.mypy_cache
dist/
build/
EOF

git init
git add .
git commit -m "Initial commit"

echo "Project $project_name created successfully!"

멀티 언어 프로젝트 관리

# ~/.zshrc에 추가
function dev() {
    if [ -f "package.json" ]; then
        echo "Node.js project detected"
        fnm use
        npm install
    fi

    if [ -f "pyproject.toml" ]; then
        echo "Python project detected"
        uv sync
    fi

    if [ -f "go.mod" ]; then
        echo "Go project detected"
        go mod download
    fi

    if [ -f "docker-compose.yml" ]; then
        echo "Docker Compose project detected"
        docker-compose up -d
    fi
}

# 프로젝트 디렉토리 진입시 자동 설정
function cd() {
    builtin cd "$@"
    dev
}

성능 최적화 팁

M3/M4 맥북 특화 최적화

# Node.js 성능 최적화
export NODE_OPTIONS="--max-old-space-size=4096"

# Python 컴파일 최적화
export PYTHONPATH="${PYTHONPATH}:${PWD}"
export PYTHONDONTWRITEBYTECODE=1

# Go 빌드 최적화
export GOOS=darwin
export GOARCH=arm64
export CGO_ENABLED=1

메모리 관리 최적화

# 프로젝트별 메모리 제한 설정
function node_limit() {
    NODE_OPTIONS="--max-old-space-size=$1" "$@"
}

# 사용 예
node_limit 2048 npm start

# Python 메모리 최적화
export PYTHONMALLOC=malloc

# 개발 도구 메모리 최적화
export VSCODE_MEMORY_LIMIT=4096

트렌디 노트 인사이트

2025년 풀스택 개발자가 주목해야 할 트렌드는 도구의 통합과 성능 최적화입니다. uv가 Python 생태계를 혁신하고 있듯이, 개발 효율성을 위한 도구들이 빠르게 진화하고 있습니다.

특히 ARM 아키텍처에 최적화된 도구 선택이 중요하며, 각 언어별로 네이티브 성능을 활용하는 설정이 필수가 되었습니다. fnm, uv, 그리고 최신 Go 도구체인은 이러한 트렌드를 반영한 선택입니다.

작업 상황 업데이트

  • [x] 블로그 파일 생성
  • [x] 주제 연구 및 데이터 수집 완료
  • [x] Part 1 작성 완료 (Homebrew, 터미널, Git 설정)
  • [x] Part 2 작성 완료 (Node.js, Python, Go 설정)
  • [ ] Part 3 작성 (Docker/Kubernetes 설정)
  • [ ] Part 4 작성 (보안 및 최적화)
  • [ ] 파일 병합 및 최종 검토

다음 단계 예고

Part 3에서는 현대 풀스택 개발의 핵심인 컨테이너와 오케스트레이션 도구 설정을 다룹니다:

  • Docker 대안: Minikube를 활용한 경량 컨테이너 환경
  • Kubernetes: 로컬 개발을 위한 minikube 설정
  • CI/CD: GitHub Actions와 GitLab CI 워크플로우
  • 모니터링: 로컬 개발 환경 모니터링 도구

Leave a reply

Join Us
  • Facebook38.5K
  • X Network32.1K
  • Behance56.2K
  • Instagram18.9K

Stay Informed With the Latest & Most Important News

I consent to receive newsletter via email. For further information, please review our Privacy Policy

Advertisement

Loading Next Post...
Sign In/Sign Up Sidebar Search Trending 0 Cart
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...

Cart
Cart updating

ShopYour cart is currently is empty. You could visit our shop and start shopping.