Makefile을 사용하여 생산성을 높이는 방법

원래 게시됨my blog

소개



생산성을 높이고 워크플로를 자동화하려면 목표를 달성하는 데 도움이 되는 많은 도구가 있습니다.

make는 소스에서 프로그램을 실행하고 컴파일할 수 있는 유연성을 제공합니다.
이 가이드에서는 이를 사용하여 개발 워크플로를 자동화합니다.
참고: Django를 예로 사용하지만 기술은 다른 기술에도 적용할 수 있습니다.
이 가이드에서는 Makefile을 사용하여 데이터베이스 마이그레이션, 수퍼유저, 배포 등과 같은 Django의 많은 작업을 자동화할 것입니다.
가이드가 끝나면 개발 생산성이 향상됩니다.
계속하기 전에 시스템에 make가 설치되어 있는지 확인하십시오.

설치



make를 사용하려면 두 가지가 필요하고 한 가지는 시스템에 설치해야 하고 마지막으로 Makefile이라는 파일을 만들어야 합니다.

시스템에 make를 설치하려면 다음 링크를 따라가십시오.
OSX
Windows

기본 예



make를 탐색하기 위해 이 간단한 프로그램으로 시작하여 아무 디렉토리로 이동하여 Makefile을 만듭니다.
참고: 확장자를 지정하지 마십시오.

$ mkdir test_make && cd test_make
$ touch Makefile


텍스트 편집기로 파일을 열고 이것을 넣습니다.

say_hello:
        echo "Hello world"


test_make 디렉토리 안에 make를 입력하여 파일을 실행하십시오.

$ make


출력은 무엇입니까?
여기 내가 얻는 것이 있습니다.

echo "Hello world"
Hello world


장고 통합



Django 개발자라면 다음 명령을 반복해서 반복하는 것이 얼마나 지루한지 알 것입니다.

python manage.py runserver
python manage.py makemigrations
python manage.py migrate
...


make로 자동화하자

예제 프로젝트here를 복제하고 README 가이드를 따르세요.

git clone https://github.com/xarala221/consume-restfull-api-with-django && cd consume-restfull-api-with-django


응용 프로그램을 실행하여 모든 것이 제대로 작동하는지 확인합니다.

python manage.py migrate
python manage.py runserver


브라우저를 열고 http://localhost:8000 으로 이동합니다.

프로젝트 내에서 폴더는 Makefile이라는 파일을 만들고 다음 줄을 추가합니다.

touch Makefile


최종 파일은 다음과 같습니다.

SHELL := /bin/bash

help:
    @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'

install:
    pipenv install

activate:
    pipenv shell

run:
    python manage.py runserver

migration:
    python manage.py makemigrations

migrate:
    python manage.py migrate

superuser:
    python manage.py createsuperuser

heroku:
    git push heroku master

deploy:
    docker-compose build
    docker-compose up -d

down:
    docker-compose down



이 팁으로 생산성을 높일 수 있습니다.

결론



생산성을 높이고 작업을 완료하는 것이 매우 중요합니다. 이 가이드에서는 make를 사용하여 워크플로를 자동화하는 방법을 배웠습니다.

이에 대해 어떻게 생각하세요? 의견 섹션에서 알려주십시오.

좋은 웹페이지 즐겨찾기