Kim Seogyu
Backend

Enterprise Go 시리즈 #9: Makefile로 개발 워크플로우 자동화

Go 프로젝트에서 Makefile을 팀 공통 실행 인터페이스로 운영하는 방법을 정리합니다.

Published 2026년 1월 1일1 min read156 words

Enterprise Go 시리즈 #9: Makefile로 개발 워크플로우 자동화

왜 필요한가

명령이 늘수록 팀마다 실행 방식이 달라지고 CI와 로컬 결과가 어긋납니다. Makefile은 이를 단일 인터페이스로 맞추는 장치입니다.

최소 규칙

  • make build
  • make test
  • make lint
  • make generate
  • make clean

개발자와 CI가 같은 명령을 쓰도록 강제합니다.

예시

GO := go

.PHONY: build test lint generate clean

build:
	$(GO) build ./...

test:
	$(GO) test -race -cover ./...

lint:
	golangci-lint run ./...

generate:
	$(GO) generate ./...

clean:
	rm -rf bin

모노레포에서의 팁

  • 서비스별 타겟 분리 (build-api, build-worker)
  • 변경 서비스만 빌드하는 타겟 별도 제공
  • help 타겟으로 실행 가능한 문서화

자주 하는 실수

  • Makefile에 환경별 분기를 과도하게 넣어 복잡도 폭증
  • 로컬만 되는 명령을 넣어 CI와 불일치
  • 모든 타겟을 .PHONY로 선언하지 않아 캐시 오작동

요약

Makefile의 본질은 자동화가 아니라 표준화입니다. 팀이 같은 명령을 쓰게 만드는 것만으로 온보딩과 배포 안정성이 크게 좋아집니다.

Share

Related Articles

Comments

이 블로그는 제가 알고 있는 것들을 잊지 않기 위해 기록하는 공간입니다.
직접 작성한 글도 있고, AI의 도움을 받아 정리한 글도 있습니다.
정확하지 않은 내용이 있을 수 있으니 참고용으로 봐주세요.

© 2026 Seogyu Kim