본문 바로가기

주석과 세미콜론 | Javascript & ES6 공부 노트 #3

기술적인 이야기/웹 개발 2019. 4. 11.
반응형

참 뜬금없는 주제이긴 합니다만, 이번 글에서는 주석(Comment)과 세미콜론(Semicolon)에 대해 이야기하고자 합니다. 다른 언어들에서도 상당히 공통적인 이슈이니 아마도 알고 있을 법한 내용일 가능성이 큽니다.

주석문

주석은 실행되지 않는 글자로 코드 자체에 아무런 영향을 끼치지 않는 기능입니다. 왜 이런 게 있는지 이해가 안 되시나요? 보통은 코드의 용도나 사용 방법 등을 주석으로 적습니다. 만약 혼자서 작업하는 게 아니거나 혹은 다른 사람도 이 코드를 쓸 수 있게 한다면 설명 없이는 여러분의 코드의 의도를 제대로 이해하기 어려울 수도 있습니다. 이럴 때 주석은 정말 큰 힘을 발휘합니다. 이 외에도 주석으로는 누가 만들었니, 간혹 잘 돌아가지만 뭔진 모르겠다거나(?) 농담을 적거나 혹은 개발자들끼리 싸우거나(?) 등등 다양한 내용을 자유롭게 적을 수 있는 기능입니다.

그렇다면 실제 주석문 - 주석의 문법 - 은 어떤지 살펴봅시다.

가장 먼저 볼 주석 문 스타일은 아래와 같은데, 이 스타일은 C나 C++ 언어, 혹은 C에 영향을 많이 받은 자바(Java) 언어의 문법을 그대로 가져온 것으로 유추되는 스타일입니다. (하지만 자바와 자바스크립트는 전혀 관계없는 언어라는 점에 주의합시다)

/* 여기에 주석문을 멋대로 쓸 수 있습니다 */

/*로 시작해서 */로 둘러싸인 내용은 모두 주석으로 처리되어서 실행되지 않습니다. 그래서 아래처럼 여러 줄로 주석을 쓸 수도 있습니다.

/*
  첫 주석문
  다음 주석문
  아무런 주석문:
    그래서 이렇게 아무렇다
*/

이 스타일은 C 주석 스타일 중 가장 오래되고(?) 보편적인 방식이지요. C언어에 영향을 받은 언어들은 대부분 지원하는 아주 유명한 스타일의 주석문입니다.

C++ 언어가 보급되면서 좀 더 편한 주석 문법이 출현했는데 //를 이용하는 방식입니다. 이것도 자바스크립트에서 쓸 수 있습니다.

// 이 한 줄은 몽땅 주석입니다.

// 이후의 한 줄은 몽땅 주석문으로 처리됩니다. 주석을 한 줄만 적기에는 /* ... */ 문법보다는 훨씬 간단하지요. 이 주석문을 처음 접했을 때 전 문화충격을 받았습니다. 네 지금으로부터 20년도 훨씬 전의 이야기입니다만...

이 주석문은 위치에 따라 코드의 뒷부분에 위치할 수도 있습니다.

var index = 0    // 인덱스는 기본적으로 0 부터 시작합니다

이렇게 코드 뒷부분에 주석을 적으면 해당 라인이 어떤 의미인지 설명하기 좋습니다.

일단 유명한 주석문의 두 가지 스타일을 살펴봤습니다. 그런데, 위의 주석 문법들을 중첩해서 쓰면 문제가 될 수도 있습니다. 계속 살펴봅시다.

// /*
  이 줄은 주석이 아니고 그래서 아래 줄은 문법 에러가 납니다
*/

//는 이후부터 한 줄을 몽땅 주석으로 취급합니다. 그래서 // /*이라는 표현에서 뒤의 /* 코드도 주석 내용으로 여겨집니다. 그래서 주석을 닫는 코드인 */만 남아있는 것으로 보여서 아마도 실행에 에러가 발생하게 될 것입니다.

비슷한 예제입니다만, 아래 코드는 어떻게 될까요? 한번 시험해 보세요.

/*
  이 코드는 과연 주석문일까요?
// 아니면? */

에러가 나던 안 나던 가급적이면 주석 문법을 섞어서 쓰지는 맙시다.

세미콜론

이미 console.log에 대한 이야기에서 언급했지만, ES6에서는 세미콜론을 생략할 수 있습니다. 세미콜론은 C언어 때부터 전통적(?)으로 한 줄의 끝을 표기하는 수단으로 자바스크립트도 C언어의 영향을 많이 받은 만큼 마찬가지로 세미콜론을 이용해 라인이나 혹은 몇몇 단위를 구분합니다.

console.log('Hello World!');

아래처럼 세미콜론을 빼먹어도 ES6를 지원하는 엔진에서는 아무런 문제가 없이 실행됩니다.

console.log('Hello World!')

물론 아래의 for 루프처럼 세미콜론을 꼭 써야만 하는 특수한 경우도 있긴 합니다.

for (var i = 0; i < 10; i++) {
  console.log(i)
}

하지만 이런 for 루프 스타일은 가급적 쓰지 말아야 하는 대표적인 표현으로 불리고 있으므로 일단 머릿속에서 지워버립시다. 관련된 내용은 추후에 정리해 보겠습니다.

명심해야 할 점은 ES6부터 세미콜론을 생략할 수 있다는 점이지 쓰면 안 된다는 점이 아닙니다. 만약 여러분의 팀에서 세미콜론을 쓰기로 결정했다며 거기에 따르는 것이 우선입니다.

하지만 세미콜론을 쓰는 것에 논란이 있다면 ’자바스크립트 표준 스타일(Javascript Standard Style)’에서는 세미콜론을 안 쓰는 편을 추천한다는 것을 참고해 봅시다.

다음 글: 변수와 상수 | Javascript & ES6 공부 노트 #4

728x90
반응형

댓글