XML의 이해

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "XML의 이해"

Transcription

1 Technical Notes / Classification: XML XML 의이해 Understanding of XML Release /10

2 Copyright 2010 novo networks. All rights reserved. All information contained herein is the property of novo networks. No part of this publication (whether in hardcopy or electronic form) may be reproduced or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of novo networks. No responsibility is assumed by novo networks for the use thereof nor for the rights of third parties which may be effected in any way by the use thereof. Any representation(s) in this document concerning performance of novo networks product(s) are for informational purposes only and are not warranties of future performance All other trademarks, service marks, registered trademarks, or registered service marks may be the property of their respective owners. All specifications are subject to change without prior notice. 2

3 목차 (Table of Contents) 1. AUDIENCE XML 문법 시작하기 TAG, CONTENT, ELEMENT NESTED ELEMENT CONTENT 의종류 XML IS TREE ATTRIBUTE XML 문서검색하기 XPATH E4X XML 문법 좀더깊게 ESCAPING CHARACTER, CDATA, COMMENT XML DECLARATION NAMESPACE XML SCHEMA LANGUAGE DTD XML SCHEMA DEFINITION(XSD) RELAX NG XML API DOM SAX APPENDIX A. 문서정보 A.1 문서이력 APPENDIX B. REFERENCES

4 1. Audience 이문서는 XML(Extensible Markup Language) 를처음접하는사람을위해작성되었으며, XML 문법과 XML 문서내용에접근하는방식등기초적이고일반적인내용을담고있습니다. 추가적으로 XML 라이브러리사용법이나 XML 문서를 display 하는방법 (XSL, CSS 와같은 ) 등이궁금하신분들께서는 reference 의문서나기타다른문서를참고하시길바랍니다. 4

5 2. XML 문법 시작하기 Valid XML document XML 문법에대해설명하기전에 'well-formed XML 문서 ' 에대해정의할필요가있습니다. well-formed XML 문서란 W3C 라는단체에서 1998 년에제정한 XML 1.0 권고안을따르는 XML 문서를말합니다 년에최신버전인 1.1 버전이배포되었는데, 두버전은큰차이가없으므로여기서는좀더널리쓰이는 XML 1.0 버전을기준으로삼겠습니다. 통상적으로 'XML 문서 ' 라고하면앞에 'well-formed' 가생략되었다고간주됩니다. well-formed XML 문서를작성하기위한규칙을만든이유는 XML 문서를읽어서쉽게 markup 데이터를구별해낼수있는프로그램을만들기위해서입니다. 이렇게 XML 문법을이해할수있고, XML 문서를읽어어플리케이션이필요로하는정보를제공하는 component 를 XML parser 라고합니다. XML 1.0 규격을따르는 XML parser 가 well-formed XML 이아닌문서를받아들이면에러를표시합니다. 다음절부터는 XML 문서를작성하는과정을통해 XML 1.0 에서정의하는문법규칙을살펴보도록하겠습니다. 2.1 Tag, content, element 게임을좋아하는친구와함께여러가지게임에관한정보를종합하는웹페이지를만들려고합니다. 친구와상의한결과우선게임에관한정보를모아 XML 문서로만들어놓으면좋겠다는결론을내렸습니다. 주제가정해졌으니, 이제첫번째 XML 문서를작성해봅시다. 부등호기호 (<>) 로둘러싸여있는글자들을 tag( 태그 ) 라고합니다. '' 는여는태그, '' 는닫는태그라고부릅니다. 한쌍의여는태그와닫는태그는슬래시 ('/') 가있는지없는지를제외하면모양 ( 대 소문자포함 ) 이같아야합니다. 여기에내용을좀더추가하면다음과같습니다. 5

6 StarCraft 태그사이에 'StarCraft' 라는데이터를적어넣었습니다. 태그사이에적힌데이터를 content( 내용 ) 라고합니다. 이 content 가 XML 을통해저장할실제데이터입니다. 그렇다면태그안에적혀있는 'games' 는무슨의미일까요? 이것은 content 가무엇에관한데이터인지를알려주는역할을합니다. 따라서위의 XML 문서를보고 'StarCraft 는 game 이구나 ' 라고추측할수있습니다. 이렇게 XML 문서는한쌍의태그가 content 를둘러싸고있고, 태그는그 content 에관한정보를제공하는구조를가지고있습니다. 한쌍의태그와그태그안의 content 를모두통틀어 element( 요소 ) 라고부릅니다. 즉 'StarCraft' 가전부 element 인것입니다. 태그안의글자인 'games' 는 element 의이름이라고볼수있습니다. 보통 'StarCraft' 라는 element 를가리켜 'games element' 라고부릅니다. element 이름은숫자나구두점, 혹은 'xml' 이라는문자열 ( 대소문자상관없이 ) 로시작하면안되고, 공백이없어야한다는것을제외하면마음대로지을수있습니다. <game>starcraft</game>, <product>starcraft</product> 는물론심지어 < 게임 > 스타크래프트 </ 게임 > 과같이한글로도쓸수있습니다. 이러한자유로움은 XML 을 'Extensible' 하게만들어주는특성중하나입니다. 6

7 2.2 Nested element StarCraft 위문서는간단해보이긴하지만, 너무간단해서별쓸모가없어보입니다. 이제 좀더쓸만한 XML 문서가되도록확장해봅시다. 게임중에서도비디오게임에 관한데이터를쓰려고합니다. 어떻게해야할까요? <video_game> 위와같이, element 의 content 자리에또다른 element 를집어넣을수있습니다. 이렇게 element 안에 element 가들어있는구조를가리켜 nested element( 중첩된요소 ) 라고합니다. element 를중첩시킬수있다는점은 XML 을강력하게만들어주는특성입니다. 이번에는비디오게임의이름을추가해봅시다. <video_game><title></title> title element 를 video_game element 안에추가하였습니다. 그런데문서가점점길어 질수록읽기도점점힘들어집니다. 위문서를좀더읽기쉽게바꾸어봅시다. <video_game> <title></title> indent( 들여쓰기 ) 를적용하였습니다. 한결알아보기가쉬워보입니다. 계속해서 title element 에내용을채워봅시다. <video_game> <title>starcraft</title> 7

8 게임의이름은 StarCraft 로군요. 이게임의개발사에관한정보도추가하려면어 디에추가해야할까요? <video_game> <title>starcraft</title> <developer></developer> video_game element 안, title element 바로다음에개발사에관한정보를추가하였습니다. 이렇게한 element 안에는여러개의 element 가중첩되어있을수있습니다. element 의중첩에는아무런제한이없으므로원하는대로데이터를가공할수있습니다. <video_game> <title>starcraft</title> <developer>blizzard Entertainment</developer> 개발사의이름도적어보았습니다. 이제이 XML 문서는게임중에서 Blizzard Entertainment 에서개발한 StarCraft 라는이름의비디오게임에관한데이터를뜻하게되었습니다. 8

9 2.3 Content 의종류 content 의종류로는 element content, simple content, mixed content 세가지가있습니다. XML 문서를통해각각의뜻을살펴봅시다. <video_game> <title>starcraft</title> <developer>blizzard Entertainment</developer> StarCraft has a professional competition. 이전절의마지막문서에굵은글씨의데이터 (StarCraft 라는게임에관한특기사 항 ) 를추가한문서입니다. games element 는 content 로 video_game 이라는 element 만을가지고있습니다. content 자리에 element 만있을경우 (element 의개수는상관없음 ) 이를 element content 라고합니다. title element 와 developer element 는 content 로평범한 text 만을가지고있습니다. 이 것을 simple content( 혹은 text content) 라고합니다. 그렇다면 video_game element 는어떨까요? video_game element 는 content 로 title element, developer element 와함께 "StarCraft has a professional competition." 라는내용의 text 도가지고있습니다. 이렇게 content 자리에 element 와 text 가둘다있는것을가리켜 mixed content 라합니다. 9

10 2.4 XML is Tree 이전절의문서에다른종류의비디오게임에관한정보를추가하려합니다. <video_game> <title>starcraft</title> <developer>blizzard Entertainment</developer> StarCraft has a professional competition. <video_game> games element 안에 video_game 이라는이름의 element 를하나더추가하였습니다. 참고로 <video_game> 과같이 content 자리에아무것도없는 element 를가리켜 empty( 빈 ) element 라고부르는데, <video_game/> 이라고축약하여쓸수도있습니다. 두번째 video_game element 안에도첫번째 video_game element 와같이 title 과 developer element 를추가하여줍시다. <video_game> <title>starcraft</title> <developer>blizzard Entertainment</developer> StarCraft has a professional competition. <video_game> <title>call of Duty</title> <developer>infinity Ward</developer> 새 element 들을추가하면서, XML 이 tree 구조를가지고있다는것을눈치채신분 이있으실것같군요. 위의예제를 tree 로표현하면다음과같습니다. 10

