Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- aws eks
- AWS KMS
- aws 연동
- AWS 프리티어
- Azure
Archives
- Today
- Total
기록
Makefile 사용법과 매개변수 전달 방법 정리 본문
시작하면서
프로젝트를 자동화할 때 Makefile을 잘 활용하면 반복적인 커맨드를 단순화할 수 있다. 여기서는 기본 사용법과 매개변수(인자) 전달 방법을 간략하게 정리한다.
Makefile 기본 구조
<타겟명>:
<실행할 명령>
예시:
build:
./gradlew build
run:
docker-compose up -d
터미널에서 실행:
make build
make run
여러 명령어 연결
full-deploy:
./gradlew build
docker-compose build
docker-compose up -d
매개변수 전달 방법
Makefile 내부에서 쉘 변수를 받아 사용하는 방법이 있다.
방법 1: 환경변수 형태로 전달
print-env:
echo $(MY_VAR)
실행:
make print-env MY_VAR=hello
결과:
hello
방법 2: 인자 파싱 (내부 변수를 따로 선언)
JAR_NAME=default.jar
build:
echo "빌드할 JAR 파일: $(JAR_NAME)"
실행:
make build JAR_NAME=service-config-1.0.0.jar
동적으로 값 가져와서 사용하기
Makefile 내에서도 쉘 커맨드 실행 결과를 변수로 받을 수 있다.
run-config:
@export JAR_FILE=$$(ls service-config/build/libs/*.jar | xargs -n 1 basename) && \
echo "빌드된 JAR 파일: $$JAR_FILE" && \
docker build -t service-config:1.0.0 --build-arg JAR_FILE=$$JAR_FILE -f ./Dockerfile ./service-config/build/libs && \
docker-compose up -d service-config
팁
- 각 명령 앞에 @를 붙이면 커맨드 출력 없이 실행된다.
- && 를 사용하면 한 줄에 여러 명령을 연결할 수 있다.
- make help 타겟을 정의해 두면 사용법을 보기 좋게 안내할 수 있다.
help:
@echo "make build - 프로젝트 빌드"
@echo "make run-config - 컨피그 서버 빌드 & 실행"
마무리
Makefile은 반복 작업을 자동화하고, 인자를 받아 동적으로 실행할 수 있는 강력한 도구다. 프로젝트 빌드, 도커 빌드, 배포 스크립트 등을 표준화하는 데 적극적으로 활용할수 있다.
'DevOps' 카테고리의 다른 글
Gradle test 먼저 실행했더니 실패한 이유: JDK와 javac의 함정 (0) | 2025.04.11 |
---|---|
AWS 프리티어로 ECS on EC2 구성하기 (CloudFormation 기반 자동화) (0) | 2025.04.01 |
AWS에서 민감 정보 안전하게 관리하기: Parameter Store (0) | 2025.01.29 |
CICD 파이프라인 구축기(4) - 블루그린 배포를 활용한 무중단 배포 구축 (0) | 2024.12.30 |
AWS/EC2 인스턴스를 SSM(Session Manager)으로 안전하게 연결 (0) | 2024.12.09 |
Comments