literal decision

값은 쓰임에 따라 리터럴, 상수, enum으로 나눈다

한 번 쓰는 값은 그대로 두고, 의미가 반복되면 이름을 붙이며, 선택지가 정해진 값은 타입으로 묶습니다.

literal

문맥만으로 의미가 보일 때

한 줄 안에서 값의 뜻이 분명하고 다시 쓰이지 않으면 그대로 둡니다.

retry + 1
const / constexpr

이름과 변경 금지가 필요할 때

단위, 정책, 제한값처럼 의미가 반복되면 이름 있는 상수로 올립니다.

constexpr int MaxRetry = 3;
enum

가능한 값이 닫혀 있을 때

상태나 모드처럼 선택지가 정해져 있으면 값의 집합을 타입으로 묶습니다.

enum class Mode { Read, Write };

반복되는가?

literal한 번 쓰고 끝난다.
const같은 뜻이 여러 곳에 나온다.
enum반복 값이 선택지 집합이다.

의미가 보이는가?

literal문맥이 곧 설명이다.
const이름이 단위와 정책을 설명한다.
enum타입이 가능한 상태를 제한한다.
핵심

리터럴을 숨기는 것이 목표가 아니라, 값의 의미와 변경 위치가 흐려지는 순간 이름이나 타입으로 끌어올리는 것이 목표입니다.