Altibase Stored Procedure Manual

Size: px
Start display at page:

Download "Altibase Stored Procedure Manual"

Transcription

1 ALTIBASE HDB Application Development C/C++ External Procedures Manual Release (April 16, 2015)

2 ALTIBASE Application Development C/C++ External Stored Procedures Manual Release Copyright c 2001~2015 ALTIBASE Corp. All Rights Reserved. 본문서의저작권은 알티베이스에있습니다. 이문서에대하여당사의동의없이무단으로복제또는전용할수없습니다. 알티베이스 서울시구로구구로동 대륭포스트타워 Ⅱ 10 층전화 : 팩스 : 고객서비스포털 : homepage:

3 목차 서문 5 이매뉴얼에대하여 6 1. C/C++ 외부프로시저소개 11 C/C++ 외부프로시저란? 외부프로시저사용법 15 자료형과데이터베이스객체 16 기본사용법 18 관련메타테이블과성능뷰 26 관련프로퍼티 외부프로시저용 SQL문 29 CREATE LIBRARY statement 30 ALTER LIBRARY statement 31 DROP LIBRARY statement 32 CREATE PROCEDURE statement 33 DROP PROCEDURE statement 37 CREATE FUNCTION 38 DROP FUNCTION 41 EXECUTE 42 찾아보기 43 목차 3

4

5 서문 서문 5

6 이매뉴얼에대하여 이매뉴얼은 C/C++ 외부프로시저및함수 ( 이하 C/C++ 외부 프로시저또는외부프로시저 ) 의개념및사용방법에대해설명한다. 대상사용자 이매뉴얼은다음과같은 ALTIBASE HDB 사용자를대상으로작성되었다. 데이터베이스관리자 성능관리자 데이터베이스사용자 응용프로그램개발자다음과같은배경지식을가지고이매뉴얼을읽는것이좋다. 컴퓨터, 운영체제및운영체제유틸리티운용에필요한기본지식 관계형데이터베이스사용경험또는데이터베이스개념에대한이해 컴퓨터프로그래밍경험 소프트웨어환경 이매뉴얼은데이터베이스서버로 ALTIBASE HDB 버전 을 사용한다는가정하에작성되었다. 이매뉴얼의구성 이매뉴얼은다음과같이구성되어있다. 제 1 장 C/C++ 외부프로시저소개이장에서는 C/C++ 외부프로시저를소개한다. 외부프로시저가필요한경우를소개하고, ALTIBASE HDB 외부프로시저의특징에대해살펴본다. 제 2 장외부프로시저사용법이장에서는 C/C++ 외부프로시저를작성하는방법을설명한다. 6 C/C++ External Procedures Manual

7 제 3 장외부프로시저용 SQL 문 이장은 ALTIBASE HDB 에서외부프로시저를사용하기위해 지원하는 SQL 문을설명한다. 문서화규칙 이절에서는이매뉴얼에서사용하는규칙에대해설명한다. 이규칙을이해하면이매뉴얼과설명서세트의다른매뉴얼에서정보를쉽게찾을수있다. 여기서설명하는규칙은다음과같다. 구문다이어그램 샘플코드규칙 구문다이어그램 이매뉴얼에서는다음구성요소로구축된다이어그램을사용하여, 명령문의구문을설명한다. 구성요소 예약어 의미명령문이시작한다. 완전한명령문이아닌구문요소는화살표로시작한다. 명령문이다음라인에계속된다. 완전한명령문이아닌구문요소는이기호로종료한다. 명령문이이전라인으로부터계속된다. 완전한명령문이아닌구문요소는이기호로시작한다. ; 명령문이종료한다. SELECT 필수항목 선택적항목 NOT ADD 선택사항이있는필수항목. 한항목만제공해야한다. DROP 선택사항이있는선택적항목. ASC DESC 서문 7

8 ASC 선택적항목. 여러항목이허용된다. 각반복앞부분에 콤마가와야한다. DESC, 샘플코드규칙 코드예제는 SQL, Stored Procedure, isql, 또는다른명령라인 구문들을예를들어설명한다. 아래테이블은코드예제에서사용된인쇄규칙에대해설명한다. 규칙 의미 예제 [ ] 선택항목을표시 VARCHAR [(size)] [[FIXED ] VARIABLE] 필수항목표시. 반드시하나이상을선택해야되는표시 ENABLE DISABLE COMPILE 선택또는필수항목표시의인자구분표시 ENABLE DISABLE COMPILE [ ENABLE DISABLE COMPILE ]... 그이전인자의반복표시예제코드들의생략되는것을표시 SQL> SELECT ename FROM employee; ENAME SWNO HJNO HSCHOI rows selected. 그밖에기호 위에서보여진기호이외에기호들 EXEC :p1 := 1; acc NUMBER(11,2); 기울임꼴 구문요소에서사용자가지정해야하는변수, 특수한값을제공해야만하는위치지정자 SELECT * FROM table_name; CONNECT userid/password; 8 C/C++ External Procedures Manual

