null, NULL, Null, NUL   널 문자

(2022-10-15)

널 값, NULL Pointer, 널 포인터


1. Null 이란?

  ㅇ 무(無)의, 공(空)의, 무효의, 비어있음, 특정 의미 없음 등을 의미


2. [전산]  널 문자 (NUL 또는 '\0') 

  ㅇ 원래, 터미널 또는 프린터로 보내지는 NOP (No Operation, 무 동작) 명령어를 의미

  ㅇ 이의 아스키코드(ASCII) 값은, 0 (비트 패턴이 모두 0 : '0000 0000', '0x00') (문자 : '\0')

  ㅇ 의미
     - 통상, 아무것도 없음을 값으로 표현한 것 (즉, 빈 값을 표현)
     - 또는, 프로그램(함수 등)이,
        . `자료 검색 후 해당 값을 못 찾았을 때`, `메모리 할당 실패 때` 등의 경우에, 
        . 이같은 사실을 알려주려고, 넘겨주는(반환) 값

  ㅇ 유의점
     - 취급 상 차이 : 널 문자(NUL)는, 공백 문자 ""(empty)," "(space, ASCII 32)와는 다르게 취급
     - 비교 시 유의 : `==`과 같은 비교 연산 때, NULL을 공백 ""(empty)과 같은 것으로 간주하곤 함

  ㅇ [C 언어]
     - 널 문자('\0')를 문자열의 끝을 나타내는 특수 문자로 쓰임     ☞ C 문자열 참조
        . 공백 문자,빈 문자열은, 오로지 널 문자('\0') 하나 만 갖음
     - NULL에, 의미를 부여해주기 위해 매크로로 따로 define 함 (#define NULL 0)


3. [전산]  NULL 포인터

  ㅇ 아무것도 가르키지 않는 특별한 포인터 값
     - 값을 가르키지 않는 null 포인터는, 일종의 쓰레기(가비지) 주소를 뜻하지만,
     - 이는 디버깅 등 특별한 용도로 사용 가능한 포인터 값 임

  ㅇ (부울값 판정)
     - 만일, 포인터 값이 NULL 이면, 이를 부울값 False 로 판정함


4. [전산]  데이터베이스 상에서, NULL

  ㅇ 컬럼에 데이터가 아예 들어있지도 않음을 나타내는 특별한 값
     - 이는, 통상의 빈 문자열(Zero Length)이 아님

  ㅇ 특징
     - 비교 불가 : 통상의 연산자로는 비교 자체가 불가능 (심지어,다른 널 값과도 비교 못함)
     - 특별한 연산자 필요 : 널 값인지를 알아내려면 반드시, is null 연산자로 만 가능
     - 기본키에 널 값 허용 안함 : 즉, 기본키에 속한 컬럼에는 널 값을 허용 안함



Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"