-
Makefile 효과에 대한 인식
-
Makefile 효과란 복잡하거나 익숙하지 않은 도구를 처음부터 작성하지 않고, 이전에 잘 작동했던 예제를 복사하여 수정하는 현상을 의미함.
- 이 효과는 다양한 엔지니어들이 Make와 같은 도구를 사용할 때 자주 나타남.
- 과거에 유사한 작업이 수행된 경우, 엔지니어는 이전의 Makefile을 복사하여 새로운 상황에 맞게 수정함.
-
문제점과 영향
-
설계 단계에서의 문제점: 도구가 너무 복잡하거나 처음부터 사용하기 번거로움.
-
CI/CD 구성: GitHub Actions나 GitLab CI/CD에서 YAML 설정을 복사하여 수정하는 경우가 많음.
-
린터 및 포매터 구성: 기본 규칙 세트를 프로젝트 간에 복사하여 필요에 따라 강화하거나 완화함.
-
빌드 시스템: 비트리비얼한 모든 것이 이전 빌드 시스템을 닮아감.
-
이 현상이 중요한 이유
-
진단 및 디버깅 지원 부족: 도구를 반복적으로 실행해야 하며, 정보가 적게 제공됨.
-
학습 저해: 일부 전문가만 도구를 잘 알고, 다른 사람들은 최소한의 지식으로 복사하여 수정함.
-
보안 문제: 보안 작업은 깊은 지식이 필요하며, Makefile 효과가 있는 시스템은 코드와 데이터 간의 혼동을 초래할 수 있음.
-
도구 설계 시 고려사항
- 도구가 구성 가능해야 하는지 여부.
-
자체 문법이 필요한지 여부.
-
기존 문법이나 관용구를 재사용할 수 있는지 여부.
-
복사-붙여넣기가 자주 발생하는지 여부.
-
Makefile 효과와 유사한 현상
-
카고 컬팅이나 일탈의 정상화와 유사하지만, Makefile 효과는 특정 설계의 결과에 관한 것임.
- Makefile 효과는 본질적으로 비효율적이거나 나쁜 것이 아님. 도구와 시스템을 설계할 때 인식해야 할 사항임.