코딩을 다시 즐겁게··· 개발자를 위한 14가지 전처리기
린팅 전처리기
코드를 변환하는 전처리기만 있는 것은 아니다. 일부는 개발자가 지나간 자리를 살피며 놓친 버그를 찾아 주기도 한다. 원래는 유닉스 명령줄 툴인 린트(lint)가 전이되어 이제는 많은 언어 개발 스택의 전처리기에서 린트 기능을 볼 수 있다. 이 같은 린팅 툴, 또는 린터는 서식을 바로잡고 명명 규칙을 적용하고 구문 및 의미 오류를 수정하기도 한다. 일부는 잘못된 로직에서 발생하는 잠재적인 보안 결함을 표시하는 규칙을 적용한다. 인기 있는 버전으로는 루비 코드용 루보캅(RuboCop), 파이썬용 파이린트(Pylint), 자바스크립트(ECMA스크립트)용 ES린트(ESLint)가 있다.
문서화를 위한 전처리기
실행 가능한 코드 외의 다른 것을 생산하는 전처리기도 있다. 스핑크스(Sphinx), Mk독스(MkDocs), 독시젠(Doxygen)과 같은 툴은 파일을 분석하고, 코드에서 주석이 달린 교차 참조 문서 파일 집합을 생성한다. 이러한 툴은 여러 언어에서 작동하지만 거의 모든 언어에는 자체적인 공식 전처리기가 있다. 자바독(Javadoc), 러스트독(Rustdoc), 고독(Godoc), JS독(JSDoc) 등이 많이 사용된다.
통합 데이터 보고를 위한 전처리기
데이터 과학자가 R 언어만 사용하는 것은 아니다. 이들은 R로 생성된 차트, 표, 그래프가 포함된, 사람의 언어로 만들어진 복잡한 데이터 보고서도 작성한다. 데이터 과학자들은 오랜 시간에 걸쳐 R뿐만 아니라 타입세팅 언어인 라텍(LaTex)을 위한 복잡한 전처리기를 만들어왔다. 과학자가 모든 것을 R과 인간 언어로 작성하면 전처리기가 이를 분할해서 계산 명령은 R로, 타입세팅 명령은 라텍으로 보낸다. 또한 R로 생성된 그림이 문서의 적절한 위치에 배치되도록 각 부분을 조정하고, 이후 파일의 인간 언어 부분에서 생성된 최종 PDF 안에 이를 접어 넣는다. 이 모든 작업을 하면서 동시에 페이지 참조와 그림 번호의 일관성도 유지한다.
각자의 장점이 있는 다양한 옵션이 있다. R 마크다운은 일반적인 마크다운의 변형으로, 계산 분석과 데이터 분석을 병합할 수 있다. 또한 파이썬 또는 SQL과 같은 언어의 결과를 병합해서 슬라이드, 문서, 책, 웹사이트를 생성할 수도 있다. 니터(Knitr)와 그 전신인 스위브(Sweave)는 R스튜디오에서 충실히 지원되는 밀접하게 연관된 전처리기다. 파이썬과 라텍을 병합하고자 한다면 P위브(Pweave)도 있다. 언젠가는 이 모두를 하나의 큰 전처리기로 병합하는 메타 버전도 나올 수 있다.