패키지

하드코딩 이란??_출처참조 본문

기타

하드코딩 이란??_출처참조

업단업업 2016. 6. 12. 15:25

 

하드 코딩(Hard - coding) :

 

설정사항이나 코드 등의 시스템적으로 사용하는 변수를 사용하지 않고

값을 직접 소스코드에 박아서 사용하는 방식

코드가 바뀌었을 경우 자동으로 반영되지 않기때문에 이후에 버그가 발생할 위기가 많은 시한폭탄같은 방식..

(코드에 상수를 직접 써 넣어 빌드 후 변경할 수 없는 방식으로 코드를 만드는 것)

 

출처 : http://foxhound.tistory.com/106

 

 int main()
{
    const char *filename = "C:\\myfile.txt";

    printf("Filename is: %s\n", filename);
}

 

위 예제 코드에서 'C:\\myfile.txt' 가 하드코딩에 해당한다.

만약 myfile.txt 의 경로가 C드라이브가 아닌 다른 경로에 있을경우 어떻할 것 인가?

그때 마다 다시 코드를 수정하고 재 컴파일하는 번거로움을 감수할 것인가?

 

 

 

1)

int a;

for(int i = 0; i < 9; i++)
{
printf("%d * %d = %d", a, (i + 1), a * (i + 1));
}

//의 방식으로 짤 수도 있겠지만

2)
if (a == 1)
{
printf("1 * 1 = 1");
printf("1 * 2 = 2");
...
printf("1 * 8 = 8");
printf("1 * 9 = 9");
}
if (a == 2)
{
...
}
if (a == 3)
...
...
...
if (a == 9)
{
printf("9 * 1 = 9");
printf("9 * 2 = 18");
...
printf("9 * 8 = 72");
printf("9 * 9 = 81");
}

//위와 같은 방식으로 짤수도 있는데 2)번과 같은 방식의 코딩이 하드코딩이다.

 

한마디로 하드 코딩이란 코딩 방식의 일종으로 외부 입력에 대한 유연성이 없고 확장성이 낮은 코딩을 말한다.

하지만 단점만 존재 하는 것은 아니며 코드의 목적이 매우 직관적이라 가독성도 괜찮은 편이고

컴퓨터의 입장에서는 자잘한 체크나 유효성 검사 등이 빠지고 반복문이 줄어들어 속도가 올라가므로

정말 절대로 변경되지 않을 것이라고 자신할 수 잇는 작은 부분에 한정적으로 사용하면 나름대로

효과를 거둘 수 있기는 하다.


하지만 요즘 같은 시대는 하루에도 수십번 자주 변경이 일어나고

외부 입력 자체도 다양한 프로그램을 많이 개발하는 시대이기 때문에

하드코딩은 악의 근원지라는 표현에 걸맞는 방식이다.

 

 

출처 : http://codinglove.tistory.com/79

'기타' 카테고리의 다른 글

썸네일(thumbnail)  (0) 2017.02.06
세션이란  (0) 2016.06.18
컬럼 개발자, '왜'에서 시작하라/임백준 IT칼럼니스트  (0) 2015.08.28
미들웨어란 / 개념 및 종류  (0) 2015.08.18
마이그레이션이란  (0) 2015.08.18
Comments