하이 리스크, 하이 리턴?
(아파트엔지수를 통해 본 수도권 아파트 단지 가격 동향)

 

들어가며

투자의 관점에서 최근 몇 년의 아파트시장을 한 줄로 요약하기에 딱 좋은 말입니다. 더 정확하게 서울을 포함한 수도권에 해당하는 말입니다. 최근 몇 년 수도권에서 아파트를 매입하신 분은 꽤 훌륭한 시세 차익을 얻었습니다.
호가 상승 시류에 편승하지 못하신 분은 속상할 수 밖에 없는 안타까움이 있습니다.

<나우앤서베이, 설문조사>

흔히 수도권이라고 하는 지역 중 일부 단지의 가격 상승을 "아파트엔"을 가지고 얼마나 상승했는지 비교하겠습니다. 비교되는 단지는 임의로 선정했습니다. 

가장 선호도가 높은 중소형 단지를 기준으로 비교를 진행했습니다. "아파트엔"은 아파트 단지를 전용 면적에 따라 아래와 같이 5가지 유형으로 분류합니다. 

  • 초소형(40㎡이하) : 공급면적 기준 21평 이하
  • 소형(40㎡초과60㎡이하) : 공급면적 기준 21평 초과 25평 이하
  • 중소형(60㎡초과85㎡이하) : 공급면적 기준 25평 이상 32평 이하
  • 중대형(85㎡초과135㎡이하) : 공급면적 기준 32평 이상
  • 대형(135㎡초과)

단일 면적의 평균 금액과는 차이가 존재합니다. 이렇게 하는 이유는 면적 그룹 유형 별 비교 대상을 확대하여 지수 산출의 객관성을 부여하기 위함입니다. 또한 다른 단지와 비교를 통해 인사이트를 얻게 하기 위함입니다.
전용 면적을 기준으로 하는 이유는 공급 면적의 경우 건설 시기, 서비스 면적 등 다양한 요인에 따라 단지 별 차이가 존재합니다. 또한 아파트의 공급 면적을 알려주는 국가 공인의 자료는 없습니다. 건축물 대장에 관련 정보가 포함되어 있지만 단지 별로 작성된 형식이 달라 일관되게 적용되기 어려운 문제점이 있습니다.
관련 기관에 문의하니 아파트 분양사에 직접 전화해서 알아보는 것이 가장 빠르다고 하더군요^^

 

호가상승비교

결론을 먼저 말하자면 "비싼 단지가 많이 올랐다" 입니다. 일부 상승하지 못한 단지도 있습니다. 

 

지역 단지 연도 별 평균금액 (억원)  아파트엔지수변동
(거래가격지수)
상승률
(%)
상승호가
(억원)
2016년 2017년 2018년 2019년 2020년
서울시 강남구 은마아파트 (94) 11.12 13.13 16.81 18.51 19.66 94 ~ 95 (99) 76.80 8.54
서울시 마포구 공덕삼성래미안3차(88) 7.23 8.10 10.80 11.92 14.27 86 ~ 88 (96) 97.37 7.04
성남시 분당구 시범단지삼성한신 (91) 6.39 7.17 9.27 9.90 11.39 89 ~ 91 (94) 78.25 5.00
하남시 풍산아이파트1단지 (84) 4.71 4.98 5.79 6.19 7.09 84 ~ 85 (86) 50.53 2.38
고양시 일산동구 강촌마을(동아) (75) 4.04 4.27 4.51 4.38 4.52 75 ~ 80 (75) 11.88 0.48
시흥시 엘에이치네이처하임 (76) 2.91 3.42 4.37 4.55 5.14 68 ~ 76 (80) 76.63 2.23

< 주요 단지 전용면적 중소형: 60㎡초과85㎡이하 아파트 호가상승비교>

