삼항 연산자에 대하여

주영택·2020년 1월 11일
3

삼항 연산자의 남용과 오용

자바스크립트-코딩-테스트에서-가장-많이하는-실수들 이란 글을 보면서 삼항 연산자의 사용에 대해 생각해 보았다.

어떻게 흘러 읽게 되었는지 기억은 나지 않지만 'jQuery' 를 그만 쓰게된 연유를 소개하는 글을 읽었던 기억이 있다. 그래서 쉽게 다시 찾을 수 있었다.

위 글에서 다른 건 제쳐두고 '삼항 연산자' 에 대해서 언급할 게 있다.
사실 삼항 연산자의 사용에 대한 실수는 본문에서 이야기하는 것보다 더 심각한 부분이 있다.

이는 대체로 프로그래밍 언어의 표현식과 문장을 구분하지 못하는 것에서 기인하는데, 내 기준에서 요즘 프로그래밍 책이나 강좌나 관련 콘텐츠들이 프로그래밍의 기본에 대해서 언급는 부분은 적고 최신 트랜드, 핫이슈 그리고 (반복되는) 코딩 패턴들에 대해서만 이야기하기 때문이라고 본다.

실제 아주 많은 비전공/유사 전공 소프트웨어 개발자들이 현업에 뛰어드는 시점에서 보면 이는 매우 아쉬운 현실 중 하나다.

삼항 연산자의 문법

ternary operator 라고 구글에 검색하면 다음과 같은 이미지를 만날 수 있다.

많은 프로그래밍 언어에서 삼항 연산자를 구성하는 항목은 식(expression)이다. 각 항에 들어갈 내용은 value 로 표현되고 가장 좌측에 변수(identifier)가 위치한다.

삼항 연산자의 남용

위 미디엄 포스트의 글에 소개한 return 에 주렁주렁 달린 삼항연산자 체인은 큰 문제가 아니다.

삼항 연산자의 오용

내가 보는 문제는 크게 세 종류다.

  1. 삼항 연산자의 문법을 지키지 않는다.

대입문의 표현식으로 사용되어야함에도 불구하고 if 문 대용으로 사용한다는 것이다. if 키워드를 표현식으로 사용될 수 있는 일부 모던 언어들이 가끔 삼항 연산자를 지원하지 않는 이유기도 하다.

  1. 삼항의 내용에 statement 가 들어간다.

분명 삼항의 각 항은 expression 이 되어야 한다. 그럼에도 불구하고 일부 항에 대입 연산자가 들어가는 문장을 본적이 많다.

  1. 연산자를 사용했는데 연산의 결과가 없다.

어떤 팀장님은 함수의 결과를 반환하는 return 문이나 변수에 값을 대입하는 경우를 제외하고 삼항 연산자를 사용하지 않도록 가이드를 작성하는 것을 제안하셨다.

코딩 교육 관계자에게 드리는 당부

현실적으로 이 업계에는 소스 코드 리뷰를 한 번도 받아 보지 못하고 코드를 생산해 내는 프로그래머들이 많다. (비교적 잘 작동한다면) 옳고 그름이란 것이 없는 코드를 쓰며 성장하는 소프트웨어 개발자들이 있다는 것이다.

좋은 개발자가 되려면 좋은 팀을 만나야한다. 특히 자질과 열정이 있다면 더더욱 그렇다.
코딩 교육 리더(유투브, 강연, 학원)들은 자질과 열정이 있는 프로그래머들에게 이 부분을 강조해 주셨으면 좋겠다.

profile
NodeJS 백엔드 웹 개발자입니다.

0개의 댓글