Java 라이브러리를 뒤적이다 보면 종종 nvl() 함수를 볼 수 있습니다.
오늘은 nvl의 개념과 사용 방법에 대해서 정리해 보겠습니다.
개념
NVL 은 벤더나 도메인에 따라 각각 다르긴 하지만 Null VaLue, Null Value Logic, Null VLookup의 약자를 의미합니다.
쉽게 말해 null 처리 로직 또는 함수를 말합니다
정확히는 특정 값이 null 인 경우에만 다른 값으로 대체하는 것을 말합니다.
특별히 Java 언어에서만 사용되는 개념이 아니라 프로그래밍이나 IT 세계에서 많이 사용되는 개념입니다.
예를 들어
NVL(expr1, expr2)
DB 오라클의 NVL 함수는 위와 같이 사용할 수 있습니다.
DB의 데이터값인 expr1 이 만약 null 인 경우 expr2 값을 반환합니다
반면 expr1 의expr1의 값이 null 이 아닌 경우는 그대로 expr1의 값을 반환합니다.
사용 방법
Java에서 NVL 함수도 오라클 함수와 동일하게 사용하는 것이 일반적입니다.
Object output = NVL(input, defaultValue);
함수의 파라미터는 일반적으로 입력값(input)과 null 일경우 대체할 값(defaultValue)으로 두 가지입니다.
NVL 함수를 사용하는 이유는 다음과 같습니다
1. null 값을 대체하여 안정성 보장
DB나 Java에서 null 은 잘 못 처리할 경우 에러를 발생시킬 가능성이 높은 개념입니다.
어떤 처리를 할 때마다 null 인지 아닌지를 신경 써야 한다면 불편할 뿐 아니라 추후에 문제를 일으킬 수 있습니다.
이를 사전에 방지하여 null 값 대신 0이나 빈문자열("")로 대체하는 것이 좋습니다
2. null 값 연산
null 값은 연산이 일반적으로 불가능합니다
사칙연산, 등호, 부등호 등등을 사용하기 위해 연산이 가능한 값으로 대체하는 것이 좋습니다
3. 집계, 통계시 사용
위와 비슷한 이야기로 집계나 통계등 개수를 셀 때 null 값은 무시당하여 예상된 결과가 나오지 않을 수 있습니다
null 값을 통계에 잡힐 수 있는 값으로 전환해서 사용하는 것이 좋습니다.
4. 가독성 개선
null 값은 로그나 결과 출력 시 공백으로 보일 수 있어 가독성이 떨어질 수 있습니다
null 값을 시각적으로 의미 있는 값으로 변경하여 출력 결과의 가독성을 높이는 것이 좋습니다
정리
NVL 함수란 특정 값이 null 일 경우 이를 다른 값으로 대체하는 기능을 수행합니다.
null 관련된 처리를 추후에 따로 하지 않으려면 NVL 메서드를 통해 null을 사전에 방지하는 것이 좋을 것 같습니다.
'Java' 카테고리의 다른 글
[Java] JVM 구조 이해하기, JVM을 알아야 하는 이유 (1) | 2024.11.15 |
---|---|
[Java] List(ArrayList)에서 add, set 메서드 차이점 (0) | 2024.11.14 |
[Java] 데몬 스레드(Deamon Thread)란 무엇이고 언제 사용하면 좋을까? (0) | 2024.11.10 |
[Java] Thread 종료하는 방법, interrupt() 메서드 동작 방식 (3) | 2024.11.05 |
[Java] 빈 문자열 체크 방법 정리(isEmpty, isBlank, equals("") 차이점) (0) | 2024.10.31 |
댓글