채널톡 아이콘

한 권으로 끝내는 Oracle Pro*C — 레거시 유지보수와 전환

가상 쇼핑몰의 셀러 월 정산 배치 하나를 끝까지 끌고 갑니다. Pro*C 기초로 소스를 읽고, 숨은 결함 네 개를 최소 패치로 고치고, 배열 처리로 DB 왕복을 265,893회에서 359회로 줄인 뒤, ECPG와 JDBC로 옮겨 세 결과가 한 줄도 다르지 않음을 증명합니다. 모든 명령을 Docker의 Oracle Database Free와 PostgreSQL에서 직접 실행합니다.

1명 이 수강하고 있어요.

난이도 중급이상

수강기한 무제한

수강 후 이런걸 얻을 수 있어요

  • Pro*C 소스를 빌드하고, 오류 메시지로 선행 컴파일·컴파일·링크·실행 중 어느 단계 문제인지 가릅니다.

  • 호스트 변수·VARCHAR·표지 변수·SQLCA·WHENEVER를 함정까지 포함해 정확히 씁니다.

  • 물려받은 배치의 커밋 위치·루프 조건·NULL 처리·문자열 결함을 찾아 최소 패치로 고칩니다.

  • 같은 규칙의 기대값 SQL과 양쪽 차집합으로 고친 결과에 회귀가 없음을 증명합니다.

  • 멈춘 배치를 세션·대기 이벤트로 진단하고, 작업 기록과 종료 코드로 운영자가 읽게 만듭니다.

  • 배열 FETCH·INSERT로 DB 왕복을 줄이고 배열 크기·커밋 주기·PREFETCH를 실측으로 정합니다.

  • Pro*C를 ECPG와 JDBC로 옮기고 세 결과를 CSV·md5·합계로 대조합니다.

물려받은 Pro*C 배치, 고치고 · 빠르게 만들고 · PostgreSQL과 Java로 옮기기까지

가상 쇼핑몰의 셀러 월 정산 배치 하나를 끝까지 끌고 갑니다. Pro*C 기초로 소스를 읽고, 숨은 결함 네 개를 최소 패치로 고치고, 배열 처리로 DB 왕복을 265,893회에서 359회로 줄인 뒤, ECPG와 JDBC로 옮겨 세 결과가 한 줄도 다르지 않음을 증명합니다. 모든 명령을 Docker의 Oracle Database Free와 PostgreSQL에서 직접 실행합니다.

Pro*C는 지금도 금융·유통·공공의 야간 배치에서 돌아가지만, 배울 곳은 오라클 매뉴얼과 흩어진 글뿐입니다. 이 강의는 현업 실무서를 썼던 경험을 바탕으로, 문법을 나열하는 대신 '넘겨받은 배치가 어젯밤 멈췄다'에서 시작합니다. 셀러마다 커밋해 절반만 남은 정산, 배열 FETCH 루프가 버린 마지막 셀러 13곳, NULL 할인 때문에 조용히 사라진 주문 13,513건, 앞 이름이 붙어 나오는 보고서를 실제로 재현하고, 같은 규칙의 기대값 SQL과 대조해 고친 결과를 증명합니다. 마지막에는 같은 배치를 PostgreSQL ECPG와 Java JDBC로 옮겨, 전환 뒤 자주 터지는 차이(빈 문자열·CHAR 공백·정수 나눗셈·정렬·트랜잭션 중단)까지 확인합니다.

이 강의를 마치면

  • Pro*C 소스를 빌드하고, 오류 메시지로 선행 컴파일·컴파일·링크·실행 중 어느 단계 문제인지 가릅니다.

  • 호스트 변수·VARCHAR·표지 변수·SQLCA·WHENEVER를 함정까지 포함해 정확히 씁니다.

  • 물려받은 배치의 커밋 위치·루프 조건·NULL 처리·문자열 결함을 찾아 최소 패치로 고칩니다.

  • 같은 규칙의 기대값 SQL과 양쪽 차집합으로 고친 결과에 회귀가 없음을 증명합니다.

  • 멈춘 배치를 세션·대기 이벤트로 진단하고, 작업 기록과 종료 코드로 운영자가 읽게 만듭니다.

  • 배열 FETCH·INSERT로 DB 왕복을 줄이고 배열 크기·커밋 주기·PREFETCH를 실측으로 정합니다.

  • Pro*C를 ECPG와 JDBC로 옮기고 세 결과를 CSV·md5·합계로 대조합니다.

이런 분께 추천합니다

  • Pro*C 배치를 갑자기 맡게 된 개발자·DBA

  • Oracle에서 PostgreSQL로 옮기는 프로젝트에서 C 배치 전환을 맡은 개발자

  • 레거시 배치를 고치기 전에 '안전하게 고쳤다'를 증명하는 방법이 필요한 분

  • C와 SQL은 아는데 임베디드 SQL은 처음인 분

