본문 바로가기
Script/JavaScript

[JavaScript] Chapter 32. Clean Code 작성법

by song.ift 2023. 1. 12.

클린코드를 만드는 것은 개발할 때 중요하다. 왜냐하면 개발할 때 여러명의 개발자와 함께 협업하기 때문에 읽기 쉽고 유지보수 하기도 좋아야하기 때문이다.

 

1. 화살표함수로 function 축약하기

ES6의 가장 유명한 함수 표현 방법인 화살표함수다.

긴 기존의 함수호출 return 방식을 화살표 함수를 사용하면 역시 간결하고 보기 좋게 축약할 수 있다.

하지만 재사용은 불가능하기 때문에, 매번 새롭게 작성해줘야 한다.

javascript
닫기
// 기존의 함수 function getSize(width, height) { return width * height }; // 화살표 함수 getSize = (width, height) => (width * height)

 

2. 삼항연산자 사용

이런 if, else문은 삼항연산자를 사용하면 한줄로 간결하게 정리할 수 있다. 

javascript
닫기
// if문을 사용한 긴 코드 let color = ""; if (score > 90) { ​​color = "blue"; } else { ​​color = "yellow"; } // 삼항연산자를 사용해서 축약 let color = (score > 90) ? "blue" : "yellow";

 

3. 삼항연산자로 함수 호출

삼항연산자를 사용해 조건에 따라 함수를 호출 할 수 있다. 아래의 단축 버전 함수 호출은 즉시실행 함수를 사용한 것이다.

javascript
닫기
function test1() { ​​console.log('테스트01'); }; function test2() { ​​console.log('테스트02'); }; const test3 = 1; if (test3 == 1) { ​​test1(); } else { ​​test2(); } // 단축한 버전의 함수 호출 (test3 === 1 ? test1 : test2)();

 

4. 다중 조건일 때, or 연산자 나열한 것 축약하기

if 문 안에 여러 개의 or 조건을 추가해야할 때가 있다. 중복된 코드가 한없이 길어진다.

이것을 include() 메소드를 이용해서 간결하게 만들 수 있다.

(그러나 include() 메소드를 지원하지 않는 브라우저가 있기 때문에 낮은 버전 브라우저도 대응하는 서비스를 개발한다면 사용전 확인은 꼭 해야한다.)

javascript
닫기
// 기존 방법 if (col === "score" || col === "age" || col === "mobile" || col === "email") { ​​// 조건에 따른 로직 } // 개선된 방법 if (["score", "age", "mobile", "email"]).includes(col) { ​​// 조건에 따른 로직 }

 

5. || 연산자로 Null, undefined, 빈 값  등 falsy 값 체크

자바스크립트는 타입지원이 미흡한 언어이기 때문에 늘 null, undefined, 빈 배열 또는 빈 문자열 등의 falsy 값 체크는 필수다.

그렇기 때문에 요즘 프론트 개발할 때 타입스크립트를 많이 사용하는 이유다.

이런 falsy 값 체크를 여러 개의 조건을 다닥다닥 나열하는 대신 || 연산자를 사용하면 한줄로 정리할 수 있다. 

javascript
닫기
// if문을 사용한 긴 조건문 나열 if (member !== null || member !== undefined || member !== "" || member !== 0) { ​​let student = member; } // 간단하게 falsy를 평가하고 값을 할당하는 축약버전 let student = member || "";

 

6. || 연산자로 falsy 값 체크 후, return 하기

조건에 따라 함수를 호출해 return 값 줄 때도 || 연산자를 사용해서 단축된 표현식으로 만들 수 있다.

javascript
닫기
let active; function checkActive() { ​​if (!(active === undefined)) { ‌​​return active; ​​} else { ​​​​return helloActive("active"); ​​} } var data = checkActive(); console.log(data); // output test function helloActive(val) { ​​alert(val); } // 단축한 함수 function checkActive() { ​​return active || helloActive("active"); }

 

7. for문 심플하게

for문을 작성하다보면 체크해줘야할 조건들 (기본값, 순회할 범위 등)이 괄호 안에 많기 때문에 종종 실수할 수 있다.

이런 실수와 오타를 줄이고 간결한 loop문 작정을 for in 문 for of 문으로 해결할 수 있다.

javascript
닫기
// 긴 for문 for (let i = 0; i < arr.length; i++) // loop문을 이렇게 축약가능 for (let i in arr) 또는 for (let i of arr)

또 다른 방법으로는 forEach문 사용이 있다.

javascript
닫기
function arr(el, index, array) { ​​console.log(`test[${index}]=${el}`); } [12, 34, 54].forEach(arr);

 

8. Switch문 축약하기

체크할 조건이 엄청 많아질 때 우리는 switch문을 사용한다. switch문도 가끔 엄청 길어져서 보기 지저분 할 때가 있다. 
간단한 조건 식이라면 객체를 이용해서 switch문도 간략하게 단축할 수 있다.

객체 안에 key, value 쌍으로 값을 집어넣고, 그 중에 맞는 조건만 골라서 실행하게 하면 된다. 

javascript
닫기
// Longhand switch (data) { ​​case 1: ​​​​test1(); ​​​​break; ​​case 2: ​​​​test2(); ​​​​break; ​​case 3: ​​​​test(); ​​​​break; } // 축약형 const data = { ​​1: test1, ​​2: test2, ​​3: test }; data[anything] && data[anything]();


9. 문자열 여러번 반복하기

가끔 문자열을 단순 반복할 때가 있다.

그럴 때 for문을 돌려서 횟수를 반복해 문자열을 합해줄 수 도 있지만 repeat() 메소드를 사용하면 한줄로 만들 수 있다.

(단, repeat() 역시 지원하지 않는 브라우저가 있기 때문에 사용전에 확인을 해야한다.)

javascript
닫기
// 기존 for문 사용 let str = ""; for(let i = 0; i < 10; i++){ ​​str += "flower"; } // repeat() 메소드 사용 strRepeat = "flower".repeat(10);


10. Math.pow() 메소드 축약하기

Math 함수는 수학적 연산들을 수행할 때 사용하는 자바스크립드의 내장 메소드다.

그 중에서 제곱연산을 하는 pow() 메소드를 단축하는 연산방법이다. 곱셈기호 *를 두번 사용하면 pow()연산을 수행하게 된다. 

javascript
닫기
Math.pow(2, 5); // -> 2**5

 

 

댓글