공간정보/표준2019. 10. 11. 15:30

국가공간정보포털 지식공간의 KSDI 표준체계 문서에는 총 23개의 기술기준이 등록되어 있다. 이중 공간정보 작성 및 제작관련 기술기준은 18개, 측량관련 기술기준은 13개, 기타 업무지침이 6개로 분류되어 있다. 측량의 결과도 실질적으로 공간정보라고 할 수 있으므로, 사실상 여기에 등록되어 있는 기술기준은 대부분 공간정보 제작에 관한 기술기준이라고 할 수 있을 것이다.

하지만, 이들 기술기준은 "공간정보표준에 적합한 기술기준"은 아니다.  국가공간정보 기본법 제23조(표준 등의 준수의무)에는 "공간정보체계의 구축ㆍ관리ㆍ활용 및 공간정보의 유통에 있어 이 법에서 정하는 기술기준과 다른 법률에서 정하는 표준을 따라야 한다."고 규정이 되어 있다. 이 규정만 보면 기술기준을 따라 작업을 하면 표준에 적합한 데이터가 생산될 것처럼 보이지만, 현재의 기술기준은 표준과 거리가 멀고, 현재 생산되고 있는 데이터도 대부분 표준에 적합하지 않다.

정부 및 지방자치 단체는 규정에 따라 일한다. 좀 극단적으로 이야기해서 규정에 어긋나면 아무것도 할 수 없는 것이 규정이다. 따라서 국가공간정보 기본법에서 표준을 지키라고 되어 있지만, 규정에 명시되어 있지 않으면 아무 것도 할 수 있는 것이 없다. 반대로 이야기하면, 일상 업무에서 표준에 적합한 데이터가 생산되기 위해서는, 기술기준을 따라 작업을 하면 자연스럽게 표준에 부합하도록 규정을 개정해야 한다는 것이다.

기술기준을 개정할 때 유의할 점이 있다. 제품 규격과 제작 방법을 구분해야 한다는 것이다. 우리나라 공간정보 관련 기술기준, 즉 각종 작업규정에는 대부분 데이터 제품에 대한 규격(중의 일부)과 제작 방법이 함께 규정되어 있다. 하지만, KS X ISO로 대표되는 공간정보 표준에는 제품의 규격에 관한 표준만 존재한다.

제품 규격이란 해당 제품 그 자체에 대한 규격을 말한다. 즉, 제품에 어떠한 지형지물이, 어떠한 구조로 만들어지며, 각각의 지형지물의 품질은 어떠하고 어떻게 평가해야 하는지, 생산되는 결과물과 함께 제공되어야 하는 메타데이터에는 어떤 것이 담기는지, 어떤 포맷으로 배포되는지 등, 제품을 생산하고 배포할 때까지 전 과정에 대한 기준이다. 

제품 규격은 KS X ISO 19131 "데이터제품 사양서"에 정의되어 있다. 제작하는 데이터 제품의 종류별로 이 표준에 따라 데이터 규격을 만들고, 이를 기술기준으로 등록해야 한다.  예를 들면, "항공사진측량 작업규정"이 아닌 "1/5,000 수치지형도 제품규격서",  "토지피복지도 작성지침"이 아닌 "토지피복지도 제품규격서", "수치지도 수정용 건설공사 준공도면 작성에 관한 지침"이 아닌 "건설공사 준공도면 제품규격서"가 기술기준으로 등록되어야 한다.

제품 규격이 정해지면 제작 방법은 다양할 수 있다. 예를 들어 1/5,000 수치지형도를 제작할 때, 현재는 대부분 항공사진 측량으로 제작되고 있으나, 적절한 고해상도 위성영상이 있다면 이를 활용할 수도 있고, 드론을 날려서 1/1,000 급의 대축척 지도를 제작한 후 이를 축소편집하여 제작할 수도 있다. 항공 LIDAR 스캐너를 이용해서 제작할 수도, 지상에서 GPS나 토털스테이션을 사용하여 제작할 수도 있다. 제품의 규격을 만족시킬 수 있다면 어떤 방법도 사용할 수 있도록 열어두는 것이 국제적인 추세이다. 이렇게 되어야만 새로운 기술이나 장비가 개발되더라도 유연하게 대처할 수 있다.

