2.紐⑹감(ok).hwp

Size: px
Start display at page:

Download "2.紐⑹감(ok).hwp"

Transcription

1 논문 윈도우즈플랫폼에서의프로그램간실행시간상호연동기술에대한조사 Interoperation Techniques On Windows Platform 신승철노상훈권민혁임용수김성민한국기술교육대학교정보미디어공학과 {scshin; noulne; minhyuk; gninraw; 프로그램상호연동기술은웹브라우져, 문서편집기등다양한종류의응용프로그램에서사용되며그필요성이높아지고있다. 프로그램간상호연동은컴파일시간에이미결정되기도하지만, 내장스크립트언어를통한상호연동처럼실행시간에만결정할수있는경우도있다. 본논문에서는실행시간에상호연동할수있는방법에초점을맞추어설명한다. 또한국내 PC 에서널리사용되고있는윈도우즈운영체제를중심으로여러플랫폼에실제로구현된상호연동기술의사례를조사하였다. 그리고마지막으로이상호연동기술들이인터프리터언어에서의상호연동에어떻게응용될수있는지제시한다. 1 서론 서로다른언어로작성되고독립적으로개발된프로그램의상호연동필요성이높아지고있다. 국내의컴퓨터환경에서쉽게접할수있는예는인터넷익스플로러이다. 비록보안문제들로인해비판을받고있긴하지만 ActiveX 라는형태로다양한프로그램이인터넷익스플로러와상호연동하며동작하고있다. 이상호연동기술을통해인터넷익스플로러안에서바로동영상을재생하고플래시를재생한다. 또한, PDF 나 HWP 와같은다양한문서파일을바로열어볼수있는것역시상호연동기술을통한것이다. 만약이러한상호연동기술이없었다면, 인터넷익스플로러의기능확장을통해얻을수있는편리함을취하기어려웠을것이다. 근래에는엑셀과같은문서작성프로그램에서부터게임에이르기까지다양한분야에서인터프리터를내장하고이를통해여러컴포넌트와상호연동하는응용도이루어지고있다. 특히이러한경우는인터프리터를내장하는프로그램을작성할때어떤컴포넌트와어떻게상호연동할지알수없으며, 실행시간에만결정할수있다. 본논문에서는이러한동적인환경을위해어떤상호연동기술이있는지조사하였다. 상호연동에있어서어려운점은서로다른프로그래밍언어로작성된프로그램간에이루어진다는점이다. 직관적으로는두프로그램의프로그래밍언어가무엇이냐에따라다른상호연동기술을필요로할것같지만, 상호연동기술의선택은오히려플랫폼의종류에의해결정된다. 현재국내 PC 운영체제의대부분을차지하고있는것은윈도우즈이다. 본논문에서는윈도우즈운영체제에서많이사용되고있는플랫폼인 WIN32, JVM 그리고.NET 을중심으로상호연동기술들을살펴본다.

2 2 프로그래밍언어논문지제 22 권 1 호 ( ) 본논문의나머지부분은다음과같이구성된다.2 절에서는상호연동기술의요소를알아보고,3 절에서는여러상호연동기술들을소개한다. 그리고마지막절은결론이다. 2 상호연동기술의요소 상호연동기술을고안할때고려할점은크게두가지이다. 하나는어떻게연동하는프로그램의함수를호출할것인가이고, 또하나는주고받는데이터의호환성을어떻게부여할것인가이다. 함수를호출하는방법은컴퓨터내상호연동인지컴퓨터간상호연동인지에따라달라진다. 컴퓨터내상호연동은효율성을중요시하여함수의포인터를이용한다. 호출하는프로그램에서는어떻게든메모리상에올라가있는이함수포인터를얻어내직접호출을하는방식을취한다. 때문에반드시호출자 (caller) 와피호출자 (callee) 는반드시같은컴퓨터에속해있어야한다. 반면, 컴퓨터간상호연동은메시지를전달하는간접적인방식을사용한다. 많은경우이메시지는소켓을통해전달하며, 호출자는피호출자가다루는 메모리와같은 자원에직접적인접근을하지않는다. 이는호출자와피호출자를완전히분리시켜주며, 동작하는플랫폼이완전히분리되어있더라도무리없이동작가능하다. 이는분산처리와관련된특징이며이러한특성때문에이러한컴포넌트를분산컴포넌트라고한다. 분산컴포넌트여부에따라서상호연동기술을분류하면그림 1 과같다. [ 1] 분산여부별상호연동기술분류 컴퓨터간상호연동기술은플랫폼독립적인특성을갖지만, 컴퓨터내상호연동기술은서론에서언급한것과같이플랫폼에종속된다. 때문에컴퓨터내상호연동기술은그림 2 와같이플랫폼에따라분류할수있다. 상호연동기술의요소중데이터의호환성과관련된문제는마샬링 (marshalling)/ 언마샬링 (unmarshalling) 이라는방법을통해해결한다. 두상호연동하는프로그램이서로다른프로그래밍언어로작성되어있다면한쪽언어에는존재하지만다른한쪽에는존재하지않는데이터타입이존재할가능성이높다. 이는단순한데이터타입의값일수도있지만, 포인터로연결된그래프구조체와같이메모리여기저기흩어져있는복잡한데이터가될수도있다. 이런데이터를두프로그램이주고받으며사용하려고한다면, 두언어가호환할수있는타입으로인코드 / 디코드하는과정이필요하다. 이러한과정을마샬링 / 언마샬링이라고한다. 상호연동기술에따라이에대해서는전혀제한하고있지않은기술도있으며, 제한된표준데이터타입을제시하여항상제시된표준데이터타입으로변환하도록하기도한다.

3 윈도우즈플랫폼에서의프로그램간실행시간상호연동기술 신승철, 노상훈, 권민혁, 임용수, 김성민 3 3 상호연동기술 [ 2] 플랫폼별상호연동기술분류 앞절에서상호연동기술의두요소에대해서살펴보았다. 이절에서는실제사용되고있는상호연동기술과그사용례를살펴본다. 3.1 DLL DLL(Dynamic Link Library) 은상호연동을위해 WIN32 플랫폼에서가장기본적으로사용되는기술이다. 현재다양한플랫폼에서가장널리사용되고있는언어는 C/C++ 언어이다. 그리고이플랫폼을위해만들어지는실용적인언어는보통 C/C++ 언어와연동을고려한다. 이는 C/C++ 로작성된방대한라이브러리를활용할수있게하는이점을준다. WIN32 플랫폼에서는이를위해 DLL 을사용하며, 그예로 Java, Python, OCaml 등을들수있다. DLL 은호출의방법으로함수포인터를이용한다. DLL 사용과관련된 WIN32 API 로는 LoadLibrary 와 GetProcAddress 가있다. LoadLibrary 는동적으로 DLL 을로드하는역할을하며, GetProcAddress 는함수의이름으로인수로주면함수의포인터를알려준다. 이렇게얻어낸함수포인터를통해직접해당함수를호출할수있다. 단, 여기서의함수포인터는함수의코드위치만을의미하며, 함수의형식인수가어떤모양이며반환타입이어떻게되는지는전혀반영하지않는다. 그것은전적으로프로그래머에의해처리되어야한다. 즉, 완전히동적으로 DLL 의함수를호출하려고한다면이부분에대해서는타입시스템의유용성을포기해야한다. 인수를잘못넣은채호출하는것이허용되며이는해당프로그램의심각한문제를초래할수있다. 이는마샬링문제에도동일하게적용된다. DLL 을통한상호연동에서는어떠한기준도제공되지않으며전적으로상호연동하는두프로그램에책임이있다. 3.2 COM COM(Component Object Model) 역시 WIN32 플랫폼에서기본적으로제공되는기술이다. DLL 이함수수준의상호연동을제공하는것과달리 COM 은클래스수준의상호연동을제공한다. DLL 에서도인스턴스를만드는함수를이용하는편법으로클래스를사용할수있다. 하지만이경우두프로그래밍언어의클래스가호환이되어야만한다. COM 오브젝트를사용하기위해서도마찬가지로 COM 오브젝트와의호환성이필요하긴하지만, 이경우는 COM 기술자체가일종의표준으로쓰이기때문에불특정한프로그래밍

4 4 프로그래밍언어논문지제 22 권 1 호 ( ) 언어로작성된프로그램간의상호연동에도사용할수있다. DLL 이함수포인터를사용하는것과같이 COM 은메소드의호출을위해가상함수테이블 (virtual function table) 을사용하여직접적인호출방법을제공한다. COM 오브젝트를사용할때필요한 API 는 COM 오브젝트를생성하는 CoCreateInstance 라는함수단하나이다. COM 클래스는특정한매커니즘에의해생성한 GUID 라는전세계적으로고유한식별자를갖으며, 이는윈도우즈레지스트리에등록되어 COM 오브젝트생성에사용된다. CoCreateInstance 로주어지는이식별자는같은객체에한해서는전세계적으로고유하므로단순히 DLL 을사용하는경우처럼어떤 DLL 을로드할지결정하기위해 LoadLibrary 를하는작업은불필요하다. 모든 COM 오브젝트는 IUnknown 인터페이스를구현함으로써만들어진다. IUnknown 인터페이스에는 QueryInterface, AddRef, Release 의세개의메소드가존재한다. 뒤의두개는레퍼런스카운팅목적의메소드이며, QueryInterface 는일종의다운캐스팅과같은역할을한다. 이인터페이스를통해특정한메소드를포함하는다른인터페이스의클래스로변환할수가있다. COM 의기본인터페이스에는비주얼베이직과같은인터프리터언어를지원하기위해 IDispatch 인터페이스가있다. 이인터페이스에는 GetIDsOfNames 와 Invoke 라는두메소드가있다. 각각은메소드의이름으로메소드아이디를얻어내고, 메소드아이디로해당메소드의호출을대행해주는메소드이다. 때문에, 이 COM 오브젝트에이메소드가구현되어있다면 QueryInterface 를통해이인터페이스를얻어내어완전히동적인시간에메소드를사용할수있다. COM 은이러한메소드의호출방법에관한측면만을정의하고있지않다. COM 오브젝트의정의는유한한개수의데이터타입만으로정의가능하다. COM 오브젝트를이용하는프로그램들은때문에적절하게마샬링 / 언마샬링을해야한다. 하지만 DLL 에서와달리이데이터타입들은일종의표준으로사용될수있기때문에불특정한프로그래밍언어로작성된프로그램과도무리없이상호연동할수있다. 3.3 Java RMI 윈도우즈상에서동작하는자바가상기계는 JNI 를통해윈도우즈의 DLL 과상호연동을제공해준다. 이러한기술은운영체제에종속되게되며, 자바가갖는플랫폼독립적인특성을잃게한다. 자바는 Java RMI 라는플랫폼독립적인분산컴포넌트기술을사용하고있다. 이를사용하기위한과정은다음과같다. 1. 서비스할원격객체의인터페이스작성 2. 원격객체및서버프로그램작성 3. 원격객체를사용할클라이언트프로그램작성 4. 스텁 (stub) 과스켈레톤 (skeleton) 생성 5. RMI 레지스트리실행 6. 서버 / 클라이언트실행 여기서주목할만한점은스텁과스켈레톤이다. 이는원격객체의프로그램이있으면툴을이용해자동으로생성할수있는데, 스텁은클라이언트에서사용하고스켈레톤은서버 즉, 원격객체 에서사용한다. 스텁은원격객체와동일한인터페이스를가지고있어, 클라이언트는원격객체의메소드를마치일반객체의메소드를호출하는것처럼사용할수있다. 단지, 그호출대상이원격객체자체가아니라스텁객체라는점이다를뿐이다. 스텁객체는 TCP 를통해서버쪽의스켈레톤객체와연결되어있어, 스텁객체의메소드가호출되면이연결을통해스켈레톤

5 윈도우즈플랫폼에서의프로그램간실행시간상호연동기술 신승철, 노상훈, 권민혁, 임용수, 김성민 5 객체에메소드호출을요청한다. 스켈레톤객체는 TCP 를통해메소드호출요청이들어오면해당메소드에대응하는원격객체의메소드를대신호출해준다. 이와같은구조는클라이언트의입장에서마치로컬컴퓨터에존재하는메소드를호출하는것처럼원격객체를다룰수있게한다. 두객체간의통신에는마샬링 / 언마샬링의과정을거치며이는바이트스트림의형태로이루어진다. Java RMI 는같은 Java 프로그래밍언어간의상호연동임에도불구하고 TCP 통신을통해호출메시지가전달되어야하므로이러한인코딩 / 디코딩과정이필요하다. 이는분산컴포넌트가비분산컴포넌트에비해성능적약점을갖음을보여준다. Java RMI 는이렇게분산환경에서상호연동을할수있는장점을갖고있지만, 메소드호출과정의간접성과복잡성에의해상당한성능하락을가져온다. 3.4 WCF WCF(Windows Communication Foundation) 는.NET 프레임웍 3.0 이상에서제공해주는상호연동기술이다. 이기술은 SOA(Service Oriented Architecture) 를기반으로하며, SOAP(Simple Object Access Protocol) 메시지를이용해상호간에정보를주고받는다. SOAP 메시지는그림 3 과같은형태의 XML 로구성된다. SOAP Header 는전송할서비스의주소, 라우팅과같은메시지처리에필요한정보들을기술하며, SOAP Body 는실질적인메시지를기술한다. [ 3] SOAP 메시지의구조 SOAP 메시지는 http 나 smtp 와같은채널을통해전달이된다. 이방식의장점은로컬컴퓨터에종속되지않는다는점이다. 앞에서언급되었던 DLL 이나 DCOM 이아닌 COM 과같은상호연동기술은코드가메모리에올라가고그코드에대한포인터를통해접근하기때문에, 반드시같은컴퓨터에있어야만정상적으로사용할수있다. XML 은매우복잡한자료구조도일관된방식으로표현할수있다. 때문에 SOAP 메시지가 XML 의형태로표현된다는점은불특정언어와의상호연동의마샬링 / 언마샬링의측면에서큰장점으로볼수있다. 하지만이러한형태로의인코딩 / 디코딩은파싱단계를포함해야하기때문에상당한성능의하락을수반한다.

6 6 프로그래밍언어논문지제 22 권 1 호 ( ) [ I] 기본적인타입처리 int, long, short target integers oat, double target oats char, char target strings bool target boolean(target language 가지원하지않을경우 integer 0,1) structure, array, class pointer long long, long double unsupported 3.5 SWIG 앞에서는상호연동기술에따른호출방식의차이와마샬링 / 언마샬링이어떻게다루어지는지에대해서살펴보았다. SWIG(Simpli ed Wrapper and Interface Generator) 는앞에서소개되었던상호연동기술과는달리마샬링 / 언마샬링에관한문제만을다룬다. 이툴은그림 4 과같이 C/C++ 로작성된프로그램을다른다양한스크립트언어들에서사용할수있도록도와준다. [ 4] SOAP 메시지의구조 비록 COM 과같은상호연동기술이일종의표준데이터타입을제공해준다고하여도마샬러 / 언마샬러의구현은프로그래머가직접해주어야한다. 프로그램간상호연동에서발생하는버그의상당수가마샬러 / 언마샬러의잘못된구현에기인한다. 프로그램을넘어상호연동을하기위해다른데이터타입의값으로변환하는과정은타입검사를통한안전성의확보를무력화시킨다. SWIG 는 C/C++ 의원시프로그램을입력받아마샬러 / 언마샬러를자동으로생성해주어이러한문제를경감시켜준다. SWIG 는표 I 에서보여주는것과같이 C/C++ 의타입을목표스크립트언어에서가장유사한타입으로변환하는것을가정하지만, 정교한수준의마샬링 / 언마샬링을제공하지는않는다. 4 상호연동기술의인터프리터로의적용 앞에서는여러가지종류의상호연동기술에대해서조사하였다. 이를인터프리터로의적용하기위해서는다음과같은두가지경우를고려할수있다.

7 윈도우즈플랫폼에서의프로그램간실행시간상호연동기술 신승철, 노상훈, 권민혁, 임용수, 김성민 7 1. 기존에존재하는인터프리터를사용한다. 2. 새로운인터프리터를구현한다. 1 의방법을사용하기위해서는기본적으로해당인터프리터가상호연동할수있는방법을이미내장하고있어야한다. 윈도우즈플랫폼을위한인터프리터는일반적으로 DLL 사용방법을제공하므로이를이용할수있다. 만약 DLL 을사용할수있다면다른 COM/CORBA 와같은다른상호연동기술도간접적인방법으로사용할수있다. 예를들면 C 로 COM 오브젝트를조정할수있는래퍼함수를만들수있다. 이를 DLL 로만들어인터프리터에서사용을한다면, 함수호출의형태로 COM 오브젝트를사용할수있다. COM 오브젝트와의상호연동의경우 IDispatch 인터페이스를사용한다면특정 COM 오브젝트가아닌 IDispatch 인터페이스로구현한모든 COM 오브젝트를다룰수있으므로이를래퍼함수로만들어사용하면된다. 만약인터프리터가 DLL 은지원하지않지만소켓기능을제공한다면 CORBA 의구현원리를이용할수도있다. DLL 의경우와같이 C 로래퍼함수를만들되서버프로그램의형태로만든다. 이프로그램이패킷에의해래퍼함수를호출할수있는방법을제공해준다면 DLL 로호출하는경우와동일한능력을갖는다. 최악의경우는오직기본입출력 (Standard I/O) 만을제공하는경우이다. 통합개발환경과컴파일러간의상호연동에많이사용되는방법으로컴파일러의에러와같은콘솔출력메시지를통합개발환경에서 GUI 로표현한다. 소켓대신기본입출력을호출의뢰의채널로삼으면앞에서언급한방법들로다른상호연동기술을사용할수있다. 2 의방법을사용하는것은 1 번방법의경우와비교하면매우사소하다고볼수있다. 해당인터프리터를개발하는언어에서상호연동하는기술을가지고있으면직접구현하면된다. COM 오브젝트와같이오브젝트를인터프리터에서사용하기위해서는또다시두가지경우를고려해볼수있다. 1. 인터프리터가클래스를제공하지않는다. 2. 인터프리터가제공하는클래스가 COM 오브젝트와호환되지않는다. 3. 인터프리터가제공하는클래스가 COM 오브젝트와호환되는제공한다. 1 의경우는앞서서술했던것처럼래퍼함수를통한간접적인방법을사용해야한다.2 의경우인터프리터는동적으로클래스를생성할수있으므로인터프리터쪽에서는래퍼클래스를, DLL 쪽에서는래퍼함수를만들어사용할수있다.3 의경우는 COM 오브젝트를직접사용한다. 5 결론 상호연동기술은상호연동이어떤프로그래밍언어간에이루어지는지보다어떤플랫폼간에이루어지는지에따라분류된다. 본논문에서는윈도우즈운영체제에서많이사용되는플랫폼인 WIN32,.NET 그리고 JVM 에대해어떤상호연동기술들이있는지조사하였다. 상호연동기술을구성하는두가지요소인호출방법과데이터호환의속성이실제구현된상호연동기술에서어떻게나타나는지를알아보았다. 호출방법의차이는메모리포인터와 TCP 통신의두가지로나뉘며이는분산컴포넌트의가능성을결정한다. DLL 과 COM 은로컬컴퓨터에서의상호연동에이용할수있으며, WCF 와 Java RMI 는분산환경에서상호연동에이용할수있다. 하지만분산환경에서의호출방식은로컬컴퓨터에서의호출보다더간접적이고복잡한특성으로인해상대적으로성능이떨어지는단점을갖는다. 데이터호환의측면은프로그래밍언어간에데이터타입이호환되지않을가능성이높기때문에발생하며, 바이트스트림이나 XML 과같은형태로마샬링 / 언마샬링하여해결한다. 일반적

8 8 프로그래밍언어논문지제 22 권 1 호 ( ) 으로는마샬러 / 언마샬러를프로그래머가직접구현해야하지만이과정에서많은상호연동의문제를야기하며, 이러한문제는 SWIG 와같은마샬러 / 언마샬러생성툴을이용하여경감시킬수있다. 하지만, 현재로써는그한계가있음을확인할수있었다. 마지막으로인터프리터언어에서상호연동을사용하려고할때대상인터프리터언어혹은구현하는언어가클래스나 COM 오브젝트를지원하는지에따른여러상황이있음을보이고, 각상황에서앞서소개한상호연동기술들을어떻게적용할수있는지를제시하었다. [1] Interoperability, MSDN, Microsoft, 2008, [2] Interop Marsahlling, MSDN, Microsoft, 2008, [3] DLLs, MSDN, Microsoft, 2008, [4] Win32 and COM Development, MSDN, Microsoft, 2008, [5] Windows Communication Foundation, MSDN, Microsoft, 2008, [6] Using WCF, MSDN, Microsoft, 2008, [7] Getting Started Tutorial, MSDN, Microsoft, 2008, [8] The Java Native Interface Programmer s Guide and speci cation, Sun Microsystems, 2008, [9] George T. Heineman, William T. Councill, Component-Based Software Engineering: Putting the Pieces Together, Addison-Wesley Professional, 2001 [10] Enterprise JavaBeans Technology Home page, Sun Microsystems, 2008, [11] Sheng Liang, The Java Native Interface Programmer s Guide and Speci cation, Addison wesley, 1999 [12] David M.Beazley, SWIG Users Manual, Departmaent of Computer Science, University of Utah, 1997 신승철 인하대전자계산학과박사 캔사스주립대연구원 동양대컴퓨터학부부교수 현재한국기술교육대인터넷미디어학부조교수 <> 프로그래밍언어, 프로그램분석및검증, 소프트웨어보안, 수리논리

9 윈도우즈플랫폼에서의프로그램간실행시간상호연동기술 신승철, 노상훈, 권민혁, 임용수, 김성민 9 노상훈 한국기술교육대석사 2008-현재한국기술교육대박사과정 <> 프로그래밍언어, 프로그램분석및검증, 소프트웨어보안, 수리논리 권민혁 현재한국기술교육대석사과정 <> 프로그래밍언어, 프로그램분석및검증 임용수 한국기술교육대학사 <> 프로그래밍언어, 프로그램분석및검증 김성민 한국기술교육대학사 <> 프로그래밍언어, 프로그램분석및검증

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

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

ThisJava ..

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

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

유니티 변수-함수.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

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

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

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

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345]) Chapter 17. RMI Mingyu Lim Collaborative Computing Systems Lab, School of Internet & Multimedia Engineering Konkuk University, Seoul, Korea 학습목표 RMI란 RMI 구조 RMI는어떻게동작하는가 로컬객체를원격객체로변경하기 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

