티스토리 뷰

Tips/IT 상식

하드코딩이란?

무화과(Fig) 2024. 4. 2. 14:51

하드코딩의 뜻은 값을 고정시켜 놓는 것 이다. 반대로 소프트코딩은 값이 고정되지 않고 가변적인 것을 의미한다. 하드코딩의 문제는 값을 고정시켜놓기 때문에 유지보수가 어렵고 유연성이 부족하다.

 

다음의 예제를 보자.

// 하드코딩된 예시: 숫자를 직접 사용
function calculateCircleArea() {
    const radius = 5; // 반지름을 하드코딩
    const area = Math.PI * Math.pow(radius, 2);
    console.log('원의 넓이:', area);
}

calculateCircleArea();

 

이 코드에서는 반지름을 5로 하드코딩해서 사용하고 있다. 만약 반지름을 변경하려면 함수 내부의 코드를 수정해야 한다.

 

더 좋은 방법은 함수에 인자로 전달해서 사용하는 것이다. 이렇게 바꾸면 함수가 더 유연해지고 재사용성이 높아진다.

// 인자를 이용한 예시: 인자로 반지름을 받아서 사용
function calculateCircleArea(radius) {
    const area = Math.PI * Math.pow(radius, 2);
    console.log('원의 넓이:', area);
}

calculateCircleArea(5); // 반지름을 전달하여 사용

 

따라서 함수를 호출할 때 반지름 값을 전달하므로, 원의 넓이를 계산할 떄마다 코드를 변경할 필요가 없다.

하드코딩을 사용하는 경우는 프로그램이나 웹 페이지에서 특정한 고정된 값이 필요한 경우 사용하면 된다.

(ex. 고정된 디자인 요소(로고 이미지의 경로나 크기), 고정된 상수(수학적인 상수인 π(pi)))

 

마지막으로 하드코딩의 장점과 단점에 대해 정리해보자.

 

하드 코딩 장점

 

1. 값을 즉시 확인할 수 있다.
2. 별도의 로딩 절차가 없기 때문에 속도가 비교적 빠르다.
3. 데이터 수정 시 코드 수정이 불가피하면, 굳이 로딩을 할 필요가 없다.
    3.1 어차피 다시 재 컴파일 해야 한다.

 

 

하드 코딩 단점

 

1. 값이 수시로 바뀌는 데이터를 하드코딩하면, 데이터가 바뀔 때 마다 재 컴파일 해야 한다.
2. 시스템의 규모가 큰 경우에는 유지 보수하기 어렵다.
3. 코드가 변경되었을 경우에 자동으로 반영되지 않기 때문에 버그가 발생할 수 있다.
    3.1 외부 입력에 대해서 유연성이 없고 확장성이 낮다.