[java Anti Pattern Series] 06.hardcoding
January 20, 2025
HardCoding
- 변수나 상수 이용 없이 상수나 매직넘버 같은 고정 값을 코드에 직접 삽입하는 방식을 의미
- 변수나 상수를 사용하는 대신 고정 값을 코드에 직접 삽입하는 방식
- 유연성을 떨어뜨리고 향후 변경을 어렵게 만든다.
하드 코딩이 가지는 의의
1. 유연성 부족
- 코드 베이스의 유연성이 떨어진다는 점이다.
2. 가독성 저하
- 코드를 읽고 이해하기 어렵게 만들 수 있다.
3. 오류 위험 증가
- 여러 곳에 하드 코딩했다면 수정 중 까먹거나 해서 오류가 발생할 수 있는 잠재적 위협이 된다.
4. 유지보수의 어려움
- 하드코딩된 곳을 고쳐야한다면 찾아가면 직접 고쳐야하므로 유지보수성을 낮춘다.
피하기
1. 상수 사용
- 최상위 또는 별도의 클래스에 상수로 정의
2. 구성 외부화
- 코드 변경 없이 쉽게 업데이트할 수 있는 구성 파일이나 속성 파일로 이동
3. 값 매개변수화
- 코드 내 하드 코딩 대신 밖에서 파라미터로 전달되도록 구성
4. 의존성 주입
- 의존성 주입 프레임워크로 구성 가능한 값을 코드로 주입
5. 디자인 패턴 사용