"프로씨"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
− | '''프로씨'''ORACLE RDBMS에 준비된 Pro*C툴은, SQL문을 포함한 C프로그램을, ORACLE 데이터베이스내에 있는 데이터에 접근과, 조작을 할 수 있는 데이터에 접근과, 조작을 할 수 있는 C 프로그램으로 변환하기 위한 것이다. Pro*C는 프리컴파일러이기 때문에, 입력 파일 내에 있는 EXEC SQL 문을 적당한 ORACLE 콜로 변환해서 출력 파일을 작성한다. 그 다음 이 출력 파일을 C 프로그램에 대한 통상의 방법으로 컴파일하고 링크해서 실행모듈을 작정한다.<ref name=" | + | '''프로씨'''ORACLE RDBMS에 준비된 Pro*C툴은, SQL문을 포함한 C프로그램을, ORACLE 데이터베이스내에 있는 데이터에 접근과, 조작을 할 수 있는 데이터에 접근과, 조작을 할 수 있는 C 프로그램으로 변환하기 위한 것이다. Pro*C는 프리컴파일러이기 때문에, 입력 파일 내에 있는 EXEC SQL 문을 적당한 ORACLE 콜로 변환해서 출력 파일을 작성한다. 그 다음 이 출력 파일을 C 프로그램에 대한 통상의 방법으로 컴파일하고 링크해서 실행모듈을 작정한다.<ref name="내가 사는 이유">〈[https://kikook.tistory.com/499 Pro*C 란 - 초보자를 위한 개념 설명]〉, 《티스토리》 2010-03-18</ref> |
== 개요 == | == 개요 == | ||
− | '''프로씨'''는 SQL 문은 절차형 언어가 아니다. 그래서 [[오라클]]을 포함한 많은 [[데이터베이스]]는 [[PL/SQL]]이라는 절차형 언어를 제공한다. [[PL/SQL]]은 [[오라클]] 내부에서 실행되는 프로그램으로서 [[오라클]] 내부라는 한정된 공간에서 실행되는 도구이다.[[DBMS]]의 버전이 높아지면서 이전관 다르게 [[PL/SQL]]에도 다양한 기능이 추가 되었다. 예를 들면, [[TCP/IP]], [[HTTP]], [[FILE I/O]] 등과 같은 기능이 추가되어 다양한 방식의 [[프로그래밍]]이 가능해졌다. 하지만 [[오라클]] 외부 프로그램과의 연동 등에 있어서는 많은 제약이 있다. 예를 들어, [[TCP/IP]] 통신을 하는 [[PL/SQL]] 문장을 작성하여 수행하는 중에 메모리 할당 등 예기치 않은 오류로 프로그램이 종료되는 상황이 발생할 수 있다. 프로그램이 오류로 인해 종료되는 부분은 프로그램을 수정하여 해결이 가능하다. 하지만 이로 인해 [[오라클]] 엔진에 부하가 가해진다면 이는 돌이킬 수 없는 장애로 이어질 수 있다. 이렇듯 내부 [[PL/SQL]]을 통한 프로그램의 경우 [[오라클]]이라는 내부 울타리에서만 수행되는 특징이 큰 제약으로 작용한다. 이런 고민을 해결하기 위해서 대부분의 DBMS 벤더는 외부 C 프로그램과 결합할 수 있는 선행 컴파일러를 제공하고 있으며 [[오라클]]에서는 이를 [[Pro*C]]라고 한다. [[Pro*C]]는 [[PL/SQL]]과 같이 절차적 [[프로그래밍]]이 가능한 프로그램 도구로서 [[PL/SQL]]처럼 [[오라]]클 내부에서 수행되는 프로그램이 아니라 실행 가능한 외부 프로그램으로 작성이 되어 관련 작업을 수행할 수 있게 해 주는 도구이다. 다만 일반 프로그램 언어들과 다른 점이 있다면, Pro*C만으로는 실행 파일을 만들어 낼 수 없다는 것이다. 그래서 Pro*C를 Pre [[Compiler]](설행 컴파일러)라고 한다.[[Pro*C]]는 선행 [[컴파일러]]이기 때문에 선행 컴파일을 통해서 실행 파일이 아닌 C [[컴파일러]]가 인식할 수 있는 출력 파일(xxx.c)을 생성한다. 선행 [[컴파일러]]를 통해 생성된 C 프로그램은 C 프로그램의 통상적인 방법으로 컴파일되고, [[오라클]] 라이브러리와 결합(링크)되어 실행 모듈이 만들어진다.[[Pro*C]] 프로그래밍을 위해서는 [[Pro*C ]]고유의 문법을 숙지하고 있어야 하지만 C [[프로그래밍]]에 대한 기본 지식도 있어야 한다. 특히 메모리와 관련된 부분이나 포인터 등과 같은 C의 고급 기능을 사용하기 위해서는 C [[프로그래밍]]에 대한 지식을 갖추고 있어야 한다.<ref name=" | + | '''프로씨'''는 SQL 문은 절차형 언어가 아니다. 그래서 [[오라클]]을 포함한 많은 [[데이터베이스]]는 [[PL/SQL]]이라는 절차형 언어를 제공한다. [[PL/SQL]]은 [[오라클]] 내부에서 실행되는 프로그램으로서 [[오라클]] 내부라는 한정된 공간에서 실행되는 도구이다.[[DBMS]]의 버전이 높아지면서 이전관 다르게 [[PL/SQL]]에도 다양한 기능이 추가 되었다. 예를 들면, [[TCP/IP]], [[HTTP]], [[FILE I/O]] 등과 같은 기능이 추가되어 다양한 방식의 [[프로그래밍]]이 가능해졌다. 하지만 [[오라클]] 외부 프로그램과의 연동 등에 있어서는 많은 제약이 있다. 예를 들어, [[TCP/IP]] 통신을 하는 [[PL/SQL]] 문장을 작성하여 수행하는 중에 메모리 할당 등 예기치 않은 오류로 프로그램이 종료되는 상황이 발생할 수 있다. 프로그램이 오류로 인해 종료되는 부분은 프로그램을 수정하여 해결이 가능하다. 하지만 이로 인해 [[오라클]] 엔진에 부하가 가해진다면 이는 돌이킬 수 없는 장애로 이어질 수 있다. 이렇듯 내부 [[PL/SQL]]을 통한 프로그램의 경우 [[오라클]]이라는 내부 울타리에서만 수행되는 특징이 큰 제약으로 작용한다. 이런 고민을 해결하기 위해서 대부분의 DBMS 벤더는 외부 C 프로그램과 결합할 수 있는 선행 컴파일러를 제공하고 있으며 [[오라클]]에서는 이를 [[Pro*C]]라고 한다. [[Pro*C]]는 [[PL/SQL]]과 같이 절차적 [[프로그래밍]]이 가능한 프로그램 도구로서 [[PL/SQL]]처럼 [[오라]]클 내부에서 수행되는 프로그램이 아니라 실행 가능한 외부 프로그램으로 작성이 되어 관련 작업을 수행할 수 있게 해 주는 도구이다. 다만 일반 프로그램 언어들과 다른 점이 있다면, Pro*C만으로는 실행 파일을 만들어 낼 수 없다는 것이다. 그래서 Pro*C를 Pre [[Compiler]](설행 컴파일러)라고 한다.[[Pro*C]]는 선행 [[컴파일러]]이기 때문에 선행 컴파일을 통해서 실행 파일이 아닌 C [[컴파일러]]가 인식할 수 있는 출력 파일(xxx.c)을 생성한다. 선행 [[컴파일러]]를 통해 생성된 C 프로그램은 C 프로그램의 통상적인 방법으로 컴파일되고, [[오라클]] 라이브러리와 결합(링크)되어 실행 모듈이 만들어진다.[[Pro*C]] 프로그래밍을 위해서는 [[Pro*C ]]고유의 문법을 숙지하고 있어야 하지만 C [[프로그래밍]]에 대한 기본 지식도 있어야 한다. 특히 메모리와 관련된 부분이나 포인터 등과 같은 C의 고급 기능을 사용하기 위해서는 C [[프로그래밍]]에 대한 지식을 갖추고 있어야 한다.<ref name="12bme">〈[https://12bme.tistory.com/247 Pro*C 소개와 기본 특징 및 오류 진단]〉, 《티스토리》 2017-09-09</ref> |
+ | |||
+ | == 작성박식 == | ||
== 특징 == | == 특징 == | ||
23번째 줄: | 25번째 줄: | ||
== 참고자료 == | == 참고자료 == | ||
+ | * 내가 사는 이유, 〈[https://kikook.tistory.com/499 Pro*C 란 - 초보자를 위한 개념 설명]〉, 《티스토리》 2010-03-18</ref> | ||
* 12bme, 〈[https://12bme.tistory.com/247 (Pro*C)Pro*C 소개와 기본 특징 및 오류 진단]〉, 《티스토리》, 2017-09-09 | * 12bme, 〈[https://12bme.tistory.com/247 (Pro*C)Pro*C 소개와 기본 특징 및 오류 진단]〉, 《티스토리》, 2017-09-09 | ||
* 짱가, 〈[http://blog.naver.com/knbawe/100002483290 Pro*C 참고]〉, 《네이버 블로그》, 2004-05-15 | * 짱가, 〈[http://blog.naver.com/knbawe/100002483290 Pro*C 참고]〉, 《네이버 블로그》, 2004-05-15 |
2019년 7월 25일 (목) 14:34 판
프로씨ORACLE RDBMS에 준비된 Pro*C툴은, SQL문을 포함한 C프로그램을, ORACLE 데이터베이스내에 있는 데이터에 접근과, 조작을 할 수 있는 데이터에 접근과, 조작을 할 수 있는 C 프로그램으로 변환하기 위한 것이다. Pro*C는 프리컴파일러이기 때문에, 입력 파일 내에 있는 EXEC SQL 문을 적당한 ORACLE 콜로 변환해서 출력 파일을 작성한다. 그 다음 이 출력 파일을 C 프로그램에 대한 통상의 방법으로 컴파일하고 링크해서 실행모듈을 작정한다.[1]
개요
프로씨는 SQL 문은 절차형 언어가 아니다. 그래서 오라클을 포함한 많은 데이터베이스는 PL/SQL이라는 절차형 언어를 제공한다. PL/SQL은 오라클 내부에서 실행되는 프로그램으로서 오라클 내부라는 한정된 공간에서 실행되는 도구이다.DBMS의 버전이 높아지면서 이전관 다르게 PL/SQL에도 다양한 기능이 추가 되었다. 예를 들면, TCP/IP, HTTP, FILE I/O 등과 같은 기능이 추가되어 다양한 방식의 프로그래밍이 가능해졌다. 하지만 오라클 외부 프로그램과의 연동 등에 있어서는 많은 제약이 있다. 예를 들어, TCP/IP 통신을 하는 PL/SQL 문장을 작성하여 수행하는 중에 메모리 할당 등 예기치 않은 오류로 프로그램이 종료되는 상황이 발생할 수 있다. 프로그램이 오류로 인해 종료되는 부분은 프로그램을 수정하여 해결이 가능하다. 하지만 이로 인해 오라클 엔진에 부하가 가해진다면 이는 돌이킬 수 없는 장애로 이어질 수 있다. 이렇듯 내부 PL/SQL을 통한 프로그램의 경우 오라클이라는 내부 울타리에서만 수행되는 특징이 큰 제약으로 작용한다. 이런 고민을 해결하기 위해서 대부분의 DBMS 벤더는 외부 C 프로그램과 결합할 수 있는 선행 컴파일러를 제공하고 있으며 오라클에서는 이를 Pro*C라고 한다. Pro*C는 PL/SQL과 같이 절차적 프로그래밍이 가능한 프로그램 도구로서 PL/SQL처럼 오라클 내부에서 수행되는 프로그램이 아니라 실행 가능한 외부 프로그램으로 작성이 되어 관련 작업을 수행할 수 있게 해 주는 도구이다. 다만 일반 프로그램 언어들과 다른 점이 있다면, Pro*C만으로는 실행 파일을 만들어 낼 수 없다는 것이다. 그래서 Pro*C를 Pre Compiler(설행 컴파일러)라고 한다.Pro*C는 선행 컴파일러이기 때문에 선행 컴파일을 통해서 실행 파일이 아닌 C 컴파일러가 인식할 수 있는 출력 파일(xxx.c)을 생성한다. 선행 컴파일러를 통해 생성된 C 프로그램은 C 프로그램의 통상적인 방법으로 컴파일되고, 오라클 라이브러리와 결합(링크)되어 실행 모듈이 만들어진다.Pro*C 프로그래밍을 위해서는 Pro*C 고유의 문법을 숙지하고 있어야 하지만 C 프로그래밍에 대한 기본 지식도 있어야 한다. 특히 메모리와 관련된 부분이나 포인터 등과 같은 C의 고급 기능을 사용하기 위해서는 C 프로그래밍에 대한 지식을 갖추고 있어야 한다.[2]
작성박식
특징
프로씨를 사용하면 프로그래머는 통상의 프로그래밍 과정에 별도의 처리를 추가해야 한다. 그러나 별도의 처리를 추가함으로써, 상당량의 작업을 프로씨가 수행하게 된다.
C 언어를 작성해서 기동할 때의 통상의 작업 순서는 다음과 같다.
프로그래머가 소스프로그램에 프로씨를 사용하는 경우에는, 위에서 기술한 순서에 한가지 처리가 더 추가된다.
- 프로씨 프로그램을 작성한다.
- 프로씨를 이용해서 프로그램을 프리컴파일 한다.
- 프로그램를 컴파일해서 오브젝트 파일을 작성한다.
- 오브젝트 파일을 링크해서 실행 가능한 파일을 작성한다.
- 프로그램을 실행한다.[3]
각주
- ↑ 〈Pro*C 란 - 초보자를 위한 개념 설명〉, 《티스토리》 2010-03-18
- ↑ 〈Pro*C 소개와 기본 특징 및 오류 진단〉, 《티스토리》 2017-09-09
- ↑ 짱가, 〈Pro*C참고〉, 《네이버블로그》, 2004-05-15
참고자료
- 내가 사는 이유, 〈Pro*C 란 - 초보자를 위한 개념 설명〉, 《티스토리》 2010-03-18</ref>
- 12bme, 〈(Pro*C)Pro*C 소개와 기본 특징 및 오류 진단〉, 《티스토리》, 2017-09-09
- 짱가, 〈Pro*C 참고〉, 《네이버 블로그》, 2004-05-15
같이 보기