의견.png

"프로씨"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
'''프로씨'''ORACLE RDBMS에 준비된 Pro*C툴은, SQL문을 포함한 C프로그램을, ORACLE 데이터베이스내에 있는 데이터에 접근과, 조작을 할 수 있는 데이터에 접근과, 조작을 할 수 있는 C 프로그램으로 변환하기 위한 것이다. Pro*C는 프리컴파일러이기 때문에, 입력 파일 내에 있는 EXEC SQL 문을 적당한 ORACLE 콜로 변환해서 출력 파일을 작성한다. 그 다음 이 출력 파일을 C 프로그램에 대한 통상의 방법으로 컴파일하고 링크해서 실행모듈을 작정한다.<ref name="개인 블로그">〈[https://12bme.tistory.com/247 Pro*C 소개와 기본 특징 및 오류 진단]〉, 《개인 블로그》</ref>
+
'''프로씨'''ORACLE RDBMS에 준비된 Pro*C툴은, SQL문을 포함한 C프로그램을, ORACLE 데이터베이스내에 있는 데이터에 접근과, 조작을 할 수 있는 데이터에 접근과, 조작을 할 수 있는 C 프로그램으로 변환하기 위한 것이다. Pro*C는 프리컴파일러이기 때문에, 입력 파일 내에 있는 EXEC SQL 문을 적당한 ORACLE 콜로 변환해서 출력 파일을 작성한다. 그 다음 이 출력 파일을 C 프로그램에 대한 통상의 방법으로 컴파일하고 링크해서 실행모듈을 작정한다.<ref name="티스토리">〈[https://12bme.tistory.com/247 Pro*C 란 - 초보자를 위한 개념 설명]〉, 《티스토리》</ref>
  
 
== 개요 ==
 
== 개요 ==
'''프로씨'''는 [[오라클 (회사)|오라클]]에서 쓰이는 외부 C 프로그램과 결합할 수 있는 [[선행 컴파일러]]이다. [[절차적 프로그래밍]]이 가능한 프로그램 도구로서 실행 가능한 외부 프로그램으로 작성이 되어 관련 작업을 수행할 수 있게 해주는 도구이다.
+
'''프로씨'''는 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="티스토리1">〈[https://12bme.tistory.com/247 Pro*C 소개와 기본 특징 및 오류 진단]〉, 《티스토리》</ref>
다만 일반 [[프로그래밍 언어]]들과 다른 점이 있다면, 프로씨 만으로는 실행 파일을 만들어 낼 수 없다. 그래서 프로씨를 Pre Compiler([[선행 컴파일러]])라고 한다. 프로씨는 [[선행 컴파일러]]이기 때문에 선행 컴파일을 통해서 실행파일이 아닌 C 컴파일러가 인식할 수 있는 출력 파일(xxx.c)을 생성한다. [[선행 컴파일러]]를 통해 생성된 C 프로그램은 C 프로그램의 통상적인 방법으로 컴파일되고, 오라클 라이브러리와 결합(링크) 되어 실행 모듈이 만들어진다.<ref> 12bme, 〈[https://12bme.tistory.com/247 (Pro*C)Pro*C 소개와 기본 특징 및 오류 진단]〉, 《티스토리》, 2017-09-09</ref>
 
  
 
== 특징 ==
 
== 특징 ==

2019년 7월 25일 (목) 12:57 판

프로씨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*CPL/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 언어를 작성해서 기동할 때의 통상의 작업 순서는 다음과 같다.

  1. C 언어를 작성한다.
  2. 프로그램을 컴파일해서 오브젝트 파일을 작성한다.
  3. 오브젝트 파일을 링크해서 실행 가능한 파일을 작성한다.
  4. 프로그램을 실행한다.

프로그래머가 소스프로그램에 프로씨를 사용하는 경우에는, 위에서 기술한 순서에 한가지 처리가 더 추가된다.

  1. 프로씨 프로그램을 작성한다.
  2. 프로씨를 이용해서 프로그램을 프리컴파일 한다.
  3. 프로그램를 컴파일해서 오브젝트 파일을 작성한다.
  4. 오브젝트 파일을 링크해서 실행 가능한 파일을 작성한다.
  5. 프로그램을 실행한다.[3]

각주

  1. Pro*C 란 - 초보자를 위한 개념 설명〉, 《티스토리》
  2. Pro*C 소개와 기본 특징 및 오류 진단〉, 《티스토리》
  3. 짱가, 〈Pro*C참고〉, 《네이버블로그》, 2004-05-15

참고자료

같이 보기


  의견.png 이 프로씨 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.