은마아파트의 경우 2020년 6월 기준 2016년 대비 무려 8.5억 정도 가격이 상승했습니다. 아파트의 노후화에 따라 아파트엔지수가 95에서 94로 하락했지만 절대적 가격지수는 유지되며 지속적으로 현가 가치가 상승했음을 알 수 있습니다. 역시 강남불패입니다.

대치동 은마아파트

< 대치동 은마아파트>

공덕동 삼성래미안3차의 경우 거의2배에 가까운 가격이 상승했습니다. 아파트엔지수도 86에서 88로 상승한 것을 볼 수 있습니다. 아파트엔지수를 보면 2020년 6월 해당 아파트 거주자는 전국의 아파트가 100개라면 88개의 아파트에 입주할 수 있다라고 할 수 있습니다. 가격으로만 보게되면 100개 중 96개를 선택할 수 있다는 것을 의미합니다.
공덕역 인근 아파트단지의 경우 3개 노선의 환승역인 공덕역 등 교통편의, 초등학교를 품은 아파트, 
여의도로 이어지는 금융 인프라 등 무엇하나 빠지지지 않습니다.

<공덕동 삼성래미안3차>

성남시 분당구, 하남시, 시흥시 등도 가격이 크게 상승한 것을 볼 수 있습니다. 그에 따라 아파트엔지수도 상승했습니다. 시흥시는 수도권에서 비교적 호가가 낮은 곳이었지만 신규 아파트의 경우 아파트엔지수가 68에서 76으로 무려 8단계 정도 상승했습니다.
신안산선 전철 목감역 신설의 영향이 큰 것 같습니다. 역시 전철역 개통만한 호재가 없네요.

 

 
시흥시 조남동 엘에이치네이처하임

 <하남시 풍산아이파크1단지>  <시흥시 엘에이치네이처하임>

특이하게 고양시의 경우 아파트엔지수가 80에서 75로 하락했습니다. 실제 가격 상승도 타지역 대비 크지 않습니다. 가격은 올랐지만 아파트의 가치로 환산했을 때 오히려 선택지가 좁아졌음을 알 수 있습니다.
일산을 놓고 봤을 때 3호선 전철, 경의선 전철이 있습니다.  또한 호수공원, 종합병원 등 거주 인프라도 그리 나쁜 편이 아닙니다. 서울 중심으로 접근이 훨씬 좋은 은평구 대단지 개발, 고양시 원흥마을 개발 등 경쟁 단지의 영향을 받았을 것이라 보입니다. 어쩌면 저평가일 수 있습니다.

 
일산동구 강촌마을(동아)

 <분당구 시범한신>  <일산동구 강촌마을(동아)>

대부분의 수도권은 서울의 배후도시입니다. 정확하게 서울 어느 지역의 배후도시인지가 가격에 큰 영향을 끼칩니다.
성남시(분당)의 경우 강남구 및 서초구와 접근성이 좋습니다. 고양시(일산)의 경우 최초 강서구, 마포구, 종로구, 영등포구 등의 배후 도시로 계획되고 만들어졌지만 다른 지역의 개발을 통해 직접 접근성이 과거보다 불편해 졌습니다.

마치며

수도권단지의 가격 상승을 아파트엔지수와 비교했습니다. 아파트 호가는 다른 단지의 가격 변동과 비교하여 상대적으로 판단해야 합니다.
아파트엔지수는 상대적 가격변화를 반영하는 지수입니다. 아파트엔지수를 통해 우리 단지의 가격이 다른 단지만큼 상승했는지 또는 다른 단지보다 호가가 상승하여 실질적 보유가치가 상승했는지를 알 수 있습니다. 혹시 호가가 떨어지더라도 아파트엔지수가 유지된다는 것은 아파트의 현가 가치는 유지되고 있다는 것을 의미합니다.

혹시 아파트엔지수가 떨어졌다고 속상할 필요도 없습니다. 아파트엔지수는 아파트를 평가하는 수많은 방법 중 한가지 일뿐입니다. 대한민국은 개인 자산의 약 80% 정도가 부동산에 편중된 나라입니다. 결국은 우상향할 수 밖에 없습니다.

 

