본문 바로가기
FrontEnd/others

상수 대문자 처리할 때 어떤 기준으로 나눠야할까? (feat. 매직 넘버)

by ウリ김영은 2023. 11. 4.

 

이번에 우아한테크코스 프리코스 과제를 해 나가면서, 

 

요구사항 중에 에어비앤비 스타일 가이드를 따르라는 사항이 있어서

 

그에 맞게 하려고 하는 중이다. 

 

 

근데, 코드리뷰를 받고 하면서

 

뭔가 관점에 따라 구분하는 기준이 다른 것 같아서

 

어떻게 해야할 지 고민이 되었다. 

 

 

의문이었던 부분이 바로 여기인데, 

 

상수를 대문자화하는 경우에 대해서 말하고 있다. 

(1) export 되는 경우
(2) `const`로 선언된 경우(재할당이 불가능하다)
(3) 프로그래머가 그 값이(중첩된 속성까지도) 절대 바뀔 일 없다고 확신하는 경우 

 

 

그리고 가능한 의문들에 대해서도 답을 하고 있다. 

Q) 모든 `const` 를 다 대문자화 해야할까?
A) 불필요하다. export 되는 애들을 하면 된다. 
Q) export 되는 객체들은 어떻게 해야할까?
A) 제일 위 레벨에서는 대문자화를(예: `EXPORTED_OBJECT.key`), 그리고 그 안에 중첩된 프로퍼티들은 바꾸지 않는다. 

 

 

예시 코드 중에 key 값에 대한 예시가 헷갈렸다. 

// bad - unnecessarily uppercases key while adding no semantic value
export const MAPPING = {
  KEY: 'value'
};

// good
export const MAPPING = {
  key: 'value',
};

 

여기서 주석을 해석해보면, semantic value 가 없으면 대문자화가 불필요하다고 말하고 있다. 

 

 

 

 

그럼 밑에 상황에서 난 맞게 쓴 걸까??

const Error = {
    name: "[ERROR]",
    message: {
      NO_ZERO:"0은 입력이 불가능합니다",
      NO_BLACK:"공백은 입력 불가능합니다"
      ///more
  }
}

 

 

그리고 이 상황에서 숫자를 따로 상수로 빼야하는 걸까?

if(array,length < 10){
///more
}

 

 

 


https://javabom.tistory.com/28