제작 방법은 "표준 작업 매뉴얼" 형태로 제작해야 한다. 예를 들어, 항공사진 측량 표준 작업 매뉴얼, 드론 사진측량 표준 작업 매뉴얼, LIDAR 측량 표준 작업 매뉴얼, GPS 측량 작업 매뉴얼 등을 만든다. 각각의 매뉴얼에서는 필요한 최소한의 방법론만을 제시하고, 작업기관에서는 작업의 성격에 따라 어떤 작업방법을 사용할지 알아서 결정할 수 있어야 한다. 대규모 건설공사의 경우, 시공하는 업체는 국가에서 정한 표준시방서와, 전문기관이 정한 전문시방서를 참고로 하여, 대상 공구에 적합한 공종을 선택하는 방식으로 자체적으로 시공 시방서를 작성한다. 공간정보 제작방법도 이러한 방식으로 표준 작업 매뉴얼을 참고하는 방식이 보편화되어야 한다.

작업자가 제작방법을 마음대로 선택한다고 하면 품질을 어떻게 보장할 수 있을지 우려를 할 수 있다. 하지만, 제품 규격서에는 데이터 제품에 포함된 각각의 지형지물에 대한 품질요소, 그리고 샘플링 방법을 포함한 품질 평가방법 등이 모두 기술되어 있으므로, 그 방법에 따라 품질을 평가할 수 있다. 작업기관에서도 자체적으로 품질을 평가해 볼 수도 있고, 품질평가원 등의 제3의 독립기관이나 발주기관에서도 동일한 방법으로 품질을 평가할 수 있다. 

제4차 산업혁명은 데이터를 기반으로 한다고 이야기한다. 이 데이터는 표준에 의해 제작된, 컴퓨터가 이해할 수 있고 자동처리될 수 있는 일관성 있는 데이터를 말한다. 이를 위해서는 모든 제품 제작이 데이터 제품 규격서를 기반으로 작성되고, 누구나 동일하게 이해하고 참조할 수 있는 구조가 되어야 한다. 공간정보가 실질적으로 제4차 산업혁명의 기반이 될 수 있기를 희망한다. 

====

이 글은 원래 공간정보표준 전담기관인 국토정보공사의 의뢰를 받아, 공간정보표준 뉴스레터 2019년 9월호에 실린 글입니다. 아래는 뉴스레터를 캡처한 것입니다.

민, 푸른하늘

공간정보표준 뉴스레터 2019년 9월호
공간정보표준과 기술기준

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

공간정보/표준2018. 6. 12. 13:45

얼마전 Modelio 3.7 을 사용해서 공간정보표준 클래스 다이어그램을 작성하는 방법을 올렸습니다. 이번에는 Enterprise Architect를 사용해서 작성하는 방법을 말씀드리려고 합니다.

Enterprise Architect은 상용 UML Tool입니다. 제일 저렴한 개인용 버전도 $229입니다. 그럼에도 이 도구를 사용하려고 생각한 것은 이 도구가 ISO/TC 211에서 추천하는 (그리고 사용중인?) 도구라는 걸 알게 되었기 때문입니다. 유럽연합의 공간정보기반인 INSPIRE에서도 이 도구를 사용하고 있고요.

게다가 조금 뒤져보니 GML을 지원해주고 있다고 하니, (제가 아직 GML을 잘 모르지만) 아주 유용할 것 같다는 생각이 들었습니다. 우리나라에는 ArcGIS 를 사용하는 기관이 많은데, ArcGIS 모델도 지원한다고 합니다. 

또 한가지 이유는 Modelio 3.7에서는 문서화 도구가 없는데 비하여(제가 못찾은 걸 수도 있습니다.), Enterprise Architect(앞으로는 EA로 쓰겠습니다.)는 문서화 도구가 아주 좋은 듯합니다. 원래 ISO 표준에서는 응용스키마에 대한 문서를 UML 도구에서 지원하는 문서화 도구를 쓸 것을 강력하게 권고하고 있어서, 문서화도구의 편리성은 매우 중요합니다.

