XML의 이해

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 를검색할때는이름앞에 '@' 를붙여주면됩니다. /games/video_game[1]/@release 라고검색하면원하는결과를얻을수있습니다. 두번째비디오게임의이름과개발사를알고싶어요! 비디오게임의이름과개발사정보는각각 title 과 developer element 가가지고있습니다. 두 element 를각각검색해도되지만, 한꺼번에검색하는방법도있습니다. /games/video_game[2]/* 라고검색하면, 두번째 video_game element 의모든 child element 를찾아줍니다. 여기서 '*'(asterisk) 는 'all' 을뜻합니다. 살짝응용해서 /games/video_game[2]/@* 라고검색하면, 두번째 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 에대해이해하는것을돕는다. 작성자 이혜린 / salad@novonetworks.com 작성이력 최초작성 :

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

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

한국학 온라인 디지털 자원 소개 XSL 의이해 김현한국학중앙연구원인문정보학교실 hyeon@aks.ac.kr 이저작물 (PPT) 의인용표시방법 : 김현, XSL 의이해, 전자문서와하이퍼텍스트 수업자료 (2018) 1. XSL 이란? 2. XSL Elements 3. XSL 에의한문서표현 1. XSL이란? XSL 관련개념 XSL (extensible Stylesheet Language) 문서의스타일을정의하기위한언어

More information

XML04

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

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

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

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

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

마리오와 소닉 리우 올림픽™ 마리오와 소닉 리우 올림픽 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

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

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

한국학 온라인 디지털 자원 소개 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

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

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

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

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

API 매뉴얼

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

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 프레젠테이션 05 장 CSS3 선택자 1. 선택자개요 2. 기본선택자 3. 속성선택자 4. 후손선택자와자손선택자 5. 반응 / 상태 / 구조선택자 CSS 블록을생성할수있다. 선택자를이해하고적절한선택자를활용할수있다. 1 선택자개요 CSS3 선택자 특정한 HTML 태그를선택할때사용하는기능 선택한태그에원하는스타일이나스크립트적용가능 그림 5-1 CSS 블록 CSS 블록 style

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

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

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 프레젠테이션

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

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

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

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

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

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

Tcl의 문법

Tcl의 문법 월, 01/28/2008-20:50 admin 은 상당히 단순하고, 커맨드의 인자를 스페이스(공백)로 단락을 짓고 나열하는 정도입니다. command arg1 arg2 arg3... 한행에 여러개의 커맨드를 나열할때는, 세미콜론( ; )으로 구분을 짓습니다. command arg1 arg2 arg3... ; command arg1 arg2 arg3... 한행이

More information

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

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

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

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_ Sena Technologies 백서 : Latency/Throughput Test September 11, 2008 Copyright Sena Technologies, Inc 2008 All rights strictly reserved. No part of this document may not be reproduced or distributed without

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

Web Scraper in 30 Minutes 강철

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

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

untitled

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

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

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

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

자연언어처리

자연언어처리 제 7 장파싱 파싱의개요 파싱 (Parsing) 입력문장의구조를분석하는과정 문법 (grammar) 언어에서허용되는문장의구조를정의하는체계 파싱기법 (parsing techniques) 문장의구조를문법에따라분석하는과정 차트파싱 (Chart Parsing) 2 문장의구조와트리 문장 : John ate the apple. Tree Representation List

More information

Javascript

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

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

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

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

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

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

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

슬라이드 1

슬라이드 1 3 장. 선행자료 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2019-1 st 프로그래밍입문 (1) 2 목차 1.1 문자와어휘원소 1.2 구문법칙 1.3 주석 1.4 키워드 (Keyword) 1.5 식별자 (Identifier) 1.6 상수 (Integer,

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

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

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

More information

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

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

More information

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

미쓰리 파워포인트

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

More information

2학년 1학기 1,2단원 1 차례 세 자리의 수 1-1 왜 몇 백을 배워야 하나요? 1-2 세 자리 수의 자릿값 알아보기와 크기 비교하기 1-3 뛰어 세기와 수 배열표에서 규칙 찾기 1단원 기본 평가 단원 창의 서술 논술형 평가 22 1단원 심화 수

2학년 1학기 1,2단원 1 차례 세 자리의 수 1-1 왜 몇 백을 배워야 하나요? 1-2 세 자리 수의 자릿값 알아보기와 크기 비교하기 1-3 뛰어 세기와 수 배열표에서 규칙 찾기 1단원 기본 평가 단원 창의 서술 논술형 평가 22 1단원 심화 수 2학년 1학기 1,2단원 1 차례 세 자리의 수 1-1 왜 몇 백을 배워야 하나요? 1-2 세 자리 수의 자릿값 알아보기와 크기 비교하기 1-3 뛰어 세기와 수 배열표에서 규칙 찾기 1단원 기본 평가 2 8 14 20 1단원 창의 서술 논술형 평가 22 1단원 심화 수준 평가 23 한박사의 스토리텔링 24 2 여러 가지 도형 2-1 같은 점과 다른 점 찾기

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 How to produce table XHTML 임정희 M2community 1 Table of Contents 1. XHTML - XHTML 과 HTML 2. Table XHTML - Table의이해 - Table 링크연결 - Table 작성 2 15 th KCSE Editor s Workshop, Seoul 2015 XHTML XHTML 기존에사용되던 HTML

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

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

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

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

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

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

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

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

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. 기술문서 14. 11. 10. 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 dokymania@naver.com I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. Exploit 5 마. 피해 6 III. 결론 6 가. 권고사항 6 I. 소개 가. 역자 본문서는

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

PowerPoint 프레젠테이션

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

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

2009방송통신산업동향.hwp

2009방송통신산업동향.hwp 제 1 절인터넷포털 53) 목차 1. 163. 163. 166 2. 168 176 1. 시장동향 가. 시장규모. 2008 2009. PWC 2008 / 15.6% 599. 2009 1.9% 587. *, (02) 570-4112, byjung@kisdi.re.kr 163 제 3 장 인터넷콘텐츠 < 표 3-1> 세계온라인광고시장규모추이 ( :, %) 2007

More information

1997 4 23 2000 9 5 2003 9 10 2008 2 20 2008 12 10 2011 7 1 2012 8 17 2014 9 19 2015 3 31 2015 6 30 2016 9 30 2017 6 30 2019 3 31 326 327 328 < >

More information

User Guide

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

More information

OCW_C언어 기초

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 JATS to PDF 와구성요소 M2community By Younsang Cho Table of Contents 1. 발간프로세스및 JATS to PDF 작업의장단점 2. 구성요소및생성프로세스 3. 국내, 해외출판사 PDF 생성분석 4. Example XML to PDF 2 학술지 PDF 레이아웃에서갖추어야할내용과기능 학술지발간프로세스 Before After

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

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

쉽게 풀어쓴 C 프로그래밍

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

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

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 - chap06-1Array.ppt

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

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

웹 프로그래밍

웹 프로그래밍 XML 프로세서 배재대학교 김창수 sungu@markup.paichai.ac.kr XML 프로세서개요 정의 XML 문서를읽어문서내용및구조에대한접근을제공하는소프트웨어 지원기능 엘리먼트, 속성, 엔티티정보생성 문서의정확성검증 XML 문서처리를수행하도록지원 2 XML 프로세서역할 XML 브라우저 XML 응용 SAX 범용 XML 프로세서 DOM Level 3 DOM

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

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

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

Microsoft PowerPoint - CSharp-10-예외처리

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

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

비트와바이트 비트와바이트 비트 (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