인프런 커뮤니티 질문&답변

hellofrontdev님의 프로필 이미지
hellofrontdev

작성한 질문수

Svelte.js [Core API] 완벽 가이드

5. 스토어

[질문] 세미콜론 생략에 대해서

해결된 질문

작성

·

734

2

강사님께서는 세미콜론을 생략하시는 이유가 있으신가요?

제가 알고 있기론 자바스크립트 엔진이 코드를 해석하면서

세미콜론이 없다면 자동으로 세미콜론을 붙여준다고 알고 있

고 이를 명시적으로 붙여주지 않는 경우 때에 따라 오류가

발생할 소지가 있다고 알고 있습니다. 이에 대해서는 의견이

분분한것으로 알고 있는데요. 강사님은 어떻게 생각하시는지

궁금해서 질문드립니다.

답변 2

6

HEROPY님의 프로필 이미지
HEROPY
지식공유자

저 같은 경우는 Vue나 Svelte 같이 컴파일(별도 자바스크립트로 변환)이 되고 나름대로 확실한 경우에는 생산성 향상을 위해 세미콜론을 붙이지 않습니다.

컴파일하면 세미콜론이 자동으로 붙거든요.

물론 관련해 모든 환경이 100% 완벽한 컴파일을 보장하는지는 모르겠습니다.

99%일 수도 있고 98%일 수도 있고 더 낮을 수도 있겠지만,

경험상 .vue나 .svelte 파일에서 세미콜론 때문에 문제가 된 적은 아직 없네요.

.

그런데 Node.js 런타임에서 동작하는 코드는 세미콜론을 붙입니다.

말씀하신 대로 명시적이지 않는 경우 문제가 될 수 있다고 알고 있고,

실제로 문제가 되는 경우가 한 번 있었습니다.

오래돼서 그 사례가 생각나진 않는데, '이래서 세미콜론을 붙여야겠구나'라고 생각하고 이후론 Node.js 코드는 세미콜론을 붙여서 작성합니다.

아마 직접적으로 해당 .js 파일이 동작해서 그런 듯합니다.

.

세미콜론 작성이 생각보다 생산성이 많이 떨어집니다.

세미콜론이 없으면 얼마나 많은 키 입력이 절약되는지 단순 계산만 하셔도 아실 겁니다.

코드 추가/수정/삭제뿐만 아니라, 특히 아직 완벽하지 않은 코드를 작성할 때(테스트할 때), 정말 많이 불편합니다.

.

저는 주로 프론트엔드 코드를 작성하고 대부분 세미콜론을 안 붙이다 보니 항상 세미콜론을 생략하다가, 

필요할 때만(백엔드 코드를 작성하거나..) 따로 세미콜론을 붙입니다.

(가끔 습관 때문에 깜빡하는 경우도 있습니다)

.

정리하자면, '상황에 맞게 붙이거나 붙이지 않는다'가 저의 입장입니다.

혹시나 세미콜론을 붙이는 편하시다면 굳이 습관을 바꿀 필요는 없다고 생각합니다.

2

hellofrontdev님의 프로필 이미지
hellofrontdev
질문자

좋은 말씀 감사드립니다!

hellofrontdev님의 프로필 이미지
hellofrontdev

작성한 질문수

질문하기