COM의 기초 개념

Size: px
Start display at page:

Download "COM의 기초 개념"

Transcription

1 COM 의기초개념 (Basic Concepts of Component Object Model) COM (Component Object Model) 은 OLE 와액티브 X 기술의기초가되는개념으로인터페이스라는미리정의된루틴의세트를통해각객체들간의상호운용을가능하게해주는객체기반의프로그래밍 specification 이다. COM 은기본적으로소스코드수준의표준이아니라바이너리표준이다. 이때문에여러가지다른언어로객체를구현할수있으며, 서로다른플랫폼과다른주소공간에서실행과통신이가능하다. 또한, COM 객체들은유일한 identifier 가있어서생성과인터페이스로의접근이쉬우므로확장, 수정, 업데이트가용이하다. COM 에는 COM 객체의핵심적인기능을정의하고, COM 객체들의생성과관리를가능하게하는 API 함수의세트를정의하고있는표준인터페이스들의세트를포함한라이브러리를가지고있다. 또한, COM 은 OLE 와액티브 X 의기초가되는데, 이들기술들은운영체제의확장부분처럼동작하여이들 type 의객체들을생성하고조작할수있는라이브러리들을제공한다. COM 을기반으로하여개발자들은다른 COM 에기반한기술들과상호작용할수있는그들만의확장부분을생성할수있다. 델파이에는이런 COM, OLE, 액티브 X 응용프로그램의핵심적인요소를쉽게생성할수있는클래스들과마법사들이준비되어있다. Delphi object framework 에는하나의어플리케이션에서쓰이는간단한 COM-호환클래스들로부터 OLE 자동화서버와액티브 X 컨트롤에서쓰일수있는클래스들까지지원하고있다. 델파이를 COM-기반어플리케이션을개발하는데사용하여어플리케이션의내부적으로인터페이스를기반으로한세련된소프트웨어디자인을할수있으며, 윈도우 95 쉘확장이나 DirectX 와같은 COM 에기초한여러가지 API 객체들과상호작용이가능한객체들을생성해낼수있다. 델파이 4 가지원하는위저드로생성할수있는것으로는다음과같은것들이있다. - 단순한 COM 객체 - 자동화서버 - 자동화컨트롤러 - 액티브 X 서버와액티브폼 - 마이크로소프트트랜잭션서버 (MTS) 객체 자주쓰이는용어정의부터하겠다. 인터페이스 : 명확하게정의된목적이있는메소드프로토타입들의세트

2 COM 객체 : CoClass 라고불리는클래스의인스턴스로 COM 인터페이스들의메소드들을실제로구현한다. COM/ 액티브 X 서버 : COM 이나액티브 X 객체들을포함한모듈 (EXE, DLL, OCX). 클래스팩토리 : 지정된 CoClass 로부터 COM 객체를생성할수있는객체타입라이브러리 : 리소스로저장이가능한이진심볼파일로, COM 이나액티브 X 서버에대한데이터형정보를담고있다. COM 아키텍처의이해 이들 COM 객체가동작하는방식은아래그림과같다. 클라이언트어플리케이션이 ClassID 를가지고 COM 객체를생성하는요구를하면, OS 에서제공하는 COM 라이브러리 ( 윈도우 95 의경우 COMOBJ.DLL, OLE32.DLL 에구현되어있다.) 가시스템레지스트리에서해당되는 CLSID 를가진 COM 객체를찾게된다. 이때이 COM 객체는클라이언트어플리케이션의요구를서비스하는 COM 서버로동작하게되는것이다. 이렇게찾은 COM 객체의구현부분을찾아서해당인터페이스멤버함수의포인터를클라이언트의어플리케이션의해당부분에매핑시켜준다. 그런데이때 COM 객체의위치는하나의프로세스공간에있을수도있고, 다른작업공간에있을수도있으며, 심지어는다른컴퓨터안에있을수도있다. 이때 COM 객체의인터페이스포인터의위치를하나의프로세스공간에있는것처럼포장하는과정을마샬링이라고하며, 이때 COM 서버측의포인터를포장하는객체를스텁 (stub), 클라이언트어플리케이션측의객체를프록시 (proxy) 라고한다. 이를그림으로정리해보면다음과같다.

3 만약클라이언트어플리케이션에서크래쉬가일어나게되면 ( 예를들어클라이언트어플리케이션이동작하는컴퓨터가불의의사고로다운된경우 ) 클라이언트의프록시객체는파괴되며, 이와연관된서버측의스텁객체가커넥션이단절된것을감지하여클라이언트객체와연결된수만큼레퍼런스카운트를감소시키며, 이것이 0 이되면서버객체가파괴된다. 반대로, 서버객체가비정상종료되면클라이언트어플리케이션은프록시객체에서에러코드를받을수있게된다 (DLL 의경우에는클라이언트어플리케이션에도크래쉬가일어나면서비정상종료하게된다.). COM 어플리케이션의구성 COM 어플리케이션을구현할때에는다음과같은부분을제공해야한다. COM 인터페이스 객체가자신의서비스를클라이언트에게노출시키는방법이다. 스를연관된메소드와프로퍼티의세트로제공한다. COM 객체는인터페이 COM 서버 EXE, DLL, OCX 형태의모듈로 COM 객체를위한코드를포함하고있다. 이서버안에있으며, COM 서버는하나이상의인터페이스를구현한다. 객체들은 COM 클라이언트서버에서요구한서비스를얻기위해인터페이스를호출하는코드이다. 클라이언트는서버에서제공하는서비스가어떻게구체적으로동작하는지는모른다. COM 클라이언트중가장흔한것은자동화컨트롤러이다.