17장 클래스와 메소드

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

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

SK IoT IoT SK IoT onem2m OIC IoT onem2m LG IoT SK IoT KAIST NCSoft Yo Studio tidev kr 5 SK IoT DMB SK IoT A M LG SDS 6 OS API 7 ios API API BaaS Backend as a Service IoT IoT ThingPlug SK IoT SK M2M M2M

More information

슬라이드 1

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

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

임베디드시스템설계강의자료 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

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

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

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

쉽게 풀어쓴 C 프로그래밍

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

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

이도경, 최덕재 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

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

JVM 메모리구조

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

More information

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

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

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

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

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

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

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

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Microsoft PowerPoint - RMI.ppt

Microsoft PowerPoint - RMI.ppt ( 분산통신실습 ) RMI RMI 익히기 1. 분산환경에서동작하는 message-passing을이용한 boundedbuffer 해법프로그램을실행해보세요. 소스코드 : ftp://211.119.245.153 -> os -> OSJavaSources -> ch15 -> rmi http://marvel el.incheon.ac.kr의 Information Unix

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

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

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

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

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

11장 포인터

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

More information

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch20. XMLHttpRequest 2014년 1학기 Professor Seung-Hoon Choi 20 XMLHttpRequest XMLHttpRequest 객체 자바스크립트로 Ajax를이용할때사용하는객체 간단하게 xhr 이라고도부름 서버

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

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

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