'아파트' 카테고리의 다른 글

아파트 인텔리전스! 아파트엔  (6) 2020.08.21

아파트 인텔리전스! 아파트엔

 

서비스를 개설하며...

20년, 제가 공간정보 분야에서 일한 시간입니다. 20년을 일하고 보니 아쉬운게 있습니다. 공간정보에 종사하는 것은 대부분 공공 부문의 정보화용역 사업을 하는 것이라 열심히 했지만 남는 것이 없습니다. 용역은 용역일 뿐, 갑의 행복만이 존재하니까요.
그래서 무엇인가 남기고 싶었습니다. 호랑이가 아니어서 가죽을 남길 수도 없고 배움이 짧아 이름을 남길 수도 없습니다. 그래서 인터넷에 서비스라도 남겨보자고 마음먹었습니다.

누구나 관심을 가지는 주제와 모두를 대상으로 하는 서비스를 기획했습니다. 그리고 탄탄한 설계를 통한 제작이 아닌 프로토타입(베타서비스)을 공개하고 사용자 인터뷰를 통해 지속적으로 보완해가는 방법론을 적용합니다.
기술적으로 상용 클라우드서비스(IaaS) 환경에서 PostGIS 등 공개SW를 이용하고 공공개방되는 데이터를 적극 활용합니다.

아파트엔 서비스는 ...

아파트엔서비스는 호갱노노 등 요즘 관심을 받는 프롭테크(Property + Technology) 분야의 서비스입니다.
여타 부동산 앱과 구분되는 차이점은 매물을 중개하는 서비스가 아니라는 것과 아파트의 위치, 주변 학교 등 물리적 특징을 소개하는 서비스가 아니라는 것입니다.
아파트엔 서비스는 아파트의 가격을 결정하는 원인요소의 지수화를 통해 아파트의 투자가치를 평가하는 서비스 입니다.

아파트엔 개요

 

아파트엔 서비스는 아파트를 대상으로 제공되는 BI (Business Intelligence : 비즈니스 인텔리전스) 서비스 입니다.  위키피디아를 인용하면 비즈니스 인텔리전스는 데이터를 수집하고, 이 데이터를 가공하여 올바른 의사결정을 내릴 수 있도록 지원하는 시스템 및 기술입니다.
아파트엔 서비스는 아파트를 투자 자산 측면에서 바라보고 개별 아파트의 보유 가치를 평가합니다.

 

아파트 신호등! 아파트엔

빨간색, 노란색 녹색으로 아파트의 가치를 요약합니다.
누구라도 한 눈에 지도 위에 표시되는 색상으로 아파트의 가치를 구분할 수 있도록 합니다. 혹시 아파트 마커를 클릭한다면 좀더 상세한 정보를 볼 수 있습니다.
아래 4분면 그래프에서 점이 오른 쪽에 있을 수록 투자가치가 좋다는 것, 위에 있을 수록 실거주 가치가 좋다는 것을 의미합니다. 베타 기간이라 현재 틀릴 수도 있습니다.

실거주/투자가치 평가


아파트엔지수아파트엔 서비스는 투자 또는 보유 가치 평가를 위한 기준으로 아파트엔지수를 정의합니다. 아파트엔지수의 시간적 흐름에 따른 분석으로부터 아파트의 자산 가치 변화를 추적하게 합니다. 아파트엔지수는 아파트 가격을 결정하는 여러 원인인자를 종합하여 부여되는 점수입니다. 점수가 높을 수록 좋고, 1 ~ 100 까지의 숫자로 나타납니다.아파트엔지수가 전달하는 인사이트(Insights)는 다음과 같습니다.아파트엔지수가 시간의 흐름에 따라 변동이 없다면, 다른 아파트의 가치가 변한 비율만큼 가치가 유지됨을 의미합니다.
만일 아파트엔지수가 상승했다면 우리 아파트의 절대적 가치가 상승했다는 것을 의미합니다. 가격은 상승했더라도 아파트엔지수가 하락했다면 상대적으로 보유가치가 하락했다는 것을 나타냅니다.