4 OLE 와액티브 X 객체 OLE, 액티브 X 객체들은비주얼할수도논비주얼할수도있으며, 클라이언트에서같은작업공간에서돌아갈수도있고, 다른작업공간에서돌아갈수도있다. 다른작업공간에서돌아가게만들거나 remote-procedure call 을쓸수있게하려면필요한인자들을 package 하고, unpackage 할수있어야한다. 위에서도설명했듯이이와같은과정을마샬링이라고하는데, 이렇게 RPC 를쓰거나프로세스공간을초월한어플리케이션작업을할때에는여러가지방법으로여러가지인자들이마샬링작업을거쳐야하며, 여러가지종류의 OLE 와액티브 X 객체들이서로다른방법의마샬링작업을하게된다. 다음표에생성이가능한 OLE 객체의 type 들을나열해보았다. OLE 객체비주얼작업공간통신타입라이브러리 OLE/Active 문서거의 In-process, cross-process Verbs for marshaling No OLE 자동화 일부 In-process, cross-process, or remote IDispatch automarshaling Recommended 액티브 X 컨트롤 거의 In-process IDispatch automarshaling Required 사용자정의인터 페이스객체 옵션 In-process, cross-process, remote Manual marshaling Recommended OLE 자동화서버들은 IDispatch 인터페이스를구현한객체들이다. IDispatch 는 IUnknown 에서파생되었기때문에 IUnknown 인터페이스도구현하고있다. IUnknown 인터페이스는 IDispatch 인터페이스의메소드들이 OLE 자동화객체의메소드와프로퍼티에접근하는동안서버객체가지원하는다른모든인터페이스들을관리한다. 다음그림은 IUnknown 과 IDispatch 인터페이스를지원하는객체의 IDispatch 인터페이스 vtable 의모식도이다.

5 OLE 자동화컨트롤러는 OLE IDispatch 인터페이스를이용해이인터페이스를구현한 OLE 서버객체에접근하는클라이언트이다. 컨트롤러는반드시먼저객체를생성하고, 그 IDispatch 인터페이스객체의포인터에해당하는 IUnknown 인터페이스를질의 (query) 로알아낸다. OLE 자동화컨트롤러는 OLE 자동화객체에다음의두가지다른방법으로접근이가능하다. - IDispatch 인터페이스를이용한다. - 만약듀얼인터페이스 (dual interface) 가정의된경우라면객체의가상함수테이블 (virtual function table, vtable) 이멤버함수를직접호출한다. 인터페이스라이브러리의이용 특별한 type 의객체를제작하거나사용할때에는그 type 에대한해당되는라이브러리나, 표준객체에대한규칙을참조해야한다. 다음에인터페이스라이브러리의 type 에대한요약과가능한확장성을기술하였다. 1. COM 인터페이스 COM 은인터페이스의표준라이브러리를정의하고있다. 여기에는인터페이스의기본적인기능을정의하는 IUnknown, 외부에서 COM 객체를인스턴스화할때필요한클래스 factory 객체를정의하는 IClassFactory 인터페이스등을포함한다. COM 인터페이스를구현하는클래스의제작에관심이있는개발자들은델파이에서제공하는 TInterfacedObject, TComObject, TTypedComObject, TComObjectFactory, TTypedComObjectFactory 클래스를참조하면도움이된다.

6 2. OLE/ 액티브 X 확장부분 OLE 라이브러리확장부분은많은수의객체 type 을지원하며, 각각의객체는지원할수있거나반드시지원해야하는인터페이스들의정의를가지고있다. OLE 그자체는아주일반적인목적의인터페이스들을많이제공하는데, 이런인터페이스는 IOle 로시작한다. OLE 처럼액티브 X 역시 COM 의구현부분이다. 액티브 X 기술을이용한공통적인어플리케이션에는 Active 문서, 액티브 X 컨트롤등이있다. 이기술은 COM 에대한확장부분으로개발된것으로크기와속도를최적화한기술이다. 3. 액티브도큐먼트 (Active document) 액티브도큐먼트는문서객체와컨테이너에대한인터페이스의라이브러리이다. 이라이브러리에서는그자신의인터페이스를이용해서컨테이너와객체어플리케이션간의링킹과임베딩을위한통신등의다양한서비스를제공한다. 액티브도큐먼트컨테이너를제작하는데관심이있는개발자는 TOleContainer 컴포넌트를이용하면된다. 4. OLE 자동화 OLE 자동화는 IDispatch 인터페이스의구현을필요로한다. OLE 자동화는서로다른작업공간에서의파라미터의전송과패키징, 객체의저장과객체이름의번역등을지원하는서비스를포함한다. OLE 자동화에관심이있는개발자는 IDispatch 인터페이스를구현하고있는 TAutoObject 클래스를이용하면된다. 5. 액티브 X 컨트롤 액티브 X 컨트롤은, 과거에 OLE 컨트롤이나 OCX 로불리던것으로, 액티브 X 라이브러리에있는인터페이스들을구현한객체를가리키는말이다. 이들인터페이스들은객체가이벤트를발생시키고, 데이터소스에바인딩이가능하고, 라이센싱을지원하는인터페이스를제공한다. 델파이는 TActiveXControl 과 TActiveForm 클래스를제공하며동시에쉽게액티브 X 객체를제작할수있도록위저드를제공한다. 6. 커스텀 / 서드파티인터페이스의구현 자기자신의라이브러리와규칙들을정의할수있다. 커스텀또는서드파티인터페이스를 구현하는객체를제작할때에는 TComObject, TTypedComObject, TAutoObject 를기초 클래스로하면된다.

