본문 바로가기

Unity/정보

[Unity 유니티] 하드 코딩(Hard Coding)을 지양해야 되는 이유

코드를 작성할 때 우리는 종종 숫자나 문자열을 직접 코드에 넣는, 이른바 '하드코딩'을 하게 된다. 처음에는 하드코딩이 편리해 보일 수 있지만, 프로젝트가 커질수록 유지보수성에 문제를 일으킬 가능성이 크다. 하드코딩이 왜 좋지 않은지, 어떻게 하면 이를 피할 수 있는지 간단한 코드 예시와 함께 알아보자.


하드코딩이란?

하드코딩(Hard Coding)은 코드에서 변수나 값을 직접 코드에 고정하는 방식을 말한다. 즉, 실행 중에 바뀔 가능성이 있는 데이터가 아니라, 변경이 어렵도록 프로그램에 직접 값을 입력하는 방식을 가리킨다. 예를 들어, 텍스트로 보이는 "로그인 실패" 메시지를 하드코딩하면, 다른 언어로 번역하거나 변경할 때 번거로운 작업이 될 수 있다.

하드코딩의 문제점

  1. 유지보수의 어려움 : 하드코딩된 값이 여러 군데에 퍼져 있다면, 하나의 값이 변경될 때마다 모든 곳을 찾아서 수정해야 한다.
  2. 확장성 저하 : 코드가 고정된 값에 의존할 경우, 새로운 요구사항에 맞춰 확장하기 어렵다.
  3. 가독성 저하 : 하드코딩된 값은 코드만 보고 어떤 의미인지 파악하기 어렵다.
  4. 협업에 불리 : 하드코딩된 코드는 다른 개발자가 이해하기 어려울 수 있다.

하드코딩을 피하는 방법

상수(Constant)나 변수(Variable)를 활용하자.

코드의 맨 위나 설정 파일에서 필요한 값들을 정의해두면 된다.

const int MAX_SCORE = 100; // 상수 선언

Debug.Log("최대 점수 : " + MAX_SCORE);

if (currentScore > MAX_SCORE)
	currentScore = MAX_SCORE;

이처럼 상수를 사용하면 수정이 필요할 때 코드의 한 곳만 수정하면 되므로 유지보수가 훨씬 간편해진다.

요약

하드코딩을 피하면 코드의 유지보수성과 확장성이 높아진다. 값을 한 곳에 모아 정의해 두고 필요한 곳에서 참조하는 습관을 들이자. 작은 습관이 큰 차이를 만든다.