11 <name> StarCraft <video_game> <developer> Blizzard Entertainment StarCraft has a professional competition. <name> Call of Duty <video_game> <developer> Infinity Ward XML 이 tree 구조를가지고있다는것은큰장점입니다. table 형태의데이터만저장할수있는 database 에비해 XML 은좀더다양한구조의데이터들을저장할수있습니다. 다음은 XML 의 tree 구조를나타내기위한몇가지용어에대한설명입니다. tree 가하나의 root node 를갖듯이, XML 문서는반드시단하나의 root element( 최 상위요소 ) 를가져야합니다. 위의 XML 문서의 root element 는 games element 입니 다. element 와그 element 의 content 사이의관계를부모-자식관계라고합니다. element 는 content 의 parent( 부모 ) 라고하고, content 는 element 의 child( 자식 ) 라고합니다. 위의 XML 문서에서 games element 는 video_game element 의 parent 이고, title element 는 video_game element 의 child 입니다. root element 는 parent 가없는 element 라고도할수있습니다. parent 의 parent, parent 의 parent 의 parent 와같은관계를 ancestor( 조상 ) 라고하고, child 의 child, child 의 child 의 child 와같은관계를 descendant( 자손 ) 라고합니다. games element 는 developer element 의 ancestor 이고, developer element 는 games element 의 descendant 입니다. parent 가같은 content 끼리의관계를 sibling( 형제 ) 이라합니다. 첫번째 video_game element 와두번째 video_game element 는서로 sibling 관계입니다. 11

12 2.5 Attribute element 에 content 를추가하는것말고도, XML 문서에데이터를추가하는방법이 한가지가더있습니다. 바로 attribute( 속성 ) 입니다. attribute 를이용해서이전절의 문서에게임이발매된연도에관한정보를추가할수있습니다. <video_game release="1998"> <title>starcraft</title> <developer>blizzard Entertainment</developer> <video_game> <title>call of Duty</title> <developer>infinity Ward</developer> 굵게표시된글자가새로작성된 attribute 입니다. attribute 는 element 의여는태그이름옆에 attribute_name="value" 와같은형태로적히며, 태그의이름과 attribute 는공백으로구분됩니다. attribute 는그 attribute 가적혀있는 element 에관한데이터를뜻하게됩니다. 위의문서는 " 첫번째 video_game element 에는 release 라는속성이있는데, 그값은 1998 이다 " 와같은의미를가집니다. 한 element 는여러개의 attribute 를가질수도있습니다. 이번에는게임의장르에 관한정보를추가해봅시다. <video_game release="1998" genre='real-time strategy'> <title>starcraft</title> <developer>blizzard Entertainment</developer> <video_game> <title>call of Duty</title> <developer>infinity Ward</developer> 12

13 여러개의 attribute 는공백을이용하여서로구분됩니다. 위의문서에서와같이큰따옴표 (" ") 외에작은따옴표 (' ') 도쓸수있습니다. 한가지주의할점은한 element 안에는같은이름을가진 attribute 가여러개있어서는안된다는것입니다. 이제두번째 video_game element 에도 attribute 를추가해봅시다. <video_game release="1998" genre="real-time strategy"> <title>starcraft</title> <developer>blizzard Entertainment</developer> <video_game release="2003" genre="first Person Shooter"> <title>call of Duty</title> <developer>infinity Ward</developer> 두번째비디오게임의발매연도는 2003 년이고, 장르는 1 인칭슈팅게임이라는 것을알수있습니다. 13

14 3. XML 문서검색하기 여태까지는새로운 XML 문서를작성하는데에만집중하였으니, 이제관심을이미존재하는 XML 문서를다루는쪽으로돌려봅시다. 친구가게임에관한데이터를모두정리한 XML 문서를건네주었습니다. 그문서에서개발사가 Blizzard Entertainment 인게임들의이름을얻어내고싶습니다. 그런데문서가이전장에서본것처럼몇줄안된다면한눈에봐도이름을찾을수있겠지만, 만약문서가수백, 수천줄이라면어떨까요? 어떻게그많은내용중내가알고싶은데이터만뽑아낼수있을까요? 이번장에서는 XML 문서를 ' 검색 ' 할수있게해주는두가지방법에대해서알아보고자합니다. 3.1 XPath XPath 는 XML Path Language 의약자로, XML 문서에서특정한부분을선택하는 언어입니다. W3C 에서 1999 년에 1.0 버전을배포하였고 2007 년에 2.0 버전을배 포하였는데, 여기서는좀더널리쓰이는 1.0 버전을기준으로설명하겠습니다. XPath 는절대적경로와상대적경로, 축약되지않은문법과축약된문법을제공 하는데, 지금은절대적경로와축약된문법에대해서만알아보도록하겠습니다. 자세한내용이궁금하신분은 reference 의문서들을보시기바랍니다. <video_game release="1998" genre='real-time strategy'> <title>starcraft</title> <developer>blizzard Entertainment</developer> <video_game release="2003" genre="first Person Shooter"> <title>call of Duty</title> <developer>infinity Ward</developer> 위의문서는이전장에서보았던문서입니다. 이제이문서에서원하는정보를얻기위해어떠한표현을써야하는지에대해알아봅시다. 14

15 모든비디오게임에관한정보를찾고싶어요! 비디오게임에관한정보를얻으려면 video_game element 를찾아야합니다. video_game element 는 games element 의자식이므로, /games/video_game 이라는표현으로문서를검색할수있습니다. slash(/) 의왼쪽은 parent element, 오른쪽은 child element 를뜻합니다. games element 의왼쪽에는아무것도없으므로 root element 임을알수있습니다. 문서에는 video_game element 가두개이므로, 검색결과가두개나오겠군요. 문서전체에서게임의이름들만찾고싶어요! 게임의이름은 title element 가가지고있습니다. 특정 element 의자식이아니라문서전체에서찾으려하므로, //title 이라는표현을쓸수있습니다. '//' 는오른쪽 element 가왼쪽 element 의 descendant 임을뜻합니다. 여기서는왼쪽에아무것도없으니 root element 부터모든 descendant 를검색하겠다는뜻입니다. 두번째비디오게임에대한정보를찾고싶어요! 문서를보니 video_game element 가두개있군요. 이렇게같은이름을가진 sibling element 가여러개있을경우, 위에서부터순서대로 index 를붙여검색할수있습니다. 이때의 index 는 1 부터시작합니다. 따라서 /games/video_game[2] 라고검색하면원하는결과를얻을수있습니다. 첫번째비디오게임의발매연도를알고싶어요! 발매연도는 release 라는이름의 attribute 로저장되어있습니다. attribute 를검색할때는이름앞에 를붙여주면됩니다. 라고검색하면원하는결과를얻을수있습니다. 두번째비디오게임의이름과개발사를알고싶어요! 비디오게임의이름과개발사정보는각각 title 과 developer element 가가지고있습니다. 두 element 를각각검색해도되지만, 한꺼번에검색하는방법도있습니다. /games/video_game[2]/* 라고검색하면, 두번째 video_game element 의모든 child element 를찾아줍니다. 여기서 '*'(asterisk) 는 'all' 을뜻합니다. 살짝응용해서 라고검색하면, 두번째 video_game element 의모든 attribute 를찾아줄것입니다. 개발사가 Blizzard Entertainment 인게임의이름을알고싶어요! 일단 "Blizzard Entertainment" 라는내용을가진 developer element 를 child 로가지는 15

16 video_game element 를찾아야합니다. 그리고찾는것이 ' 게임의이름 ' 이니그 video_game element 의 child 중 title element 를찾아야합니다. 이를 XPath 표현으로나타내면 /games/video_game[developer="blizzard Entertainment"]/title 이라고할수있습니다. 이와같이각괄호 ([]) 안에조건식을넣을수있습니다. 3.2 E4X E4X(ECMAScript for XML) 는 ActionScript 등의언어에서쓸수있는확장언어로, XML 을 int 나 char 같은 primitive type 으로취급하여 XML 을쉽게다룰수있게해줍니다. XML 문서를추가, 수정, 편집하는등다양한기능을갖고있지만여기서는 E4X 의검색기능에대해서만간략하게소개하도록하겠습니다. 아래표는이전절에서소개한 XPath expression 과동일한기능을하는 E4X expression 을나타냅니다. XPath expression /games/video_game //title /games/video_game[2] /games/video_game[2]/* /games/video_game[developer="blizzard Entertainment"]/title E4X expression games.video_game games..title games.video_game[1] games.video_game[1].* games.video_game.(developer=="blizzard Entertainment").title E4X 에대해자세한내용이궁금하신분들은 reference 의문서나기타다른문서 들을참고하시기바랍니다. 16