7 클래스팩토리 COM 객체는하나이상의 COM 인터페이스를구현한 CoClass 의인스턴스이며, COM 객체는 CoClass 인터페이스에의해정의된서비스를제공한다. 클래스팩토리는 COM 객체를제작하고등록하는데사용하는객체이다. 클래스팩토리는 CoClass 를인스턴스화하는표준메커니즘을제공한다. 클래스팩토리를이용하여객체를인스턴스화하면클라이언트가유일한 identifier 만알게되면 CoClass 에대해다른것들은알필요가없어진다. 클래스팩토리는생성자 (constructor) 메소드와 argument 등을다룬다. 각각의 CoClass 정의에는클래스팩토리가있다. 클래스팩토리는하나이상의 CoClass 와관련이있을수있으며, 이들각각이인스턴스화될수있다. 어쨌든일단클래스팩토리자신이인스턴스화되면이것은특정클래스 identifier(clsid) 와연관이되며, 이것이생성자 (constructor) 에넘겨진다. 이파라미터는어떤 CoClass 가클래스팩토리에의해인스턴스화되는지를나타낸다. 그래서, 클래스팩토리클래스가하나이상의 CoClass 에적용되면각각의클래스팩토리인스턴스는오직하나의 CoClass 의인스턴스를생성할수있다. 1. CoClass 의인스턴스화 CoClass 는 CoGetClassObject 라는글로벌윈도우 API 함수를호출하여인스턴스화될수있다. 이함수는레지스트리에서 CLSID 를찾고, 서버의패스를알아내어서버를로드하고클래스팩토리인터페이스 ( 보통은 IClassFactory) 에다가포인터를넘긴다. IClassFactory 포인터는 CoClass 의인스턴스를생성할때쓰이는클래스팩토리의 CreateInstance 메소드를호출할때쓰인다. 위의과정을밟지않고, API 함수인 CoCreateInstance 를호출하면위의모든과정을한번에해준다. 일단서버를로딩하면 CoCreateInstance 는자동으로 CoGetClassObject 함수를호출하고, IClassFactory 포인터를통해서 CreateInstance 메소드를호출한다. 어쨌든클래스의여러개의인스턴스를생성할때에는하나의클래스팩토리를이용해서 CreateInstance 메소드를직접호출하는것이빠르다. CoGetClassObject 만이 IClassFactory 인터페이스포인터를제공할수있기때문에, CoCreateInstance 를호출하기보다는 CoGetClassObject 를호출하는것이빠르다. 2. 델파이의클래스팩토리클래스 객체가클래스팩토리가되려면 IClassFactory 인터페이스를지원해야한다. 델파이의 CoClass 들은그에해당하는클래스팩토리클래스들을가지고있다. 이들은 IClassFactory 인터페이스를구현하거나 IClassFactory2 인터페이스를지원한다.

8 IClassFactory2 인터페이스는라이센싱이필요한액티브 X 객체를지원한다. 델파이의클래스팩토리객체들은서버를포함한유닛의 initialization 섹션에서생성되어야한다. 이로인해서버가일단로드되면클래스팩토리는자동적으로사용이가능해진다. 델파이의 COM 서버클래스는 COM 또는액티브 X 서버의제작에쓰이는데, 여기에는클래스팩토리를관리하는메소드들을포함하고있다. 클래스팩토리에는 reference count 를하는기능이있기때문에서버는언제 unload 되어야하는지알수있다. COM, 액티브 X 서버 COM 서버는클라이언트어플리케이션이나라이브러리에서비스를제공하는어플리케이션이나라이브러리를말한다. COM 서버는클라이언트와같은작업공간에서동작하는 DLL 인 in-process 서버일수도있고, 클라이언트와다른작업공간이되같은기계안에서동작하는 EXE 파일인로컬서버일수도있으며, 클라이언트와다른기계에서동작하는리모트서버일수도있다. COM 서버는 COM 객체가존재하는모듈이다. COM 서버는 OLE 자동화객체, 액티브 X 컨트롤, 액티브폼에대한코드를담고있다. 델파이는액티브 X 서버가가지는기본적인기능들을캡슐화한클래스를가지고있는데, 그기능에는다음과같은것들이포함되어있다. 1. 서버의등록, 클래스의등록, 서버를로딩하거나언로딩하거나객체의인스턴스화를담당하는데필요한루틴들을 export 한다. 2. 서버에객체를구현하는데필요한클래스 factory 의생성과관리 3. 서버의 type, help 파일, 서버의이름, 타입라이브러리등의서버에대한핵심적인정보를제공한다. 델파이의서버클래스는타입라이브러리를필수로한다. 여기에는서버에서사용이가능한 객체와인터페이스에대한정보를담고있다. 마샬링 (marshaling) 기전 마샬링은클라이언트가다른프로세스나기계에있는원격객체의인터페이스함수를호출할수있도록해주는기전을말한다. 다른말로하면, 서버프로세스의인터페이스포인터를클라이언트프로세스에서사용할수있는포인터로바꾸고, 클라이언트의파라미터를원격객체의프로세스공간으로옮겨야한다. 어느인터페이스호출에서도클라이언트는 argument 들을스택에밀어넣고, 인터페이스포인터를호출하여함수를실행한다. 만약이때객체가 in-process 가아니면호출된함수는프록시에전달된다. 프록시는 argument 들을마샬링패킷에포장하고, 이를원격객체에

