"하드코딩"의 두 판 사이의 차이
(→하드코딩) |
(→단점) |
||
11번째 줄: | 11번째 줄: | ||
==단점== | ==단점== | ||
+ | * 쉽게 말해 외부 입력에 대한 유연성이 없고 확장성이 낮은 코딩이다. | ||
* 코드가 바뀌었을 경우 자동으로 반영되지 않기 때문에 이후에 버그가 발생할 위기가 많다. | * 코드가 바뀌었을 경우 자동으로 반영되지 않기 때문에 이후에 버그가 발생할 위기가 많다. | ||
* 만약 DB에 접속하여 자료를 조회하는 프로그램에 비밀번호가 하드코딩된 경우 리버스 엔지니어링으로 비밀번호가 그대로 유출 될 수 있다. 즉,보안에 취약해 질 수 있다. | * 만약 DB에 접속하여 자료를 조회하는 프로그램에 비밀번호가 하드코딩된 경우 리버스 엔지니어링으로 비밀번호가 그대로 유출 될 수 있다. 즉,보안에 취약해 질 수 있다. | ||
* 값이 수시로 바뀌는 데이터를 하드코딩하면 수정할 때마다 재컴파일, 재배포를 해야하기 때문에 큰 시스템의 경우 운용이나 유지 보수가 어렵다.<ref>〈[https://namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9 #하드코딩]〉, 《나무위키》, 2021-06-18</ref> | * 값이 수시로 바뀌는 데이터를 하드코딩하면 수정할 때마다 재컴파일, 재배포를 해야하기 때문에 큰 시스템의 경우 운용이나 유지 보수가 어렵다.<ref>〈[https://namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9 #하드코딩]〉, 《나무위키》, 2021-06-18</ref> | ||
− | |||
==하드코딩== | ==하드코딩== |
2021년 7월 7일 (수) 09:20 판
하드코딩(Hard-Coding)이란 데이터를 코드에 직접 입력하는 경우를 말한다.
개요
상수나 변수에 들어가는 값을 소스코드에 직접 쓰는 방식을 말한다. 반대로, 소스코드에 직접 쓰지않고 데이터를 외부 파일로 빼서 따로 관리하는 것을 '로딩'이라고한다.
장점
- 값을 바로 확인할 수 있다.
- 별도의 로딩 절차가 없어 속도가 비교적 빠르다.
- 데이터 수정 시 코드 수정이 불가피하면 재컴파일을 해야 하므로 굳이 로딩을 할 필요가 없다.[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"라고 바꾸려 해도 컴파일을 다시 해야 한다.
상수 테이블 사용
외부 리소스 파일 사용
애플리케이션 프레임워크 사용
각주
- ↑ roro, 〈(좋은 IT 용어) #하드코딩〉, 《네이버》, 2019-02-06
- ↑ 〈#하드코딩〉, 《나무위키》, 2021-06-18
참고자료
- roro, 〈(좋은 IT 용어) #하드코딩〉, 《네이버》, 2019-02-06
- 〈#하드코딩〉, 《나무위키》, 2021-06-18