11장 포인터

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

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

<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

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

2009년 상반기 사업계획

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

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

설계란 무엇인가?

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

More information

기술 이력서 2.0

기술 이력서 2.0 Release 2.1 (2004-12-20) : : 2006/ 4/ 24,. < > Technical Resumé / www.novonetworks.com 2006.04 Works Projects and Technologies 2 / 15 2006.04 Informal,, Project. = Project 91~94 FLC-A TMN OSI, TMN Agent

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

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

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

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

Microsoft PowerPoint - C++ 5 .pptx

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

More information

설계란 무엇인가?

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

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

슬라이드 1

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

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

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

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

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

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

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

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

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

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

초보자를 위한 자바 2 21일 완성 - 최신개정판

초보자를 위한 자바 2 21일 완성 - 최신개정판 .,,.,. 7. Sun Microsystems.,,. Sun Bill Joy.. 15... ( ), ( )... 4600. .,,,,,., 5 Java 2 1.4. C++, Perl, Visual Basic, Delphi, Microsoft C#. WebGain Visual Cafe, Borland JBuilder, Sun ONE Studio., Sun Java

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

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

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

Java 프로그래머를 위한 C# 비교 활용

Java 프로그래머를 위한 C# 비교 활용 Java C#.. Microsoft.NET.NET C#. Microsoft C#,,. Microsoft SUN C# C C++. C# Java. C# Java Java C#.. Java? Java. C#., C# Microsoft. Microsoft..NET C# Microsoft., C#., Java, C#. C#.NET,., XML Java J2EE,.NET

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

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