9 전달한다. 원격객체의스텁은이패킷을풀어서, argument 들을스택에집어넣고, 객체의구현부분을호출한다. 즉, 객체는클라이언트의함수호출하는방식을자신의프로세스에서자신의주소를이용하여재생성하는것이다. 어떤형태의마샬링을사용할것인가하는문제는 COM 객체가구현된방법에달려있다. IDispatch 인터페이스가제공되는경우에는표준마샬링기법을이용하게된다. 이방법은시스템표준 RPC 를통해통신하게된다. 자동화 (Automation) 자동화란어플리케이션이다른어플리케이션의객체를제어할수있는능력을말한다. 자동화객체의클라이언트는자동화컨트롤러 (automation controller) 라고하며, 서버객체를자동화객체 (automation object) 라고한다. 자동화는 in-process, 로컬, 원격서버에서모두사용이가능하다. 자동화의가장큰특징은다음의 2 가지이다. 1. 자동화객체는반드시객체의인터페이스와인터페이스메소드, 파라미터등의정보를기술해야한다. 이런정보는보통타입라이브러리에기록되며, 이를이용해여러가지작업을할수있게된다. 델파이 4 에서제작한자동화서버에도타입정보가포함된다. 2. 자동화객체는반드시메소드들을다른어플리케이션이접근할수있도록해야한다. 이를위해반드시 IDispatch 인터페이스를구현해야하며, 이를통해인터페이스의메소드와프로퍼티에접근할수있게된다. 액티브 X 컨트롤 액티브 X 컨트롤은 in-process 서버에서만돌아가는비주얼컨트롤로 OLE 컨테이너어플리케이션에플러그인될수있다. 액티브 X 컨트롤은자체로완전한어플리케이션이될수는없지만, 여러가지어플리케이션에서사용될수있는재사용가능한컨트롤이다. 액티브 X 컨트롤의프로퍼티, 메소드, 이벤트를사용하려면자동화기법을이용해야한다. 액티브 X 컨트롤은웹페이지에서많이사용되고있다. 그렇기때문에액티브 X 는현재웹에서 interactive 한컨텐트를제공하는표준으로점점자리를잡아가고있다. 델파이 4 에서는이런액티브 X 컨트롤을쉽게제작할수있는위저드를제공한다. 타입라이브러리 (type libraries) 타입라이브러리는 COM 객체에어떤인터페이스가존재하는지, 그리고각인터페이스메

10 소드 argument 들의수와데이터형등의정보를담고있다. 또한, CoClass 의 identifier(clsids) 와인터페이스의 identifier(iids) 그리고, 자동화인터페이스메소드에대한디스패치 identifier(dispids) 등도가진다. 타입라이브러리에는그밖에도다음과같은정보를담고있다. - 사용자정의인터페이스와연관된사용자정의데이터형정보 - 인터페이스메소드가아니면서도자동화나액티브 X 서버에의해 export 되는루틴 - 열거형 (enumeration), 구조체 (structure), 공용체 (union), 앨리어스, 모듈데이터형등에대한정보 - 다른타입라이브러리의타입기술에대한레퍼런스 타입라이브러리의생성방법과사용 지금까지의개발도구에서는 IDL(Interface Description Language) 또는 ODL(Object Description Language) 를이용하여스크립트를작성함으로써타입라이브러리를작성했다. 그리고, 이렇게작성한스크립트를컴파일러를동작시켜헤더파일을만들어사용해왔다. 델파이 4 는자동화서버나액티브 X 컨트롤위저드를사용할때타입라이브러리를자동으로만들어준다. 그리고, 타입라이브러리에디터를이용해서타입라이브러리의내용을보면서쉽게정보를편집할수있게해주며, 델파이는해당되는소스를자동으로업데이트한다. 타입라이브러리에디터는자동으로표준타입라이브러리를생성하고, 델파이용인터페이스파일 (.pas 파일 ) 에오브젝트파스칼문법으로인터페이스정의를한다. 외부사용자에게노출될객체들의타입라이브러리를작성하는것은매우중요한작업이다. 예를들면다음과같은것들이있다. - 액티브 X 컨트롤은액티브 X 컨트롤이포함된 DLL 에타입라이브러리가리소스로함께포함되어있기를요구한다. - 자동화서버를구현한어플리케이션은반드시타입라이브러리를제공해서, 클라이언트가 early 바인딩을사용할수있도록해야한다. - Vtable 바인딩을지원하는노출된객체들은반드시타입라이브러리기술되어야한다. 이는 vtable 레퍼런스가컴파일시에사용되기때문이다. - IProvideClassInfo 인터페이스를지원하는클래스에서인스턴스화된객체들은반드시타입라이브러리를가져야하는데, 델파이의 VCL 중에서는 TTypedComObjectClass 를상속한클래스들이해당된다. - Drag-and-drop 에는타입라이브러리가반드시필요한것은아니지만, 제공되면객체를확인할때유용하다.

11 만약인터페이스를단지어플리케이션내부에서만사용할것이라면타입라이브러리는생성 할필요가없다. 타입라이브러리의접근방법과활용 이진타입라이브러리는보통리소스파일 (.res) 의일부이거나.tlb 파일확장자를가진독자적인파일로존재한다. 일단타입라이브러리가생성되면, 오브젝트브라우저 (object browser), 컴파일러등의도구가특별한타입인터페이스를통해타입라이브러리에접근할수있다. 이러한타입인터페이스에는다음과같은것들이있다. 인터페이스 설명 ITypeLib 타입라이브러리에접근할수있는메소드를제공한다. ITypeInfo 타입라이브러리에포함된각객체에대한설명을제공한다. 예를들어, 브라우저는 이인터페이스를이용하여타입라이브러리에서각객체에대한정보를뽑아낸다. ITypeComp 컴파일러가인터페이스에바인드할때필요한접근정보를빨리뽑아낼수있다. 델파이는다른어플리케이션에서타입라이브러리를 import 하거나, 이를사용할수있다. COM 어플리케이션을위해사용된대부분의 VCL 클래스는타입라이브러리와실행중인객체의인스턴스에서타입정보를불러오거나저장할때사용되는핵심인터페이스를제공한다. TTypedComObject VCL 클래스는타입정보를제공하는인터페이스를지원하며, 액티브 X 객체프레임웍에서사용되는기반클래스이다. 어플리케이션에서타입라이브러리를요구하지않아도, 타입라이브러리를사용하면다음과같은잇점을얻을수있다. - 데이터형검사를컴파일시에할수있다. - 자동화에서 early 바이딩을사용할수있으며, vtable 이나듀얼인터페이스를지원하지않는자동화컨트롤러가 dispids 를컴파일시에인코드할수있으며, 이로인한런타임수행성능의향상을얻을수있다. - 타입브라우저 (Type browsers) 로라이브러리를스캔할수있으므로, 클라이언트가개발자가만든객체의특징을볼수있게된다. - RegisterTypeLib 함수를이용하여노출된객체들을레지스트리데이터베이스에등록하는데사용할수있다. - 시스템레지스트리에서객체를제거할때에도 UnRegisterTypeLib 함수를사용할수있다. - 자동화작업이타입라이브러리에서얻은정보를이용하여파라미터를포장하게되므로,

