-
하드코딩(Hard-coding)Study/개발 용어 2021. 1. 18. 11:57
하드코딩이란?
데이터를 코드 내부에 직접 입력하는 것. 기술적으로는 데이터가 실행 바이너리(exe 파일 등)에 합쳐져 있는 상태를 말한다.
나무위키(namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9)실무를 하다보면 하드코딩(Hard-coding)이란 이야기를 자주 듣는다. 하드코딩이란 데이터를 코드에 직접 입력하는 경우를 말한다.
예를 들어 많이 쓰는 코드인 문자열 출력이 그렇다.
System.out.println("하드코딩이란?");
자바 코드로 작성해 본 문자열 출력 코드다. 직접 문자열 "하드코딩이란?"을 코드에 삽입했다. 이와 같은 경우는 모듈화가 되지 않은 것으로 코드와 데이터가 달라붙어(?)있어 추후 유지보수가 어려울 수 있다. 또한 데이터가 직접적으로 코드에 드러나있어 보안이 취약하다.
하드코딩을 피하기 위해서는 외부 클래스를 통해 간접적으로 데이터에 접근하는 방식을 사용해야한다.
간단한 예를 들자면
System.out.println(HardCoding.str);
이렇게 외부 클래스에 있는 문자열을 불러오는 방법이 있다. DI를 사용하는 프레임워크의 경우 DI를 통해 데이터를 넣을 수도 있다.
하드코딩이 단점만 있는 것은 아니다. 먼저 가독성이 좋고, 프로젝트에 충분한 시간이 없을 경우 간단한 방식인 하드코딩을 하는 것이 더 나을 수도 있다.
처음 코딩을 배울 때, 친구들이 농담으로 '하드코딩'이라는 단어를 쓴 적이 있다. 여러 차례 반복되는 작업을 일일히 코드로 쳐 넣어 로직을 구성할 때 하던 이야기였는데, 어쩌면 반은 용례에 맞게 쓴 것일수도 있겠다.... ㅎㅎ
'Study > 개발 용어' 카테고리의 다른 글
하이버네이트(Hibernate) (0) 2021.01.26 소켓(Socket) 통신 (0) 2021.01.19 API (Application Programming Interface) (0) 2021.01.15 스레드 (Thread) (0) 2021.01.15 데이터 바인딩 (단방향 바인딩, 양방향 바인딩) (1) 2021.01.12