COM의 기초 개념

COM의 기초 개념 COM 의기초개념 (Basic Concepts of Component Object Model) COM (Component Object Model) 은 OLE 와액티브 X 기술의기초가되는개념으로인터페이스라는미리정의된루틴의세트를통해각객체들간의상호운용을가능하게해주는객체기반의프로그래밍 specification 이다. COM 은기본적으로소스코드수준의표준이아니라바이너리표준이다.

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

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

쉽게

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

More information

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2 예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 kkman@sangji.ac.kr 2 예외 (exception) 실행시간에발생하는에러 (run-time error) 프로그램의비정상적인종료잘못된실행결과 예외처리 (exception handling) 기대되지않은상황에대해예외를발생야기된예외를적절히처리 (exception handler) kkman@sangji.ac.kr

More information

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 메소드의구조자주반복하여사용하는내용에대해특정이름으로정의한묶음 반환형메소드이름 ( 매개변수 ) { 실행문장 1; : 실행문장 N; } 메소드의종류 Call By Name : 메서드의이름에의해호출되는메서드로특정매개변수없이실행 Call By Value : 메서드를이름으로호출할때특정매개변수를전달하여그값을기초로실행하는메서드 Call By Reference : 메서드호출시매개변수로사용되는값이특정위치를참조하는

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

