Web Front-end/JavaScript

[JS/가독성/주석] 자바스크립트 주석 잘 달아보자!

주석을 잘 달아놓는 것도 실력 중에 하나이다. 오늘은 주석을 잘 달아야 하는 이유와, 주석을 잘 이용하기 위한 팁들을 적어보려고 합니다.


주석을 다는 이유?

  • 간단합니다. 기억력에는 한계가 있기 때문입니다. 당장 3일전에 먹는 점심메뉴가 기억이 나질 않습니다.
  • 제 3자가 나의 코드를 볼 수 있기 때문입니다. 다른 사람과 협업을 할 때, 나의 코드를 상대방은 이해하지 못할 수도 있습니다. 따라서, 적절한 주석은 가독성에 큰 도움이 됩니다.
  • 심지어, 내가 짠 코드인데도, 3개월 뒤에 보면, "내가 왜 이렇게 했지?" 라는 생각이 분명히 듭니다.

주석을 잘 달기 위해서는 , 달지 않으면 된다.

  • 주석을 잘 달기 위해서는 어떻게하면 될까요? 간단합니다. 주석을 달지 않으면 됩니다.(프로그래밍을 잘하는 방법은 안하는 것이다) 즉 , 주석을 달지 않을 정도의 깔끔한 코드를 짜는것이 최고의 방법입니다.
  • 하나의 방법으로 Self-descriptive한 함수를 짜면 됩니다. 아래와 같이 IsPrime처럼 함수의 이름자체가 자신의 동작을 나타내게끔 설계를 하면 굳이 주석을 달 필요가 없습니다.
const IsPrime= (n) =>{
	for (let i=2; i<n; i++){
    	if(n%i==0) return false;
    }
    return true;
}


function showPrimes(n){
	for (let i = 2; i<n; i++){
    	if(!IsPrime(i)) continue;
 
        console.log(i)
    }
} 

showPrimes(10)
  • 하지만, Parameter가 여러개인 경우Parameter에 대한 설명은 필요할 수 있습니다.  아래와 같은 코드가 있을 때, 거듭제곱(함수 이름Pow)인 건 알겠는데, x^n인지 n^x 인지는 코드의 내부를 보아야 압니다.
  • 거듭제곱의 경우는 코드가 간단하기 때문에, 굳이 주석을 적어줄 필요가 없겠지만 복잡한 로직에 Parameter가 3~4개인 경우, 매개변수에 대한 설명과 함수이름을 잘 짓는다면 어느정도는 유추가 가능해질 겁니다.
// x^n? n^x?
function pow(x, n){
	...

}



/*
* This code about x^n
* @parameter {number} x 거듭제곱할 숫자
* @parameter {number} n n승,곱할 횟수. 자연수여야함.
* @return {number} x^n을 반환함.
*/

function pow(x, n){
	...

}

 

직관적이지 못한 로직이라면, 주저없이 달자

  • 주석을 다는건 아무런 비용이 들지 않기 때문에 부정에 부정,if-else문이 막 섞여있고 복잡한 depth를 가지고 있어서 직관적이지 못한 로직이라면, 주저없이 달아주자. 
  • "이걸 이해할 수 있을까?" 라는 생각이 든다면 달아주자. 
  • 잘 알려진 알고리즘이라면, 알고리즘의 이름정도는 주석에 달아주자. 
  • 함수의 활용방법이나 ,Example을 주석에 넣어놓는것도 좋은 방법입니다.