# 환경은 "실행 명령어"로 분기한다 (-env 플래그). 환경변수 APP_ENV에 의존하지 않음. .PHONY: run-dev run-prod build build-linux test vet fmt # --- 로컬 실행 (명령어로 환경 선택) --- run-dev: ## 개발 모드 실행 (text 로그, debug, 콘솔만) go run . -env dev run-prod: ## 운영 모드 실행 (JSON 로그, info, logs/app.log) go run . -env prod # --- 빌드 --- build: ## 현재 OS용 바이너리 go build -ldflags="-s -w" -o slack-notifier . # EC2 배포용 정적 바이너리. 기본 arm64(t4g/Graviton). x86_64 인스턴스면 ARCH=amd64. ARCH ?= arm64 build-linux: ## EC2용 리눅스 정적 바이너리 (ARCH=arm64|amd64) GOOS=linux GOARCH=$(ARCH) CGO_ENABLED=0 go build -ldflags="-s -w" -o slack-notifier . @echo "built: slack-notifier (linux/$(ARCH))" # --- 검증 --- test: go test ./... vet: go vet ./... fmt: gofmt -w .