17 4. XML 문법 좀더깊게 2 장에서소개한기초 XML 문법만알아도 XML 문서를이해하고사용하는데큰어려움은없지만, 특수한경우를처리하거나부가적인정보를추가하기위해몇가지더알아야할문법들이존재합니다. 이번장은그러한문법들에대해다루고있습니다. 4.1 Escaping character, CDATA, Comment 여태까지봐왔던 games 문서에 'Command & Conquer' 라는이름을가진게임에관 한정보를넣으려합니다. 이제여러분들은다음과같이 XML 문서를작성할수 있을것입니다. <video_game release="1995" genre="real-time strategy"> <title>command & Conquer</title> <developer>westwood Studios</developer> 그러나애석하게도위문서에는한가지문제가존재합니다. XML 에서 ampersand('&') 문자는특수한용도를위해예약되어있는기호이기때문에 content 자리에그냥써서는안되기때문입니다. 이렇게예약되어있는기호를 content 자리에쓰기위해 escaping character 라는것이존재합니다. 다음은 XML 에서예약되어있는기호들과 escaping character 들입니다. 기호 & (ampersand) Escaping character & < (less-than sign) < > (greater-than sign) > ' (apostrophe) &apos; " (double quotation mark) " 17

18 escaping character 를이용하여위의문서를바르게고치면다음과같습니다. <video_game release="1995" genre="real-time strategy"> <title>command & Conquer</title> <developer>westwood Studios</developer> XML parser 는 content 를읽어가다가 '&' 나 '<' 같은예약어를만나면그다음에나오는문자는 content 가아닌다른문자라고해석합니다. 그래서 simple content 를 'Parsed Character DATA', 줄여서 PCDATA 라고부릅니다. parser 가 content 를일일이해석하지않고문자그대로받아들이게하기위해 CDATA(Character DATA) section 이라는것을사용할수있습니다. <video_game release="1995" genre="real-time strategy"> <title><![cdata[command & Conquer]]></title> <developer>westwood Studios</developer> 이전문서를 CDATA section 을사용하여고친것입니다. 굵게표시한부분이 CDATA section 인데, "<!CDATA[" 로시작하여 "]]>" 로끝납니다. XML parser 는 CDATA section 안에있는글자를해석하지않고그냥문자그대로받아들입니다. 따라서 CDATA section 안에예약어를그대로적을수있습니다. escaping character 를너무많이써야할경우에유용합니다. XML 문서에주석을적는것도가능합니다. 다음은위의문서에주석을추가한 것입니다. 18

19 <video_game release="1995" genre="real-time strategy"> <!-- Date of modifying: 2010/10/4 --> <title><![cdata[command & Conquer]]></title> <developer>westwood Studios</developer> 굵은글씨가주석문입니다. 주석은 "<!--" 로시작해서 "-->" 로끝납니다. 태그안에주석을쓸수는없으며, 주석의내용안에 "--" 문자열이존재해서는안됩니다. 19

20 4.2 XML Declaration 친구로부터건네받은 XML 문서를 XML parser 에입력하여 parsing 해보고자합니다. 이때 XML parser 는 XML 문서자체에대한몇가지정보를알아야할필요가있습니다. 이때쓰이는것이 XML declaration 입니다. 다음은이전절의문서에 XML declaration 을추가한것입니다. 제일윗줄이 XML declaration 의한예입니다. <?xml version='1.0' encoding='utf-8' standalone='yes'?> <video_game release="1995" genre="real-time strategy"> <title>command & Conquer</title> <developer>westwood Studios</developer> XML declaration 을작성하는규칙은다음과같습니다. "<?xml" 로시작해서 "?>" 로끝나야합니다. version 속성은필수이지만 encoding 과 standalone 속성은안써도됩니다. 속성은반드시 version, encoding, standalone 의순서대로쓰여야합니다. XML declaration 은반드시 XML 문서의가장첫부분에쓰여야합니다. 이제 XML declaration 의세가지속성이무엇을뜻하는지살펴보겠습니다. 먼저 version 속성은 XML 권고안의버전을뜻합니다. version 속성의값이 1.1 인문서를 XML 1.0 parser 가읽어들이면 parser 는에러를표시합니다. encoding 속성은 XML parser 가 XML 문서를읽을때어떠한 encoding 을사용할 것인가에관한속성입니다. encoding 속성을작성하지않으면 XML parser 는문서 를기본적으로 UTF-8 이나 UTF-16 으로 encoding 하게됩니다. standalone 속성은해당 XML 문서가다른파일에있는 element 나그림, 개체등을참조하고있는지아닌지를나타냅니다. 이속성의값은반드시 "yes", "no" 둘중하나여야합니다. 값이 "yes" 라면문서가외부파일에의존하고있지않다는것을의미하고, "no" 라면외부파일에의존하고있음을의미합니다. 20

21 4.3 Namespace 여태까지의 XML 문서에서는비디오게임에관한데이터만다루었는데, 이번에는 아케이드게임에관한데이터를추가하려고합니다. 다음은 'Arkanoid' 라는이름 의아케이드게임에대한데이터를추가한 XML 문서입니다. <video_game release="1998" genre="real-time strategy"> <title>starcraft</title> <developer>blizzard Entertainment</developer> <arcade_game release="1986" genre="breakout clone"> <title>arkanoid</title> <developer>taito</developer> </arcade_game> 여러분은이문서를친구에게주었고, 친구는이문서에서게임의이름에대한정보만얻으려한다고가정해봅시다. 문서전체에서 'title' 이라는이름을가진 element 를검색하면 <title>starcraft</title>, <title>arkanoid</title> 라는두개의결과를얻을수있을것입니다. 그런데어떤것이비디오게임의이름이고, 어떤것이아케이드게임의이름인지어떻게알수있을까요? 불행히도위의문서에서는두 title element 를서로구분할수없습니다. element 의이름을작성자가마음대로지을수있다는것은 XML 의장점중하나이지만, 그때문에위와같이 element 이름은같지만그의미가다른경우가발생하기도합니다. 이러한문제를해결하기위한것이바로 XML Namespace 입니다. 다음은 XML namespace 를이용하여비디오게임과아케이드게임을서로구별할 수있게작성한 XML 문서입니다. 21

22 <games xmlns:video=" xmlns:arcade=" <video:video_game video:release="1998" video:genre="real-time strategy"> <video:title>starcraft</video:title> <video:developer>blizzard Entertainment</video:developer> </video:video_game> <arcade:arcade_game arcade:release="1986" arcade:genre="breakout clone"> <arcade:title>arkanoid</arcade:title> <arcade:developer>taito</arcade:developer> < arcade:arcade_game> element 와 attribute 이름앞에 'video' 와 'arcade' 라는접두사 (prefix) 를각각붙여두었습니다. 접두사와이름사이에는 colon(':') 을적어서로구분합니다. ' 접두사를이용하여 element 를서로구분한다는것까지는알겠는데, games element 의 attribute 자리에적혀있는 xmlns:video=" 같은건대체뭐지?' 라는의문이들수있습니다. 바로이부분이 namespace 에서가장중요한부분입니다. element 들을서로구분하기위해접두사를사용하였는데, 그접두사마저똑같다면어떻게될까요? 이런경우를방지하기위해접두사로이미존재하는고유한인터넷주소인 URL(Uniform Resource Locator) 을사용할수있습니다. 그런데 URL 은그대로접두사로사용하기에는너무길고번거로우므로, xmlns attribute 를이용하여글자수를줄이는것입니다. xmlns:video=" 은 ' 지금부터 namespace 접두사로 video 라는것을쓸것인데, 사실 video 는 과같은뜻이다 ' 라는의미를가집니다. 마치 C 언어의 typedef 문과같은역할을합니다. 이렇게선언된 namespace 접두사들은접두사가선언된 element 와그 element 의 descendant 들에서만쓸수있습니다. namespace 는어떤 element 가어떤그룹에속해있는지를알려주는것이외의의미 를가지지않습니다. <arcade:title> 이라는표현은그 element 의이름이 arcade:title 이라는것을뜻하는것이아니라, title 이라는이름을가진 element 가 arcade 라는 22