어쨌든... 어찌어찌... Enterprise Architect 13 버전을 구해서 테스트해 보기로 했습니다. 이 글은 Modelio와 비교하기 쉽도록 가능한 한 체계를 동일하게 유지하도록 노력했으니 참고하세요.

*******
참고 : 이 글은 Enterprise Architect 13.0 버전을 사용하여 작성했습니다. 하지만, ISO TC 211에서는 12.1 버전을 사용하고 있습니다. 따라서 12.1 버전을 설치하여 테스트하실 것을 적극 추천합니다. 또한 이 글의 "ISO 19100 기본패키지 Import" 부분은 제가 잘못 이해한 내용이 담겨 있으니 이 글을 참고하시기 바랍니다.
*******

1. Project 생성

EA를 처음 사용하려면 먼저 프로젝트를 생성해야 합니다. 아래와 같이 EA 화면 맨 오른쪽 위를 누르고 New Project를 클릭한 뒤, 폴더와 프로젝트명을 입력하면 됩니다.

그 다음엔 "Model Wizard"라는 게 나오는데, (저도 잘 모르니까) 아무것도 선택하지 않고 [확인] 버튼만 눌러줍니다.

다음으로 View를 만들어 줍니다. 아직까지 View의 역할은 잘 모르겠지만... 아래와 같이 Project  Browser 창에서 'Model -> Add -> Add View"를 선택하면 됩니다.

2. 패키지 만들기

패키지는 서로 관련이 깊은 클래스들의 모임입니다. 하나의 프로젝트에는 여러개의 패키지가 들어 있고, 서로 관계가 있을 수 있습니다. 아래는 JPGIS2014의 Geometry/Topology 패키지에 포함된 하위패키지들의 상호관계를 나타낸 것입니다. 이처럼 패키지로 구성된 프로젝트라면 패키지를 만들고 시작하는 것이 좋습니다. (물론 클래스부터 만들고 나중에 패키지로 만들어 정리해도 됩니다.)

참고로, 아래 그림은 EA의 기능을 이용해서 만든 그림입니다. Publish -> Save Image -> Save to File로 저장한 건데, 좀 흐릿해서 배율좀 올리려했더니 잘 안되네요. 

아래는 Start->View-Preference->Diagram->Gradient and Background에서 배경을 완전히 없앤 뒤 화면을 캡쳐한 것입니다. 저는 이게 더 깔끔하니 좋네요.

