2014년 8월 12일 화요일

수도권 지하철 역별 시간대별 혼잡도 Visualization (1)

R의 Data Visualization 관련 기능들 공부도 할겸, 매일 매일 지겹게 이용하는 지하철과 관련하여 무언가 해보기로 했다.

이용한 데이터는 서울 열린 데이터 광장 (http://data.seoul.go.kr/openinf/sheetview.jsp?infId=OA-2731)에서 얻을 수 있다.

y축의 수치가 의미하는 바는 아래와 같이 %이며, 이는 열차 1량의 정원 160명을 100으로 두고 상대적으로 얼마나 많이 탔는지를 나타낸다.
(80% 정도만 되어도 복잡하고 쾌적하지 못한 느낌이 된다.)

지하철의 혼잡도에 대한 부가적인 설명은
http://urban.seoul.go.kr/4DUPIS/wordsearch/content_word.do?iword_no=1143 참조.

중앙에 3열로 빽빽하게 서있고, 출입문에 10명 정도가 서있는 경우가 200% 즉 320명이 되는, 힘빼고 서있어도 안넘어질 상태가 된다. -_-;;
8시~9시 사이의 사당 -> 강남 방향 평균이 185% 이니 이와 비교해서 상상하시면 될것 같다. 1시간 동안의 평균 수치라는데서 좀 조심해야 할 수도 있지만, 다녀본 사람은 알듯이 사당~강남 8~9시는 거의 균일하게 hell이다.

결과물은 아래. (그래프는 클릭하면 커짐)
그래프에 종점과 베드타운, 밤문화가 발달한 번화가 등에 따른 혼잡도 패턴이 확연히 나타난다. 평일 데이터만 분석했는데 주말 데이터도 분석하면 재미있는 결과가 나올것 같다.

googleVis 라이브러리를 사용해서 시간대에 따라서 움직이는 형태를 만들어보려 했지만,
역이 너무 많아서 gg치고 그냥 ggplot으로 적당히 마무리했다.
분석을 위해선 데이터를 원하는 형태로 cleansing하는 시간이 제일 많이 걸린다는 것을 느낀 작업.

14.08.16 역별 특성 클러스터링 결과는 여기에.
수도권 지하철 역별 시간대별 혼잡도 Visualization (2)











2014년 1월 26일 일요일

Android Emulator 속도 높이기

Android Emulator는 극악한 속도를 자랑한다. 좋은 PC는 아니지만 또 그렇게 끔찍한 PC는 아니건만 도저히 개발할 환경이 안되어 찾아보다보니 Intel님의 은혜를 입을 수 있었다.
좋은 PC가 아니라 만족할만한 결과까지는 아니지만 체감 속도가 엄청나게 올라갔다.

1. Android SDK Manager에서 [Intel x86 emulator accelerator (HAXM)] 인스톨


2. Intel® Hardware Accelerated Execution Manager 설치
참고: http://software.intel.com/en-us/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-windows

3. Android Virtual Device Manager에서 Intel Atom (x86) processor를 이용하도록 emulating
 - 이미지 생성시 CPU/ABI 에서 x86 선택
 - Emulation option에서 Use Host GPU 선택
  • Enable the GPU acceleration in the AVD Manager for your image. The HAXM driver executes most CPU instructions natively through Intel Virtualization Technology in the processor and the GPU acceleration offloads the OpenGL* calls to the host GPU.

2013년 11월 16일 토요일

Sales Funnel

(주로 B2B) 영업을 관리하는데 여러가지 방법이 사용되지만,
가장 general하고 step-by-step으로 관리하는 방법이 Sales Funnel 이다.
돌아다니다가 Sales Funnel에 대해 step별로 깔끔하게 정리된 자료가 있어 정리한다.

prospect customer 발굴에서 contact, pre-sales, post-sales까지 11 step으로 정리되어 있다.

2013년 8월 9일 금요일

청첩장 피싱 메시지 리버스 엔지니어링

모르는 번호로부터의 청첩장, 등으로 소액결제 또는 피싱에 많이들 당한다고 한다.
당하지도 않을 뿐더러 청첩장 메시지는 받은 적이 없었는데 어제 나도 드디어 '북한, 이게 끝이 아니다' 라는 내용과 URL이 담긴 메시지를 수신.
클릭해보니 dulala.apk 라는 놈을 다운로드 / 설치 유도하는 것이 보여서 이놈들 혼내줄 방법을 찾아볼까... 하다가 까발려 보기로 했다.

2013 서울 디지털포럼에서 '보통 사람의 잉여로움으로 세상에 기여하자' 라고 주장한 모 연사의 말도 좀 기억이 나고. 오늘은 시간이 잉여롭게 남기도 했고 ㅠㅠ

1. reverse engineering을 위해 쓴 툴은 아래 세가지
o apktool: https://code.google.com/p/android-apktool/
 - apktool d xxx.apk
 - 필요에 따라 resource, smali 등을 편집 또는 re-packing

o dex2jar: https://code.google.com/p/dex2jar/
 - apk의 압축을 풀고, dex2jar classes.dex를 하면 jar 파일이 생성된다.

o jd-gui: http://java.decompiler.free.fr/?q=jdgui
 - dex2jar 실행물로 생성된 jar 파일을 jd-gui로 열고 source로 저장 가능.

2. 리소스 파일들은 주요 은행앱의 리소스를 그대로 사용했다.


3. 널리 알려진 바와 같이 보안카드 번호 전체 입력을 유도한다.


4. 맞춤법에도 안맞는 어처구니 없는 피싱 메시지들을 사용함.
아래는 소스중 일부.
private void setupView()  {
    this.mDPM = ((DevicePolicyManager)getSystemService("device_policy"));
    this.mAM = ((ActivityManager)getSystemService("activity"));
    this.mDeviceComponentName = new ComponentName(this, deviceAdminReceiver.class);
    Intent localIntent = new Intent("android.app.action.ADD_DEVICE_ADMIN");
    localIntent.putExtra("android.app.extra.DEVICE_ADMIN", this.mDeviceComponentName);
    localIntent.putExtra("android.app.extra.ADD_EXPLANATION", "암호화 된 데이터 전송입니다, 귀하의 개인 정보는 꾸준한 보호받을수잇습니다");
    startActivityForResult(localIntent, 1);
  }
급했나, 아니면 조선족이 만들었나. 나보고 만들으라면 절대 이렇게 안만든다 ;;; 

5. 이런 세상의 말종같은 놈들의 서버라도 좀 죽여볼까 했는데 이미 죽어서 더는 할게 없고. 


뜯어봐도 너무 허접하다는 것 외에는 특별한 감흥은 없었다. 
보안은 시스템보다는 결국엔 역시 사람이 더 중요할 수 밖에 없다는 생각이 좀 들었고. 

그냥.... 잘 모르시는 분들은 그냥 URL을 클릭하지 마시는게 상책, 대충 아는 분들도 설치까지 시도하는 건 한번 고민해보시고, 

이런 애들 혼내줄 좋은 방법이 있으신 분은 공유해주세요.

2013년 7월 28일 일요일

협상의 기본: BATNA와 양보전략

별 내용도 아닌 기본이지만, 실제 준비 없이 해보면 그냥 슬슬 끌려다니다가 후회가 남는 협상을 하기가 십상이라 몇 자 정리해 본다.


흔히 협상에 중요한 것을 물으면 정보력, 인내심, 커뮤니케이션 스킬, 협상전략... 등등 여러가지 중요한 요소들을 나열한다. 하나하나 정말로 중요하지만 경험했던 협상 건들을 돌아보면 BATNA가 가장 중요하다고 생각한다.

BATNA는 Best Alternative To a Negotiated Agreement의 약자로, 협상 참여자가 협상이 결렬되었을 때 선택할 수 있는 가장 좋은 대안, 을 의미한다. 충분히 만족할 만한 BATNA가 있는 상태에서의 협상은 '너 아니면 말지'가 가능하기 때문에 여유있는 상태에서 정말 막강한 태도(?)와 전략 구사가 가능하다.
BATNA는 나의 best alternative가 상대방에게는 안 좋은 패일 수록 좋다.


다음으로, 양보 전략은....
위와 같이 - 당연하지만 내 비용은 적고 상대방이 가치는 높게 느낄 수 있는 순으로 양보해 나가야 한다.

협상의 item들을 먼저 명확히 정의하고 정량적으로 수치화 할 수 있으면 위와 같이 만들기 좋겠지만, 정성적인 경우에도 동일하게 적용 가능하다.

2013년 6월 30일 일요일

전략 기획에서의 SWOT 응용

너무나 고전이지만 여전히 여기저기서 많이도 사용하고 언급되는 SWOT.
이를 응용하여 '전략기획 시나리오 플래닝'과 엮어 정리한다.

아래와 같은 형태의 표로 전략 목표를 둘러싼 환경을 분석하고, 시나리오를 설정하는 것을 가정해보자.


순서와 요령은...
1. 전략의 목표설정
2. Who: 목표에 따른 관련자들 설정 (ex. 우리, 고객, 정부, ... )
3. Issue: 목표와 관련하여 Who의 각 참여자가 가진 Strength, Weakness,  그리고 발생할 수 있는 Opportunity, Threat 분석. 각 player의 입장에서 객관적으로 SWOT분석.
4. Setting: 목표에 따라 각 플레이어를 엮고 적절히 제안할 수 있는 방안을 찾는다.

2013년 6월 22일 토요일

시나리오 플래닝, 사업전략 개요

전략기획 시나리오 플래닝 교육 내용 중 개괄적인 내용들. 



o 기업의 미션은 불변한다.

o 기업의 미션으로부터 비전이 나오고, 비전을 구체화하여 목표를 수립한다.
 - 목표는 구성원을 설레일수 있게 만들어야 한다.
 - 실행하는 자가 목표를 수립하면 목표는 낮아진다.

o 기획은 배경을 design하는 것이다.

o 전략이 내부로 향하면 혁신전략, 외부로 향하면 경쟁전략.

o 계획은 기획이 아닌 계획. 일정 등 낮은 수준의 기획.

o 실행후 피드백을 통하여 계획, 전략, 기획, 목표 수정