본문 바로가기
Java

[Java] NVL 개념 정리, null 값 처리하는 방법

by doogfoot 2024. 11. 25.

 

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을 사전에 방지하는 것이 좋을 것 같습니다.

 

 

댓글