세미콜론을 쓰지 않아도 된다(쓰지 말아야 한다)는 주장

내가 세미콜론에 대해 다시 생각하게 된 것은 유명 자바스크립트 라이브러리에서 세미콜론을 사용하지 않는 코드를 종종 봤기 때문이다. 그 전까지는 세미콜론을 전혀 넣지 않는 자바스크립트 코드는 생각해 본 적도 없었기에 이상하게 생각되었다. 고집스럽게 세미콜론을 계속 넣기보다는 고수들이 왜 세미콜론을 안 넣는지 찾아 봐야 했다.

몇몇 블로그 글들을 읽어봤는데, JavaScript Standard Style(코드 형식 통일 프로그램)을 만든 Feross Aboukhadijeh의 글 「Never Use Semicolons」이 가장 근거가 분명하고 이해하기 쉬웠다. 장황한 내 글보다 훨씬 간결하니 직접 읽어보셔도 좋다. 그의 논점을 간단히 요약하자면, ASI와 명시적 세미콜론 삽입 스타일은 연관이 없으며, 세미콜론을 붙이는 것보다는 ASI의 동작을 이해하는 것이 중요하다는 것이다.

자카스도 지적했듯이, ASI는 대개는 적절한 위치를 추론하기 때문에 문제를 자주 일으키지는 않는다. 게다가 자카스가 든 예도 세미콜론을 명시적으로 붙여야 할 근거가 되기 보다는, ASI 문제가 특정한 코딩 스타일에서 발생한다는 것을 보여줄 뿐이다. ASI는 우리가 세미콜론을 명시적으로 넣든 안 넣든, 동작할 곳에서 동작한다. ASI 문제를 피하려면 ASI의 동작 원리를 이해하고 그에 맞게 코딩 스타일을 정립하는 것이 핵심이지, 세미콜론을 넣는 것을 강제할 필요는 없다.