12 로컬서버에접근하는성능이향상된다. 액티브도큐먼트 (Active Documents) 과거에 OLE 도큐먼트로불리던액티브도규먼트는연결 (linking) 과임베딩 (embedding), drag-and-drop, 비주얼편집 (visual editing) 을지원하는 COM 서비스의세트이다. 액티브도큐먼트는사운드클립, 스프레드시트, 텍스트와비트맵과같은다른포맷의데이터와객체를통합할수있다. 액티브 X 컨트롤과는달리액티브도큐먼트는 in-process 서버로한정되지않고, 프로세스의경계를넘어서사용될수있다. 참고로, 액티브도큐먼트의스펙을살펴보면프로세스의경계를넘어설수있도록마샬링이지원되지만, 사실상액티브도큐먼트는동일기계상의다른프로세스에서는사용될수있지만원격서버에서는동작하지않는다. 이는액티브도큐먼트가사용하는데이터형이윈도우핸들, 메뉴핸들과같이주어진기계상의시스템에특정한것들을사용하기때문이다. 대부분이비주얼하지않은자동화객체와는달리, 액티브도큐먼트객체는다른어플리케이션에서도비주얼하다. 그러므로, 액티브도큐먼트객체는디스플레이나출력장치에비주얼하게보여지는데사용되는프리젠테이션데이터 (presentation data) 와객체를편집할때사용되는원시데이터 (native data) 의 2 가지데이터종류를가지게된다. 액티브도큐먼트객체는도큐먼트컨테이너이거나도큐먼트서버일수있다. 델파이 4 는액티브도큐먼트를생성하는자동화위저드를제공하지않지만, TOleContainer VCL 클래스를이용하여이미존재하는액티브도큐먼트를연결하거나임베딩할수있다. 또한, TOleContainer 는액티브도큐먼트컨테이너로사용할수도있다. 액티브도큐먼트서버에대한객체를생성하려면 COM 기초클래스하나를사용하고, 지원하고자하는객체데이터형에대한적절한인터페이스를구현하여야하며, 위저드는제공되지않는다. COM 과 VCL 클래스 델파이에서 COM 기술을구현한유닛을살펴보면, 우선 COM 기술의 API 세트와인터페이스정의를오브젝트파스칼의형식에맞도록선언해놓은부분이 ActiveX.pas 와 Ole2.pas, OleCtl.pas, OldDlg.pas 유닛에기록되어있다. ActiveX.pas unit 은델파이에서지원하는인터페이스선언문을사용하여 COM 인터페이스를재선언하고, COM 라이브러리 DLL 에서지원하는 API 세트를정의해놓은유닛이다. 그러므로, COM 기술을위한모든 VCL 클래스들은기본적으로이유닛을사용해야만한다. 이렇게델파이가액티브 X 기술을지원하기위해서제공하는클래스를 DAX(Delphi ActiveX Framework) 라고한다. 실제로 COM 객체클래스에서가장기초클래스가되는 TComObject, TAutoObject, TComClassFactory 등의클래스는 ComObj.pas unit 에구현되어있다. 델파이의모든 COM 객체는 TComObject 클래스에서상속받은객체라고할수있는데, 그선언부분은다

13 음과같으며, 이해를돕기위해필자가약간의주석을달았다. TComObject = class(tobject, IUnknown, ISupportErrorInfo) { 액티브 X.pas unit 에선언된 IUnknown, ISupportErrorInfo 인터페이스를구현한클래스임을나타내 는코드 } private FRefCount: Integer; // 내부적인참조계수로사용되는변수 FFactory: TComObjectFactory; //COM 객체의클래스 factory FController: Pointer; //Aggregation 된경우의 IUnknown 의구현부분 function GetController: IUnknown; protected // 아래의메소드는 IUnknown 자체의구현이다. function IUnknown.QueryInterface = ObjQueryInterface; //QueryInterface 를 TComObject.ObjQueryInterface 가구현한다는의미 function IUnknown._AddRef = ObjAddRef; function IUnknown._Release = ObjRelease; // 다른인터페이스들에대한 IUnknown 메소드 function QueryInterface(const IID: TGUID; out Obj): Integer; stdcall; // 해당 IID 를받아서 IUnknown 의 QueryInterface 를실행 function _AddRef: Integer; stdcall; function _Release: Integer; stdcall; // 아래의메소드는 ISupportErrorInfo 인터페이스를구현한다. function InterfaceSupportsErrorInfo(const iid: TIID): HResult; stdcall; public constructor Create; //Aggregate 의부분이아닌 COM 객체를생성하는메소드 constructor CreateAggregated(const Controller: IUnknown); //Aggregate 된부분으로서의 COM 객체의생성을담당하는메소드 constructor CreateFromFactory(Factory: TComObjectFactory; const Controller: IUnknown); // 실제 constructor 역할을하는메소드로 Create, CreateAggregated 메소드에의해호출된다. COM 객체에메모리를할당하고프로퍼티들을설정한다.

