검수요청.png검수요청.png

"하드코딩"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(같이 보기)
37번째 줄: 37번째 줄:
 
* 〈[https://namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9 #하드코딩]〉, 《나무위키》, 2021-06-18
 
* 〈[https://namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9 #하드코딩]〉, 《나무위키》, 2021-06-18
 
==같이 보기==
 
==같이 보기==
 +
* 코딩
 +
* 태그
 +
* 테이블
 +
* 파싱
 +
* 퍼블리싱
 +
* 하이퍼링크
  
 
{{프로그래밍|검토 필요}}
 
{{프로그래밍|검토 필요}}

2021년 7월 7일 (수) 09:44 판

하드코딩(Hard-Coding)이란 데이터를 코드에 직접 입력하는 경우를 말한다.

개요

상수나 변수에 들어가는 값을 소스코드에 직접 쓰는 방식을 말한다. 모바일 앱 실행 시 사용자에게 입력받아야 할 정보를 소스코드에 입력하거나 변수, 아이디, 비밀번호, 대칭키 등 중요 정보를 주석 처리하는 것도 하드코딩이다. 주로 파일 경로, URL 또는 IP주소, 비밀번호, 화면에 출력될 문자열 등이 대상이 된다. 반대로, 소스코드에 직접 쓰지 않고 데이터를 외부 파일로 빼서 따로 관리하는 것을 '로딩'이라고 한다.

장점

  • 값을 바로 확인할 수 있다.
  • 별도의 로딩 절차가 없어 속도가 비교적 빠르다.
  • 데이터 수정 시 코드 수정이 불가피하면 재컴파일을 해야 하므로 굳이 로딩을 할 필요가 없다.[1]

단점

  • 쉽게 말해 외부 입력에 대한 유연성이 없고 확장성이 낮은 코딩이다.
  • 코드가 바뀌었을 경우 자동으로 반영되지 않기 때문에 이후에 버그가 발생할 위기가 많다.
  • 만약 DB에 접속하여 자료를 조회하는 프로그램에 비밀번호가 하드코딩된 경우 리버스 엔지니어링으로 비밀번호가 그대로 유출 될 수 있다. 즉,보안에 취약해 질 수 있다.
  • 값이 수시로 바뀌는 데이터를 하드코딩하면 수정할 때마다 재컴파일, 재배포를 해야하기 때문에 큰 시스템의 경우 운용이나 유지 보수가 어렵다.[2]

하드코딩

HelloWorld.java

public class HelloWorld{
  public static void main(String args[]){
    System.out.println("Hello World");
  }
}

깔끔하고 간단하게 Hello World 를 출력한다. 하지만 출력문자열을 "Hello World"가 아닌 "Say World"라고 바꾸려 해도 컴파일을 다시 해야 한다.

상수 테이블 사용

외부 리소스 파일 사용

애플리케이션 프레임워크 사용

각주

  1. roro, 〈(좋은 IT 용어) #하드코딩〉, 《네이버》, 2019-02-06
  2. #하드코딩〉, 《나무위키》, 2021-06-18

참고자료

같이 보기

  • 코딩
  • 태그
  • 테이블
  • 파싱
  • 퍼블리싱
  • 하이퍼링크


  검수요청.png검수요청.png 이 하드코딩 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.