본문 바로가기

IT/JavaScript

if를 통한 명확하고 확실한 조건 처리

if

JavaScript뿐만 아니라 기타 다른 프로그래밍 언어에는 if문이 존재한다. 라이브러리, 프로젝트 기타 등등 if문 없이 프로그래밍이 가능할까? 라는 생각이 드는데,,,

if문을 간단 명료하게 작성하기란 쉽지 않은 것 같다.

간단 명료한 if 작성

프로그래밍을 배우면서 귀에 딱지가 앉도록 클린코드에 대해 들어왔을 테지만 실제로 클린하게 코드를 작성하기란 여간 쉬운 일이 아니다. 이러한 일의 원인은 매우 다채로울 것이지만 그 중 하나가 바로 if문을 통한 예외처리 때문이리라,,,

어떻게 조건을 처리하는 것이 좋을까

이러한 조건 처리가 왜 프로젝트의 규모와 상관이 있을까?

  • 대부분의 서비스는 수명이 길지 않은데 수명을 연장시키기 위해서는 누구나 알아보기 쉬운 코드로 작성되어야 한다.
  • 따라서 복잡하고 쓰잘데기 없는 if ... if ... else if ... 이런 코드는 협업하는 사람도 열받을 뿐더러 유지보수하는 사람도 열받는다.

이런 분노유발을 최소화 하기 위해서 나의 경험을 바로 이곳에 남겨 놓도록 결정했다.

  1. if문 안의 코드는 되도록 짧게 가져갈 것.
  2. if문은 명확한 것 먼저 걸도록 할 것.
  3. 웬만하면 한 큐에 끝내도록 할 것.

예시

간단하게 예시를 남겨 놓을 것인데,,, 좋은 예시가 잘 안떠오르므로 일단 생각나는대로 기록하자.

TypeScript를 사용하지 않는 경우 API콜을 통해 BackEnd에서 가져온 데이터를 앞단에서 유효성 검사를 해야 하는 경우가 있다.

function func(data) {
      // 대충 이렇게 명확하게 data가 없는 경우 한 큐에 끝내버리도록 하자
    if(data === null) return;
      // ...
}
// type check

뭔가 와닿지 않을 수 있으니 아닌 경우를 보도록 하자.

function func(data) {
  if(data) {
      // data를 가지고 뭐 여차저차 할텐데 이렇게 block의 depth가 깊어질 수록 진짜 열받는다.
    // 읽기도 싫고...
    // 이 안에 로직이 길어지면 길어질수록 진짜 화가 난다
  }
}

진짜 종이 한 장 정도의 차이인데 같이 협업하는 입장에서는 정말 명확하다. 확실하게 걸러내는 것들부터 가지치기 하고 보는 사람도 Happy하게 작성하도록 한다.

마지막으로 진짜 열받는 경우를 남겨 놓도록 한다.

function func(data) {
    if(data.a === 1) {
      if(data.a.b === 1.5) {
        // ...
      }
    } else if(data.a === 2) {
      // ...
    } else if(data.a === 3) {
      // ...
    } else {
      // 이럴거면 걍 else만 남겨놓으면 되잖아
    }
}

function func(data) {
    if(data.a === 4) {
      // 이러면 걍 서로가 행복하잖아.
    }
}

근데 은근히 요구사항대로 프로젝트를 진행하다보면 이런 코드들이 많아지게 되는데 한 번 더 확인하고 PR 올리자.

'IT > JavaScript' 카테고리의 다른 글

JavaScript Functional Programming [ pipe ]  (0) 2023.06.07
Request body validation middleware  (0) 2023.05.08
Object, Array each 함수  (0) 2023.03.28
TypeScript 타입 단언  (0) 2023.02.21
TypeScript 타입 추론  (0) 2023.01.08