23 그룹에포함되어있다는것을의미합니다. 이것은 C:\Users 에있는 myfile.txt 와 C:\Program Files 에있는 myfile.txt 는같은이름을가졌지만전혀다른파일이라는 것과비슷한개념입니다. 구분을위해접두사를쓰는것까지는좋은데, 문서가약간지저분해보일수있 습니다. 이런경우에 default namespace 를사용할수있습니다 <video_game release="1998" genre="real-time strategy" xmlns=" <title>starcraft</title> <developer>blizzard Entertainment</developer> <arcade_game release="1986" genre="breakout clone" xmlns=" <title>arkanoid</title> <developer>taito</developer> <arcade_game> xmlns attribute 뒤에아무접두사도적지않으면해당 namespace 는그것이선언된 element 와그 element 의모든 descendant 들의기본 namespace 로인식됩니다. 위의 문서는직전의문서와같은의미를가진다고볼수있습니다. 그런데 " 이름이같은 element 를구분하기위해 namespace 를도입했는데, default namespace 를써서접두사를없애면결국 element 의이름은여전히같은것아닌가?" 하는의문이들수있습니다. 실제로 XPath 는 default namespace 를제대로처리하지못합니다. 그러므로 namespace 를본래의의미에충실하게사용하려면 default namespace 를사용하지않는것이좋습니다. 대신에 default namespace 는 XML Schema Definition(XSD) 등의응용기술을위한 XML 문서에서유용하게쓰입니다. 5.2 절의 XML Schema Definition(XSD) 설명에서 default namespace 의쓰임새를볼수있습니다. 23

24 5. XML Schema Language Valid XML document 2 장과 4 장에서는 XML 문법에대해알아보았습니다. 이제우리는어떤 XML 문서가 XML 문법에맞는지컴퓨터를이용해판별할수있습니다. 그렇다면그 XML 문서가무엇에관한데이터를뜻하는지에대해서도컴퓨터가알아낼수있을까요? 사람은태그의이름과내용을보고 XML 문서가무엇에관한것인지짐작할수있지만, 컴퓨터가그렇게하기는쉽지않습니다. 그대신에컴퓨터는 XML schema language 라는것을사용합니다. XML schema language 는 XML 문서가어떤구조로되어있는지, element 는몇개를가지고있는지, element 의이름은무엇인지, element 의 attribute 와 content 로는어떤것이들어가야하는지등을규정하는데에쓰입니다. XML schema 를이용하여어떤 XML 문서를검사한결과규정된구조에맞게되어있다고판별되면그문서를 valid ( 유효한 ) XML 문서라고부릅니다. 이장에서는가장많이쓰이는 XML schema language 세가지에대해서예제를통 해간략하게소개하도록하겠습니다. 자세한내용이궁금하시면 reference 문서들 을참고하시기바랍니다. 24

25 5.1 DTD DTD 는 Document Type Definition 의약자로, W3C 에서발표한 XML 1.0 버전권고 안에포함되어있는 XML schema language 입니다. <video_game release="1998" genre='real-time strategy'> <title>starcraft</title> <developer>blizzard Entertainment</developer> <video_game release="2003" genre="first Person Shooter"> <title>call of Duty</title> <developer>infinity Ward</developer> 위의 XML 문서를 'valid' 하다고판별하는 DTD 문서를작성하면서 DTD 문법에 대해알아봅시다. <!DOCTYPE games []> 가장먼저적어야할것은 DOCTYPE 선언입니다. 위의 DOCTYPE 선언은 root element 의이름이 games 인 XML 문서에대한 DTD 를작성한다는의미를가집니다. 이후에적을모든 DTD 내용은 DOCTYPE 선언의대괄호 ('[]') 안에들어가게됩니다. 이제첫번째로 root element 인 games element 를정의하는문장을적어봅시다. XML 문서에서 games element 는두개의 video_game element 를가지고있습니다. 애석하게도 DTD 는이름이같은 element 의개수를지정하는문법을가지고있지않으므로, games element 는 0 개이상의 video_game element 를가질수있다고가정합시다. 다음은이를 DTD 로표현한것입니다. <!DOCTYPE games [ ]> <!ELEMENT games (video_game)*> 25