14 destructor Destroy; override; //COM 객체를파괴하는메소드 procedure Initialize; virtual; // 가상함수로초기화에쓰인다. function ObjAddRef: Integer; virtual; stdcall; function ObjQueryInterface(const IID: TGUID; out Obj): Integer; virtual; stdcall; function ObjRelease: Integer; virtual; stdcall; function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override; property Controller: IUnknown read GetController; // 컨트롤러가되는 IUnknown 인터페이스 property Factory: TComObjectFactory read FFactory; property RefCount: Integer read FRefCount; end; {COM class } TComClass = class of TComObject; //TComClass 클래스의정의 TComObject 는클래스 identifier 를가지는 COM 객체에대한기초클래스이다. 이때 CLSID 를사용하는데이것은클래스를데이터베이스레지스트리에등록하고클래스팩토리를통해외부에인스턴스화하는데사용된다. TComObject 의클래스팩토리는 TComObjectFactory 가담당하며, 클래스팩토리의프로퍼티에서이름, 설명, CLSID 등의 TComObject 클래스의여러가지정보를제공한다. 또한, TComObjectFactory 메소드를사용하여 TComObject 클래스를레지스트리에등록하고인스턴스화할수있다. TComObject 는하나의 COM 객체로인스턴스화될수도있고, aggregate 의한부분으로인스턴스화될수도있다. 만약인스턴스화된 COM 객체가 aggregate 의내부객체라면그 IUnknown 인터페이스메소드가적절한컨트롤러인터페이스에의해동작하여 aggregation 을지원하게된다. 결과적으로내부 COM 객체에의해구현된모든인터페이스들은인터페이스참조가생길때마다참조계수 (reference count) 가직접적으로영향받지않고, 컨트롤러인터페이스에의해영향받는다. 마지막으로 TComObject 는 ISupportErrorInfo, InterfaceSupportsErrorInfo 를구현한다. 그러므로, OLE 예외처리와 safecall 호출규칙을지원한다. 델파이의 COM 지원은이렇게 TComObject 를기초클래스로해서풍부한 VCL 클래스로이루어져있다. 이들중가장중요한클래스들은 TTypedComObject, TAutoObject, TActiveXControl 등을들수있다. 이들중 TTypedComObject 와 TAutoObject 는 ComObj.pas unit 에구현되어있으며, TActiveXControl 의 AxCtrls.pas unit 에구현되어있다. AxCtrls.pas unit 에서는 VCL 클래스를액티브 X 컨트롤로전환하기위한 TActiveXControl 클래스의많은인터페이스를구현하고있다.

15 정리 (Summary) 이번장에서는델파이 4 와 COM 에대한기초적인개념설명과내용을알아보았다. COM 과 CORBA 에대해서는델파이가많은일을해주지만, 기초적인개념을이해하고있어야제대로된어플리케이션을만들수있다. 다음장에서는이번장의개념을바탕으로실제 COM 인터페이스를활용하고, COM 객체를만드는방법에대해서알아보도록할것이다.

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

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

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

이것이 델파이 4

이것이 델파이 4 이것이델파이 4! (This Is Delphi 4!) 델파이 4 는현재사용할수있는가장유연하면서도강력한개발도구이다. 델파이 4 는비주얼인터페이스디자인과강력한객체지향언어로서의특징을가지고있는오브젝트파스칼언어를통합하고있다. 개발자는이를이용하여빠르면서도직관적이고, 견고한 Win32 어플리케이션을쉽게개발할수있다. 이번장에서는델파이 4 에서새롭게선보이는여러가지기능과특징들을소개한다.

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

설계란 무엇인가?

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

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

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 - Chap12-OOP.ppt

Microsoft PowerPoint - Chap12-OOP.ppt 객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

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

안드로이드 서비스

안드로이드 서비스 Android Service Team 4 20100031 강혜주 20100220 김소라 20100357 김진용 Contents Android Service 01 안드로이드서비스 02 사용이유 03 안드로이드서비스예 04 안드로이드서비스분류 Application Service 05 애플리케이션서비스 06 두가지방법 07 서비스생명주기 08 애플리케이션서비스분류

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

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

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

17장 클래스와 메소드

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

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

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

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

More information

고급 COM 기술의 활용

고급 COM 기술의 활용 고급 COM 기술의활용 (I) (Using Advanced COM Techniques I.) 이번장에서는비교적고급이라고할수있는 COM 에서컬렉션을구현하는방법과콜백 함수를이용하여인터페이스간통신을하는방법, 그리고연결점 (Connection Point) 인터페 이스를사용하여이벤트를구현하는방법을예제를통해익히도록한다. 컬렉션객체의구현 델파이의컴포넌트들중에는여러개의서브아이템을소유하는클래스들이많다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

OOP

OOP 오브젝트파스칼, C++ 그리고자바의특징 (Characterisitcs of Object Pascal, C++ and Java) 자바는가장일반적인인터넷용언어이며, C++ 은아마도가장흔하게사용되는 OOP 언어일것이다. 이들과델파이에서사용되는오브젝트파스칼의언어적인측면에서의비교를해보면서 OOP 언어에대한감을조금더높여보자. OOP 언어의특징 객체지향프로그래밍 (OOP)

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES 2012.02.18 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone 02-2108-8030 Fax 02-2108-8031 www.softbase.co.kr Copyright 2010 SOFTBase Inc. All rights reserved 목차 1 장 : ActiveX

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå 기초통계프로그래밍 클래스, 객체, 변수, 메소드 hmkang@hallym.ac.kr 금융정보통계학과 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 1 / 26 자바구성파일 소스파일 소스파일 : 사용자가직접에디터에입력하는파일로자바프로그램언어가제공하는형식으로제작 소스파일의확장자는.java 임 컴파일 : javac 명령어를이용하여프로그래머가만든소스파일을컴파일하여실행파일.class

