# ๐Ÿบ Homebrew ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์ • ๊ฐ€์ด๋“œ ## ๐Ÿ“‹ ๊ฐœ์š” macOS์—์„œ Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฐ์—… ์ „๋ฌธ ์ •๋ณด ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. --- ## ๐Ÿ”ง ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ ### ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ - **macOS**: 12.0+ (Monterey ์ด์ƒ ๊ถŒ์žฅ) - **๋ฉ”๋ชจ๋ฆฌ**: 8GB ์ด์ƒ (16GB ๊ถŒ์žฅ) - **์ €์žฅ๊ณต๊ฐ„**: 20GB ์ด์ƒ ์—ฌ์œ  ๊ณต๊ฐ„ - **๋„คํŠธ์›Œํฌ**: ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ (ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ์šฉ) ### ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ```bash # Xcode Command Line Tools ์„ค์น˜ (Homebrew ์„ค์น˜ ์ „ ํ•„์ˆ˜) xcode-select --install ``` --- ## ๐Ÿบ 1๋‹จ๊ณ„: Homebrew ์„ค์น˜ ### Homebrew ์„ค์น˜ ```bash # Homebrew ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # ์„ค์น˜ ํ™•์ธ brew --version # PATH ์„ค์ • (M1/M2 Mac์˜ ๊ฒฝ์šฐ) echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc source ~/.zshrc ``` ### Homebrew ์—…๋ฐ์ดํŠธ ```bash # Homebrew ์ž์ฒด ์—…๋ฐ์ดํŠธ brew update # ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ brew upgrade ``` --- ## ๐Ÿ 2๋‹จ๊ณ„: Python ํ™˜๊ฒฝ ์„ค์ • ### Python ์„ค์น˜ ```bash # Python 3.11 ์„ค์น˜ (์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „) brew install python@3.11 # ์„ค์น˜ ํ™•์ธ python3 --version pip3 --version # ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์„ค์ • (์„ ํƒ์‚ฌํ•ญ) brew link python@3.11 ``` ### ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ ์„ค์น˜ ```bash # virtualenv ์„ค์น˜ pip3 install virtualenv # ๋˜๋Š” pyenv ์‚ฌ์šฉ (Python ๋ฒ„์ „ ๊ด€๋ฆฌ) brew install pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc ``` ### ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ```bash # ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ cd /Users/hyungi/news-project # ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ python3 -m venv venv # ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” source venv/bin/activate # ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” ํ™•์ธ (ํ”„๋กฌํ”„ํŠธ์— (venv) ํ‘œ์‹œ๋จ) which python ``` --- ## ๐ŸŸข 3๋‹จ๊ณ„: Node.js ํ™˜๊ฒฝ ์„ค์ • ### Node.js ์„ค์น˜ ```bash # Node.js 18 LTS ์„ค์น˜ brew install node@18 # ์„ค์น˜ ํ™•์ธ node --version npm --version # ๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ npm install -g npm@latest ``` ### ์„ ํƒ์ : Node ๋ฒ„์ „ ๊ด€๋ฆฌ์ž ์„ค์น˜ ```bash # nvm ์„ค์น˜ (Node Version Manager) brew install nvm # nvm ์„ค์ • mkdir ~/.nvm echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc echo '[ -s "/opt/homebrew/share/nvm/nvm.sh" ] && \. "/opt/homebrew/share/nvm/nvm.sh"' >> ~/.zshrc echo '[ -s "/opt/homebrew/share/nvm/bash_completion" ] && \. "/opt/homebrew/share/nvm/bash_completion"' >> ~/.zshrc source ~/.zshrc # Node.js 18 ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ nvm install 18 nvm use 18 nvm alias default 18 ``` --- ## ๐Ÿ—„๏ธ 4๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜ ### PostgreSQL ์„ค์น˜ ```bash # PostgreSQL ์„ค์น˜ brew install postgresql@15 # ์„œ๋น„์Šค ์‹œ์ž‘ brew services start postgresql@15 # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ createdb industrial_info # ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ psql industrial_info # \q ๋กœ ์ข…๋ฃŒ ``` ### PostgreSQL ์„ค์ • ```bash # ์‚ฌ์šฉ์ž ์ƒ์„ฑ (์„ ํƒ์‚ฌํ•ญ) createuser --interactive --pwprompt industrial_user # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ถŒํ•œ ๋ถ€์—ฌ psql -c "GRANT ALL PRIVILEGES ON DATABASE industrial_info TO industrial_user;" ``` ### Redis ์„ค์น˜ ```bash # Redis ์„ค์น˜ brew install redis # ์„œ๋น„์Šค ์‹œ์ž‘ brew services start redis # ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ redis-cli ping # PONG ์‘๋‹ต ํ™•์ธ ``` --- ## ๐Ÿ” 5๋‹จ๊ณ„: Elasticsearch ์„ค์น˜ ### Elasticsearch ์„ค์น˜ ```bash # Elasticsearch ์„ค์น˜ brew install elasticsearch # ์„ค์ • ํŒŒ์ผ ์œ„์น˜ ํ™•์ธ brew --prefix elasticsearch # JVM ๋ฉ”๋ชจ๋ฆฌ ์„ค์ • (8GB Mac ๊ธฐ์ค€) echo 'export ELASTICSEARCH_JAVA_OPTS="-Xms512m -Xmx1g"' >> ~/.zshrc source ~/.zshrc # ์„œ๋น„์Šค ์‹œ์ž‘ brew services start elasticsearch # ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ (์•ฝ 30์ดˆ ํ›„) curl http://localhost:9200 ``` ### Elasticsearch ํ•œ๊ตญ์–ด ๋ถ„์„๊ธฐ ์„ค์น˜ ```bash # nori ๋ถ„์„๊ธฐ ์„ค์น˜ /opt/homebrew/bin/elasticsearch-plugin install analysis-nori # ์„œ๋น„์Šค ์žฌ์‹œ์ž‘ brew services restart elasticsearch ``` --- ## ๐Ÿณ 6๋‹จ๊ณ„: Docker ์„ค์น˜ ### Docker Desktop ์„ค์น˜ ```bash # Docker Desktop ์„ค์น˜ brew install --cask docker # Docker ์‹คํ–‰ ํ™•์ธ (GUI์—์„œ Docker Desktop ์‹คํ–‰ ํ•„์š”) docker --version docker-compose --version ``` ### Docker ์„ค์ • ์ตœ์ ํ™” ```bash # Docker Desktop ์„ค์ • ๊ถŒ์žฅ์‚ฌํ•ญ: # - Memory: 4GB (8GB Mac ๊ธฐ์ค€) # - Swap: 1GB # - Disk image size: 64GB ``` --- ## ๐Ÿ› ๏ธ 7๋‹จ๊ณ„: ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ค์น˜ ### ํ•„์ˆ˜ ๊ฐœ๋ฐœ ๋„๊ตฌ ```bash # Git (์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ) brew install git # ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ brew install htop # ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ ๋„๊ตฌ brew install jq # JSON ์ฒ˜๋ฆฌ brew install ripgrep # ๋น ๋ฅธ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰ # ๋„คํŠธ์›Œํฌ ๋„๊ตฌ brew install curl brew install wget ``` ### IDE ๋ฐ ์—๋””ํ„ฐ ```bash # Visual Studio Code brew install --cask visual-studio-code # ๋˜๋Š” ๋‹ค๋ฅธ ์—๋””ํ„ฐ๋“ค brew install --cask sublime-text brew install --cask atom brew install vim # ํ„ฐ๋ฏธ๋„ ์—๋””ํ„ฐ ``` ### ์„ ํƒ์  ๋„๊ตฌ ```bash # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค GUI ๋„๊ตฌ brew install --cask dbeaver-community # ๋‹ค์ค‘ DB ํด๋ผ์ด์–ธํŠธ brew install --cask tableplus # macOS ๋„ค์ดํ‹ฐ๋ธŒ DB ํด๋ผ์ด์–ธํŠธ # API ํ…Œ์ŠคํŠธ ๋„๊ตฌ brew install --cask postman brew install --cask insomnia # ํ„ฐ๋ฏธ๋„ ๊ฐœ์„  brew install zsh-autosuggestions brew install zsh-syntax-highlighting ``` --- ## ๐Ÿš€ 8๋‹จ๊ณ„: ํ”„๋กœ์ ํŠธ ์„ค์ • ### ํ”„๋กœ์ ํŠธ ํด๋ก  ๋ฐ ์„ค์ • ```bash # ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ cd /Users/hyungi/news-project # ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” source venv/bin/activate # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŒŒ์ผ ์ƒ์„ฑ cp .env.example .env ``` ### ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (.env ํŒŒ์ผ) ```bash # .env ํŒŒ์ผ ํŽธ์ง‘ cat > .env << EOF # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • DATABASE_URL=postgresql://industrial_user:password@localhost:5432/industrial_info REDIS_URL=redis://localhost:6379/0 ELASTICSEARCH_URL=http://localhost:9200 # ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • DEBUG=True SECRET_KEY=your-secret-key-here # API ํ‚ค (ํ•„์š”์‹œ) PUBMED_API_KEY=your-pubmed-api-key IEEE_API_KEY=your-ieee-api-key EOF ``` ### Python ์˜์กด์„ฑ ์„ค์น˜ ```bash # requirements.txt๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ pip install -r requirements.txt # ๋˜๋Š” ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ์„ค์น˜ pip install fastapi uvicorn sqlalchemy psycopg2-binary redis elasticsearch celery spacy beautifulsoup4 requests pandas numpy ``` ### Node.js ์˜์กด์„ฑ ์„ค์น˜ (ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ) ```bash # frontend ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ cd frontend npm install cd .. ``` --- ## ๐Ÿ”ง 9๋‹จ๊ณ„: ์„œ๋น„์Šค ๊ด€๋ฆฌ ### ์„œ๋น„์Šค ์‹œ์ž‘/์ค‘์ง€ ๋ช…๋ น์–ด ```bash # ๋ชจ๋“  ์„œ๋น„์Šค ์‹œ์ž‘ brew services start postgresql@15 brew services start redis brew services start elasticsearch # ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ brew services list # ํŠน์ • ์„œ๋น„์Šค ์ค‘์ง€ brew services stop postgresql@15 brew services stop redis brew services stop elasticsearch # ์„œ๋น„์Šค ์žฌ์‹œ์ž‘ brew services restart postgresql@15 ``` ### ์ž๋™ ์‹œ์ž‘ ์„ค์ • ```bash # ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ (์ด๋ฏธ ์„ค์ •๋จ) # brew services start ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ•œ ์„œ๋น„์Šค๋“ค์€ ์ž๋™์œผ๋กœ ๋ถ€ํŒ… ์‹œ ์‹œ์ž‘๋จ # ์ˆ˜๋™์œผ๋กœ ์ž๋™ ์‹œ์ž‘ ํ•ด์ œํ•˜๋ ค๋ฉด brew services stop postgresql@15 # ๊ทธ๋ฆฌ๊ณ  ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•˜๋ ค๋ฉด pg_ctl -D /opt/homebrew/var/postgresql@15 start ``` --- ## ๐Ÿ“Š 10๋‹จ๊ณ„: ์„ฑ๋Šฅ ์ตœ์ ํ™” ### ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ตœ์ ํ™” (8GB Mac ๊ธฐ์ค€) ```bash # ~/.zshrc์— ์ถ”๊ฐ€ cat >> ~/.zshrc << EOF # ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” export ELASTICSEARCH_JAVA_OPTS="-Xms512m -Xmx1g" export REDIS_MAXMEMORY="256mb" export PYTHONOPTIMIZE=1 # PostgreSQL ์„ค์ • ์ตœ์ ํ™” export PGDATA="/opt/homebrew/var/postgresql@15" EOF source ~/.zshrc ``` ### PostgreSQL ์„ค์ • ์ตœ์ ํ™” ```bash # postgresql.conf ํŽธ์ง‘ vim /opt/homebrew/var/postgresql@15/postgresql.conf # ๋‹ค์Œ ์„ค์ • ์ถ”๊ฐ€/์ˆ˜์ •: # shared_buffers = 256MB # effective_cache_size = 1GB # maintenance_work_mem = 64MB # checkpoint_completion_target = 0.9 # wal_buffers = 16MB # default_statistics_target = 100 # ์„ค์ • ์ ์šฉ์„ ์œ„ํ•ด ์žฌ์‹œ์ž‘ brew services restart postgresql@15 ``` --- ## ๐Ÿ” 11๋‹จ๊ณ„: ๊ฐœ๋ฐœํ™˜๊ฒฝ ํ…Œ์ŠคํŠธ ### ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ ```bash # test_connections.py ์ƒ์„ฑ cat > test_connections.py << EOF #!/usr/bin/env python3 import psycopg2 import redis import requests def test_postgresql(): try: conn = psycopg2.connect( host="localhost", database="industrial_info", user="industrial_user", password="password" ) print("โœ… PostgreSQL ์—ฐ๊ฒฐ ์„ฑ๊ณต") conn.close() except Exception as e: print(f"โŒ PostgreSQL ์—ฐ๊ฒฐ ์‹คํŒจ: {e}") def test_redis(): try: r = redis.Redis(host='localhost', port=6379, db=0) r.ping() print("โœ… Redis ์—ฐ๊ฒฐ ์„ฑ๊ณต") except Exception as e: print(f"โŒ Redis ์—ฐ๊ฒฐ ์‹คํŒจ: {e}") def test_elasticsearch(): try: response = requests.get('http://localhost:9200') if response.status_code == 200: print("โœ… Elasticsearch ์—ฐ๊ฒฐ ์„ฑ๊ณต") else: print(f"โŒ Elasticsearch ์—ฐ๊ฒฐ ์‹คํŒจ: {response.status_code}") except Exception as e: print(f"โŒ Elasticsearch ์—ฐ๊ฒฐ ์‹คํŒจ: {e}") if __name__ == "__main__": print("๐Ÿ” ๊ฐœ๋ฐœํ™˜๊ฒฝ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ") test_postgresql() test_redis() test_elasticsearch() EOF # ํ…Œ์ŠคํŠธ ์‹คํ–‰ python test_connections.py ``` ### ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ```bash # ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ํ™•์ธ htop # Docker ์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์†Œ์Šค ํ™•์ธ (Docker ์‚ฌ์šฉ ์‹œ) docker stats # ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ df -h # ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ vm_stat ``` --- ## ๐Ÿšจ ๋ฌธ์ œ ํ•ด๊ฒฐ ### ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋“ค #### 1. Homebrew ์„ค์น˜ ์‹คํŒจ ```bash # ๊ถŒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ sudo chown -R $(whoami) /opt/homebrew # ๋˜๋Š” Rosetta 2 ์„ค์น˜ (M1/M2 Mac) softwareupdate --install-rosetta ``` #### 2. PostgreSQL ์—ฐ๊ฒฐ ์‹คํŒจ ```bash # ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ brew services list | grep postgresql # ๋กœ๊ทธ ํ™•์ธ tail -f /opt/homebrew/var/log/postgresql@15.log # ํฌํŠธ ์ถฉ๋Œ ํ™•์ธ lsof -i :5432 ``` #### 3. Elasticsearch ์‹œ์ž‘ ์‹คํŒจ ```bash # Java ์„ค์น˜ ํ™•์ธ java --version # ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์‹œ ์„ค์ • ์กฐ์ • export ELASTICSEARCH_JAVA_OPTS="-Xms256m -Xmx512m" # ๋กœ๊ทธ ํ™•์ธ tail -f /opt/homebrew/var/log/elasticsearch.log ``` #### 4. Redis ์—ฐ๊ฒฐ ๋ฌธ์ œ ```bash # Redis ์„œ๋น„์Šค ํ™•์ธ brew services list | grep redis # ์„ค์ • ํŒŒ์ผ ํ™•์ธ cat /opt/homebrew/etc/redis.conf # ํฌํŠธ ํ™•์ธ lsof -i :6379 ``` ### ์„ฑ๋Šฅ ๋ฌธ์ œ ํ•ด๊ฒฐ #### ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์‹œ ```bash # ๋ถˆํ•„์š”ํ•œ ์„œ๋น„์Šค ์ค‘์ง€ brew services stop elasticsearch # ์ž„์‹œ๋กœ ์ค‘์ง€ # Swap ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ sysctl vm.swapusage # ๋ฉ”๋ชจ๋ฆฌ ์ •๋ฆฌ sudo purge ``` #### ๋””์Šคํฌ ๊ณต๊ฐ„ ๋ถ€์กฑ ์‹œ ```bash # Homebrew ์บ์‹œ ์ •๋ฆฌ brew cleanup # Docker ์ด๋ฏธ์ง€ ์ •๋ฆฌ docker system prune -a # ๋กœ๊ทธ ํŒŒ์ผ ์ •๋ฆฌ sudo rm -rf /opt/homebrew/var/log/*.log.* ``` --- ## ๐Ÿ“š ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค ### ์œ ์šฉํ•œ ๋ช…๋ น์–ด ๋ชจ์Œ ```bash # ๋ชจ๋“  Homebrew ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ brew services list # ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก brew list # ํŒจํ‚ค์ง€ ์ •๋ณด ํ™•์ธ brew info postgresql@15 # ์˜์กด์„ฑ ํ™•์ธ brew deps --tree postgresql@15 # ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ํ™•์ธ brew outdated ``` ### ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ ```bash # ์ผ์ผ ๊ฐœ๋ฐœ ์‹œ์ž‘ ๋ฃจํ‹ด cd /Users/hyungi/news-project source venv/bin/activate brew services start postgresql@15 redis elasticsearch # ์ผ์ผ ๊ฐœ๋ฐœ ์ข…๋ฃŒ ๋ฃจํ‹ด deactivate brew services stop elasticsearch # ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ์„ ์œ„ํ•ด ``` ### ๋ฐฑ์—… ๋ฐ ๋ณต์› ```bash # PostgreSQL ๋ฐฑ์—… pg_dump industrial_info > backup.sql # PostgreSQL ๋ณต์› psql industrial_info < backup.sql # ์„ค์ • ํŒŒ์ผ ๋ฐฑ์—… cp ~/.zshrc ~/.zshrc.backup cp .env .env.backup ``` --- ์ด ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผํ•˜๋ฉด macOS์—์„œ Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.