Chap 6: Graphs

Chap 6: Graphs 5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV

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

UML

UML Introduction to UML Team. 5 2014/03/14 원스타 200611494 김성원 200810047 허태경 200811466 - Index - 1. UML이란? - 3 2. UML Diagram - 4 3. UML 표기법 - 17 4. GRAPPLE에 따른 UML 작성 과정 - 21 5. UML Tool Star UML - 32 6. 참조문헌

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

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

´ëÇа¨»ç¹é¼Ł Á¦3ºÎ

´ëÇа¨»ç¹é¼Ł Á¦3ºÎ 제3부 제1장 대학 입시제도 운영 제2장 대학 학사관리 제3장 교수임용 및 조직관리 제4장 내 외부 통제시스템 구축 운영 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

More information

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석 ,, Even the short history of the Web system, the techniques related to the Web system have b een developed rapidly. Yet, the quality of the Webbased application software has not improved. For this reason,

More information

PowerPoint 프레젠테이션

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

More information

슬라이드 1

슬라이드 1 Java Based Enterprise C/S Platform. Sales Dept./ General Manager KilSik, Lee Mobile: 010-4374-8860 E-mail: ben@ari-system.com TM Client First Better than the Best We Deliver Agility Reliability Intelligence

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

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2

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

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

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

쉽게 풀어쓴 C 프로그래밍

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

More information