26 element 정의는 <!ELEMENT element_name (content)> 와같은형태로적습니다. '*'(asterisk) 는그앞의내용이 0 번혹은그이상반복될수있음을뜻합니다. 이제 video_game element 가어떤모양을가져야하는지정의해봅시다. video_game element 는 content 로 title 과 developer element 를가지고있습니다. <!DOCTYPE games [ <!ELEMENT games (video_game)*> <!ELEMENT video_game (title, developer)> ]> video_game element 의모양을정의하였습니다. 그런데 XML 문서를보니 video_game element 는 attribute 도가지고있군요. attribute 정의는다음과같은방법 으로할수있습니다. <!DOCTYPE games [ <!ELEMENT games (video_game)*> <!ELEMENT video_game (title, developer)> <!ATTLIST video_game release CDATA #REQUIRED> ]> video_game element 의두 attribute 중 release attribute 에대한정의입니다. attribute 정의는 <!ATTLIST element_name attribute_name type optional> 과같은모양으로적습니다. 위의 DTD 예제에서 'CDATA' 는 release attribute 의값은그냥 string type 임을의미하고, '#REQUIRED' 는 video_game element 는꼭 release attribute 를가지고있어야한다는것을의미합니다. video_game element 의두번째 attribute 인 genre attribute 에대한정의를적으려면 어떻게해야할까요? attribute 정의가 <!ATTRIBUTE 가아닌 <!ATTLIST 로 시작한다는것을눈치채신분들이라면짐작이가능하실것같군요. 26

27 <!DOCTYPE games [ <!ELEMENT games (video_game)*> <!ELEMENT video_game (title, developer)> <!ATTLIST video_game release CDATA #REQUIRED genre CDATA #REQUIRED> ]> genre attribute 를추가한모습입니다. release attribute 정의바로다음에이어서쓸 수있습니다. 마지막으로 title element 와 developer element 의정의를적어봅시다. 두 element 모 두 content 로는 simple content 만을가지고있습니다. <!DOCTYPE games [ <!ELEMENT games (video_game)*> <!ELEMENT video_game (title, developer)> <!ATTLIST video_game release CDATA #REQUIRED genre CDATA #REQUIRED> <!ELEMENT title (#PCDATA)> <!ELEMENT developer (#PCDATA)> ]> 5 장에서 simple content 는 PCDATA 라고도한다고했었습니다. 따라서위와같이 element 의정의를적을수있습니다. 이제위의 DTD 선언을 XML 문서파일의맨위 (XML declaration 이있을경우 XML declaration 과 root element 의사이 ) 에적어넣고, 그문서를 DTD 로 validation check 가가능한 XML parser 에입력하면 XML 문서가 valid 한지아닌지판별할수가있습니다. 27

28 5.2 XML Schema Definition(XSD) DTD 는 XML 권고안에유일하게포함되어있는 XML schema language 이기때문에, 이전절에서보았듯이별도의파일이아닌 XML 문서자체에포함시킬수있습니다. DTD 는이런점이외에도몇가지장점으로인해지금까지도널리쓰여왔지만, 몇가지해결불가능한단점도가지고있습니다. 다음은 DTD 의단점들입니다. DTD 문법은 XML 문법과다릅니다. 따라서아주작고가볍게구현된 XML parser 는 XML 문서의 DTD 부분을그냥무시해버릴수도있습니다. 매우복잡한 XML 문서의구조를나타낼경우, DTD 문서를한눈에봐서는어떤구조인지알아보기가힘들수있습니다. 이전절에서보았던 DTD 문서예제를떠올려봅시다. DTD 문서가그예제의열배정도되는길이라면, 그문서가어떤구조를나타내고있는지빠르게알아내기란쉽지않을것입니다. DTD 는다소간단한문법을가지고있기때문에, 구체적인구조를나타내기가힘듭니다. 데이터형식에대한표현이부족합니다. year 라는속성이있다면이속성은그값으로숫자만가져야하지만, 이전절에서보았듯이 DTD 는이러한경우를표현할수가없습니다. DTD 는 XML namespace 에관한 spec 이완성되기이전에만들어졌기때문에 namespace 를제대로처리하지못합니다. 이러한단점들을해결한 XML schema language 가바로 XML Schema Definition, 약자로는 XSD 입니다 ( 여기서의 "Schema" 는항상대문자로시작해야합니다 ). 이전절에서본 XML 문서를 valid 하다고판별하는 XSD 문서예제를작성하면서 XSD 문법에대해알아봅시다. <schema xmlns=" elementformdefault="qualified"> </schema> 위의예제는가장먼저써야할부분으로, DTD 의 DOCTYPE 선언과비슷한역할을합니다. xmlns 는 namespace 를선언할때쓰는속성이라는것을 4 장에서보았습니다. 그러므로위예제는 schema 라는 root element 가있고그 element 는 " 라는 default namespace 에속해있다는것을나 28

29 타냄을알수있습니다. 이는이 XML 문서가 XSD 문서라는것을알려줍니다. elementformdefault="qualified" 속성은이 XSD 문서로판별할 XML 문서의 element 와 attribute 들이 namespace 와결합되어있다는것을뜻합니다. 지금은 XSD 문서에필수적으로써야하는속성이라는정도로만알고넘어갑시다. element 와 attribute 들의정의는모두이 schema element 내부에적힙니다. 역시 root element 인 games element 에대한정의부터적어봅시다. <schema xmlns=" elementformdefault="qualified"> <element name="games"> <complextype></complextype> </element> </schema> XSD 문서구조는 XML 문법을그대로따르기때문에좀더직관적입니다. 위의예제에서굵게표시한부분을읽어보면 'games 라는이름을가진 element 에대한정의구나 ' 라고쉽게추측할수있습니다. games element 의 content 에대한정의는 'element' element 의 content 자리에적히게됩니다. complextype element 는 games element 가 content 로 element 를가지고있음을뜻합니다. XML 문서에서 games element 는 video_game element 를두개가지고있는데, XSD 에서는 element 개수를자유롭게지정할수있으므로, video_game element 가최소 0 번에서최대 2 번까지나타날수있다고가정해봅시다. <schema xmlns=" elementformdefault="qualified"> <element name="games"> <complextype> <element name="video_game" minoccurs="0" maxoccurs="2"> <complextype></complextype> </element> </complextype> </element> </schema> 29

30 minoccurs attribute 는해당 element 가최소몇번이상나타나야하는지를지정하고, maxoccurs attribute 는최대몇번까지나타날수있는지를지정합니다. attribute 를적지않을경우기본값은 1 입니다. video_game element 도 content 로 element 를가지고있으므로 complextype element 를적어줍니다. video_game element 는 title 과 developer element 를 content 로가지고있습니다. 이를 XSD 로표현하면다음과같습니다. <schema xmlns=" elementformdefault="qualified"> <element name="games"> <complextype> <element name="video_game" minoccurs="0" maxoccurs="unbounded"> <complextype> <sequence> <element name="title" type="string"/> <element name="developer" type="string"/> </sequence> </complextype> </element> </complextype> </element> </schema> sequence element 는그안에적혀있는 element 들이순서대로 XML 문서에등장해야한다는것을뜻합니다. element 정의에적혀있는 type attribute 는 element 가 simple content 만을가질경우그 content 가어떤형식을가지고있는지를지정합니다. 따라서 title 과 developer element 의 content 는 string 형식입니다. 형식지정에관한문법이거의없는 DTD 와는달리 XSD 는정수형, 실수형은물론날짜, 시간등여러형식을사용하여 content 모양에대해제한을둘수있습니다. 마지막으로 video_game element 의두 attribute 에관한정의를해봅시다. 30

31 <schema xmlns=" elementformdefault="qualified"> <element name="games"> <complextype> <element name="video_game" minoccurs="0" maxoccurs="unbounded"> <complextype> <sequence> <element name="title" type="string"/> <element name="developer" type="string"/> </sequence> <attribute name="release" type="gyear" use="required"/> <attribute name="genre" type="string" use="required"/> </complextype> </element> </complextype> </element> </schema> type attribute 는위에서설명한것과같이 attribute 값에대한형식을지정합니다. release attribute 는그값으로연도만을가지기때문에, XSD 권고안에서정의하는연도형식인 'gyear' 를 type 으로적어두었습니다. use attribute 는이 attribute 가꼭존재해야하는지아닌지를나타냅니다. 값이 required 이므로 video_game element 는 release 와 genre attribute 를반드시가지고있어야합니다. 이제이 XSD 문서이름을 games.xsd 라하고, 이를이용하여 XML 문서를검증하 려면 XML 문서의 root element 에다음과같이 attribute 를추가해주어야합니다. <games xmlns:xsi=" xsi:nonamespaceschemalocation="games.xsd"> xmlns:xsi=" attribute 는이 XML 문서가 XSD 로검증할수있는문서임을알려줍니다. xsi:nonamespaceschemalocation="games.xsd" attribute 는이문서가 games.xsd 파일에의해검증될것임을뜻합니다. 31

32 5.3 RELAX NG XSD 는많은기능을가지고있지만, 그만큼배우고사용하기가어렵습니다. 이전절에서봤듯이같은내용을가지고있는 XML schema 문서임에도불구하고 DTD 로는몇줄안되는내용이 XSD 로는상당히길어집니다. DTD 처럼짧고간단하게쓸수있으면서 DTD 보다많은기능을가진 XML schema language 가없을까하는생각이든다면, RELAX NG 를써볼수있습니다. RELAX NG 는 Regular Language for XML Next Generation 의약자로, XSD 와흡사한모양의문법을제공하는동시에, 훨씬직관적이고간단한 compact syntax 도함께제공합니다. 여기서는 compact syntax 를이용하여이전절의 XML 문서를 valid 하다고판단하는 RELAX NG 문서를작성해보도록하겠습니다. element games {} RELAX NG compact syntax 에서는 DTD 의 DOCTYPE 선언이나 XSD 의 schema element 같은선언이필요없습니다. 그냥바로 root element 정의부터작성하면됩니다. 위의예제는 games 라는 element 가존재해야한다는것을뜻합니다. games element 의 content 에대한정의는중괄호 ({}) 안에적습니다. element games { } element video_game {}* RELAX NG compact syntax 는상당히직관적입니다. 위의예제를보면 'games element 안에 video_game element 가있구나 ' 라고어렵지않게추측할수있습니다. '*'(asterisk) 는 DTD 에서와같이 video_game element 가 0 번혹은그이상반복될수있음을뜻합니다. 이제 video_game element 에 attribute 정의를추가해봅시다. attribute 정의는 element 정의와거의흡사한모양을가지고있습니다. 32

33 element games { element video_game { attribute release { xsd:gyear }, attribute genre { text } }* } video_game element 정의에 release 와 genre attribute 정의를추가하였습니다. attribute 정의의중괄호 ('{}') 안에는 attribute 값의형식이들어갑니다. release attribute 는연도를값으로가지므로중괄호안에 xsd:gyear 라고적었고, genre attribute 는일반문자열을값으로가지므로 text 라고적었습니다. xsd:gyear 형식은 XSD 설명에서봤듯이 XSD 권고안에서정의하는데이터타입입니다. RELAX NG 에서는 XSD 의데이터타입을사용할수있습니다. element games { element video_game { attribute release { xsd:gyear }, attribute genre { text }, element title { text }, element developer { text } }* } video_game element 안에 title 과 developer element 정의를추가하면 schema 문서가 완성됩니다. XSD 는물론 DTD 보다도짧고쉬운문법을가지고있음을알수있 습니다. RELAX NG 는 DTD 나 XSD 와는달리 XML 문서와 RELAX NG 문서를연결시키는방법에대한문법이나제한이없습니다. 대신 RELAX NG 를지원하는 parser 나프로그램에서문서연결에대한설정을한후 XML 문서의 validation 을체크해볼수있습니다. 33

34 6. XML API XML 은인간과어플리케이션, 혹은어플리케이션과어플리케이션사이의데이터교환을쉽게하기위해만들어졌습니다. 이는인간뿐만아니라컴퓨터도 XML 문서를읽고해석할수있어야한다는뜻입니다. 컴퓨터가 XML 문서를이해할수있게도와주는 API(Application Programming Interface) 가몇종류있는데, 그중에서가장유명한 DOM 과 SAX 에대해서간단히소개하도록하겠습니다. 6.1 DOM DOM 은 Document Object Model 의약자입니다. DOM 이 XML 문서를어떻게처리 하는지예제를통해알아봅시다. <video_game> <title>starcraft</title> <developer>blizzard Entertainment</developer> 위의 XML 문서를 DOM 방식으로만들어진 XML parser 가읽어들였다고가정해 봅시다. parser 는위의문서를다음과같은 tree 구조의객체로만들어메모리에 저장합니다. <video_game> video_game node : type = ELEMENT_NODE tag name = "video_game" value = not exist children = title, developer node <title> <developer> deveoper node : type = ELEMENT_NODE tag name = "developer" value = "Blizzard Entertainment" StarCraft Blizzard Entertainment text node : type = TEXT_NODE tag name = not exist value = "Blizzard Entertainment" 34

35 이제이 XML 문서의데이터를이용할어플리케이션은 DOM parser 에게 node 단위의데이터객체를달라고요청할수있습니다 ( 예를들면 'developer element node 에대한정보를달라 ' 라는식으로 ). 이렇게어플리케이션이 parser 에게직접어떤데이터를달라고요청한다는뜻에서 DOM parser 를 pull parser 라고도합니다. DOM 은 XML 문서를전부메모리에올려놓고작업을시작하기때문에, 원하는데이터가어떤부분에있든지바로접근이가능하고, 데이터를추가, 수정하거나삭제하는것도가능합니다. 반면, 맨처음에 XML 문서를전부읽어서메모리에올려야하기때문에초기구동속도가느리고, XML 문서가아주큰경우메모리공간이부족할수도있습니다. 6.2 SAX SAX 는 Simple API for XML 의약자로, XML 문서를순차적으로읽어서처리하는 방식입니다. 이전절의 XML 문서예제를 SAX 방식의 parser 로처리한다면다음 과같습니다. start_element : video_game start_element : title character : StarCraft end_element : title start_element : developer character : Blizzard Entertainment end_element : developer end_element : video_game SAX 는 XML 문서를하나의 string 으로인식하여처음부터쭉읽어나갑니다. 그러다가여는태그를만나면 ' 여기여는태그가있다!' 라고어플리케이션에알려주고, character(simple content) 를만나면 ' 여기 character 가있다!' 라고알려주고, 닫는태그를만나면 ' 여기닫는태그가있다!' 라고알려주는방식으로작업을진행합니다. 이렇게차례대로일을진행하다가뭔가특별한일이생기면다른 component 에이일을보고하는방식을 event-driven 방식이라고합니다. parser 가알아서어플리케이션에게데이터를밀어주기때문에 SAX parser 를 push parser 라고도합니다. 35

36 SAX 는문서를처음부터끝까지읽어나가기만하면되기때문에메모리를사용할필요가없습니다. 따라서문서를처리하는속도가빠르고, 매우큰 XML 문서를처리하는데에도어려움이없습니다. 하지만문서를차례대로읽기때문에내가원하는부분의데이터만얻어오는일이불가능하고, 읽기이외의작업은불가능하기때문에문서를수정할수가없습니다. 또한사용방법이 DOM 에비해다소어렵습니다. DOM 과 SAX 는각각상반되는장단점을가지고있기때문에, 원하는작업의특 성을잘생각하여어떤방식의 parser 를고를것인지판단해야합니다. 지금까지 XML 이어떤기술이고, 어떻게다룰수있는지에대해이야기해보았습 니다. 이문서가여러분들이 XML 을이해하는데에조금이나마보탬이되었기를 바랍니다. 36

37 Appendix A. 문서정보 A.1 문서이력 문서목적 XML 에대해이해하는것을돕는다. 작성자 이혜린 / 작성이력 최초작성 :

38 Appendix B. References Beginning XML 2 nd, 3 rd Edition 한국어판 Hunter, Watt, Rafter, Duckett, Ayers, Chase, Fawcett, Gaven, Patterson XML 의개념과다양한응용기술을소개하는책입니다. Extensible Markup Language (XML) 1.0 (Fifth Edition) W3C Recommendation 26 November W3C 의 XML 1.0 권고안입니다. Namespaces in XML 1.0 (Third Edition) W3C Recommendation 8 December W3C 의 XML 1.0 namespace 권고안입니다. Extensible Markup Language (XML) 1.1 (Second Edition) W3C Recommendation 16 August 2006, edited in place 29 September W3C 의 XML 1.1 권고안입니다. XML Tutorial XML 문서작성법을알수있는 tutorial 입니다. XML Path Language (XPath) W3C Recommendation 16 November W3C 의 XPath 1.0 권고안입니다. E4X Tutorial mozilla developer center 의 E4X tutorial 페이지입니다. 38

39 DTD Tutorial DTD 문서작성법을알수있는 tutorial 입니다. XML Schema Part 0: Primer Second Edition W3C Recommendation 28 October W3C 의 XSD 권고안입니다. XML Schema Tutorial XSD 문서작성법을알수있는 tutorial 입니다. Interactive XML tutorials DTD 와 XSD 를이용하여직접 XML 문서의 validation 을체크해볼수있습니다. RELAX NG home page RELAX NG 의홈페이지입니다. specification 문서와문법 tutorial 등을볼수있습니다. 다음은이문서에서는소개하고있지않은 XML 관련기술에대해궁금해하실분들을위한문서입니다. The Extensible Stylesheet Language Family (XSL) XSL(Extensible Stylesheet Language) 의홈페이지입니다. 권고안, tutorial 등다양한문서들을볼수있습니다. 읽기전에 HTML 에대해미리익혀두시는것이좋습니다. Cascading Style Sheets - Learning CSS CSS(Cascading Style Sheets) 의 tutorial 페이지입니다. 역시읽기전에 HTML 에대해미리익혀두시는것이좋습니다. 39

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Elements and attributes 조윤상 ( 과편협기획운영위원 ) 1 Table of Contents 1. Elements( 요소 )? 2. Attributes( 속성 ), PCDATA, CDATA? 3. Elements 선언방법 4. Attributes 속성 2 15 th KCSE Editor s Workshop, Seoul 2015 Elements

More information

인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 )

인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 ) Publisher: International Organization for Migration 17, route des Morillons 1211 Geneva 19 Switzerland Tel: +41.22.717 91 11 Fax: +41.22.798 61 50 E-mail: hq@iom.int Internet: http://www.iom.int ISBN 978

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