아파트엔지수

 

앞으로는...

Fun & Joy 또는 사용자의 관심을 위하여 아파트 관련 사회적 이슈나 분석 정보를 게시할 예정입니다.

전국의 모든 아파트를 아파트엔지수라는 점수를 부여한 것에 대한 부담이 있습니다.
하지만 보통의 부동산서비스가 실거래가만으로 이미 서열을 매기고 있습니다. 오히려 가격을 포함한 다른 요인으로부터 지수를 부여했기에 좀 더 객관적이라고 생각합니다.

베타이기에 평가를 위한 모델 부분에 지속적 개량이 수행될 예정입니다.
저희 프로그웍스를 아껴주시는 많은 분들께 작은 응원과 격려 부탁드립니다. 또한 격려와 응원에 보답하고자 서비스 제작 중 터득한 노하우도 본 블로그를 통해 점차로 공개하겠습니다.




 

 

 

 

'아파트' 카테고리의 다른 글

하이 리스크, 하이 리턴?  (0) 2020.08.24

본 카테고리의 이전글(PostGIS를 이용한 격자 만들기)에서 사각형 그리드 격자를 만들었습니다. 격자를 제작한 목적은 이전글에서 설명했듯이 특정 데이터셋의 격자별 집계 수행을 통해 분석을 진행하기 위함입니다. 본 게시글을 통해 실제 집계를 설명합니다.

1. 데이터 준비

 

격자는 준비했습니다. 실제 집계의 대상이 되어야 하는 데이터가 필요합니다. 저는 "공공데이터포털(data.go.kr)"에 접근하여 "데이터셋 > 표준데이터"메뉴에서 "전국 CCTV 표준 데이터"를 선택했습니다. CSV형식으로 제공받았기에 실제 PostGIS에 적재하는 전처리 작업이 요구됩니다. 전처리 작업 절차는 아래와 같습니다.

  1. Qgis에서 "쉽표로 구분된 텍스트 레이어 추가" 후 형상을 확인합니다. 이 후 DB연결을 통해 PostGIS에 적재합니다.
  2. Qgis에서 Import된 레이어를 선택한 후 내보내기를 실시하여 Shp 형식으로 저장합니다.
  3. Qgis에서 데이터베이스 연결 후 "파일가져오기"를 실시하여 PostGIS에 적재합니다.
  4. 원본에 위도, 경도 속성이 존재하며, 좌표계는 4326입니다. 필자는 PostGIS에 적재 후 좌표계를 5179로 변환했습니다. 미리 제작된 격자가 5179좌표계이기 때문에 변환했습니다. 
  5. 마지막으로 공간인덱스를 생성합니다.

2. 집계 실행

실제 질의는 아래처럼 단순합니다. SQL의 세부사항을 설명하지는 않겠습니다. 격자개수만큼 박복하며 교차여부를 검사하여 CCTV를 격자별로 개수합니다. 즉 격자 개수가 많으면 많을 수록 실행 성능은 떨어질 수 밖에 없습니다. 집계하고자 하는 대상에 따라 격자크기가 결정되야 합니다.
또한 눈썰미가 있다면 "count()"함수를 대신하여 숫자 필드를 대상으로 sum, median 등 다양한 함수의 적용이 가능합니다. 개수가 아닌 양, 추세 등이 중요한 경우입니다.



CREATE TABLE tempsubtotal AS
SELECT count(*) AS cnt, bound.geom AS geom
FROM temp_20200206020231 bound
LEFT JOIN ms101_20200207020227 counted ON ST_Intersects(bound.geom, counted.geom)
GROUP BY bound.geom;

