자바스크립트에서 Ternary 연산자의 한계와 대체 방법

자바스크립트는 다양한 상황에서 Ternary(삼항) 연산자를 사용하여 간단하게 조건에 따라 값을 할당하는 것이 가능합니다. Ternary 연산자는 condition ? expression1 : expression2와 같은 형식을 가지고 있으며, 조건이 참일 경우 expression1을 실행하고 조건이 거짓일 경우에는 expression2를 실행합니다.

하지만 Ternary 연산자는 가독성이 떨어질 수 있고, 복잡한 조건문을 다루기에는 제약이 있을 수 있습니다. 이러한 한계를 극복하기 위해서 다양한 대체 방법이 제시되고 있습니다. 이번 블로그 포스트에서는 Ternary 연산자의 한계와 대체 방법에 대해 알아보겠습니다.

Ternary 연산자의 한계

Ternary 연산자는 간단한 비교 조건에 대해서는 유용하게 사용될 수 있습니다. 예를 들어, 나이에 따라 어린이인지 성인인지를 판별하여 메시지를 출력하는 경우 아래와 같이 Ternary 연산자를 사용할 수 있습니다.

const age = 15;
const message = age < 18 ? '어린이' : '성인';
console.log(message); // 어린이

하지만, 복잡한 조건문을 다룰 경우 Ternary 연산자는 가독성이 저하될 수 있습니다. 예를 들어, 날짜를 기준으로 요일을 출력하는 경우 다음과 같이 Ternary 연산자를 사용하면 코드가 복잡해지게 됩니다.

const date = new Date();
const dayOfWeek = date.getDay();
const message = dayOfWeek === 0 ? '일요일' : 
                dayOfWeek === 1 ? '월요일' :
                dayOfWeek === 2 ? '화요일' :
                dayOfWeek === 3 ? '수요일' :
                dayOfWeek === 4 ? '목요일' :
                dayOfWeek === 5 ? '금요일' :
                '토요일';
console.log(message); // 현재 요일에 따라 출력된다

위의 예시와 같이 중첩된 Ternary 연산자는 가독성을 해치기 때문에 코드의 유지보수와 이해에 어려움을 줄 수 있습니다.

Ternary 연산자를 대체할 방법

Ternary 연산자의 한계를 극복하기 위해 다양한 대체 방법이 제시되고 있습니다.

if…else문 사용하기

복잡한 조건문을 다룰 때는 if…else문을 사용하는 것이 가독성과 유지보수 측면에서 더욱 좋은 선택일 수 있습니다. 앞서 언급한 요일을 출력하는 예제를 if…else문을 사용하여 다시 작성해보겠습니다.

const date = new Date();
const dayOfWeek = date.getDay();
let message;

if (dayOfWeek === 0) {
  message = '일요일';
} else if (dayOfWeek === 1) {
  message = '월요일';
} else if (dayOfWeek === 2) {
  message = '화요일';
} else if (dayOfWeek === 3) {
  message = '수요일';
} else if (dayOfWeek === 4) {
  message = '목요일';
} else if (dayOfWeek === 5) {
  message = '금요일';
} else {
  message = '토요일';
}

console.log(message); // 현재 요일에 따라 출력된다

if…else문을 사용하면 중첩된 코드 없이 각 조건을 분리하여 처리할 수 있으므로 가독성이 향상됩니다.

객체를 활용하기

또 다른 대체 방법으로는 객체를 활용하는 방법이 있습니다. 객체를 사용하면 조건에 따른 값들을 일관성 있게 관리할 수 있으며, 코드의 가독성도 향상됩니다. 요일을 출력하는 예제를 객체를 활용하여 다시 작성해보겠습니다.

const date = new Date();
const dayOfWeek = date.getDay();
const days = {
  0: '일요일',
  1: '월요일',
  2: '화요일',
  3: '수요일',
  4: '목요일',
  5: '금요일',
  6: '토요일'
};

const message = days[dayOfWeek];
console.log(message); // 현재 요일에 따라 출력된다

객체를 사용함으로써 코드의 중복을 피하고, 데이터를 일관성 있게 관리할 수 있습니다.

결론

자바스크립트에서 Ternary 연산자는 간단한 조건문을 다룰 때 유용하게 사용될 수 있지만, 복잡한 조건문에서는 가독성과 유지보수 측면에서 한계가 있습니다. 이러한 한계를 극복하기 위해 if…else문이나 객체를 활용하는 방법을 사용할 수 있습니다. 선택하는 방법은 코드의 복잡성과 가독성을 고려하여 최적의 방법을 선택하는 것이 중요합니다.

자세한 내용은 링크를 참고하세요.

#자바스크립트 #Ternary연산자