Posted
Filed under DataBase/Oracle

오라클 SQL을 작성하다 보면 가장 많이 만나는 데이터가 바로 NULL이죠. 이 NULL 값을 아주 스마트하게 처리해주는 효자 함수, NVLNVL2를 이해하기 쉽게 정리해 드립니다!

1. NVL 함수: "NULL이면 이거 써!"

가장 직관적인 함수입니다. 컬럼 값이 비어있을(NULL) 때만 특정 값으로 채워줍니다.

 

  • 구조: NVL(대상컬럼, NULL일 때 값)

  • 언제 쓸까? * 숫자 연산 시 NULL을 0으로 바꾸고 싶을 때

    • 이름이 없는 경우 '이름없음'으로 표시하고 싶을 때

2. NVL2 함수: "있으면 이거, 없으면 저거!"

NVL보다 한 단계 진화한 함수입니다. 데이터가 있는 경우없는 경우 두 가지 상황을 모두 컨트롤할 수 있습니다.

  • 구조: NVL2(대상컬럼, NULL이 아닐 때 값, NULL일 때 값)

  • 언제 쓸까? * 연락처 유무에 따라 '연락가능', '연락불가'라는 상태값을 주고 싶을 때

    • 보너스가 있으면 '대상자', 없으면 '비대상자'로 구분하고 싶을 때

3. SQL 예제
SELECT 
    NAME,
    -- 전화번호가 없으면 '010-0000-0000'으로 채움
    NVL(PHONE, '010-0000-0000') AS NVL_결과,
    
    -- 전화번호가 있으면 'Y', 없으면 'N' 표시
    NVL2(PHONE, 'Y', 'N') AS NVL2_결과
FROM USERS;

2026/03/18 20:33 2026/03/18 20:33
Posted
Filed under 공부한 것들
1. Base64란?

Base64는 8비트 이진 데이터(이미지, 실행 파일 등)를 ASCII 영역의 64개 문자만 사용하여 텍스트로 변환하는 인코딩 방식입니다.

쉽게 말해, 컴퓨터만 이해하는 복잡한 이진 데이터를 **"전 세계 어디서나 통용되는 안전한 문자 포장지"**로 감싸는 것이라고 이해하면 됩니다.

왜 굳이 변환하나요?

과거의 네트워크 시스템(특히 이메일 전송 표준인 SMTP)은 오직 7비트 ASCII 문자만 처리할 수 있었습니다. 여기에 한글이나 이미지 같은 8비트 데이터를 그대로 보내면 시스템이 해석하지 못해 데이터가 깨지거나 전송이 중단되는 사고가 발생했죠. Base64는 이런 데이터 깨짐 현상을 방지하기 위해 등장했습니다.

2. Base64의 핵심 원리: "3-to-4" 규칙

인코딩 4단계 (예: "Man" 변환하기)

  1. 2진수 변환: 문자 "Man"을 ASCII 코드로 바꾼 뒤 이진수로 나열합니다.

    • M(77) → 01001101 / a(97) → 01100001 / n(110) → 01101110

  2. 6비트 분할: 총 24비트의 데이터를 앞에서부터 6비트씩 4묶음으로 자릅니다.

    • 010011 | 010110 | 000101 | 101110

  3. 10진수 치환: 자른 6비트 묶음을 다시 숫자로 바꿉니다.

    • 19 | 22 | 5 | 46

  4. 문자 매핑: 아래의 Base64 색인표에서 숫자에 해당하는 문자를 찾습니다.

    • T | W | F | u

결과: "Man"은 Base64로 인코딩하면 **"TWFu"**가 됩니다!


3. 끝에 붙는 = 기호는 무엇인가요?
Base64는 데이터를 3바이트(24비트) 단위로 처리하는데, 원본 데이터가 1바이트나 2바이트만 남아서 딱 떨어지지 않을 때가 있습니다. 이때 비어있는 자리를 0으로 채우고, 보는 사람에게 "여기는 원래 데이터가 없던 자리야"라고 알려주기 위해 =을 붙이는 것입니다.

 

2026/02/17 19:38 2026/02/17 19:38