이 후 Qgis를 통해 PostGIS에 접속하여 새로이 생성된 집계 테이블을 레이어로 추가한 후 보게되면, CCTV가 많을 수록 짙은 빨간색으로 나타나는 것을 볼 수 있습니다. 이는 Qgis의 시각화 속성을 이용한 것으로 고정색이 아닌 특정 컬럼을 대상으로 시각화를 지정한 것 입니다. 

데이터 및 처리는 PostGIS 에서 수행하고, 시각화는 사용자가 가지는 도구를 이용합니다. 아마도 실제 프로젝트에 적용한다면 데이터 처리 영역과 시각화 영역은 특별한 경우를 제외하고 철저히 분리하는 것이 좋습니다. 

3. 맺으며

PostGIS 사랑스럽지 않습니까? DBMS에 SDE(Spatial Data Extension)를 추가하는 것만으로 GIS업무의 많은 부분을 처리할 수 있습니다. 시각화라는 부분을 제외하면 일반적 공공정보화사업에 무리없이 사용될 수 있습니다. 정의도 제대로 못하는 GIS엔진이 정말 필요할까요? 

 

"자세히 보아야 예쁘다. 오래 보아야 사랑스럽다. 너도그렇다" 나태주님의 "풀꽃"입니다. 

제게는 PostGIS가 그런 존재입니다. 사용하면 할수록 대견스럽고 사랑스럽습니다. 데이터 시각화라는 부분만 제외하면 대부분의 공간정보 처리가 가능합니다. 한동안 바쁘다는 핑계로 포스트 작성에 소홀했습니다. 하지만 사랑이 변할 수 있나요. PostGIS가 제공하는 함수(ST_Translate)를 이용하여 격자 데이터를 만들겠습니다. 응용하면 "Hexagonal Grid"등 반복되는 도형을 가지는 격자 데이터를 생성할 수 있습니다. 모양은 아래 그림을 참조하십시오.

격자의 쓰임은 다음과 같습니다.
첫째, 격자 단위로 다른 객체(POI 등)를 위상관계(Topology)에 따라 집계해서, 개별 격자 별 밀집도가 높은 지역을 식별하기 용이합니다.
둘째, 불변하는 집계(Sub Total) 데이터를 생성하는 기준 도형이 될 수 있습니다. 변하지 않는 격자를 기준으로 데이터 생산 시점 별 집계를 수행하여 일관된 비교가 가능한 시계열 데이터를 생성할 수 있습니다. 
이러한 기준은 행정경계도 가능하겠지만 인구의 가감 등으로 향후 변경이 발생할 여지가 있기 때문에 격자가 기준으로 적합할 수 있습니다.

이러한 격자는 육각형의 벌집 모양으로도 반복할 수 있지만 가장 쉬운 바둑판 형식의 격자를 제작하겠습니다. 인터넷에서 "Fishnet Grid"를 검색하면 다양한 제작 방법을 찾을 수 있습니다. 저는 PostGIS의 공간함수를 이용하여 SQL Function을 제작합니다. 제작된 Grid는 Qgis에서 형상을 확인합니다.

1. 함수 원형 및 설명



CREATE OR REPLACE FUNCTION __progworks_rect_grid_on_linearUnit_M(
grid_count_x integer, grid_count_y integer,
grid_size_x integer, grid_size_y integer,
start_x double precision, start_y double precision,
target_srid integer) RETURNS varchar AS
$$
DECLARE
target_table_name text;
BEGIN
EXECUTE format('SELECT ___progworks_new_table_name(''%s'')', 'temp' ) INTO target_table_name;
EXECUTE format('CREATE TABLE IF NOT EXISTS %I AS
               SELECT i+1 AS col, j+1 AS row, ST_Translate(cell, i * %s + %s, j * %s + %s) AS geom
   FROM 
   generate_series(0, %s - 1) AS i,
   generate_series(0, %s - 1) AS j,
   (SELECT ST_GeomFromText(''POLYGON((0 0, 0 %s, %s %s, %s 0,0 0))'')  AS cell) AS ORIGIN;',
                target_table_name,
    grid_size_x, start_x,
    grid_size_y, start_y,
    grid_count_x, grid_count_y,
    grid_size_y, grid_size_x, grid_size_y, grid_size_x
  );