커리큘럼 (6섹션 · 41강 · 약 303분)

  • 섹션 0. 오리엔테이션 — 완성본 먼저 보기

  • 섹션 1. Pro*C 기초와 실습 환경 — 실습 환경 띄우기, 첫 Pro*C 프로그램, 컴파일 두 단계와 Makefile, 컴파일 오류 진단, 호스트 변수와 VARCHAR, 표지 변수와 NULL, 접속과 트랜잭션, 데이터 형 매핑의 함정

  • 섹션 2. 커서와 오류 처리 — 단일 행 SELECT INTO, 커서로 여러 행 읽기, WHENEVER 의 함정, SQLCA 읽기, 명시적 오류 처리 패턴, 동적 SQL, PL/SQL 호출과 호스트 구조체

  • 섹션 3. 물려받은 코드 읽고 고치기 — 물려받은 정산 배치 둘러보기, 코드 읽는 순서, 결함 1: 커밋 위치, 다시 돌려도 안전한 배치, 결함 2: 사라진 셀러, 결함 3: NULL 할인 금액, 결함 4: 쓰레기 문자, 고친 뒤 회귀 확인, 멈춘 배치 진단, 작업 기록과 종료 코드

  • 섹션 4. 배치 성능: 한 번에 여러 건 — 한 건씩 처리의 비용, 배열 FETCH, 배열 INSERT: FOR :n, 배열 크기 실험, 배열 처리 중 일부 실패, 커밋 주기와 PREFETCH

  • 섹션 5. PostgreSQL ECPG·Java 전환 — 전환 계획 세우기, 스키마와 데이터 옮기기, ECPG 첫 프로그램, 정산 배치를 ECPG 로, ECPG 오류 처리와 배열, Java JDBC 로 다시 쓰기, 세 결과 대조, 전환 위험과 되돌리기, 정리: 실무 점검표

실습 환경

Docker로 Oracle Database Free 23ai, Pro*C 개발 상자(Instant Client 23ai), PostgreSQL 17, ECPG 개발 상자, Java 21을 한 번에 띄웁니다(./up.sh). 가상 스포츠·아웃도어 전문몰 「루프마켓」의 셀러 120곳·주문 상품 20만 건이 고정 규칙으로 만들어지고, 강마다 ./scenarios/sNN.sh 를 실행하면 강의 화면과 같은 결과를 볼 수 있습니다. 강의 화면의 모든 숫자와 오류 메시지는 이 실습을 실제로 실행한 결과입니다.

선수 지식

  • C 기초 문법(포인터·구조체 읽기 수준)

  • SQL SELECT·INSERT·UPDATE

  • Docker가 설치된 컴퓨터(Apple Silicon·인텔 모두)

이 강의에서 다루지 않는 것

  • C 언어 입문

  • Oracle 설치·관리

  • PL/SQL 심화

  • OCI 직접 프로그래밍

  • Spring Batch

안내

슬라이드 내레이션은 합성 음성입니다. 모든 데이터는 교육용 가상 데이터이며, 숫자는 실행 환경에 따라 달라질 수 있습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • Pro*C 배치를 갑자기 맡게 된 개발자·DBA

  • Oracle에서 PostgreSQL로 옮기는 프로젝트에서 C 배치 전환을 맡은 개발자

  • 레거시 배치를 고치기 전에 '안전하게 고쳤다'를 증명하는 방법이 필요한 분

  • C와 SQL은 아는데 임베디드 SQL은 처음인 분

선수 지식,
필요할까요?

  • C 기초 문법(포인터·구조체 읽기 수준)

  • SQL SELECT·INSERT·UPDATE

  • Docker가 설치된 컴퓨터(Apple Silicon·인텔 모두)

안녕하세요
데이터장인입니다.

커리어인증

20년 이상 데이터베이스와 IT 분야에서 경력을 쌓아온 데이터장인입니다. DBA 및 DB Platform 팀 매니저로 데이터베이스 플랫폼을 다루며, MySQL·PostgreSQL·Oracle·MongoDB와 SQL 튜닝, AWS·Terraform·Python을 전문 분야로 삼고 있습니다. 게임·금융·IT 서비스 분야의 경력을 바탕으로 데이터베이스와 클라우드 아키텍처를 설명합니다. 『오라클 실무튜닝 SQL 패턴 학습』과 『Oracle Pro*C 실무프로젝트 활용서』를 출간했으며, AWS Summit 2018·2019와 데이터야 놀자 2020에서 서버리스·데이터베이스 선택·멀티데이터베이스 전략을 발표했습니다. 최근에는 Bedrock LLM을 이용한 슬로우 쿼리 분석·튜닝 권고, DB 스펙 산정 자동화, DB 메타 MCP 서버와 Slack 봇을 통한 조회 흐름을 다루고 있습니다. 개발자를 위한 데이터베이스 자동화와 비개발자를 위한 AI 업무 활용을 각 과정의 대상과 목적에 맞는 실습으로 설명합니다. AI 제안을 그대로 적용하기보다 결과 동일성·실행 계획·관측 조건을 확인하고, 근거가 부족하면 보류하는 판단 기준을 전달합니다. 회사 운영 데이터와 인증값은 강의 자료에 포함하지 않습니다.

더보기

커리큘럼

전체

41개 ∙ (5시간 2분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

데이터장인님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

얼리버드 할인 중

월 ₩16,016

5개월 할부 시

20%

₩100,100

₩80,080

평생교육이용권 지원 강의