프로그래밍을 하다보면 해당 디렉토리 또는 프로젝트에서 자주 쓰는 커맨드가 등장한다.
예를 들어,
$ poetry python3 -m core.manage run-server
이 커맨드는 poetry 환경에서 django 프로젝트를 실행 시킨다.
계속해서 써야 하는 입력인데, 다 치기도 귀찮고 어쩌다 오타가 나면 더 귀찮아진다.
오늘 알게 된 Makefile은 이 고민을 해결해준다.
$ make run-server
1번 커맨드를 2번 커맨드로 깔끔하게 바꿔준다.
만드는 방법은 간단하다.
install
migrate
makemigrations
...
위 커맨드들은 명령문 대체제다.
Makefile을 디렉토리에 넣은 후, 명령어 앞에 make 를 붙여주면 된다.
$ make migrate
커맨드를 입력하면, 아래 명령어로 치환되어 적용된다.
$ poetry run python3 -m core.manage migrate
여기까진 매우 간단하다. (사실 뒤에도 간단하다)
다른 syntax는 .PHONY가 보일 것이다. 옆에 나열된 명령들이 폴더가 아님을 명시하고 make command 에게 헷갈리는 부분을 없애 주는 것이다.
예를 들어,
$ make migrations
커맨드를 입력했을 때, 같은 디렉토리에 migrations라는 폴더가 존재할 수도 있다.
.PHONY안에 넣음으로써, 이를 방지할 수 있다.
그냥 다 넣는 것도 단점은 없어 보인다.
마지막으로
$ make update
커맨드가 다른 명령과 형식이 다르다.
Makefile 안에서는 명령어를 nest(?) 할 수 있는데, make update를 실행하면
$ make install
$ make migrate
두 명령이 실행된다.
라이브러리를 이것저것 쓰다보면, 커맨드가 헷갈리는데, Makefile을 계속 업데이트 하며, 나만의 command set을 만들면 기억할 필요도 없고 좋은 것 같다.