EXECUTE format('SELECT UpdateGeometrySRID(''%I'', ''geom'', %s);', target_table_name, target_srid );
return target_table_name;
END
$$
LANGUAGE plpgsql;

 

2. 함수 설명

위 함수의 입력 파라미터를 간단히 설명하면
입력된 좌표(start_x, start_y)를 바둑판의 시작점(우리나라에서 사각형의 좌하단 지점)으로,
가로길이(grid_size_x)와 세로길이(grid_size_y)의 격자가,
가로축 방향으로 지정된 갯수(grid_count_x), 세로축으로 지정된 갯수(grid_count_y)만큼 가지는 격자를 생성하라는 것입니다.

이 때, 생성되는 격자는 지정된 좌표계(target_srid)를 가지도록 정의합니다.
굳이 SQL 함수 이름 끝에  LinearUnit_M을 붙여준 이유는 meter로 거리를 나타내는 좌표계를 사용하라는 뜻입니다.
4326으로 표시되는 경위도 좌표계는 AngularUnit의 degree를 사용하는 구면좌표계로 위경도에 따라 정확한 거리 지정이 불가능합니다. 물론 좁은 지역이라면 상관없습니다. 하지만 정확한 격자크기의 보장을 위해 평면으로 투영된 좌표계 사용을 권장합니다.

함수 내부를 보면 미리 정의된 격자 폴리곤이 WKT 형식으로 존재합니다. 기준 폴리곤은 가로, 세로 각각 0을 기준으로 사용자가 지정한 크기(grid_size)로 이루어지도록 정의 됩니다.
이후 질의 실행에 따라 generate_series 함수가 호출될 때 마다 ST_Translate 함수가 기준 폴리곤을 지정된 위치로 옮기며 새로운 개별 격자를 생성하는 형식입니다.

실제 함수를 실행하여 등록한 후 아래와 같이 함수를 호출합니다. 만들어진 격자는 Qgis를 통해 확인하겠습니다.



 SELECT __progworks_rect_grid_on_linearUnit_M(30, 30, 1000, 1000, 955000, 1937000, 5179);

 

 

3. 맺으며

격자 만들기는 어떤 목적을 이루기 위해 데이터를 준비하는 중간 과정 입니다.

격자를 왜 만들었을까요? 앞에서 설명한대로 격자에 의미있는 무언가를 담기 위해서 입니다. 다음 글에서 만들어진 격자를 이용해 다른 테이블과 위상관계를 분석하여 집계 하는 것을 설명하겠습니다.

자주 하는 말이지만 수학문제 눈으로 풀지 않듯이 개발자는 손이 부지런해야 합니다. 즐코딩~~~

개요

WPS (Web Processing Service) 지형 공간 프로세스, 알고리즘 및 계산을 게시하기위한 OGC 서비스.
 
Geoserver에서 WPS extension을 설치하고, 추가로 OpenGXT를 설치하는 방법에 대해 설명하겠습니다.
 
 
위 링크를 타고 들어가서 'Installing the WPS extension' 영역을 확인하면 geoserver download page. 와 함께 WPS 설정 방법도 자세하게 설명하고 있다.
 

1. WPS pluging download

메뉴얼을 살펴보면 Geoserver download page 에서 extension을 다운로드 할 수 있다.

 

설치된 Geoserver의 버전을 확인하여 자신이 설치한 지오서버에 해당하는 버전을 선택한다.

버전확인은 설치된 지오서버 메인 페이지에서 확인하거나 Geoserver 설치 디렉토리 루트에 VERSION.txt 파일에 적혀있다.

 

본인은 2.14.0 버전을 사용하고 있어 해당 버전을 선택

 

geoserver 해당 버전 다운로드 화면에서 아래쪽 'Extensions' 영역에 있는 버튼을 선택한다.

 

