GN⁺ 2024-09-22 | parent | ★ favorite | on: 나는 Makefile을 좋아함(switowski.com)
Hacker News 의견
  • Make 사용에 대한 격려

    • Make를 잘못 사용한다고 낙담하지 말라는 의견
    • Make는 단순함이 장점이며, 작은 프로젝트에서는 큰 문제가 되지 않음
    • 대부분의 경우 올바른 방법을 신경 쓸 필요가 없으며, 필요한 만큼의 복잡성만 추가됨
  • Makefiles의 문제점

    • Makefiles는 다른 빌드 시스템보다 덜 나쁘지만 여전히 문제점이 많음
    • 빌드 시스템의 주요 문제점:
      • 너무 기본적임: 복잡한 프로젝트에서는 혼란이 생김
      • 너무 복잡함: 초기 지식과 관리가 과도하게 요구됨
      • 표준 라이브러리 부족: 모든 것을 직접 정의해야 함
      • 너무 제한적임: 필요가 변하면 다른 시스템으로 이동해야 함
      • 너무 많은 마법: 잘못 설계된 시스템의 특징
      • 암호화된 또는 일관성 없는 문법
  • Make의 장점

    • Make를 좋아하는 사람의 의견
    • Make는 단순한 DSL로 파일을 변환하는 명령어 모음임
    • Bash나 다른 쉘로도 가능하지만, Make가 더 간단함
  • PHONY 타겟 사용

    • mtime 기반 의존성 추적을 사용하지 않음
    • 타겟을 PHONY로 정의해야 함
    • 최근에는 just와 justfiles로 전환하여 더 간단하게 사용함
  • Make에 대한 열띤 논쟁

    • Make가 vi-vs-emacs 전쟁처럼 논쟁을 불러일으킴
    • Makefile을 최상위 빌드 시스템 드라이버로 사용하는 것이 스마트함
    • 다른 빌드 도구를 사용하더라도 Makefile로 표준화 가능
  • Make의 다양한 활용

    • Make를 다양한 작업 자동화에 사용함
    • 개인 웹사이트 빌드 및 배포에 Makefile 사용
    • Git push와 Git hook을 통해 Make 호출
    • PDF 파일 업로드 및 관리에 Makefile 사용
  • Make의 한계와 대안

    • Make는 작업 실행기로는 괜찮지만, 더 나은 대안이 있음
    • Make/Makefiles는 표준화되지 않음
    • 의존성 해결 불가, configure 스크립트 필요
    • mtime을 사용하여 입력이 최신인지 확인하지만, 문제 발생 가능
    • Unix 철학에 따라 설계되었지만, 현대 빌드 시스템에는 한계가 있음
  • Justfiles로 전환

    • Justfiles로 전환하여 Makefile의 복잡성을 피함
  • Makefile의 단순한 사용

    • Makefile의 단순한 사용을 지지하는 의견
    • 모든 것을 완벽하게 배우지 않고도 공유할 수 있음
    • GitLab CI 파이프라인이 Makefile을 대체한 경험 공유