XML04

XML04 4 128 129 130 131 132 2003 8 15 !!.

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

untitled

untitled : 2009 00 00 : IMS - 1.0 : IPR. IMS,.,. IMS IMS IMS 1). Copyright IMS Global Learning Consortium 2007. All Rights Reserved., IMS Korea ( ). IMS,. IMS,., IMS IMS., IMS.,., 3. Copyright 2007 by IMS Global

More information

마리오와 소닉 리우 올림픽™

마리오와 소닉 리우 올림픽™ 마리오와 소닉 리우 올림픽 1 사용하기 전에 준비하기 2 유저 콘텐츠에 대하여 3 인터넷으로 이용 가능한 기능 4 보호자 여러분께 5 amiibo란 시작하기 전에 6 게임 소개 7 게임 시작 방법 8 조작 방법 9 데이터 저장과 삭제 통신으로 더욱 즐기기 10 대전 모드 11 포켓 마라톤 12 기록 기타 13 사용 곡명과 작곡자 소개 14 플레이 정보 송신

More information

BSC Discussion 1

BSC Discussion 1 Copyright 2006 by Human Consulting Group INC. All Rights Reserved. No Part of This Publication May Be Reproduced, Stored in a Retrieval System, or Transmitted in Any Form or by Any Means Electronic, Mechanical,

More information

snmpgw1217