해당 라이브러리중 geoserver-2.14.0-wps-plugin.zip 을 찾아 다운로드

 

2. jar 파일 추가 후 Geoserver 재시작

다운로드 받은 zip파일을 압축해제 하여 6개의 jar파일을 지오서버가 설치되어 있는 루트 밑 WEB-INF/lib 위치에 복사해준다.

 

Geoserver에 WPS 메뉴가 활성화되고 Web Processing Service 확인 할 수 있다.

 

GetCapabilities는 작업이 가능한 프로세스를 설명하는 서비스 메타 데이터 및 메타 데이터를 포함하여 서비스 제공의 세부 사항을 요청합니다.

http://localhost:8080/geoserver/ows?service=WPS&version=1.0.0&request=GetCapabilities 

 

3. OpenGTX download

https://sourceforge.net/projects/mango-spatialstatistics/

위 링크를 타고 들어가서 본인의 Geoserver 버전과 같은 버전을 다운로드합니다.

 

다운로드 받은 zip파일을 압축해제 하여 2개의 jar파일을 지오서버가 설치되어 있는 루트 밑 WEB-INF/lib 위치에 복사해준다.

 

이후 Geoserver 를 재시작하면, 데모의 WPS 요청 빌더에 statistics 프로세스들이 추가된 것들 확인 할 수 있다.

 

OpenGXT 설치전에 Geoserver WPS가 사전에 설치되어 있어야 정상적으로 설치된다.

이후 다음포스팅에서 WPS에 사용방법에 대해 설명하도록 하겠습니다.

SVG(Scalable Vector Graphics) 정의