패키지를 만들 때는 만들어둔 View를 우클릭한 뒤, Add Package... 를 클릭하면 됩니다.  (여기서도 Model Wizard에서는 아무것도 선택하지 않았습니다.

2-1. ISO 19100 기본패키지 Import

제가 Modelio를 사용할 때 답답했던 점 중의 하나는, ISO 19100 표준 시리즈에 원래 포함되어 있던 많은 클래스나 패키지 정의를 새로 만들어야 했던 것입니다. 분명 누군가는 19100 표준에 포함된 정의를 이미 만들어 두었을 텐데, 어디에서 그걸 찾을 수 있을지 막막하여 결국 제가 필요한대로 새로 만들어 사용했었습니다.

그런데, EA로 작업하다보니 그럴 필요가 없었습니다. 이미 만들어진 19100 시리즈의 클래스 다이어그램 등을 모두 구할 수 있었기 때문입니다. 

여기에 들어가 보시면 아래의 화면과 같이 나타납니다. 원래 이곳은 유럽연합의 공간정보기반인 INSPIRE에서 관리하는 사이트로서, 원래는 SVN (subversion)이라는 소스관리 도구로 관리되고 있는 ISO 19100 시리즈 표준의 기본 패키지입니다. 

기본 패키지라고 써둔 이유는, 응용스키마를 작성할 때 참조해야 하는 패키지가 모두 포함되어 있기 때문입니다. 다른 표준들에서도 이 표준을 참조하고 있으며, 사용자들이 공간정보 응용스키마를 작성할 때에도 여기에 포함된 ISO TC-211 패키지만 참조해서 사용하면 됩니다.

참고로, 이 상위 폴더를 찾아보면, 다른 표준에 들어 있는 클래스 다이어그램들도 모두 볼 수 있습니다. 계속해서 작업이 이루어지고 있어 예전 버전과 최신 버전을 모두 찾아볼 수 있습니다. (이 저장소는 ISO 표준 관계자들의 공식 저장소 중 하나라고 어디에선가 읽었습니다.)

원래는 SVN으로 관리되므로, 이들 내용을 받을 때도 SVN을 사용해야 하지만, 저는 id/pw를 받지 못해서 그냥 이곳에서 모두 일일히 다운로드 받았습니다. 아래는 그중 일부입니다. 이중 파일 크기가 큰 것 두개부터 import한 뒤, 파일 크기가 작은 것을 import하면 구조가 자동으로 정리가 됩니다. 패키지 또는 뷰에서 우클릭하고 import/export->import package from XMI files... 명령을 사용하면 읽어들일 수 있습니다. 

아래가 제가 모두 읽어들인 결과입니다.

아래는 이렇게 정리한 파일을 모두 한꺼번에 Export 한 것입니다. ISO 공간정보 표준과 관련하여 클래스다이어그램이 필요하시면, 이 파일만 읽어들여서 사용하시면 됩니다.

invalid-file

3. 클래스 다이어그램 만들기

이제 본격적으로 클래스 다이어그램을 만들어볼 차례입니다. 아래 그림과 같이 원하는 패키지에서 우클릭한 뒤, Add diagram을 선택하면 됩니다. 만들어진 다이어그램은 나중에 편한대로 다른 위치로 옮길 수 있지만, 설명하고자 하는 패키지 내부에 만드는 게 가장 좋습니다.

그 다음 나오는 대회상자에서 UML Structural -> Class 를 선택하고 적당한 이름을 준 뒤 확인버튼을 누르면 해당 패키지 속에 클래스 다이어그램이 추가됩니다. 참고로 아래 대화상자에서 보시는 것처럼, 아주 다양한 종류의 다이어그램을 생성할 수 있습니다. ArcGIS도 보이고... 아래쪽으로 더 내려가면 GML도 보이더군요. (그런데 아직까진 GML 다이어그램이 뭘까... 싶네요)

4. 클래스 생성하기

다이어그램 상태에서 클래스를 만들 때에는 아래 그림과 같이 Toolbox에서 Class->Class를 선택한 뒤, 다이어그램내 적당한 위치에서 클릭해주면 됩니다.(드래그&드롭은 안됩니다.) 이때 클래스 명은 "Class1, Class2" 등으로 만들어지는데, 여길 선택해서 적절한 이름을 넣어주면 됩니다.

이렇게 그래픽으로 추가하지 않고(그림은 만들지 않고), 정의만 생성할 수도 있습니다. 적당한 대상(Package 등)에서 Add element를 선택하면, 아래와 같은 대화상자가 나타나는데, 여기에서 클래스를 직접 추가할 수 있습니다. 

이렇게 클래스 정의만 있는 상태에서 클래스다이어그램에 추가하려면 그냥 Drag&Drop을 하시면 됩니다. 그러면 아래와 같은 대화상자가 나타나는데, Link를 선택하면 됩니다.

참고로 클래스 다이어그램에서 클래스나 link를 선택한 상태에서 Del 키를 누르면, Diagram에서 삭제가 되지만 정의 자체는 패키지에 삭제되지 않은 채 남아 있습니다.

5. 속성(Attribute) 추가하기

EA에서 속성을 추가하려면, 아래 그림과 같이 Project Brower에서 원하는 클래스에 우클릭하고 Attribute... 를 클릭하면 됩니다.

그러면 아래와 같은 대화상자가 나타납니다. 여기에서 속성의 name, 유형, 초기값, 다중도(Multiplicity) 등 원하는 값들을 선택하면됩니다. 그런데, 공간정보 응용스키마를 생성하려면 속성의 유형은 UML의 기본 속성유형(int, boolean, byte 등)이 아니라, ISO 19103 개념스키마의 기본 유형(Integer, Boolean, CharacterString 등) 이나, 다른 표준 패키지에서 정의된 유형을 지정해야 합니다.

이를 위해서는 아래 그림과 같이 유형에서 맨 아래에 있는 "Select Type..."을 선택하고

아래와 같은 대화상자에서 해당 유형을 직접 선택하거나, 빨간 화살표를 쳐둔 "Search"를 눌러 검색해서 입력하면 됩니다.

아래는 이렇게 속성을 추가한 뒤의 클래스의 모습입니다. 아주 깔끔하게 (Modelio 와는 달리 초기값도) 잘 나오네요.

6. 연관관계 생성하기

연관관계는 주로 다이어그램에서 생성합니다. 아래 그림과 같이 좌측 Toolbox에서 원하는 관계를 선택한 후, Source 클래스를 먼저 클릭하고 Target 클래스를 선택해 주면 됩니다. Source 클래스를 클릭하면 우측 빨간화살표와 같이 화살표가 나타나는데, 이것을 클릭하고 Target 클래스를 지정해줘도 됩니다.

연관관계에는 적절한 role을 부여해야 합니다. 연관관계 선을 더블클릭하면 다음과 같은 대화상자가 나오는데, 여기에서 Role(s)를 선택하고 적절한 role 이름, 다중도, 탐색가능(Navigability) 등을 지정해줍니다.

그러면 아래와 같이 associationrole 이 예쁘게 나타납니다.

7. 스테레오타입 추가하기

공간정보표준중 KS X ISO 19103 개념 스키마 언어 6.10.2에는 여러가지 스테레오타입이 나옵니다. 패키지에 대한 스테레오타입으로는 <ApplicationSchema><leaf>이 정의되어 있고, 클래스에 대한 스테레오타입으로는 <CodeList> <DataType> <FeatureType> <Union> <Type>등의 스테레오타입이 정의되어 있습니다. 물론 이 외에도 새로운 것을 정의하여 사용할 수 있다고 규정되어 있습니다.

스테레오타입은 여러가지로 사용될 수 있는데, 공간정보표준에서 사용되고 있는 스테레오타입은 의미의 확장, 혹은 의미의 명확화라고 생각할 수 있습니다. 즉, 모두다 클래스이지만, <FeatureType>라는 스테레오타입을 사용한다면, 이 클래스는 지형지물임을 명확히 알 수 있게 됩니다.

Modelio의 경우, 모든 스테레오타입을 새로 정의해서 사용해야 했지만, EA에서는 기존 정의되어 있는 것을 그대로 사용할 수 있습니다. EA에 GML 을 지원해주고 있다고 했는데, 여기에서 조금 도움이 되네요.

클래스에 대하여 스테레오타입을 지정하는 예를 살펴보겠습니다. 먼저 다이어그램이나 Project Browser에서 원하는 클래스를 더블클릭하면 아래와 같은 대화상자가 나타납니다. 여기에서 맨오른 쪽위에 있는 Strerotype을 클릭하고 새로나오는 대화상자에서 Profile을 열고 GML을 선택합니다.

그러면 아래와 같이 GML에서 사용할 수 있는 스테레오타입이 모두 나타납니다. 여기에 있는 스테레오타입은 ISO TC-211 표준의 스테레오타입과 일치하니까 이걸 사용하면 됩니다. 

참고로 패키지에 대해 스테레오 타입을 지정하면 아래와 같이 나타납니다.

아래는 이상과 같은 과정을 통해 작성한 테스트용 클래스 다이어그램입니다. 깔끔하니 잘 만들어지네요.

8. 문서화(Documentation)

일단 여기까지 순조롭게 진행되니, 문서화 기능도 테스트해보고 싶어졌습니다. Publish->Document->Generate Documentation을 누르면 아래와 같은 화면이 뜹니다. 여기에서 파일명과 출력포맷(.rft와 .pdf 등)을 지정하고, 오른쪽에 있는 Generate를 누르면 문서가 생성됩니다.

아래가 이렇게 만들어진 문서입니다. 오른쪽 위에 날짜가 약간 깨진 것 빼놓고는 괜찮네요. rtf 포맷을 만들면 Word 같은 도구로 편집할 수 있고, 템플릿을 지정하는 기능도 있으니, 적당하게 편집하면 예쁜 문서를 만들 수 있을 것 같네요.

===

이상입니다. EA를 처음 써보는 중이라 아직도 모르는 것 투성이지만, 아주 편하게 잘 사용할 수 있을 것 같네요. 

민, 푸른하늘


Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요