문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 하드코딩 (문단 편집) === 상수 테이블 사용 === {{{ Resource.java }}} {{{#!syntax java public final class Resource { public static final String greeting = "Hello World!"; } }}} {{{ HelloWorld.java }}} {{{#!syntax java public class HelloWorld { public static void main(String args[]) { System.out.println(Resource.greeting); } } }}} 프로그래머에 따라서는 아직까지는 하드코딩으로 간주하는 경우도 있다. 컴파일을 다시 해야 하는 건 똑같기 때문이다. 하지만 HelloWorld.java는 다시 컴파일하지 않고 Resource.java 파일만 컴파일하면 되므로 수정시 컴파일 시간은 줄어든다. 만약 컴파일 언어가 아닌 스크립트 언어라면([[Python]] 등) 따로 컴파일을 하지 않기 때문에 상수 테이블 방식으로 구현하는 게 가장 깔끔한 경우가 많다. 스크립트 언어 자체가 일종의 '''DSL'''(Domain Specific Language 도메인 특화 언어) 성질을 갖기 때문이다. 이 경우 문제점은 상수 테이블 안에 값 말고 메소드 같은 걸 붙인다거나 하면 결국 하드코딩과 다를 게 없어진다는 사실이다. 상수 테이블로 사용할 소스 코드에는 상수값만 있어야 한다. 상수 테이블을 '''상속'''한다든지, 객체를 만든다든지(new 연산자 등) 하면 안 된다. 상수 테이블은 프로그램 전체에서 '''유일'''(static)해야 하고 '''불변'''해야 하며(const, final) '''투명'''(public)해야 한다. 셋 중 하나라도 어기면 그건 상수 테이블이 아니라 데이터 '객체'가 되며, [[소스 코드]]의 일부분이 되고 결국 하드코딩이 된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기