> 바로가기 : W3C SVG Specfication (https://www.w3.org/TR/SVG2/)
> 바로가기 : W3School SVG Tutorial (https://www.w3schools.com/graphics/svg_intro.asp)
> 바로가기 : SVG 애니메이션 레벨2 (https://svgwg.org/specs/animations/)

동적 웹페이지를 위하여 플래쉬가 널리 사용되던 적이 있습니다. 현재도 사용되긴 하지만 웹 호환성 문제가 나타나며 점진적으로 사용이 감소하고 있는 추세입니다. 플래쉬를 충분히 대체할 수 있는 웹 표준 기술이 존재하기 때문에 플래쉬는 결국 사장될 것입니다. 이를 대체하는 대표적인 표준 기술이 SVG 입니다.

SVG(Scalable Vector Graphics)는 XML 문서 형식으로 2차원 벡터 그래픽 객체를 정의하는 웹 표준으로 1999년 W3C(World Wide Web Consortium)의 주도로 개발되었습니다. 당시 인터넷 이용 환경은 차별없는 웹 구현에 제약이 있었습니다. 웹 브라우저에서 그래픽 객체를 표현하기 위해 Flash, Applet, ActiveX 등 벤더 종속적인 Binary Plug-in 을 사용했으나 상호운영성 및 호환성에 부족한 부분이 있었습니다.

현재 신규 제작되는 웹사이트의 경우 대부분 HTML5 사양이 적용되고 있습니다. HTML5가 이전 HTML 사양과 구별되는 기술직인 특징은 멀티미디어(video, audio) 사용성 강화, 그래픽 표현 강화(svg, canvas), Socket 적용 등을 들 수 있습니다. HTML5가 정의하는 2차원 벡터 그래픽 표현 방법은 SVG를 사용합니다. 이를 통해 HTML5는 SVG가 가지는 장점을 수용합니다. SVG가 가지는 장점은 여러가지가 있지만 대표적으로 다음과 같습니다.

  • 문서로 작성되는 그래픽이기 때문에 텍스트 편집기를 통해 제작될 수 있다. 기계판독(Machine-Readable)이 되는 형식이다
    (플래쉬는 이진 바이너리 코드의 실행으로 기계판독이 되지 않는 데이터 입니다)
  • 벡터 그래픽이기 때문에 표현되는 장비 해상도에 영향을 받지 않는다
    (확대, 축소하더라도 원본의 품질을 유지한다)
  • DOM (Document Object Model)을 가지기 때문에 그래픽 요소에 대한 검색, 색인이 가능하다
  • Video, Audio, Raster Image 등 멀티미디어 요소와 통합이 쉽다
  • Animation 지원으로 동적인 그래픽 표현이 가능하다
    (SVG 애니메이션은 SMIL(Synchronized Multimedia Intergration Language)을 정의하는 W3C Synchronized Multimedia(SYMM) 워킹그룹과 협력하여 개발되었습니다.)
  • 웹 표준 기술이기 때문에 별도의 이진 플러그인 없이 웹브라우저에서 바로 동작한다.

[출처] http://svgtutorial.com/svg-browser-support/   

SVG 적용 사례

> 바로가기 : Pinterest (https://www.pinterest.co.kr/)
> 바로가기 : ArcGIS (https://developers.arcgis.com/javascript/3/jssamples/graphics_svg_path.html)
> 바로가기 : Earth NullSchool (https://earth.nullschool.net/)
> 바로가기 : D3-Data Driven Documents (https://d3js.org/)

 

SVG를 이용한 공간정보 시각화

공간정보 분야에서 SVG 적용으로 얻을 수 있는 가장 큰 이점은 SVG Animation 요소 적용으로 실시간으로 변하는 상황의 표현이 쉽다는 것입니다. 아래의 예시는 간단한 SVG 애니메이션 소스 입니다. 

첫번째는 그래픽요소가 가지는 속성을 변경하는 것으로, 실제 공간정보분야에 적용된다면 비즈니스 레이어에 존재하는 객체가 가지는 Business Value에 연동하여 그래픽 표현을 적용하는데 적용될 수 있습니다.
두번째는 객체의 위치를 변경하는 것으로써 이동체(Moving Object)의 실시간 위치를 관제하는 경우 적용될 수 있습니다.
세번째는 지정된 길을 따라가는 예시로 항공기의 궤적, 물류 분야 관제 등 경로 표현에 적용될 수 있습니다.
SVG에서 객체의 형상(Rectagle, Circle, General Path, Group,..)을 정의하는 모든 요소는 애니메이션의 대상이 됨으로 동적인 표현이 가능합니다.

지리좌표계의 적용을 위해 SVG 의 Root Element(<svg>)에 'viewBox' 속성을 지정합니다. 이를 통해 실세계 좌표계(World Coordintate Reference System)를 사용할 수 있습니다. 일반적으로 경위도로 표현되는 좌표를 그대로 이용하기 때문에 GIS App 개발을 위한 별도의 변환 작업이 요구되지 않습니다.

> 다운로드 : svg_gis.html ( 

svg_gis.zip
다운로드

가장 일반적인 방법으로써 공간정보의 시각화를 위하여 Openlayers, leaflet등의 공개 SW가 널리 사용됩니다. 이 들 라이브러리는 D3와 함께 사용되면 동적인 정보 표현을 가능하게 합니다. D3는 HTML, SVG, CSS를 쉽게 사용하도록 도와주는 Wrapper 또는 Helper 라이브러리 입니다. 사용자는 SVG가 정의하는 그래픽 요소에 대한 지식이 없더라도 D3를 통해 쉽게 SVG를 이용할 수 있습니다.

기회가 된다면 본 블로그를 통해 다양한 GIS Data Viewer(OpenLayers, Leaflet, CesiumJS)에서 SVG를 활용하는 사례를 직접 제작하여 게시하겠습니다. 

> 바로가기 : SVG 애니메이션 사례 - 영국 바람 차트 (

https://charts.animateddata.co.uk/ukwind/)

> 바로가기 : leatlet + SVG - TOURISVIS.COM 스키장 안내 지도 (

https://winter.intermaps.com/oetztal?lang=en)

 

 

+ Recent posts