고객 지원 문의

이메일로 답장드리며, 보통 이틀 안에 회신합니다.

Google reCAPTCHA가 이 제출을 악용 여부에 대해 확인하며, 이 과정에서 데이터가 Google로 전송됩니다. 스크립트는 이 양식을 열 때만 불러옵니다.

← 전체 글

왜 우리 설정 파일은 대부분 주석인가

콘텐츠와 검토에 관하여

이 글의 내용

이 서버의 .htaccess은 478줄입니다. 그 가운데 98줄이 규칙입니다. 309줄이 주석입니다.

309 — 주석 줄 98 — 규칙 11줄이 날짜를, 12줄이 측정값을 담습니다 모두 478줄

무언가를 하는 줄 하나마다 설명 세 줄입니다. 계획한 비율이 아닙니다. 규칙을 쓰는 규칙이 "까닭을 그 옆에 두어야 한다"일 때 생기는 결과입니다.

왜 재작성 규칙에 한 문단이 필요한가

서버 설정의 규칙은 나중에 읽히기에 유난히 적대적입니다. 설계상 간결하고, 이름이 없고, 단계별로 따라갈 수 없고, 정확히 알맞은 주소가 요청되지 않는 한 효과가 보이지 않습니다. 여섯 달 뒤 "이게 왜 여기 있지"에 대한 정직한 답은 대개 짐작입니다.

더 나쁜 것은 잘못 짐작하는 값이 싸고 안전해 보인다는 점입니다. 아무도 이해하지 못하는 규칙은 언젠가 누군가 정리하다가 지우는 규칙이고, 그것이 막고 있던 것이 돌아옵니다.

그래서 여기 규칙마다 무엇을 위한 것인지와 어디서 확인할 수 있는지가 붙어 있습니다. 주석 줄 열하나가 날짜를, 열둘이 측정값을 담습니다. 나중 독자가 그 까닭이 아직 유효한지 판단하게 해 주는 것이 그 둘입니다.

주석 없이는 살아남지 못했을 셋

스크립트 확장자처럼 보였던 언어 코드. 남은 소스 파일을 막는 규칙이 확장자로 맞추었고, 그 확장자 가운데 하나가 .pl — 펄이었습니다. 디자인 미리보기는 2900.pl.svg라는 이름이고, 거기서 pl은 폴란드어입니다. 폴란드어 미리보기가 모두 403으로 답하기 시작했고 다른 언어는 다 멀쩡했습니다. 이제 주석은 pl이 목록에 일부러 없다는 것, 그 까닭, 그리고 어느 날 무엇을 쟀는지를 적고 있습니다. 그것이 없으면 다음에 목록을 정리하는 사람이 그것을 도로 넣습니다.

하나면 충분해 보이는 스위치 둘. 미리 압축한 파일은 나가는 길에 다시 압축되어서는 안 됩니다. 설정은 no-gzip을 두고, 그것은 서버의 두 압축기 가운데 하나를 멈춥니다. 다른 하나가 완성된 파일을 다시 압축했고 헤더는 여전히 gzip이라고 알렸으며, 브라우저는 읽을 수 없는 내용을 받았습니다. 주석은 왜 no-gzip과 no-brotli이 둘 다 있는지 설명합니다. 두 번째를 지우는 것이 정리처럼 보이기 때문입니다.

뒤집힌 금지 규칙. 백업 사본을 막는 규칙은 금지 확장자를 늘어놓지 않습니다. 파일 이름이 끝이 아닌 자리에 소스 확장자를 담고 있는지 묻습니다 — 그래서 아직 아무도 지어내지 않은 이름까지 잡습니다. 주석은 뻔한 판본이 틀렸던 이름 다섯 개를 상태 코드와 함께 적어 둡니다. 규칙만 읽으면 쓸데없이 영리해 보이고, 주석을 읽으면 그것만이 작동한다는 것이 보입니다.

일반적인 판본

코드를 되풀이하는 주석은 값어치가 없고 모두가 압니다. 이것들은 그런 것이 아닙니다. 코드가 담을 수 없는 것을 적습니다. 무엇이 잘못되었는지, 무엇을 쟀는지, 어느 날짜에, 그리고 물리친 대안이 무엇이었는지 말입니다.

주석을 쓸 값어치가 있는지 가리는 시험은 충분히 단순합니다. 그 위의 줄을 사연을 모르는 사람이 지운다면 무언가 소리 없이 망가지는가? 그렇다면 사연을 적으십시오. 아니라면 아무것도 적지 마십시오.

3 대 1은 목표가 아닙니다. 거의 모든 줄이 특정한 무언가가 잘못되었기 때문에 존재하는 파일에서 그 시험이 내놓은 결과입니다.

광고