snmpgw1217 2001. 12. 17 infobank@postech.ac.kr SNMP SNMP SNMP Agent, XML XML HTTP/XML XML XML manager SNMP agent SNMP agent SNMP(Simple Network Management Protocol) Manager / Agent : Protocol : SMI(Structure of Management

More information

한국학 온라인 디지털 자원 소개

한국학 온라인 디지털 자원 소개 XML 의이해 김현한국학중앙연구원인문정보학교실 hyeon@aks.ac.kr 이저작물 (PPT) 의인용표시방법 : 김현, XML 의이해, 전자문서와하이퍼텍스트 수업자료 (2018) 1. XML 발전의역사 2. XML 의특징 3. Namespace 의활용 1. XML 발전의역사 ARTANET XML이란? XML 이란? XML: extensible Markup Language

More information

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc.,

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc., Autodesk SketchBook Mobile Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc., this publication, or parts

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

피해자식별PDF용 0502

피해자식별PDF용 0502 국제이주기구(International IOM 인신매매 방지 교육 지침서 시리즈는 인신매매 피해자 Organization for Migration, IOM) 에 대한 지원 서비스를 향상시키려는 노력의 일환으로 개발 는 전 세계 곳곳에서 인신매매 방지 되었다. IOM의 풍부한 현장 경험을 기반으로 하여 실무자에 활동에 참여하고 있는 비정부기구, 정 게 도움이 될

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 Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

CONTENTS

CONTENTS 2014-16 1 39 1: 9-2014,. Copyright 2014 by Lee Jong Je ALL RIGHTS RESERVED. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means- electronic,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 How to construct XSL and/or CSS for style sheet of XML files based on the data type definition 조윤상 ( 과편협기획운영위원 ) 1 Table of Contents 1. XML, XSL and CSS? 2. What is XSL? XSLT? XPath? XSL-FO? 3. What is

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

<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

HTML5가 웹 환경에 미치는 영향 고 있어 웹 플랫폼 환경과는 차이가 있다. HTML5는 기존 HTML 기반 웹 브라우저와의 호환성을 유지하면서도, 구조적인 마크업(mark-up) 및 편리한 웹 폼(web form) 기능을 제공하고, 리치웹 애플리케이 션(RIA)을

HTML5가 웹 환경에 미치는 영향 고 있어 웹 플랫폼 환경과는 차이가 있다. HTML5는 기존 HTML 기반 웹 브라우저와의 호환성을 유지하면서도, 구조적인 마크업(mark-up) 및 편리한 웹 폼(web form) 기능을 제공하고, 리치웹 애플리케이 션(RIA)을 동 향 제 23 권 5호 통권 504호 HTML5가 웹 환경에 미치는 영향 이 은 민 * 16) 1. 개 요 구글(Google)은 2010년 5월 구글 I/O 개발자 컨퍼런스에서 HTML5를 통해 플러 그인의 사용이 줄어들고 프로그램 다운로드 및 설치가 필요 없는 브라우저 기반 웹 플랫폼 환경이 점차 구현되고 있다고 강조했다. 그리고 애플(Apple)은 2010년

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

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

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

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

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

step 1-1

step 1-1 Written by Dr. In Ku Kim-Marshall STEP BY STEP Korean 1 through 15 Action Verbs Table of Contents Unit 1 The Korean Alphabet, hangeul Unit 2 Korean Sentences with 15 Action Verbs Introduction Review Exercises

More information

歯튜토리얼-이헌중.PDF

歯튜토리얼-이헌중.PDF leehj@nca nca.or..or.kr 1 : 2 : / 3 : 4 : 5 : 6 : 2 1 : 1.? 2. 3. 4. 5. 3 1.? " MOU (ISO, IEC, ITU, UN/ECE) Electronic Business A generic term covering information definition and exchange requirements

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

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

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

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

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Copyright by Korean Local-government Management Institute. ALL RIGHTS RESERVED. No part of this publication may be reproduced, stored in a retrieval s

Copyright by Korean Local-government Management Institute. ALL RIGHTS RESERVED. No part of this publication may be reproduced, stored in a retrieval s 2014. 5 Copyright by Korean Local-government Management Institute. ALL RIGHTS RESERVED. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any

More information

Javascript

Javascript 1. HTML 이란? HTML 은 Hyper Text Mark Up Language 의약자로예약되어있는각종태그라는명령어를이용하여웹페이지를작성할때사용하는언어입니다. 2. HTML 의기본구조 < 태그 > 내용 < 태그속성 = 변수 > 내용

More information

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

07.... 01V28.

07.... 01V28. National Election Commission 9 September S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23/30 24 25 26 27 28 29 11 November S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

Index Process Specification Data Dictionary

Index Process Specification Data Dictionary Index Process Specification Data Dictionary File Card Tag T-Money Control I n p u t/o u t p u t Card Tag save D e s c r i p t i o n 리더기위치, In/Out/No_Out. File Name customer file write/ company file write

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

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

Web Scraper in 30 Minutes 강철

Web Scraper in 30 Minutes 강철 Web Scraper in 30 Minutes 강철 발표자 소개 KAIST 전산학과 2015년부터 G사에서 일합니다. 에서 대한민국 정치의 모든 것을 개발하고 있습니다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 스크래퍼/크롤러의 작동 원리를 이해한다. 목표

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

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

Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터

Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터 Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터정보를 annotation하고, 다른소스로부터가져온데이터를 VectorNTI 내부포맷으로저장시킨다.

More information

양파 공동체 中 이제 들여보내 다오. 나는 쪼개지고 부서지고 얇아지는 양파를 쥐고 기도했다. 도착하면 뒷문을 열어야지. 뒷문을 열면 비탈진 숲, 숲을 지나면 시냇물, 굴러 떨어진 양파는 첨벙첨벙 건너갈 것이다. 그러면 나는 사라질 수 있겠다. 나는 때때로 양파에 입을

양파 공동체 中 이제 들여보내 다오. 나는 쪼개지고 부서지고 얇아지는 양파를 쥐고 기도했다. 도착하면 뒷문을 열어야지. 뒷문을 열면 비탈진 숲, 숲을 지나면 시냇물, 굴러 떨어진 양파는 첨벙첨벙 건너갈 것이다. 그러면 나는 사라질 수 있겠다. 나는 때때로 양파에 입을 2014 SUMMER vol.17 한남대학교 종합운동장 cover story cinema in hannam 대전의 영화촬영 1번지 한남대 캠퍼스 변호인 / 코리아 / 그 해 여름 양파 공동체 中 이제 들여보내 다오. 나는 쪼개지고 부서지고 얇아지는 양파를 쥐고 기도했다. 도착하면 뒷문을 열어야지. 뒷문을 열면 비탈진 숲, 숲을 지나면 시냇물, 굴러 떨어진 양파는

More information

User Guide

User Guide HP ThinUpdate 관리자 설명서 Copyright 2016 HP Development Company, L.P. Windows는 미국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표 또는 상표입 니다. 기밀 컴퓨터 소프트웨어. 소유, 사용 또는 복사 에 필요한 유효한 사용권을 HP로부터 취득했 습니다. FAR 12.211 및

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 How to produce ChemML and MathML 조윤상 ( 과편협기획운영위원 ) 1 Applications of XML Applications of XML RDF (Resource Description Framework) : 자원의정보를표현하기위한규격, 구문및구조에대한공통적인규칙을지원. RSS (Rich Site Summary) : 뉴스나블로그사이트에서주로사용하는콘텐츠표현방식.

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

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

정보기술응용학회 발표

정보기술응용학회 발표 , hsh@bhknuackr, trademark21@koreacom 1370, +82-53-950-5440 - 476 - :,, VOC,, CBML - Abstract -,, VOC VOC VOC - 477 - - 478 - Cost- Center [2] VOC VOC, ( ) VOC - 479 - IT [7] Knowledge / Information Management

More information

미쓰리 파워포인트

미쓰리 파워포인트 computer & internet 07. FRAME TAG FRAME? 프레임이란? : 웹페이지를수직이나수평으로여러개영역으로나누어다른웹문서가들어갈수있도록구성할수있음. 이때나누어진각각의창을프레임이라고함. 2 FRAME 문서의구조 HTML 문서에서 태그기능을 프레임문서구조에서는 이대신함 일반웹페이지구조 ..

More information

OCW_C언어 기초

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

More information

00-CourseSyllabus

00-CourseSyllabus 웹기술및응용 : Course Syllabus 2018 년도 2 학기 Instructor: Prof. Young-guk Ha Dept. of Computer Science & Engineering Contents Introduction Major Topics Term Project Course Material Grading Policy Class Schedule

More information

이 설명서의 올바른 참고문헌 인용은 다음과 같습니다. SAS Institute Inc. 2015. SAS University Edition: Amazon Web Services 용 설치 가이드 Cary, NC: SAS Institute Inc. SAS Universit

이 설명서의 올바른 참고문헌 인용은 다음과 같습니다. SAS Institute Inc. 2015. SAS University Edition: Amazon Web Services 용 설치 가이드 Cary, NC: SAS Institute Inc. SAS Universit SAS University Edition: Amazon Web Services 용 설치 가이드 i 2014 년 6 월 17 일 이 설명서의 올바른 참고문헌 인용은 다음과 같습니다. SAS Institute Inc. 2015. SAS University Edition: Amazon Web Services 용 설치 가이드 Cary, NC: SAS Institute

More information

예제로 배우는 xslt

예제로 배우는 xslt XML. Meta-Language, XML. XML SGML XML, -, -.,, XML DTD ( ). DTD, DTD. XSLT(Extensible Stylesheet Language Transformation). (Specify).. XSLT XML W3C.,. SGML Tool. XSLT. XML. 16, XSLT,. XSLT XML. XSLT XSLT,.

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

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

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

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

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

