요즘은 거의 모든 프레임워크가 타입스크립트를 지원합니다. AngularJS의 경우 타입스크립트의 사용이 선택이 아닌 필수가 되어버렸고 ReactJS와 VueJS 역시 타입스크립트를 사용할 수 있도록 지원하고 있죠.

이런 환경에서 타입스크립트를 사용할 때 세미콜론을 반드시 써야하는지 아니면 쓰지 않아야 하는지 혼동스러운 경우가 발생하는데요 이에 대하여 간단히 상황을 정리해봅니다. 이 글은 해야한다 아니다가 아닌 여러 의견과 정보를 취합하고 생각해보는 글입니다.



# 꼭 세미콜론을 안 써야하는가?
이런 문제가 발생하는 원인은 무엇일까요? 다수의 개발자들이 세미콜론 사용 유무에 대해 대립하는 상황이기 때문이죠. 즉 둘 다 무엇을 선택하든 문제가 없는 것이 문제입니다. 자유도를 최대한 허용하는 자바스크립트의 단점(?) 같기도 합니다. 왜 이런 문제가 생겼을까요.


! 세미콜론 이슈가 대두된 큰 원인은?
어쨌든 문제가 발생하게 된 가장 큰 원인은 다음의 두 가지라고 볼 수 있는데요~ 오류를 잡아주는 TSLint 등의 Linting 설정이나 IDE 개발환경 툴에서 세미콜론 사용 또는 미사용시 많은 에러가 발생하게됩니다. 즉 에러 메시지를 발생하지 않으려면 설정을 바꾸지 않는 경우 모든 코드의 세미콜론을 추가하거나 제거하는 행위가 강요됩니다. 개발툴의 기능 중 ASI(Auto Semicolon Insertion)은 세미콜론을 자동으로 추가하여 세미콜론을 무조건 사용하도록 환경을 만들기도 합니다.

지금은 잘못되거나 설정된 사항들이 그 즉시 문제가 되고 자동으로 주정되기도 합니다. 어느 것도 문제가 되지 않던 상황이 점점 문제가 되도록 여건이 좋아진다고 할까요?


! 세미콜론 필요와 불필요 의견
세미콜론의 찬반 여론 중 몇 가지만 알아보겠습니다. 세미콜론을 써야한다는 의견으로 줄바꿈의 위치 문제로 전혀 반대의 결과나 나타날 수 있습니다. 니런 문제가 발생하지 않으려면 코드의 마지막에 세미콜론을 사용해야만 하겠죠.

반대로 세미콜론을 사용하지 말아야하는 이유 중 하나는 나쁜 습관을 만들어 좋지 않다는 것입니다.  바꾸어 말하면 좀 더 Strict한 환경이라면 당연히 줄바꿈의 위치를 고려한 코딩이 이루어져야하죠. 또한 한 줄이 너무 길지 않고 짧은 라인과 줄바꿈으로 이루어져야하는데 세미콜론의 허용이 더 좋은 코딩을 느슨하게 만든다는 것입니다.

둘 다 맞는 말입니다.  다만 더 나은 습관을 만들 수 있어야한다는 것은 한번 더 생각하게 만드는 것 같습니다... 이 정도로는 결론을 내릴 수는 없을 것 같습니다...



# 마지막으로 정리
아쉽게도 많은 블로그와 정보들을 찾아봤지만 이래야만 하다는 결론을 접근하지 못했습니다. 아직은 그렇지만 나중에는 한 방향으로 결정될 것이라 생각합니다. 지금 상황에서는 옳고 그름을 떠나 두 방법 모두 사용시 문제가 없도록 협업의 관점에서 생각해봐야겠습니다.

즉 하나의 프로젝트에서 다수가 협업하는 경우 정해진 세미콜론 규칙을 모두 지키는 것이 무엇보다 중요하다는 것입니다. 개인적으로도 앞으로도 혼자 결정하는 상황이 아니라면 다수의 결정등에 따라 세미콜론 규칙을 따라야 할 것 같습니다.