페이지

2014년 1월 20일 월요일

간단 하게드는 것

제품이나 서비스에 있어서(뭐 안그런것이 있겠냐마는) 사용자를 위해 무언가를 간단하게 만들려고 하면 뒤에서 해야할 일이 많다. 이런것을 보통 usability 라고 부른다. 이것을 측정하지 않고 중요하지 않게 생각하는 회사에서는 흔히나타날 수 있는 부작용은 UX등을 아주 복잡?하게 만드는 것이다. 이런 일은 예상외로 자주 일어 나는데 그 안의 사연들을 보면 지극히 상식적일 수 밖에 없다.

예를 들어 보자. H사는 핸드폰 제조 업체. 이번달 말에 새 모델 출시를 준비하고 있다. 자체 앱스토어인 H App Store도 만들고 H Music도 만들어서 번들링을 한다. 나는 H App Store의 개발자라고 하자. 일정은 이미 빠듯한 상황이고 여유는 별로 없고 윗 사람들은 일정만 강조한다.  H App Store 의 경우는 서버에 사용자 기록을 남겨야 하니까 약관 동의를 받고 device id 를 key로 서버에 저장하게 된다. 이렇게 App Store는 개발을 끝냈다. H Music쪽에서도 보니까 App Store와 비슷하게
 서버에 사용자 기록을 남기고 약관동의도 받아야 하고 device id도 받아서 key를 사용하게 했다. 이렇게 제품을 출시.

고객의 피드백 중에그러고 보니 모두 H사의 서비스를 사용하는데 약관동의를 두번이나 받아야 하며, 내가 단말을 바꾸게 되면(device id가 바뀐다)  이전 기록들이 다 지워져서 다시 입력을 해야 하는가란 voc 가 많이 들어와서 다음 버전에 이것을 간단히 할 수 있는 기능을 넣기로 한다.

이름하여 H Account!
 H Account를 H App store에서 한번 만들어서 로그인을 해두면 그것을 H Music 도 H Books도 재사용할 수 있어서 사용자는 처음 한번만 로그인을 하면 되는 것이다.

 이렇듯 사용자의 클릭 몇번을 save하는 데에는 H Account라는 개발조직을 필요로 한다. H 사가 어느 정도 규모가 있는 회사라면 적어도 몇십명의 개발자가 필요한 것이고 회사로서는 몇십억의 투자가 필요한 것이다.
 어떻게 보면 복잡하게 만드는 것이 가장 쉬운 것이다. 어떻게 해서 사용자에게 더 간단하게 이 서비스를 제공할 수 있을가 라는 고민은 돈과 시간이 많이 드는 일이다.
이 방면의 선수는 애플!


2014년 1월 16일 목요일

MST - Prim Algorithm

minimum spanning tree(MST)는 undirected graph - G(V, E) - 에서 모든  점을 연결하는 그래프 중에서 weight의 합이 최소인 서브 그래프를 말한다.

MST를 구하는 대표적 알고리즘은 Kruskal 과 Prim 알고리즘이 있다.

먼저 Prim algorithm은 graph를 2개의 set 으로 나누고 두 셋을 연결하는 에지는 최소여야 MST를 만들 수 있다는 아이디어로 부터 만들어진 것이다.

설명은 여기가 너무나 잘 되어 있고..
http://www.geeksforgeeks.org/greedy-algorithms-set-5-prims-minimum-spanning-tree-mst-2/

나의 구현은 여기
https://github.com/nberserk/codejam/blob/master/java/src/codejam/lib/PrimMST.java


Kruskal 다음에 하기로..