IT'S YU
[IT용어] 하드코딩 본문
1. 하드 코딩 : 소스 코드 안에 데이터를 직접 기입하는 것
- 상수나 변수에 들어가는 값(문자열, 정수 등)을 literal이라고 하는데, 이 값을 소스코드에 직접 쓰는 게 하드코딩
- 반대로, 소스코드에 직접 쓰지 않고 데이터를 외부 파일로 빼서 따로 관리하는 것을 '로딩'이라고 한다.
2. 장점
- 값을 바로 확인할 수 있다.
- 별도의 로딩 절차가 없어 속도가 비교적 빠르다.
- 데이터 수정 시 코드 수정이 불가피하면 굳이 로딩을 할 필요 없다. (어차피 재컴파일해야하니까)
3. 단점
- 값이 수시로 바뀌는 데이터를 하드코딩하면, 수정될 때마다 재컴파일, 재배포해야 한다.
- 따라서 큰 시스템의 경우 운용, 유지 보수가 어렵다.
4. 언제 하드코딩을 할까?
- 정말 바뀌지 않을 것이라고 확신하는 데이터 : 카드 게임을 만든다면 카드 게임에 사용되는 'A', 1, 2, 3, ..., J, Q, K와 같은 값들은 변하지 않는다.
- 데이터가 바뀌면 로직도 같이 수정되어야 하는 경우
실무를 하다보면 하드코딩(Hard-coding)이란 이야기를 자주 듣는다. 하드코딩이란 데이터를 코드에 직접 입력하는 경우를 말한다.
예를 들어 많이 쓰는 코드인 문자열 출력이 그렇다.
System.out.println("하드코딩이란?");
자바 코드로 작성해 본 문자열 출력 코드다. 직접 문자열 "하드코딩이란?"을 코드에 삽입했다. 이와 같은 경우는 모듈화가 되지 않은 것으로 코드와 데이터가 달라붙어(?)있어 추후 유지보수가 어려울 수 있다. 또한 데이터가 직접적으로 코드에 드러나있어 보안이 취약하다.
하드코딩을 피하기 위해서는 외부 클래스를 통해 간접적으로 데이터에 접근하는 방식을 사용해야한다.
간단한 예를 들자면
System.out.println(HardCoding.str);
이렇게 외부 클래스에 있는 문자열을 불러오는 방법이 있다. DI를 사용하는 프레임워크의 경우 DI를 통해 데이터를 넣을 수도 있다.
하드코딩이 단점만 있는 것은 아니다. 먼저 가독성이 좋고, 프로젝트에 충분한 시간이 없을 경우 간단한 방식인 하드코딩을 하는 것이 더 나을 수도 있다.
출처 : https://m.blog.naver.com/guseod24/221459329316 , https://authorkim0921.tistory.com/19
'기타' 카테고리의 다른 글
[IT용어] 스테이징 서버 (2) | 2022.08.26 |
---|---|
[IT용어] ISO(국제표준화기구) (0) | 2022.06.30 |
[IT용어] EDI(electronic data interchange) 전자문서교환 (0) | 2022.06.29 |
[IT용어] DW - Data Wharehouse 데이터웨어하우스란? (0) | 2022.02.23 |