min - max

아래와 같은 코드가 있을 때, 이것만으로는 MIN과 MAX를 포함하는지 아닌지를 알 수 없다.

function genRandomNumber(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min
}

const MIN_NUMBER = 1
const MAX_NUMBER = 45

genRandomNumber(MIN_NUMBER, MAX_NUMBER)

이런 경우 상수의 네이밍에 이런 것들을 녹여내는 것도 괜찮은 방법인데,

// 포함하는 경우
MIN_IN_NUMBER
MAX_IN_NUMBER

// 포함하지 않는 경우
MIN_NUMBER_LIMIT
MAX_NUMBER_LIMIT

이렇게 작성하고 팀에서 이에 맞는 컨벤션을 정해 놓는 것이 좋다.

begin-end

시작과 끝이 포함되는지의 여부가 동일하지 않은 경우.

Date Picker에서 체크인을 10월 31일에 선택 시 10월 31일이 begin, 체크아웃이 11월 3일이면 이 날짜가 end가 된다.

function reservationDate(beginDate, endDate) {
  //
}

reservationDate('YYYY-MM-DD', 'YYYY-MM-DD')

first-last

포함된 양 끝을 의미한다. min과 max의 경우 1, 2, 3, 4, 5와 같이 연속적인 값의 경우에 사용하는 것이 좋다. 하지만 만약 데이터들이 연속적이지 않다면, first와 last 사용을 고려해볼만 하다.

const students = ['poco', 'john', 'david']

function getStudents(first, last) {
  // ...
}

getStudents('poco', 'david')