BTSK

BTSK 목장이야기 STORY OF SEASONS 1 사용하기 전에 게임 소개 2 어떤 게임? 3 게임의 재미 요소 4 스토리 5 주인공 소개 6 결혼 상대 후보 7 목장 주인과 주민 준비하기 8 조작 방법 9 게임 시작 방법 10 데이터 저장 화면 설명 11 필드 화면 12 메뉴 화면 목장 생활의 기본 13 계절과 시간 14 주인공의 상태 15 액션(1) 16 액션(2)

More information

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1]

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1] * 넋두리 * 저는주식을잘한다고생각합니다. 정확하게는주식감각이있다는것이맞겠죠? 예전에애널리스트가개인주식을할수있었을때수익률은엄청났었습니다 @^^@. IT 먼쓸리가 4주년이되었습니다. 2014년 9월부터시작하였으니지난달로만 4년이되었습니다. 4년간누적수익률이최선호주는 +116.0%, 차선호주는 -29.9% 입니다. 롱-숏으로계산하면 +145.9% 이니나쁘지않은숫자입니다.

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

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 20091584 정정윤 20090404 김희수 20090753 안성민 1. JSON? 2. XML 과 JSON 3. 사용법및예제 4. 참고문헌 JSON? 1) 정의 JavaScript Object Notation 의약자이며, 경량의 DATA- 교환형식이다. 이형식은사람이읽고쓰기에용이하며, 기계가분석하고생성함에도용이하다. JavaScript Programming

More information

Product A4

Product A4 2 APTIV Film Versatility and Performance APTIV Film Versatility and Performance 3 4 APTIV Film Versatility and Performance APTIV Film Versatility and Performance 5 PI Increasing Performance PES PPSU PSU

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

수식모드수식의표현법 수학식표현 조남운 조남운 수학식표현

수식모드수식의표현법 수학식표현 조남운 조남운 수학식표현 조남운 mailto:namun.cho@gmail.com 2008.2.20 AMS-TEX 미국수학회 (American Mathematical Society) 에서만든수학패키지 대부분의수학표현은 AMS-TEX 을이용하고있음. 자세한내용은 AMS-TEX 매뉴얼을참조할것. http://www.ams.org/tex/amstex.html AMS-TEX 패키지선언 \usepackage{amssymb,

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

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

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

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

More information

3장

3장 C H A P T E R 03 CHAPTER 03 03-01 03-01-01 Win m1 f1 e4 e5 e6 o8 Mac m1 f1 s1.2 o8 Linux m1 f1 k3 o8 AJAX

More information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

20주년용

20주년용 지상파 하이브리드 TV 시스템 개발 초고속 통신망의 발전으로 인터넷을 통한 고화질 비디오 서비스가 가능하게 되었고, IPTV 서비스 등의 방통융합서비스도 본격화되고 있 또한 최근에는 단순한 방송시청 뿐 만 아니라 검색이나 SNS 서비스 등의 다양한 기능을 가진 스마트TV도 등장하였 이에 따라 방송 이외의 매체를 통한 비디오 콘텐츠 소비가 증가하고 있고, IT사업자들과

More information

Week13

Week13 Week 13 Social Data Mining 02 Joonhwan Lee human-computer interaction + design lab. Crawling Twitter Data OAuth Crawling Data using OpenAPI Advanced Web Crawling 1. Crawling Twitter Data Twitter API API

More information

pkm_bank_3

pkm_bank_3 포켓몬 뱅크 1 안전을 위한 주의사항 2 주의 준비하기 3 인터넷으로 할 수 있는 것 4 보호자 여러분께 시작하기 전에 5 포켓몬 뱅크란 이용권에 대하여 6 이용권 구입 포켓몬 뱅크 사용하기 7 메뉴에 대하여 8 조작 방법 9 맡기기 찾아가기 10 데이터의 저장 문제가 생겼을 때는 11 Q&A 12 상담 및 문의 고객 지원 1 안전을 위한 주의사항 인사 말씀

More information

04_오픈지엘API.key

04_오픈지엘API.key 4. API. API. API..,.. 1 ,, ISO/IEC JTC1/SC24, Working Group ISO " (Architecture) " (API, Application Program Interface) " (Metafile and Interface) " (Language Binding) " (Validation Testing and Registration)"

More information

라즈베리파이 프로그래밍_130912(최종).indd

라즈베리파이 프로그래밍_130912(최종).indd 파이썬으로 시작하는 라즈베리 파이 프로그래밍 Programming the Raspberry Pi Getting Started with Python Programming the Raspberry Pi: Getting Started with Python, 1st Edition. Korean Language Edition Copyright 2013 by McGraw-Hill

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

공급 에는 3권역 내에 준공된 프라임 오피스가 없었다. 4분기에는 3개동의 프라임 오피스가 신규로 준공 될 예정이다.(사옥1개동, 임대용 오피스 2개동) 수요와 공실률 2014년 10월 한국은행이 발표한 자료에 따르면 한국의 2014년 경제성장률 예측치는 3.5%로 지

공급 에는 3권역 내에 준공된 프라임 오피스가 없었다. 4분기에는 3개동의 프라임 오피스가 신규로 준공 될 예정이다.(사옥1개동, 임대용 오피스 2개동) 수요와 공실률 2014년 10월 한국은행이 발표한 자료에 따르면 한국의 2014년 경제성장률 예측치는 3.5%로 지 Savills World Research 브리핑 서울 프라임 오피스 사진 : Yeouido, Seoul 개요 삼성SDS가 지난 2분기 준공한 잠실 사옥 주변으로의 이전을 지속하고 증권업계의 임차면적 감소가 계속되어 GBD와 YBD 의 수요는 감소하였고 에서는 소폭의 수요 증가가 나타났다. 의 수요 회복에도 불구하고 GBD, YBD의 수요 감소로 서울프라임오피스의

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

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

슬라이드 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

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

보고서를 펴내며 2009 지속가능성 보고서는 다음이 발간하는 최초 보고서입니다. 첫 보 고서 발간을 통해 다음은 다음의 이해관계자와 상호간에 미치는 영향이 무 엇인지 알게 되었으며, 앞으로 다음이 지속가능한 발전과 성장을 이뤄내기 위해서 해야 할 역할과 나아가야 할 방

보고서를 펴내며 2009 지속가능성 보고서는 다음이 발간하는 최초 보고서입니다. 첫 보 고서 발간을 통해 다음은 다음의 이해관계자와 상호간에 미치는 영향이 무 엇인지 알게 되었으며, 앞으로 다음이 지속가능한 발전과 성장을 이뤄내기 위해서 해야 할 역할과 나아가야 할 방 Daum Communications 전화 1577-3321 서울 본사 (주)다음커뮤니케이션 우 140-894 서울시 용산구 한남동 714 제주 오피스 (주)다음커뮤니케이션 우 690-150 제주도 제주시 오등동 1730-8 다음글로벌미디어센터 Daum Communications 보고서를 펴내며 2009 지속가능성 보고서는 다음이 발간하는 최초 보고서입니다.

More information

Chapter_06

Chapter_06 프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.

More information

0. 들어가기 전

0. 들어가기 전 컴퓨터네트워크 14 장. 웹 (WWW) (3) - HTTP 1 이번시간의학습목표 HTTP 의요청 / 응답메시지의구조와동작원리이해 2 요청과응답 (1) HTTP (HyperText Transfer Protocol) 웹브라우저는 URL 을이용원하는자원표현 HTTP 메소드 (method) 를이용하여데이터를요청 (GET) 하거나, 회신 (POST) 요청과응답 요청

More information

XML DTD

XML DTD XML DOM (Document Object Model) 2017. 9. 27 Content XML 문서처리 DOM 개요 DOM Tree DOM Core Interfaces Node Document Element Attr DOM 사용예 1 XML 문서처리 XML 문서처리과정 XML Parser 2 XML 문서처리 XML Parsing XML 문서를읽고해석하여구성요소,

More information

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0) FGB-P8-3 8 학번수학과권혁준 8 년 5 월 9 일 Lemma p 를 C[, ] 에속하는음수가되지않는함수라하자. 이때 y C, C[, ] 가미분방정식 y t + ptyt, t,, y y 을만족하는해라고하면, y 는, 에서연속적인이계도함수를가지게확 장될수있다. Proof y 은 y 의도함수이므로미적분학의기본정리에의하여, y 은 y 의어떤원시 함수와적분상수의합으로표시될수있다.

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