More information

PowerPoint Template

PowerPoint Template 9. 객체지향프로그래밍 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 9.1 개요 9.2 객체지향프로그래밍언어 9.3 추상자료형 9.4 상속 9.5 동적바인딩 9.1 객체지향의개념 (1) 3 객체지향의등장배경 소프트웨어와하드웨어의발전불균형 소프트웨어모듈의재사용과독립성을강조 객체 (object) 란? 우리가다루는모든사물을일컫는말 예 ) 하나의점, 사각형,

More information

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint 장강의노트.ppt 클래스와객체 클래스와객체 객체 : 우리주변의어떤대상의모델 - 예 : 사람, 차, TV, 개 객체 = 상태 (state) + 행동 (behavior) - 예 : 개의상태 - 종자, 이름, 색개의행동 - 짖다, 가져오다 상태는변수로행동은메소드로나타냄 객체는클래스에의해정의된다. 클래스는객체가생성되는틀혹은청사진이다. 2 예 : 클래스와객체 질문 : 클래스와객체의다른예는?

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lab 4 ADT Design 클래스로정의됨. 모든객체들은힙영역에할당됨. 캡슐화 (Encapsulation) : Data representation + Operation 정보은닉 (Information Hiding) : Opertion부분은가려져있고, 사용자가 operation으로만사용가능해야함. 클래스정의의형태 public class Person { private

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 왜생겼나요..? : 절차지향언어가가진단점을보완하고다음의목적을달성하기위해..! 1. 소프트웨어생산성향상 객체지향소프트웨어를새로만드는경우이미만든개체지향소프트웨어를상속받거나객체를 가져다재사용할수있어부분수정을통해소프트웨어를다시만드는부담줄임. 2. 실세계에대한쉬운모델링 실세계의일은절차나과정보다는일과관련된많은물체들의상호작용으로묘사. 캡슐화 메소드와데이터를클래스내에선언하고구현

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

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

 메소드 오버로딩

 메소드 오버로딩 객체지향언어로서의오브젝트파스칼 (Object Pascal As A OOP) 오브젝트파스칼의객체지향성을몰라도델파이어플리케이션을쉽게만들수있다. 단순히폼을하나만들고, 거기에여러가지컴포넌트들을추가하고, 이벤트핸들러에적당한내용의코드들을추가하면그걸로충분한것이다. 그렇지만, 이것을이해하면델파이가어떤방법으로작업을처리하는지이해할수있고, 자신만의컴포넌트를만들어내거나, 비교적커다란프로젝트를진행할때에커다란도움을받게될것이다.

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

C++ Programming

C++ Programming C++ Programming 클래스와데이터추상화 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 객체지향프로그래밍 클래스와객체 2 객체지향프로그래밍 객체지향언어 (Object-Oriented Language) 프로그램을명령어의목록으로보는시각에서벗어나여러개의 독립된단위, 즉 객체 (Object) 들의모임으로파악

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

액티브X 컨트롤의 사용과 제작

액티브X 컨트롤의 사용과 제작 액티브 X 컨트롤, 액티브폼의제작 (Creating ActiveX Controls, ActiveForms) 델파이의 VCL 컴포넌트와액티브 X 컴포넌트는사실의미상으로많은부분이통하지만, 실제구현방법은많은차이가있기때문에 VCL 컨트롤을액티브 X 컨트롤로전환개발하려면사실많은단순작업을해주어야한다. 델파이 4 에서는이런작업을단순화시키는레이어를제공하는데이것이바로액티브

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E > 6. ASP.NET ASP.NET 소개 ASP.NET 페이지및응용프로그램구조 Server Controls 데이터베이스와연동 8 장. 데이터베이스응용개발 (Page 20) 6.1 ASP.NET 소개 ASP.NET 동적웹응용프로그램을개발하기위한 MS 의웹기술 현재 ASP.NET 4.5까지출시.Net Framework 4.5 에포함 Visual Studio 2012

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍

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

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

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

고급 COM 기술의 활용 (II)

고급 COM 기술의 활용 (II) 고급 COM 기술의활용 (II) (Using Advanced COM Techniques II.) 이번장에서는액티브 X 를이용하여여러가지객체나어플리케이션을개발할때부딪힐수있는문제점들과이들에대한해결책을제시할것이다. 그렇게방대한내용은아니지만, 소프트웨어를개발하다보면실제로아주간단한문제로골머리를싸맬때가매우많다. 이번장에서는이런문제들에대해서알아본다. 여기에서소개하는많은팁들은

More information

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770> 저 자 약 력이상정순천향대학교컴퓨터학부교수, sjlee@sch.ac.kr 조영일수원대학교컴퓨터학과교수, yicho@suwon.ac.kr 김은성순천향대학교전기전자공학과교수, eskim@sch.ac.kr 박종득공주대학교컴퓨터공학부교수, pjd@kongju.ac.kr C++ 언어는 C 에 C 언어의증가연산자 ++ 를덧붙인 C++ 라는이름이의미하는바와같이 C 언어의문법을대부분그대로사용하면서객체지향프로그래밍기법을추가한

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - 권장 사양 Autodesk 제품컴퓨터사양 PRONETSOFT.CO 박경현 1 AutoCAD 시스템사양 시스템요구사양 32 비트 AutoCAD 2009 를위한시스템요구사항 Intel Pentium 4 프로세서 2.2GHz 이상, 또는 Intel 또는 AMD 듀얼 코어프로세서 16GH 1.6GHz 이상 Microsoft Windows Vista, Windows XP Home

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

[ 마이크로프로세서 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 Presentation

PowerPoint Presentation 데이터처리프로그래밍 Data Processing Programming 08 객체와클래스 목차 1. 객체와클래스 2. 인스턴스변수, 클래스변수 3. 클래스매직메소드 4. 클래스의상속 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 3 1. 객체와클래스 객체 Object 객체란존재하는모든것들을의미 현실세계는객체로이루어져있고,

More information

2장 변수와 프로시저 작성하기

2장  변수와 프로시저 작성하기 Chapter. RequestDispatcher 활용 요청재지정이란? RequestDispatcher 활용 요청재지정구현예제 Chapter.9 : RequestDispatcher 활용 1. 요청재지정이란? 클라이언트로부터요청받은 Servlet 프로그램이응답을하지않고다른자원에수행흐름을넘겨다른자원의처리결과를대신응답하는것또는다른자원의수행결과를포함하여응답하는것을요청재지정이라고한다.

More information

슬라이드 1

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

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

DLL(Dynamic Linked Library)

DLL(Dynamic Linked Library) 제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일

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 - additional06.ppt [호환 모드]

Microsoft PowerPoint - additional06.ppt [호환 모드] 보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //

More information

제목

제목 Object-Oriented Design Agile for Software Development Story 7. 작 성 자 : 고형호 메 일 : hyungho.ko@gmail.com 홈페이지 : 최초작성일 : 2007.08.10 최종작성일 : 2007.09.05 1 Goal A Set of Contained Responsibilities 2 Content 1.

More information

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상 2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상  2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌 강의계획서. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 학점교 강사명교 강사전화번호 강의시간 시간강의실수강대상 E-mail. 교과목학습목표 차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌어나갈핵심기술의기초로프로그래밍에주목하고있다. 이에본교과목에서객체지향언어의기본개념을학습한후구조적프로그래밍언어와의차이점을학습한다.

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

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android

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

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES 2012.02.18 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone 02-2108-8030 Fax 02-2108-8031 www.softbase.co.kr Copyright 2010 SOFTBase Inc. All rights reserved 목차 1 장 : HTML 연동개요...

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 Chapter 08. 상속과다형성 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2013-2 nd 프로그래밍입문 (2) Chapter 08-1. 객체포인터의참조관계 3 상속된객체와포인터관계 객체포인터 객체의주소값을저장할수있는포인터 AAA 클래스의포인터는 AAA 객체의주소뿐만아니라 AAA

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt 포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 객체지향프로그래밍 (OOP: object-oriented programming) 은우리가살고있는실제세계가객체 (object) 들로구성되어있는것과비슷하게, 소프트웨어도객체로구성하는방법이다. 객체는상태와동작을가지고있다. 객체의상태 (state) 는객체의속성이다. 객체의동작 (behavior) 은객체가취할수있는동작 ( 기능 ) 이다. 객체에대한설계도를클래스 (class)

More information

2.紐⑹감(ok).hwp

2.紐⑹감(ok).hwp 논문 22-1-3 윈도우즈플랫폼에서의프로그램간실행시간상호연동기술에대한조사 Interoperation Techniques On Windows Platform 신승철노상훈권민혁임용수김성민한국기술교육대학교정보미디어공학과 {scshin; noulne; minhyuk; gninraw; smilefe2}@kut.ac.kr 프로그램상호연동기술은웹브라우져, 문서편집기등다양한종류의응용프로그램에서사용되며그필요성이높아지고있다.

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

CORBA 의개념과활용 (II) OMG(Object Management Group) 라는비영리단체는 1989 년 4 월에설립되었다. 이단체는현재존재하는객체지향기술을밑바탕으로하여프로그램들을결합하기위한산업표준안을제정하기위해 600 개이상의컴퓨터단련단체및기업의연합체로구성되어

CORBA 의개념과활용 (II) OMG(Object Management Group) 라는비영리단체는 1989 년 4 월에설립되었다. 이단체는현재존재하는객체지향기술을밑바탕으로하여프로그램들을결합하기위한산업표준안을제정하기위해 600 개이상의컴퓨터단련단체및기업의연합체로구성되어 CORBA 의개념과활용 (II) OMG(Object Management Group) 라는비영리단체는 1989 년 4 월에설립되었다. 이단체는현재존재하는객체지향기술을밑바탕으로하여프로그램들을결합하기위한산업표준안을제정하기위해 600 개이상의컴퓨터단련단체및기업의연합체로구성되어있다. 여기에서객체지향기술을기반으로이기종의분산환경을지원하기위한표준기술을제정하였는데이표준이 OMA(Object

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 - 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

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

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 6. 구조체와클래스 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 구조체 구조체형 함수매개변수로서의구조체 구조체초기화 클래스 정의, 멤버함수 public 과 private

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 언리얼오브젝트 ( U 로시작 ~ ) 일반 C++ 오브젝트 ( F 로시작 ~ ) 언리얼오브젝트선언 언리얼헤더툴 (UHT) 메타정보 (Intermediate 폴더 ) 원본소스 (Source 폴더 ) 1. 언리얼오브젝트이름.generated.h 파일이보이지않더라도일단 include 시켜주자. 나중에생성된다. 2. UCLASS 매크로를사용해헤더툴에게이클래스가언리얼오브젝트임을알려주자.

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

More information