OpenBSD httpd에는 적합한 내장 매크로가 없어, 반복되는 서버 설정을 m4 전처리로 생성해 별도 설정 도구 없이 여러 사이트의 구성을 축약함 m4는 일반 텍스트를 그대로 출력하면서 define, 위치 인자, 재귀 평가를 지원해 차단 경로·TLS·보안 헤더·리디렉션을 재사용 가능한 매크로로 묶을 수 있음 BLOCK, BLOCKLIST, ACME, TLS, HEADERS를 조합하고 SITE(nemin.hu)처럼 호출하면 HTTPS 서버와 HTTP·www 리디렉션 설정을 한꺼번에 생성함 m4가 쉼표를 인자 구분자로 해석해 hsts {preload, subdomains} 같은 설정을 훼손하므로, 쉼표를 ~~로 치환한 뒤 sed 파이프라인으로 복원해야 함 다소 취약한 방식이지만 OpenBSD 기본 도구만으로 운영하려는 조건에는 맞으며, 다른 환경에서는 별도 매크로 처리기나 설정 축약 기능이 있는 서버가 더 적합할 수 있음 매크로의 두 가지 유형 매크로는 반복되는 코드를 줄이고 매개변수로 재사용한다는 목적은 같지만, 크게 AST 변환형과 텍스트 확장형으로 나뉨 Lisp와 Scheme의 매크로는 코드의 추상 구문 트리(AST)를 조작함 일반 함수 incr!는 값의 복사본을 받아 원래 변수 num을 바꾸지 못하지만, 매크로는 (set! num (+ num 1))로 확장돼 값을 변경함 조작 방식을 제한하면 결과가 구문 분석 가능한 코드가 되도록 보장할 수 있음 다만 구문 분석 가능성이 의도한 동작까지 보장하지는 않으므로 결과의 정확성은 사용자가 책임져야 함 C 전처리기 같은 텍스트 확장형 매크로는 대상 언어의 문법을 이해하지 않고 문자열만 변환함 자유롭게 텍스트를 바꿀 수 있지만, 구문 분석이 불가능하거나 의도와 다른 코드를 만들 수 있음 ABS(x)를 x < 0 ? -x : x로 정의하면 ABS(5 - 6)이 연산자 결합 때문에 6이라는 잘못된 결과를 냄 ((x) < 0 ? -(x) : (x))처럼 괄호를 추가해 고칠 수 있지만, 복잡한 매크로일수록 예상하지 못한 확장을 막기 어려움 이런 위험에도 C에서 실제 제네릭 지원 없이 매크로 기반 제네릭을 구현하는 등 강력하게 활용할 수 있음 m4의 동작 방식 m4는 거의 50년 된 POSIX 텍스트 전처리기로, Linux 배포판과 OpenBSD를 포함한 BSD에서 일반적으로 제공됨 특정 프로그래밍 언어에 종속되지 않은 독립 실행형 프로그램이어서 다양한 텍스트 처...
m4로 OpenBSD httpd 설정의 반복 줄이기
1 month ago
23
Related
Show GN: 이메일 피싱 모의훈련을 전화로 옮겼습니다. 예고 없는 전화
58 minutes ago
2
토론토 기반 VPN 업체, 적법 접근 법안으로 캐나다 떠날 계획
1 hour ago
2
Claude Code의 메시지 제안 기능: 진짜 고객은 모델이라는 생각
2 hours ago
3
Show GN: 추천링크·UTM으로 오프라인 소개의 성과를 추적하는 구조
3 hours ago
3
소프트웨어 팩토리 패턴 시도하기
4 hours ago
3
Show GN: 웹 변경 모니터링하는 크롬 확장프로그램
4 hours ago
3
OpenAI, 확률·선택지·점수를 반환하는 Decisions API 공개 베타 시작
5 hours ago
3
Tips
click
Popular
프로들도 줄지어 샷 점검… KLPGA 스타 사랑방 된 더헤븐CC 연습장
2 weeks ago
73
iOS 27, iPadOS 27, macOS 27
3 weeks ago
69
손흥민 선제골 발판·골대 불운…LAFC, 7경기 만에 승리
3 weeks ago
65
영림원소프트랩, 나람 통합 ERP 구축…사료 제조·물류·회계 데이터 하나로
2 weeks ago
62
'이 악문' 김영범, 자유형 50m '대회 신기록' 금메달
2 weeks ago
55
© Clint IT 2026. All rights are reserved









English (US) ·