9 소문자사용자가제공하는프로그램의요소들, 예를들어테이블이름, 칼럼이름, 파일이름등대문자시스템에서제공하는요소들또는구문에나타나는키워드 SELECT ename FROM employee; DESC SYSTEM_.SYS_INDICES_; 샘플스키마 이매뉴얼내의예제중의일부는 employees, departments 및 orders 테이블같은샘플테이블에기반하여작성되었다. 이들테이블은 $ALTIBASE_HOME/sample/APRE/schema 디렉터리의 schema.sql 을사용하여생성할수있다. 샘플스키마에대한온전한정보는 General Reference 를참고하기바란다. 관련자료 자세한정보를위하여다음문서목록을참조하기바란다. Installation Guide Getting Started Guide SQL Reference isql User s Manual Error Message Reference 온라인매뉴얼 Altibase 고객서비스포털 ( 에서국문및영문매뉴얼 (PDF, HTML) 을받을수있다. Altibase 는여러분의의견을환영합니다. 이매뉴얼에대한여러분의의견을보내주시기바랍니다. 사용자의의견은다음버전의매뉴얼을작성하는데많은도움이됩니다. 보내실때에는아래내용과함께고객서비스포털 ( 로보내주시기바랍니다. 서문 9

10 사용중인매뉴얼의이름과버전 매뉴얼에대한의견 사용자의성함, 주소, 전화번호이외에도 Altibase 기술지원설명서의오류와누락된부분및기타기술적인문제들에대해서이주소로보내주시면정성껏처리하겠습니다. 또한, 기술적인부분과관련하여즉각적인도움이필요한경우에도고객서비스포털을통해서비스를요청하시기바랍니다. 여러분의의견에항상감사드립니다. 10 C/C++ External Procedures Manual

11 1. C/C++ 외부프로시저소개 이장에서는 C/C++ 외부프로시저및함수 ( 이하 C/C++ 외부프로시저또는외부프로시저 ) 를소개한다. 외부프로시저가필요한경우를소개하고, ALTIBASE HDB 외부프로시저의특징에대해살펴본다. C/C++ 외부프로시저소개 11

12 C/C++ 외부프로시저란? C/C++ 외부프로시저 (external procedures) 란 C 또는 C++ 언어로작성되고컴파일되어동적링크라이브러리 (Dynamic Link Library, DLL) 에저장된함수이다. 외부프로시저는 HDB 의외부프로시저객체를통해실행될수있으며, 실행방법은 SQL 문또는응용프로그램내에서저장프로시저를호출하는것과동일하다. 특징 ALTIBASE HDB 가제공하는외부프로시저는아래와같은특징및장점이있다. C/C++ 외부프로시저바디의구현과프로시저호출스펙이서로연관이없으므로, C/C++ 외부프로시저바디를수정해도프로시저를호출하는프로그램은수정할필요가없다. C/C++ 외부프로시저의실행과 HDB 서버프로세스가분리되어있기때문에, 사용자가작성한 C/C++ 외부프로시저에문제가있어도데이터베이스에영향을주지않는다. 기존의 PSM( 저장프로시저 ) 이지원하지않는 C/C++ 언어만의기능을사용할수있다. 일부연산집약적인작업은 C 언어와같은저수준프로그래밍언어로작성할때가장효율적으로실행된다. 기존에작성되어있는 C/C++ 함수를외부프로시저화하는것만으로 PSM 에서직접호출할수있다. 즉, 한번작성한 C/C++ 함수의재사용이가능하여개발비용을줄일수있다. 외부프로시저호출흐름 외부프로시저는저장프로시저 (Stored Procedure, PSM) 와마찬가지로클라이언트세션에서호출할수있다. 아래는외부프로시저생성에서호출까지의전반적인흐름이다. 사용자가 C 또는 C++ 언어로작성한함수 (ALTIBASE HDB 가지원하는외부프로시저형식 ) 를동적라이브러리로만들어 ALTIBASE HDB 가식별할수있는위치에저장한다음, SQL 구문을이용해서외부프로시저객체 ( 외부프로시저를등록하는저장프로시저 ) 를생성한다. 12 C/C++ External Procedures Manual

13 다음으로클라이언트세션에서외부프로시저를등록한저장프로시저를호출하면, ALTIBASE HDB 서버는에이전트프로세스를시작한다. 에이전트프로세스는외부프로시저와관련된동적라이브러리파일을로딩하고라이브러리내의관련 C/C++ 함수를실행하여결과를 HDB 서버로전달하면 HDB 서버가클라이언트에그결과를반환한다. 아래는클라이언트가호출한외부프로시저가에이전트프로세스를통해실행되는흐름을도식화한그림이다. [ 그림 1-1] 외부프로시저호출및수행흐름도 에이전트프로세스 에이전트프로세스는외부프로시저용 C/C++ 함수가저장된 DLL 파일을불러오고그안의함수를실행하기위해서 ALTIBASE HDB 서버가별도로생성하는프로세스이다. 클라이언트세션에서외부프로시저를등록한저장프로시저를호출하면 ALTIBASE HDB 서버가외부프로시저용에이전트프로세스 (Agent Process) 를시작한다. 그리고외부프로시저의수행이완료되면, ALTIBASE HDB 서버는잠시대기한후다른외부프로시저의수행이없다면에이전트프로세스를종료한다. 에이전트프로세스는 HDB 서버의서비스세션에종속되어있기때문에, n 개의클라이언트세션에서외부프로시저를호출하는경우 C/C++ 외부프로시저소개 13

14 n 개의에이전트프로세스가생성된다. 그리고세션이종료하면해당 세션이생성한에이전트프로세스도종료한다. 14 C/C++ External Procedures Manual

15 2. 외부프로시저사용법 이장에서는 ALTIBASE HDB 에서외부프로시저를사용하는방법을설명한다. 먼저, 외부프로시저를위해지원되는 C/C++ 자료형과데이터베이스객체에대해알아보고, ALTIBASE HDB 서버가인식할수있는동적라이브러리를작성하고생성하는방법을설명한다. 외부프로시저용사용법 15

16 자료형과데이터베이스객체 이절은외부프로시저작성을위해지원하는자료형과외부프로시저사용을위해제공하는외부라이브러리객체와외부프로시저객체를소개한다. 자료형 아래는외부프로시저객체생성시인자에사용할수있는 PSM 자료형과사용자정의 C/C++ 함수의인자에사용할수있는자료형을연결한표이다. 인자의입 / 출력모드에따라사용자정의 C/C++ 함수에서는포인터형을써야할수있으므로주의해서살펴보기바란다. PSM 자료형 IN INOUT/OUT RETURN 비고 BIGINT long long long long * long long BOOLEAN char char * char SMALLINT INTEGER int int * int REAL float float * float DOUBLE double double * double CHAR VARCHAR NCHAR char * char * char * NVARCHAR NUMERIC DECIMAL NUMBER double double * double FLOAT DATE SQL_TIME SQL_TIMESTA SQL_TIMESTAM STAMP_S MP_STRUCT P_STRUCT * TRUCT BOOLEAN의경우에는아래두가지값을허용한다. 0: FALSE 1: TRUE Precision이높은인자는 double 형으로변환하는과정에서데이터손실이발생할수있다. 16 C/C++ External Procedures Manual

17 INTERVAL SQL_TIMESTA MP_STRUCT SQL_TIMESTAM P_STRUCT * SQL_TIME STAMP_S TRUCT 외부라이브러리객체 사용자정의함수, 즉외부프로시저를포함하는동적라이브러리파일을 ALTIBASE HDB 서버가식별할수있도록해주어야한다. 이를위해 ALTIBASE HDB 는외부라이브러리객체라는데이터베이스객체를제공하며, 객체관리를위한 SQL 구문도함께제공한다. 외부프로시저를저장프로시저처럼사용하기위해사용자는먼저외부라이브러리객체를생성해야하며, 관련된동적라이브러리파일을 $ALTIBASE_HOME/lib 디렉토리에두어야한다. 동적라이브러리파일없이외부프로시저객체를생성하는것이가능하지만, 외부프로시저를실행할때에는반드시관련동적라이브러리파일이존재해야한다. 외부프로시저 / 함수객체 ALTIBASE HDB 는외부프로시저를등록한저장프로시저를일반적인저장프로시저와구별해서외부프로시저객체라고한다. 외부프로시저객체는사용자정의함수와일대일로대응하는데이터베이스객체이다. 외부프로시저인사용자정의함수는외부프로시저객체를통해실행된다. 외부프로시저객체를생성할때에는관련된라이브러리객체와사용자정의함수에대한모든정보를명시해야한다. ALTIBASE HDB 는외부프로시저객체의관리를위한 SQL 구문을제공한다. 외부프로시저용사용법 17

18 기본사용법 외부프로시저를사용하는일반적인단계는다음과같다. 사용자정의함수작성 진입함수작성 외부라이브러리객체생성 외부프로시저 / 함수객체생성 동적라이브러리생성 외부프로시저호출이절에서는위의각단계에대해서예제와함께설명한다. 사용자정의함수작성 사용자는일반적인 C 또는 C++ 함수를만드는것과동일한 방식으로외부프로시저용 C/C++ 함수를작성할수있다. 이절에서는아래와같은인자유형과반환유형을갖는저장 프로시저와함수에대응하는사용자함수를각각작성해보겠다. procedure str_uppercase_proc( a1 in char(30), a2 out char(30) ) function str_uppercase_func_int( a1 in char(30), a2 out char(30) ) return int function str_uppercase_func_char( a1 in char(30), a2 out char(30) ) return char(30) str_uppercase_proc 에대응하는 str_uppercase 라는사용자정의 C/C++ 함수는 3 개의인자를필요로하며, 함수프로토타입은아래와같다. extern "C" void str_uppercase( char* str1, int str1_len, char* str2 ); 여기에서두번째인자는첫번째인자에입력될문자열의길이를사용자함수로전달하기위해사용된다. str_uppercase_func_int 및 str_uppercase_func_char 에대응하는사용자정의 C/C++ 함수프로토타입은아래와같다. extern "C" int str_uppercase_count( char* str1, int str1_len, char* str2 ); extern "C" char* str_uppercase_return( char* str1, int str1_len, char* str2 ); 아래는사용자정의함수의코드예제이다. 18 C/C++ External Procedures Manual

19 void str_uppercase(char *str1, int str1_len, char * str2) for( int i=0; i < str1_len; i++ ) str2[i] = toupper(str1[i]); int str_uppercase_count(char *str1, int str1_len, char * str2) int capcount = 0; int i = 0; while( i < str1_len ) if( str1[i] >= 'A' && str1[i] <= 'Z' ) capcount++; i++; return capcount; char* str_uppercase_return(char *str1, int str1_len, char * str2) for( int i=0; i < str1_len; i++ ) str2[i] = toupper(str1[i]); return str2; 주의 : 사용자정의함수선언부에반드시 extern "C" 키워드를써야한다. 진입함수작성 사용자정의함수외에도, 사용자정의함수를실행할정형화된함수가필요하다. 이함수를진입함수 (Entry Function) 라고한다. 에이전트프로세스가진입함수를호출하면진입함수가사용자정의함수를호출하고그결과를반환한다. 따라서동적라이브러리내에진입함수가반드시있어야한다. 진입함수내부에는실제사용자정의함수를호출하는루틴이포함되어야한다. 아래는위의 str_uppercase, str_uppercase_count 와 외부프로시저용사용법 19

20 str_uppercase_return 사용자정의함수를호출하는진입함수의 예제이다. extern "C" void entryfunction(char* func_name, int arg_count, void ** args, void ** returnarg); void entryfunction(char* func_name, int arg_count, void ** args, void ** returnarg) // 사용자정의부분 if(strcmp(func_name, "str_uppercase") == 0) str_uppercase((char*)args[0], *((int*)args[1]), (char*)args[2]); else if(strcmp(func_name, "str_uppercase_count") == 0) if( *returnarg!= NULL ) // int 타입반환 **(int**)returnarg = str_uppercase_count ((char*)args[0], *((int*)args[1]), (char*)args[2]); else if(strcmp(func_name, "str_uppercase_return") == 0) if( returnarg!= NULL ) // char* 타입반환 *(char**)returnarg = str_uppercase_return ((char*)args[0], *((int*)args[1]), (char*)args[2]); 아래는진입함수의각인자에대한설명이다. func_name: 함수의이름을나타내는문자열 arg_count: 인자의개수 args: 인자들의배열. 외부프로시저에서명시한순서를따라야한다. 인자의입출력모드와 PSM 자료형에따라각각맵핑되는 C 자료형이다르므로주의해야한다. returnarg: 반환값을위한인자. 반환값이없는외부프로시저의경우에는이인자에항상 NULL 이반환되며, 외부함수의경우에는반환값을가리키는포인터가반환된다. 주의사항 동적라이브러리내에서진입함수의이름 entryfunction 과인자의자료형은사용자가임의로변경해서는안된다. 20 C/C++ External Procedures Manual

21 한개의라이브러리내에사용자정의함수가두개이상포함된 경우, 하나의진입함수내에사용자정의함수를각각 호출하도록소스코드를작성해야한다. 외부함수가아닌외부프로시저의사용자정의함수를호출한후 반환값을 returnarg 변수에대입하면에이전트프로세스가 비정상종료할수있다. 즉, 외부함수의경우에는 returnarg 가 NULL 이아닌지반드시검사한후함수반환타입에맞게타입 캐스팅하여반환해야한다. 사용자정의함수와마찬가지로진입함수선언부에도반드시 extern "C" 키워드를써야한다. 위예제의사용자정의함수를처리하는부분에서반환값을 대입할 returnarg 변수 ( 진입함수의마지막인자 ) 의 NULL 여부를 검사하는코드가함수반환타입에따라다른점을주의해서 살펴보기바란다. if( *returnarg!= NULL ) // int 타입을반환하는경우... if( returnarg!= NULL ) // char* 타입을반환하는경우 반환값의타입캐스팅 외부함수에대응하는사용자정의함수를호출한후, 함수의 반환형에따라적절한타입으로캐스팅이필요하다. 반환타입 코드상의타입캐스팅 char **(char**)returnarg =... int **( int**)returnarg =... long long **( long long**)returnarg =... float **( float**)returnarg =... double **( double**)returnarg =... char * *(char**)returnarg =... SQL_TIMESTAMP_STRUCT **( SQL_TIMESTAMP_STRUCT**)returnArg =... 외부라이브러리객체생성 ALTIBASE HDB 서버가동적라이브러리파일을식별할수있도록데이터베이스에라이브러리객체를생성해야한다. 예를들어, 사용자가 shlib.so 라는이름의동적라이브러리파일을사용하고자하는경우, 데이터베이스에아래와같이외부라이브러리객체를생성할수있다. 외부프로시저용사용법 21

22 CREATE OR REPLACE LIBRARY lib1 AS 'shlib.so'; 이제 ALTIBASE HDB 는 shlib.so 동적라이브러리파일을 lib1 이라는 외부라이브러리객체로식별한다. 외부프로시저 / 함수객체생성 외부프로시저 ( 사용자정의 C/C++ 함수 ) 를실행하기위해서는먼저 데이터베이스에사용자정의함수를등록하는외부프로시저객체를 생성해야한다. 아래와같은 SQL 구문으로외부프로시저객체를생성할수있다. create or replace procedure str_uppercase_proc( a1 in char(30), a2 out char(30) ) as language c library lib1 name "str_uppercase" parameters( a1, a1 LENGTH, a2 ) ; / 외부함수의경우반환형을명시해야한다. 아래예제는 int 타입과 char 배열을반환하는외부함수를생성하는 SQL 구문이다. create or replace function str_uppercase_func_int( a1 in char(30), a2 out char(30) ) return int as language c library lib1 name "str_uppercase_count" parameters( a1, a1 LENGTH, a2 ) ; / create or replace function str_uppercase_func_char( a1 in char(30), a2 out char(30) ) return char(30) as language c library lib1 name "str_uppercase_return" parameters( a1, a1 LENGTH, a2 ) ; / 동적라이브러리생성 한개이상의사용자정의함수와진입함수가작성된소스파일이준비되면, 컴파일해서동적라이브러리파일을만들수있다. 유닉스 22 C/C++ External Procedures Manual

23 계열에서는 *.so 파일이, 윈도우에서는 *.dll 파일이동적라이브러리 파일이다. 아래예제는유닉스계열에서소스파일을컴파일해서동적 라이브러리를만드는것을보여준다. $ g++ -g -fpic -shared -o shlib.so extproc.cpp 사용자정의함수들과진입함수가여러파일로이루어져있다면, 아래와같이각소스파일을컴파일한후링크하면된다. $ g++ -fpic -c extproc.cpp $ g++ -fpic -c entry.cpp $ g++ -shared -o shlib.so entry.o extproc.o 생성된동적라이브러리파일은 ALTIBASE HDB 서버가인식할수있는위치로이동해야한다. 그위치는 $ALTIBASE_HOME/lib 이며, 이위치는사용자가임의로변경할수없다. $ mv shlib.so $ALTIBASE_HOME/lib/ 외부프로시저호출 다음은 isql 에서외부프로시저를실행하는것을보여주는예제이다. var var1 char(30); var var2 char(30); exec :var1 := 'hello world'; exec str_uppercase_proc( :var1, :var2 ); isql> print var; [ HOST VARIABLE ] NAME TYPE VALUE VAR1 CHAR(30) hello world VAR2 CHAR(30) HELLO WORLD extproc.cpp 다음은위의절에서예로든사용자정의함수를작성한소스파일 extproc.cpp 이다. #include <string.h> #include <ctype.h> extern "C" void str_uppercase( char* str1, int str1_len, char* str2 ); extern "C" int str_uppercase_count( char* str1, int str1_len, char* str2 ); 외부프로시저용사용법 23

24 extern "C" char* str_uppercase_return( char* str1, int str1_len, char* str2 ); extern "C" void entryfunction(char* func_name, int arg_count, void ** args, void ** returnarg); void entryfunction(char* func_name, int arg_count, void ** args, void ** returnarg) if(strcmp(func_name, "str_uppercase") == 0) str_uppercase((char*)args[0], *((int*)args[1]), (char*)args[2]); else if(strcmp(func_name, "str_uppercase_count") == 0) if( *returnarg!= NULL ) // int 타입을반환 **(int**)returnarg = str_uppercase_count ((char*)args[0], *((int*)args[1]), (char*)args[2]); else if(strcmp(func_name, "str_uppercase_return") == 0) if( returnarg!= NULL ) // char* 타입을반환 *(char**)returnarg = str_uppercase_return ((char*)args[0], *((int*)args[1]), (char*)args[2]); void str_uppercase(char *str1, int str1_len, char * str2) for( int i=0; i < str1_len; i++ ) str2[i] = toupper(str1[i]); int str_uppercase_count(char *str1, int str1_len, char * str2) int capcount = 0; int i = 0; while( i < str1_len ) if( str1[i] >= 'A' && str1[i] <= 'Z' ) capcount++; i++; 24 C/C++ External Procedures Manual

25 return capcount; char* str_uppercase_return(char *str1, int str1_len, char * str2) for( int i=0; i < str1_len; i++ ) str2[i] = toupper(str1[i]); return str2; 외부프로시저용사용법 25

26 관련메타테이블과성능뷰 현재데이터베이스에생성된외부라이브러리객체에대한정보를아래의메타테이블에서확인할수있다. SYS_LIBRARIES_ 외부프로시저실행을위해현재생성되어있는에이전트프로세스 (agent process) 의정보를아래의성능뷰에서확인할수있다. V$EXTPROC_AGENT 각메타테이블과성능뷰에대한상세한설명은 General Reference 를참고하도록한다. 26 C/C++ External Procedures Manual

27 관련프로퍼티 아래는외부프로시저를위한에이전트의동작에관련된프로퍼티이다. EXTPROC_AGENT_CONNECT_TIMEOUT EXTPROC_AGENT_IDLE_TIMEOUT 각프로퍼티에대한상세한설명은 General Reference 를참고하도록한다. 외부프로시저용사용법 27

28

29 3. 외부프로시저용 SQL 문 이장은 ALTIBASE HDB 에서외부프로시저를사용하기위해 지원하는 SQL 문을설명한다. 외부프로시저용 SQL 문 29

30 CREATE LIBRARY statement 구문 create_library_statement::= CREATE LIBRARY library_name OR REPLACE user_name. AS IS file_name ; 설명 외부라이브러리객체를새로생성하거나이미생성되어있는외부 라이브러리를새로운외부라이브러리로변경한다. library_name 라이브러리객체의이름을명시한다. file_name 동적라이브러리파일이름을명시한다. 이파일은 $ALTIBASE_HOME/lib 에위치해야한다. 단, 해당디렉토리에사용자가명시한파일이없더라도라이브러리객체는생성된다. 동적라이브러리파일의존재유무는외부프로시저가실행될때검사되며, 만약존재하지않을경우해당외부프로시저객체는 'INVALID' 상태로전이한다. 예제 CREATE OR REPLACE LIBRARY lib1 AS 'shlib.so'; 30 C/C++ External Procedures Manual

31 ALTER LIBRARY statement 구문 alter_library_statement ::= ALTER LIBRARY library_name user_name. COMPILE ; 설명 라이브러리객체를컴파일한다. 외부프로시저용언어로 C 또는 C++ 만지원하는현재로서는, 이 구문을실행하여도서버에서아무런동작이일어나지않는다. 추후 다른언어지원을위해예약된구문이다. 예제 ALTER LIBRARY lib1 COMPILE; 외부프로시저용 SQL 문 31

32 DROP LIBRARY statement 구문 drop_library_statement ::= DROP LIBRARY library_name user_name. ; 설명 데이터베이스에서외부라이브러리객체를삭제한다. 삭제하려는라이브러리객체에포함된외부프로시저가실행중이어도, 해당라이브러리객체는삭제된다. 단, 데이터베이스에서라이브러리객체만삭제될뿐, 연관된동적라이브러리파일이삭제되지는않는다. 예제 DROP LIBRARY lib1; 32 C/C++ External Procedures Manual

33 CREATE PROCEDURE statement 구문 create_procedure ::= CREATE OR PROCEDURE REPLACE user_name. procedure_name argument_list AS call_spec ; argument_list ::= ( argument_declaration ), argument_declaration ::= argument_name IN OUT data_type IN OUT call_spec ::= LANGUAGE C NAME LIBRARY func_name lib_name parameter_list parameter_list ::= 외부프로시저용 SQL 문 33

34 ( parameter_declaration ), parameter_declaration::= parameter_name INDICATOR LENGTH MAXLEN 설명 외부프로시저를새로생성하거나, 이미생성되어있는외부 프로시저를새로운외부프로시저로변경한다. procedure_name 외부프로시저객체의이름을명시한다. argument_list 인자는생략할수있으며, 인자를명시할경우엔인자의명칭, 데이터타입및입출력구분을명시해야한다. 사용가능한입출력유형은다음세가지중의하나이고생략시에 IN 이기본값이된다. IN: 프로시저호출시입력값이주어지는입력인자 OUT: 프로시저실행후출력값을반환하는인자 INOUT: 입출력공용인자로프로시저호출시입력값이주어지고, 실행후에출력값을반환한다. 외부프로시저가실행될때, IN 인자를사용해서프로시저에값을전달하고, 프로시저는 OUT 인자를사용해서호출한루틴에값을반환한다. call_spec 사용자함수이름과라이브러리객체의이름, 파라미터들을지정한다. 34 C/C++ External Procedures Manual

35 사용자함수이름과라이브러리객체를명시하는순서는상관없으나, 각각한번씩만명시해야한다 fun_name 해당외부프로시저에대응하는사용자정의함수이름을명시한다. lib_name 해당외부프로시저에대응하는사용자함수를포함하는외부 라이브러리객체의이름을명시한다. parameter_list 외부프로시저객체의인자들을이에대응하는사용자정의함수의 인자들로할당하기위해명시하는절이다. 이절의인자이름은 argument_list 의인자이름을그대로사용하는것이일반적이다. 아래의속성을이용하여각파라미터에대해추가적인정보를사용자 정의함수로전달할수있다. 속성과함께명시되는속성파라미터는 실제파라미터를보조하는역할을할뿐, 외부프로시저객체의 인자와는관계가없다. INOUT/ 속성이름 경우자료형 IN 경우 OUT/ 자료형 RETURN 설명 INDICATOR short short * 해당파라미터의값이 NULL인지아닌지를나타낸다. 다음의값중하나를가질수있다. ALTIBASE_EXTPROC_IND_NULL ALTIBASE_EXTPROC_IND_NOTNULL LENGTH int int * 해당파라미터값의길이를바이트단위로나타낸다. 문자열의경우문자의개수가아니라바이트개수임에주의하라. 문자열이아닌경우, 해당자료형의크기를나타낸다. MAXLEN - int 해당파라미터의버퍼크기를나타낸다. IN 모드파라미터의경우이속성파라미터를명시할수없다. 아래예제에서 PARAMETERS 절은사용자정의함수로전달되는 외부프로시저용 SQL 문 35

36 인자들과인자들의속성을지정한다. CREATE OR REPLACE PROCEDURE proc1( a1 IN CHAR(30), a2 OUT CHAR(30) ) AS LANGUAGE C LIBRARY lib1 NAME "str_uppercase" PARAMETERS( a1, a1 LENGTH, a2 ); / 위프로시저에서 PARAMETER 절의인자들로보아, str_uppercase 함수의프로토타입은아래와같을것이다. extern "C" void str_uppercase( char* str1, int str1_len, char* str2 ); 예제 create or replace procedure proc1( a1 in char(30), a2 out char(30) ) as language c library lib1 name "str_uppercase" parameters( a1, a1 LENGTH, a2 ) ; / 36 C/C++ External Procedures Manual

37 DROP PROCEDURE statement 구문 drop_procedure_statement ::= DROP PROCEDURE procedure_name user_name. ; 설명 데이터베이스에서외부프로시저객체를삭제한다. 삭제하고자하는외부프로시저가실행중이라면, 삭제되지않고 오류가발생한다. 예제 DROP PROCEDURE proc1; 외부프로시저용 SQL 문 37

38 CREATE FUNCTION 구문 create_function ::= CREATE OR FUNCTION REPLACE user_name. function_name argument_list RETURN return_type AS call_spec ; argument_list ::= ( argument_declaration ), argument_declaration ::= argument_name IN OUT data_type IN OUT 38 C/C++ External Procedures Manual

39 call_spec ::= LANGUAGE C NAME LIBRARY func_name lib_name parameter_list return_parameter parameter_list ::= ( parameter_declaration ), parameter_declaration::= parameter_name INDICATOR LENGTH MAXLEN return_parameter ::= ( RETURN ) parameter_properties, 설명 외부함수를새로생성하거나이미생성되어있는외부함수를새로운외부함수로변경한다. 외부프로시저용 SQL 문 39

40 func_name 외부함수객체의이름을명시한다. argument_list CREATE PROCEDURE statement 절을참고하라. call_spec 사용자함수이름과라이브러리객체의이름, 및파라미터들과 반환값을지정한다. 사용자함수이름과라이브러리객체를명시하는 순서는상관없으나, 각각한번씩만명시해야한다. fun_name 해당외부프로시저에대응하는사용자정의함수이름을명시한다. lib_name 해당외부프로시저에대응하는사용자함수를포함하는외부 라이브러리객체의이름을명시한다. parameter_list CREATE PROCEDURE statement 절을참고하라. RETURN 외부함수의반환값을가져오는파라미터임을명시하는키워드이다. RETURN 뒤에함수파라미터와마찬가지로속성파라미터를추가로명시할수있다. 속성파라미터에대해서는 CREATE PROCEDURE 구문의설명을참고하기바란다. 제약사항 : RETURN 절은함수의인자에대한파라미터를모두명시한다음마지막에명시해야한다. 그렇지않으면오류가발생한다. RETURN 뒤에속성파라미터를명시하지않으면, RETURN 자체를명시하지않은것과차이가없다. 즉, (a, b, RETURN) 과 (a, b) 는동일하다. 40 C/C++ External Procedures Manual

41 DROP FUNCTION 구문 drop_function_statement ::= DROP FUNCTION function_name user_name. ; 설명 데이터베이스에서외부함수객체를삭제한다. 삭제하려는외부함수가실행중이라면, 삭제되지않고오류가 발생한다. 예제 DROP FUNCTION func1; 외부프로시저용 SQL 문 41

42 EXECUTE 구문 execute_procedure_statement ::= EXEC(UTE) procedure_name ; user_name. execute_function_statement ::= ( ) expression, EXEC(UTE) variable := function_name ; user_name. ( ) expression, 설명 외부프로시저또는외부함수를실행한다. 예제 var var1 char(30); var var2 char(30); exec :var1 := 'hello world'; exec proc1( var1, var2 ); print var2; 42 C/C++ External Procedures Manual

43 찾아보기 A Agent Process 13 ALTER LIBRARY statement 31 C C/C++ 외부프로시저 12 CREATE FUNCTION statement 38 CREATE LIBRARY statement 30 CREATE PROCEDURE statement 33 D DROP FUNCTION statement 41 DROP LIBRARY statement 32 DROP PROCEDURE statement 37 E Entry Function 19 EXECUTE statement 42 I IN 34 INOUT 34 O OUT 34 ㄷ 동적라이브러리 22 ㅁ 메타테이블 26 ㅅ 사용자정의함수 18 성능뷰 26 ㅇ 에이전트프로세스 13 외부라이브러리객체 17, 21 외부프로시저 12 외부프로시저객체 17, 22 외부함수객체 17, 22 ㅈ 자료형 16 진입함수 19 ㅌ 타입캐스팅 21 ㅍ 프로퍼티 27 찾아보기 43

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Altibase Starting User's Manual

Altibase Starting User's Manual ALTIBASE HDB Tools & Utilities Altibase Hadoop Connector User's Manual Release 6 (April 17, 2015) ----------------------------------------------------------- ALTIBASE Tools & Utilities Altibase Hadoop

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Altibase Installation Manual

Altibase Installation Manual ALTIBASE HDB Application Development Windows ODBC Driver Installer User s Guide Release 6.3.1 (April 17, 2015) ----------------------------------------------------------- ALTIBASE Application Development

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

Microsoft Word - 05_SUBPROGRAM.doc

Microsoft Word - 05_SUBPROGRAM.doc ORACLE SUBPROGRAM INTRODUCTION PLSQL 은오라클에서제공하는프로그래밍언어이다. 이는데이터베이스언어인 SQL 과함께효과적으로데이터베이스에접근할수있는방법을제공하고있다. Procedural LanguageSQL 의약자에서볼수있듯이절차적인기능을기본적으로가지는프로그래밍언어이다. PLSQL 은기본적으로블록 (BLOCK) 구조를가지고있다. 블록의기본적인구성은선언부

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

PowerPoint Presentation

PowerPoint Presentation 6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

6장. SQL

6장. SQL 학습목표 SQL이 무엇인지 개념을 설명 테이블을 생성, 변경, 제거할 할 수 있다. 수 있다. 데이터를 검색, 갱신, 삽입, 삭 제할 수 있다. 뷰, 시스템 카탈로그, 저장 프 로시저, 트리거에 대한 개념 을 설명할 수 있다. 2 목차 SECTION 01 SQL의 개요 11 SQL의 역사 12 SQL의 유형별 종류 SECTION 0 21 스키마 22 테이블

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

Altibase Stored Procedure Manual

Altibase Stored Procedure Manual ALTIBASE HDB Application Development Stored Procedures Manual Release 5.5.1 (January 16, 2013) ----------------------------------------------------------- ALTIBASE Application Development Stored Procedures

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf(hihi\n); } warning: conflicting types for functiona 이름 : 학번 : A. True or False: 각각항목마다 True 인지 False 인지적으세요. 1. (Python:) randint 함수를사용하려면, random 모듈을 import 해야한다. 2. (Python:) '' (single quote) 는한글자를표현할때, (double quote) 는문자열을표현할때사용한다. B. 다음에러를수정하는방법을적으세요.

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를 리스트에대한설명중틀린것은 구조체도리스트의요소가될수있다 리스트의요소간에는순서가있다 리스트는여러가지방법으로구현될수있다 리스트는집합과동일하다 다음은순차적표현과연결된표현을비교한것이다 설명이틀린것은 연결된표현은포인터를가지고있어상대적으로크기가작아진다 연결된표현은삽입이용이하다 순차적표현은연결된표현보다액세스시간이많이걸린다 연결된표현으로작성된리스트를 개로분리하기가쉽다 다음은연결리스트에서있을수있는여러가지경우를설명했는데잘못된항목은

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information