DB · Oracle

Oracle Database

대기업·금융권·공공기관에서 오랫동안 신뢰받아 온 강력한 상용 관계형 데이터베이스입니다. 대규모·고가용 환경에 강하지만, 그만큼 라이선스 비용이 든다는 점이 특징이에요.

한 줄로

Oracle? 도 다른 DB와 마찬가지로 테이블에 데이터를 저장하고 SQL? 로 다루는 관계형 DB지만, 무료가 아닌 상용 제품입니다. 대용량 처리·안정성·보안·운영 도구가 강력해 미션 크리티컬 시스템에 많이 쓰입니다.

오픈소스 DB가 "직접 정비하는 보급형 차"라면, Oracle은 "전담 정비팀과 보증이 따라오는 고급 업무용 차". 비용은 크지만 큰 조직에서 요구하는 안정성과 지원을 제공합니다.
왜 / 어디에 쓰나
  • 대규모 기간계 시스템 — 은행·통신·대기업의 핵심 업무 시스템
  • 고가용성 — 무중단·클러스터(RAC) 등 대규모 운영 기능
  • 상용 지원 — 벤더의 기술 지원과 책임 보증이 중요한 환경
  • 풍부한 절차 언어 — PL/SQL로 복잡한 업무 로직을 DB 안에 작성

핵심 개념과 특징

항목설명
상용 라이선스유료 제품. 무료로 학습 가능한 Express(XE) 에디션도 있음.
PL/SQLOracle의 절차형 SQL 확장. 저장 프로시저·함수·트리거를 작성.
시퀀스(Sequence)고유 번호를 만들어내는 객체. 기본키 자동 생성에 자주 사용.
방언(Dialect)SQL 기본은 표준을 따르되, 함수·문법 일부가 다름(예: DUAL, ROWNUM).

기본 SQL과 방언

관계형 DB라 SELECT·INSERT·JOIN 등 기본 SQL은 공통입니다. 다만 일부 문법이 Oracle만의 방식이에요.

-- 기본 조회 (공통)
SELECT id, userid, name
FROM tb_user
WHERE name LIKE '%han%'
ORDER BY name;

-- Oracle 방언: 행 개수 제한 (예전 방식 ROWNUM)
SELECT * FROM tb_user WHERE ROWNUM <= 10;

-- Oracle 방언: 한 행만 필요할 때 쓰는 가상 테이블 DUAL
SELECT SYSDATE FROM DUAL;

PL/SQL — DB 안의 절차 언어

-- 간단한 저장 프로시저
CREATE OR REPLACE PROCEDURE add_user(p_userid VARCHAR2, p_name VARCHAR2) AS
BEGIN
  INSERT INTO tb_user (userid, name) VALUES (p_userid, p_name);
  COMMIT;
END;

PostgreSQL이 무료·오픈소스로 표준과 고급 기능에 강하다면, Oracle은 상용 지원과 대규모 운영 기능이 강점입니다. SQL 기본은 같으니 방언 차이만 익히면 됩니다.

이 프로젝트와의 관계

이 학습 프로젝트는 비용 없이 시작할 수 있는 PostgreSQL 을 씁니다. 회사 시스템이 Oracle을 쓰더라도, JPA 로 작성한 자바 코드는 대부분 그대로 두고 드라이버와 Dialect 설정만 바꾸면 동작합니다. "SQL 공통 + 방언 차이"가 여기서도 핵심이에요.

다음 단계