본문 바로가기

분류 전체보기

(249)
[디자인 패턴 1편]. 디자인 패턴 개요 1. 디자인 패턴이란 디자인 패턴은 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론이다. 그렇다면 좋은 코드란 무엇인가? 좋은 코드란, 가독성, 간결함 등 여러 방면이 있겠지만, 디자인 패턴에서는 설계적 관점에서의 좋은 코드를 말한다. 즉, 확장과 수정에 용이하여 설계 이후에도 추가적인 유지 보수에 비용이 적게들어가는 코드를 말한다. 객체지향적으로 생각하면, 추구해야할 설계 방향은 다음과 같다. 객체 간 응집도는 높이고, 결합도는 낮게. 요구 사항 변경 시, 코드 변경을 최소화 하는 방향으로. 그리고 이러한 '좋은 코드' 설계하려면 이러이러한 원칙들이 지켜지면 좋다라고 논의되어왔다. 조금 더 스코핑하면, '객체지향 방법론' 에서는 이게 SOLID 원칙이 된다. 또 이러한 원칙..
[지도 데이터 시각화] Part 6. pydeck 살펴보기 deck.gl 은 Uber 에서 만든 자바스크립트 공간 데이터 시각화 라이브러리입니다. pydeck 은 이 라이브러리를 파이썬에서도 쓸 수 있도록 만든 패키지입니다. 이 또한 Uber 팀에서 공식적으로 만들었습니다. 특징으로는 대용량 데이터도 거뜬하게 렌더링할 수 있으며, 렌더링이 좀 버거울 수도 있는 일부 레이어는 GPU 연산을 제공합니다. (즉 대용량 처리 및 렌더링에 매우 용이하다는 말입니다.) 이전에 말씀드렸다싶이, 지금까지 소개한 2개의 파이썬 패키지(folium, mapboxgl)에 비해 상대적으로 매우 최근 라이브러리고, 기술적으로도 훨씬 진보한 라이브러리라, 꼭 알고가셨으면 좋겠습니다. 다만, 이전보다 좀 더 섬세하게 다룰 수 있는 부분이 많아, 조금 더 어려울 수는 있습니다. 아직 geo..
오피노가 주최한 그로스 해커톤을 참여해봤다. 1. 그로스 해커톤..?! 대략 일주일 전, 인스타를 뒤적거리다가 '그로스 해커톤' 이라는 대회가 광고로 떴다. 그로스 해킹이라는거, 대애애충은 개념은 알고있었는데 이런걸 해커톤으로 한다니..? 짧은 시간 안에 뭐든 해보고 결과도 볼 수 있을 것 같아서 재밌을 것 같았다. 주말 하루에, 5시간 밖에 안되고, 무엇보다 참여자격이 관심있는 누구나! 란다. 해본 적은 없지만 ... 관심은 있었으므로 지원해봤다. 그래도 나름의 분석 경험이 있으니... 뭐라도 할 수 있지 않을까 싶었다. 그로스 해킹이 무언지 잠깐 설명하자고 하면... 오피노 페이지에서 친절히 설명해주고 있다. 그냥 내 식대로 한마디로 표현하자면, 그로스 해킹은 데이터 분석과 실험을 통해 디지털 마케팅 관련 성과지표를 올리는 것이다. 음.. 더더..
[지도 데이터 시각화] Part 5. Mapboxgl 살펴보기 Mapbox 는 WebGL 기술을 이용해, 브라우저에 지도 데이터를 렌더링해주는 해주는 자바스크립트 라이브러리입니다. (물론, 모바일용, Unity 용으로도 있습니다.) Mapbox 의 주 기능은 무엇보다 '이쁘게' 그려준다는 겁니다. API 기능 설계가 대부분 이 '스타일' 에 아주 잘 맞춰져있습니다. 또, 어떤 라이브러리보다, API Reference 가 직관적이고 쉽습니다. 공식 Documentattion 을 보시면, 깔끔하게 API 가 정리되어있는 것을 보실 수 있고, 누구나 쉽게 사용할 수 있도록 Examples 도 훌륭하게 정리되어 있습니다. Mapbox GL js API Refernce https://docs.mapbox.com/mapbox-gl-js/api/ M..
[지도 데이터 시각화] Part 4. Folium 살펴보기 첫 번째로 살펴볼 시각화 패키지는 Folium 입니다. leaflet.js 기반으로 지도를 그려주고, 모바일에서도 쓸 수 있을만큼 가볍습니다. 나온지도 다른 라이브러리들에 비해 상대적으로 오래된 패키지입닌다만, 그만큼 안정적입니다. 한편, 분석 프레임워크로 가장 많이쓰는 pandas 와 쉽게 연동되어 간편하게 시각화가 가능합니다. 파이썬에서 지도 시각화 하면 가장 유명한 패키지일지도 모르겠습니다. 자 그럼 시작해보겠습니다. 1. 설치 먼저 pip install 로 folium 을 설치하고 임포트해줍니다. pip install foliumimport folium folium.__version__ '0.9.0'2. 샘플 하나 해보기 https://python-visualization.githu..
[지도 데이터 시각화] Part 3. Mapbox로 지도 데이터 시각화하기 사실, 파이썬으로 지도 데이터를 시각화하는 여러 방법에 대해서 소개하고자, 이 시리즈를 쓰게 되었지만 그 전에 앞서, 굳이 꼭 파이썬을 써야할까라는 생각이 들 수 있습니다. 파이썬 아니여도 시각화할 방법은 많으니까요. 특히 코드에 익숙치 않고, 보다 직관적인 UI 를 원하시는 분들을 위해 파이썬에 앞서 이 포스팅을 먼저 남깁니다. 이미 Mapbox Studio 와 Carto 라는 훌륭한 웹 기반 플랫폼이 있습니다. 여기서는 Mapbox Studio 에 대해서 잠깐 소개하겠습니다. 지도 데이터 시각화를 하다보면, Mapbox 라는 이름 참 많이 봅니다. 그만큼 강력하고 훌륭한 소프트웨어를 잘 만들어놓은 회사입니다. 최근 엄청난 상승세이기도 합니다. 각설하고, Mapbox 에서 Mapbox Studio 를 ..
[지도 데이터 시각화] Part 2. 여러 시각화 타입 알아보기 이번 포스팅에서는, 지도 데이터를 시각화할 때 어떤 타입으로 시각화할 수 있는지 그 종류를 살펴보겠습니다. 이 타입이 정해진 것은 아니나, 대체로 많이 써오던 타입은 이름이 보통 정해져있습니다. 따라서, 기본적인 시각화 형태부터 하나씩 살펴본 후, 이후 조금 특이한 타입도 살펴보겠습니다. 1. Scatter (Point) 어떤 라이브러리에서는 Point plot 으로도 불립니다. 말 그대로 Point 단위로 데이터들을 지도에 찍습니다. 데이터는 Point 단위로 geometry 정보를 갖고 있어야 합니다. 예를 들어, 각 데이터가 범죄가 발생한 곳의 위치 데이터라면, 주로 어디서 발생하는지 한 눈에 알 수 있습니다. 이처럼, 전반적인 위치 데이터의 구체적인 분포를 보고 싶을 때 사용합니다. 2. Line..
[지도 데이터 시각화] Part 1. Geo Data 와 Python 1. Geo Data 1.1. 개념 지도 데이터를 다루기 앞서, 지도 데이터란 무엇이고 어떤 형태로 생겼는지 살펴보려 합니다. 지도 데이터는 일반적으로 '위치' 정보를 담고 있는 데이터입니다. 이 위치는 좌표계에 따라 다르게 정의될 수 있지만, 일반적으로는 시각화에는 WGS84 좌표계(EPSG 4326 이라고도 합니다)를 씁니다. 한편, 점과 점 사이의 거리 등 공간 연산에는 WGS84 가 아닌 다른 좌표계를 씁니다. 이처럼 목적에 따라 좌표계가 달라질 수 있습니다. 좌표계 종류와 구분은 아래 링크에서 확인해보세요. https://www.osgeo.kr/17 한편, 각 좌표계에서 한 지점을 점, Point 라고 합니다. 이 점은 좌표계에서 (x, y) 로 표현됩니다. WSG84 에서는 (경도, 위도)로 ..