내가 어제 서버에 Emacs 쓴다니까 놀라는 횽들이 있어서 싸줌


현재 일할 때 쓰는 것들이 Clojure, RabbitMQ, PostgreSQL, 이 정도고 마이크로 서비스 시스템으로 2개가 존재함.


니가 새 버전을 프로덕션 서버에 올리면 중요 기능이 잘 작동하는지 확인하는 '스모크 테스트' 라는 걸 해야 됨.


클로져를 쓴다면 이게 비교적 쉬움. 왜냐하면 함수 콜 되는 걸 런타임에 '트레이스' 하는 기능이 있거든. 근데 이걸 쉽게 하려면 Cider 개발환경이 있어야 되고,  Cider를 돌리려면 Emacs가 있어야 되기 때문에 emacs-nox가 필요하다.




실전 예를 알랴줌. 

웹 클라이언트로 몇가지 중요 기능 수행시키면, 그 연산이 서버 A -> RabbitMQ -> 서버 B -> DB 이게 되는걸 확인 하면 됨


먼저 서버 시작한 후 Emacs Cider로 서버 B 클로져에 연결

서버 B의 RabbitMQ 핸들러 함수 와 DB 핸들러 함수 두개만 트레이스 해서 함수 콜 인자와 함수 콜 결과값이 이상없음을  확인


마지막으로 모든게 정상임을 확인 후 DNS 변경만 하면 새로운 서비스가 아무 중단없이 시작되는 부분



이후에도 프로덕션 문제 발생시 문제 원인 추적에 꼭 필요한 부분이 Emacs



한줄요약: 니들이 Emacs를 아냐?