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
Posted
Filed under DataBase
1. Oracle Join (기존 전통 방식)

Oracle 9i 이전부터 사용되던 방식으로, FROM 절에 테이블을 나열하고 WHERE 절에서 조인 조건을 처리하는 것이 특징입니다.

  • 특징: 쉼표(,)로 테이블을 구분합니다.

  • 장점: 쿼리가 간결해 보일 수 있고, 오래된 Oracle 레거시 프로젝트에서 자주 마주칩니다.

  • 단점: 조인 조건과 일반 검색 조건이 WHERE 절에 한데 섞여 있어, 테이블이 많아질수록 쿼리 해석이 어렵습니다.

-- [Oracle Join 예시]
SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno  -- 조인 조건
  AND e.sal > 2000;        -- 검색 조건

2. ANSI Join(표준방식)

미국 국립 표준 협회(ANSI)에서 제정한 표준 SQL 문법입니다. Oracle 뿐만 아니라 MySQL, PostgreSQL 등 대부분의 DBMS에서 공통으로 사용됩니다.

  • 특징JOIN 키워드와 ON 절을 사용합니다.

  • 장점: 조인 조건(ON)과 일반 조건(WHERE)이 명확히 분리되어 가독성이 매우 뛰어납니다.

  • 단점: Oracle 방식보다 쿼리가 다소 길어질 수 있습니다.

-- [ANSI Join 예시]
SELECT e.ename, d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno -- 조인 조건 분리
WHERE e.sal > 2000;                -- 검색 조건 분리

구분 Oracle Join ANSI Join
조인 키워드 없음 (쉼표로 구분) INNER JOINLEFT OUTER JOIN 등
조건 명시 WHERE 절에 모두 포함 ON (조인), WHERE (필터) 분리
Outer Join (+) 기호 사용 LEFT/RIGHT/FULL OUTER JOIN
범용성 Oracle 전용 모든 DBMS 공통 (표준)
3. Outer Join 의 결정적 차이
가장 큰 차이는 역시 외부 조인(Outer Join) 표현식입니다.

Oracle의 (+) 방식

데이터가 없는 쪽에 (+) 기호를 붙여줍니다.

ANSI의 방향 명시 방식

 

직관적으로 어느 쪽 테이블을 기준으로 할지 명시합니다.

2026/02/10 09:41 2026/02/10 09:41