검색결과 리스트
로그의 노트에 해당되는 글 212건
- 2014.03.31 [예술] 기타 연주에 관한 짤막한 프레젠테이션
- 2014.01.18 [프로젝트] Tweech (1)
- 2014.01.18 [프로젝트] 분실물 다나와 (1)
- 2014.01.18 [프로젝트] StarOS를 아시나요?
- 2014.01.09 [시] 지금 하십시오
- 2014.01.09 확 굴려버려 - 볼링(Bowling)
- 2013.08.05 [패션] 남자 구두 종류 (1)
- 2013.07.08 [알고리즘] 알고리즘 글 목록
- 2013.07.07 [iPhone] 아이폰앱 디자인 정석(TapWorthy) (1)
- 2013.04.29 오 마이 카! 자동차 구매 경험기 (3)
글
글
[프로젝트] Tweech
1. 기본사항
시스템명: Tweech
주관기관: 앳게임
개발인원: 5명
프로젝트 기간: 2010.08.02 ~ 9.17
2. 프로젝트 소개
SNS 시장에서 트위터 서비스의 점유율이 빠른 속도로 증가함에 따라 트위터를 통한 정보와 지식 공유의 수준 역시 나날이 높아지고 있다.
Tweech 앱은 미국 내 트위터 서비스 이용자들을 대상층으로 한다. 단순한 키워드 검색 서비스를 넘어서서 사용자를 대변하는 Bot(로봇)을
Following 함으로써 관심있는 분야에 대한 최적의 글을 자신의 타임라인에서 구독할 수 있는 앱이다.
이런 검색시스템을 바탕으로 트위터 사용자들이 작성한 메시지들의 패턴을 분석하여 사용자와 유사한 유형을 가진 다른 사용자들을 추천해주는
기능을 제공한다. 트위터 검색시스템 구축을 1차 목표, 로봇 및 성향 분석 모듈 구축을 2차 목표로 하며, 현재 버전에서는 1차 목표까지 완료하였다.
3. 개발환경
타겟 시스템: iPhone 3GS
SDK: Java 5, iPhone SDK 3.0, Apache Lucene 3.0
언어: Java, Objective-C
프레임워크: iBATIS 2.3, Spring2.5, SpringMVC
분석/설계도구: Visual Paradigm
개발도구(IDE) : Eclipse 3.6, Xcode 3
서버 운영체제: CentOS 5.4
애플리케이션 서버: Apache Tomcat 6.02
데이터베이스: MySQL 5.1
[iPhone Client]
OAuth 인증처리 및 사용자 계정관리 (Objective-C / C언어 사용)
Third Party 라이브러리를 사용하지 않고, 웹 서비스 자원 오픈 표준인 OAuth 인증처리를
구현하였다. 최대 5개까지의 트위터 계정을 등록할 수 있으며, 최초 등록 시 OAuth 인증과정을
거치게 된다.
Tweeter API (Follow / Favorite / Retweet) 요청 및 처리 (Objective-C 언어 사용)
Tweeter API와 연동하여 검색된 트윗글을 북마크하고, 리트윗하는 기능을 구현하였다. 또한
트윗글 작성자를 팔로우하는 기능도 제공한다.
[Server]
색인기(Indexer) 모듈 (Java 언어 사용)
Apache Lucene 3.0 검색 라이브러리를 사용하여, 분석기를 구현하였다. Crawler 모듈에서 수집된 트윗글을 네트워크로 전송 받아 파일시스템에 색인파일을 생성한다.
[iPhone Client]
OAuth 인증처리 및 사용자 계정관리
OAuth 인증처리 과정은 다음과 같다. Tweeter API 지원 페이지에서 Third Party 앱으로
등록하면 Consumer Key, Consumer Secret 값이 발급된다. 이 값과 사용자부터 입력 받은
트위터 서비스 UserName과 Password를 바탕으로 OAuth 인증 URL로 접속하여 Request
Token 요청, Acces Token 요청과정을 거쳐 최종적으로 Access Token을 획득하게 된다.
Access Token은 사용자 데이터에 접근을 허용하는 일종의 허가권으로 인증이 요구되는 트위터
API 사용시 필요한 값이다. OAuth 구현시 트위터 OAuth 도움말 페이지 및 OAuth Core1.0 Spec을 참고하여 구현하였다.
최대 5개까지의 계정을 등록하여 사용할 수 있으며, 등록 요청을 받은 계정정보는 유효성 검사
후 OAuth 인증처리를 거치게 되며, 성공시 iPhone SQLite 데이터베이스에 저장된다.
6-2.색인기(Indexer) 모듈
색인기(Indexer) 모듈
색인기 모듈은 Java 언어를 사용하여, Apache Lucene 3.0 오픈소스 검색 라이브러리를 사용하여 구현하였다.
Crawler가 수집한 트윗글(Status) 목록을 네트워크를 통해 전송 받아, 색인파일을
생성하는 역할을 한다. Crawler가 수집한 트윗글 목록이 끊임없이 전송되기 때문에 지연없이
색인을 생성하는 것이 핵심이 된다. 색인속도가 전송되는 트윗글의 속도를 따라가지 못하게 되면 메모리 부족현상이 발생하게 된다.
성능을 향상을 위해 5개의 쓰레드로 동작하며, 100건 단위로 트윗글을 메모리에 색인한다. 빈번한 파일 색인 생성작업은 가장 CPU
자원을 소모하기 때문에 1000건의 트윗글이 메모리에 색인되면 파일색인을 생성하도록 처리하였다.
색인된 파일들은 NFS(Network File System)을 통해 검색기 모듈에 의해 참조된다.
빠른 검색을 지원하기 위해서 증가하는 색인파일들을 주기적으로 최적화하여 색인파일의 개수를
줄이고 정리해야한다. IndexerOptimizer는 색인기 모듈 구동과 동시에 지정된 시간 후에
일정 주기로 색인파일을 최적화 한다.
7. 주요화면
|
|
|
|
|
'언어로그 > 프로젝트로그' 카테고리의 다른 글
| [프로젝트] Tweech (1) | 2014.01.18 |
|---|---|
| [프로젝트] 분실물 다나와 (1) | 2014.01.18 |
| [프로젝트] StarOS를 아시나요? (0) | 2014.01.18 |
설정
트랙백
댓글
글
[프로젝트] 분실물 다나와
1.기본사항
시스템명:분실물 다나와
주관기관: 앳게임
개발인원: 5명
프로젝트 기간: 2010.10.1 ~ 11.19
2.프로제트 개요
매일 지하철에서만 약 200여건의 분실물이 발생하며 그 중 28% 가량이 주인에게 돌아가지 못하고 누적되어
보관장소 확충과 관리인력 낭비 문제를 발생시키고 있는 실정이다.
“분실물 다나와” 는 서울시 대중 교통 통합분실물 센터 웹서비스와 연동하여 사용자들이 분실물을 빠르게
찾을 수 있게 편리한 서비스 제공과 분실물 반환율 증가를 통한 예산 절감을 목표로 한다.
분실물 조회 서비스 이외에도 유사분실물로 의심되는 항목들을 Push 메시지로 전달해주는 편리한 기능을 제공한다.
또한 서울시 대중교통 조합에 소속된 모든 업체들의 연락처와 위치를 지도상에서 제공하여 좀더 용이하게 분실물을
회수할 수 있게한다. (서울시/중소기업청 주관 앱 공모전 출품)
3. 개발환경
타겟 시스템: iPhone 4G
SDK: Java 5, iPhone SDK 3.2
언어: Java, Objective-C
프레임워크: iBATIS 2.3, Spring2.5, SpringMVC
분석/설계도구: Visual Paradigm
개발도구(IDE) : Eclipse 3.6, Xcode 3.5
서버 운영체제: Ubuntu 10.04
애플리케이션 서버: Apache Tomcat 6.02
데이터베이스: PostgreSQL 8.4
4. 맡은 업무및 구현 내용
프로젝트 일정 계획 및 업무 분장
앱 화면전환 절차 설계
클라이언트/서버 유사 분실물 관리/통지 모듈 설계 및 구현
(Apple Push Notification Service 연동)
분실물 이미지 cache 모듈 설계 및 구현
5. 분실물 다나와 시스템 구성도
[iPhone Client]
클라이언트 유사 분실물 관리/통지 모듈
관심있는 분실물에 대한 대중교통, 분실물 종류를 입력하면 원하는 기간동안 분실물 센터에 등록되는 유사 분실물들의 정보를 Push 받을 수 있다. Push 서비스를 위해, 앱 최초 구동시 사용자
iPhone에 대한 Device Token과 UUID를 추출하여 서버에 전송하며, 이 값들은 APNS 에 Push를
요청하기 위해 필요한 데이터가 된다.
분실물 이미지 cache 모듈
웹서비스를 통해 검색된 분실물 목록을 10개 단위로 받아온다. 목록을 받아오는 API와 분실물에
대한 상세조회 API, 분실물 이미지 조회 API가 모두 분리되어 있어, 분실물 이미지를 조회하기
위해서는 3번의 요청이 이루어져야 한다. 다수의 요청과 동일한 이미지 중복요청으로 인한 성능
감소를 극복하기 위해 Dictionary에 요청한 이미지를 캐시하도록 구현하였다.
[Server]
서버 유사 분실물 통지 모듈
유사 분실물이 존재할 경우 Apple Push Notification Service 에 해당 사용자 앱에 Push 메시지전송을 요청한다. Local and Push Notification Programming Guide 문서를 참고하여 구현하였다.
6. 푸시 모듈 클래스 다이어그램
[APNS에 Push Service 등록 요청]
앱 최초 구동시 사용자 iPhone과 앱에 대한 Push 서비스 등록을 APNS 서버에 요청한다.
UIApplication 클래스에 registerForRemoteNotificationTypes: 메소드를 사용한다.
[APNS로부터 Device Token 수신]
서비스가 수락되면 APNS로부터 앱을 유일하게 식별하는 값인 Device Token을 응답 받는다.
APNS에 Push를 요청하기 위해 Device Token를 함께 전송해야 한다.
[서버에 Device Token과 UUID 전송]
사용자 Device를 유일하게 식별하기 위한 디바이스 UUID와 Push 요청을 위한 Device Token을
서버에 전송한다. UUID는 본 시스템에서 사용자를 유일하게 구분하는 값이 된다.
[서버에 통지 받을 분실물 등록]
사용자는 앱을 사용하여 관심있는 분실물에 대한 정보를 등록한다.
[Push 메시지 수신]
UIApplicationDelegate 프로토콜의 RemoteNotification 관련 메시지를 구현하면, Push 메시지를
통해 관심 분실물에 대한 키를 통지 받을 수 있게 된다.
[서버에 유사 분신물 목록 조회요청]
통지받은 키와 함께 유사 분실물 목록을 요청하면, XML 형태로 데이터를 수신받게 된다.
7. 주요 화면
메인화면
분실물 목록조회 화면
분실물 정보 상세조회
유사 분실물 발견시 등록
유사 분실물이 발견시 푸시수신
발견된 유사 분실물 목록
발견된 유사분실물 상세정보
대중교통별 분실물 센터의 전화번호와 위치 안내
버스별 분실물 센터
버스별 분실물센터 위치
'언어로그 > 프로젝트로그' 카테고리의 다른 글
| [프로젝트] Tweech (1) | 2014.01.18 |
|---|---|
| [프로젝트] 분실물 다나와 (1) | 2014.01.18 |
| [프로젝트] StarOS를 아시나요? (0) | 2014.01.18 |
설정
트랙백
댓글
글
[프로젝트] StarOS를 아시나요?
2009년 8월~12월은 가장 재미있었던 개발을 했던 순간으로 기억합니다.
비트 자바 고급반을 수강하면서 그동안 몰랐던 웹이라는 기술에 눈을 떳던 시간이었고,
프로젝트다운 프로젝트를 했던 순간이었고 좋은 동료들과 인상깊었던 결과물을 완성할 수 있었던 시간이었습니다.
결과물을 SourceForge 에 올려 오픈소스 프로젝트로 삼겠다던 당시의 포부는 게으름으로 이루지 못했지만 ^^;;
이대로 그냥 지나쳐 버리기엔 너무 아쉬울 당시의 결과물을 표현하고자 이 글을 작성합니다 ~
1. StarOS - "언제 어디서나 웹을 내 개인PC 환경처럼 쓸수 없을까"
StarOS는 웹을 마치 개인 PC 바탕화면처럼 사용하면 좋겠다는 생각으로 만들어진 "브라우저에서 동작하는 OS" 입니다.
현재의 서비스들에 비유하자면 "클라우드+웹하드+a" 정도로 생각할 수 있겠네요.
2. StarOS로 무엇을 할 수 있는데?
기획당시 일반적으로 개인 PC에서 할 수 있는 작업들을 할 수 있도록 하고 싶었습니다.
예를 들자면 음악/비디오 감상, 메일쓰기, 워드 문서작성, 사진 보기, 일정작성, 인터넷 서핑과 같은 가장 빈번하게
사용하는 작업들 말이죠.
2달이라는 짧은 시간동안 프로젝트를 완료 해야했기에 다소 기능을 제한하여 다음을 목표로 삼았습니다.
- 일반적인 윈도우 환경과 유사한 사용자 인터페이스를 제공한다
- 이미지 파일을 볼 수 있다.
- 음악과 비디오를 감상할 수 있다.
- 파워포인트, 워드문서를 볼 수 있다.
- 일정을 작성하고 조회할 수 있다.
- 개인파일을 업로드, 다운로드 할수 있다.
- 메일을 작성하고 조회할 수 있다.
프로젝트가 순조롭게 진행되었고, 2달이 다되어 갈 무렵에 계획했던 기능들이 모두 구현되었습니다.
팀원들과 테스트를 진행하던 중에, StarOS 가 기능들을 잘 제공하기는 하지만 너무 재미없다는 것을 깨닫게 되었습니다.
"누군가와 공유할 수 있는 무엇가가 있으면 좋겠다" 는 생각을 하게 되었고,
방문자에게 파일을 공개/비공개 유무를 설정할 수 있고, 방명록을 통해 글을 남길 수 있는 기능을 추가로 적용했습니다.
SNS 기능을 추가한 것인데요! 남아있는 프로젝트 시간이 없어서 "방명록" 과 "파일 공개설정" 에 그쳤지만
채팅이라던가 친구와 게임하기와 같은 소셜 기능 등 재미있는 요소를 많이 적용할 수 있겠다는 생각이 들었습니다.
3. 개발 개발 개발
4명의 팀원들과 주제선정, 마인드맵을 사용한 브레인스토밍을 거쳐 구현할 기능 구체화한 뒤...
업무를 분장하고 개발에 착수했습니다. Flex 플랫폼을 모두 처음 접했기 때문에 처음 진행은 더딜 수 밖에 없었습니다.
하지만 모두들 같은 목표를 위해 열심히 했고, 팀워크가 워낙 좋았기 때문에 조금씩 결과물이 보이기 시작했습니다.
제가 담당했던 부분은 전반적인 아키텍처 설계 및 탐색기와 메일클라이언트의 구현이었습니다.
"윈도우 창관리"와 "아이콘과 이벤트 연동" 과 같이 상당히 고난이도의 UI 를 다루는 기술이 필요했기에 처음에는 너무
막막했습니다. 그러던 중 구글코드에서 창관리를 구현한 오픈소스를 발견하였고, 저희 프로젝트에 맞게 커스터마이징하고
아이콘 배치구조와 클릭시 이벤트를 전송하는 구조를 구현하고, 팀원들에게 전파했습니다.
기반코드가 만들어지니 그 이후부터는 좀더 수월하게 진행할 수 있었습니다. 각 자 맡은 모듈을 구현하면서 재미있게 놀수 있었죠!
유일한 여자 팀원이 있었는데, 수업시간에 매일 조느라고 프로젝트에 적응할 수 있을까? 란 고민이 컸었는데 프로젝트에서
이분의 역할이 상당했습니다. 탁월한 디자인 안목으로 StarOS에 생명을 불어 넣어주셨었죠. 잠만 덜 자면 참 좋았을 텐데 ㅋ
4. 내가 StarOS다!
2달간의 프로젝트 완료후 발표회에서 사용했던 발표자료 입니다.
StarOS의 모습은 아래와 같습니다.
시연 영상도 볼까요?
전문 다자이너가 없어서 웹사이트 디자인은 많이 부실하지만
StarOS 애플리케이션은 나름 봐줄만 하죠 ^^
Java 고급과정에서 배웠던 Spring2.5, iBATIS 내용들을 200% 활용하였고, Flex도 학습할 수 있어서 기술적으로 많은 것을 배웠던 프로젝트였습니다.
가끔 그때 Source forge에 오픈소스로 등록하여 지금까지 계속 개선하고 가꾸어 왔으면 어땠을까? 하는 생각을 해보네요
마지막으로 "재미있게 개발을 하기위해 힘쓰고 있는가" 라는 물음을 던지면서 이 글을 마칠까 합니다.
'언어로그 > 프로젝트로그' 카테고리의 다른 글
| [프로젝트] Tweech (1) | 2014.01.18 |
|---|---|
| [프로젝트] 분실물 다나와 (1) | 2014.01.18 |
| [프로젝트] StarOS를 아시나요? (0) | 2014.01.18 |
설정
트랙백
댓글
글
[시] 지금 하십시오
지금 하십시오
할 일이 생각나거든 지금 하십시오.
오늘은 맑지만 내일은 구름이 보일지도 모릅니다.
친절한 말 한마디가 생각나거든 지금 말하십시오.
사랑하는 사람이 언제까지 곁에 있지는 않습니다.
사랑의 말이 있다면 지금 하십시오.
사랑하는 사람이 당신 곁을 떠날 수 있습니다.
미소를 지으려면 지금 웃어주십시오.
당신이 주저하는 사이에 친구들이 떠날 수 있습니다.
불러야 할 노래가 있다면 지금 부르십시오.
노래 부르기엔 이미 늦을 수 있습니다.
- 작자 미상
'생각로그' 카테고리의 다른 글
| 서른살에 알았더라면 좋았을 것들 (0) | 2014.04.24 |
|---|---|
| [시] 지금 하십시오 (0) | 2014.01.09 |
| 시간정리 (1) | 2012.05.21 |
| Ignite 분당에 참석하고 나서... (4) | 2012.05.19 |
| [마인드맵]C언어의 역사 (0) | 2012.03.05 |
| 성공하는 말하기 (0) | 2012.03.01 |
설정
트랙백
댓글
글
확 굴려버려 - 볼링(Bowling)
돌아오는 일요일 점심 친구와 1:1 볼링 시합을 하기로 했습니다.
친구의 실력을 어느 정도 알기에 조심스럽게 승리를 점쳐 봅니다. 하지만 방심은 금물!
게임에 직접적인 영향은 미치지 않겠지만, 전략을 세우는데 도움이 되겠다 싶어
대강 알고 있었던 볼링 규칙을 좀더 자세히 알아보았습니다.
1. 볼링(Bowling) 이란?
네이버 지식백과 형님께서 말씀하시길...
"삼각형 형태로 세워진 10개의 핀을 쓰러뜨리기 위해 60피트(18.28미터)의 긴 레인으로 공을 굴리는 게임" .
게임은 10프레임(frame)을 구성되어 있으며, 각 프레임은 10개의 핀을 넘어뜨리기 위해 2회까지 투구할 수 있습니다.
10프레임에서 스페어(spare)를 성공시켰을 경우 1회, 스트라이크(strike)가 된 경우에는 다시 2회 투구할 수 있습니다.
(즉 스페어, 스트라이크인 경우 총 3회 투구)
10프레임까지 마치고 얻을 수 있는 최고 점수는 300점입니다.
2. 몇가지 용어
상당히 많은 용어들이 있어서 놀랐습니다. 여기서는 간단히 몇가지만 ~
거터(gutter) : 레인옆 고랑으로 빠져 어떤 핀도 쓰러뜨리지 못한 경우. (0점 기록)
오픈(open) : 두번의 투구로 핀을 모두 쓰러뜨리지 못한 경우. (넘어뜨린 핀수 만큼 점수 기록)
스페어(spare): 첫 투구로 다 못쓰러뜨리고 남긴 핀을 2번째 투구로 다 쓰러뜨린 경우
(10+ 다음 프레임 첫 투구에 쓰러트린 핀수)
스트라이크(strike) : 첫 투구로 10개의 핀을 모두 쓰러뜨리는 경우 (10 + 다음 1,2회 투구에서 쓰러뜨린 핀수)
더블 (double) : 스트라이크를 두 번 연속 친 경우
터키 (turkey) : 스트라이크를 세 번 연속 친 경우
포베거 (4 begger): 스트라이크를 네 번 연속 친 경우
퍼펙트 (perfect): 한 게임을 모두 스트라이크로 처리한 경우
3. 점수 계산 법
스크린에서 보여주는 점수만 보고 "아 내 점수가 저렇구나~" 하고 생각만 했었는데, 실제로 알아본 볼링 점수 계산법
.................. 그렇게 어렵지 않다!
아래표와 함께 일반적인 경우, 스페어 처리, 스트라이크, 10프레임에서의 계산법만 고려하면 끝!
1프레임에서는 첫투구에 5개, 둘째투구에 3개를 넘어뜨려 8점을 얻었고, 핀을 모두 쓰러뜨리지 못해 open 상태입니다.
2프레임에서는 첫투구에 1개, 둘째투구에 9개를 넘어뜨려 스페어 처리를 했다. 3프레임 첫투구 9개를 합산하여 19점을 얻었지요.
4프레임에서는 스트라이크를 쳤고, 다음투구와 다다음 투구에서 모두 스트라이크를 쳐서 합산점수 30점을 얻었습니다.
10프레임에서는 넘어뜨린 핀의 개수의 합으로만 계산됩니다. 첫투구에 9개, 둘째투구에 1개, 셋째 투구에 10개를 넘어뜨려 합산하여 20점 획득.
스핀과 같은 고급 기술을 알지 못해도, 집중력만 높으면 중앙으로 볼을 굴려 높은? 점수를 기록할 수 있는 볼링!
몇 가지 정보를 알았으니, 주변 친구들에게 조금 아는척 해보는건 어떤가요? ^^
'기타' 카테고리의 다른 글
| 확 굴려버려 - 볼링(Bowling) (0) | 2014.01.09 |
|---|---|
| [패션] 남자 구두 종류 (1) | 2013.08.05 |
| [연말정산] 월세공제 확정일자에 대한 잘못된 진실 (2) | 2013.01.31 |
| 지갑 (0) | 2011.05.26 |
| 2011년 자바 개발자 컨퍼런스 등록!! (1) | 2011.05.23 |
| Base64 Encoding (0) | 2011.02.18 |
설정
트랙백
댓글
글
[패션] 남자 구두 종류
"남자 구두가 다 구두지" 라고 생각했던 나... 이렇게 세분화 되어있다는 걸
알고 깜짝 놀랐어요. 패션도 공부해야 하는겨 ~
1. 플레인 토
- 발가락 부분에 장식이 없는 구두.
2. 윙팁 (날개 끝)
- 구두 끝에 구멍을 뚫어 장식하거나 재봉으로 날개 모양으로 만든 것.
날개를 펼친 새의 모양을 닮았다하여 붙여진 이름
3. 몽크 부트랩
- 발등 부분에 버클과 벨트가 달린 구두로, "몽크"는 유럽의 수도승을 의미함.
수도승이 신는 스트랩이 붙은 샌들에서 착상을 얻었다고 함.
4. 스트레이트 팁
- 발끝에 "토 킵" 이라고 불리는 보강용 가죽을 가로로 덧씌운 신사 구두의 대표적인 디자인.
5. 모카신
- 털이 발등을 덮음
6. 더비
- 레이스업 슈즈위에 가죽을 덧댐
7. 로퍼
- 모카신의 변형 형태로, 발등에 가죽을 덧댐
8. 태슬
- 궁전에서 신던 실내용 구두에서 유래한 슈즈. 끈이 없는 대신 태슬 장식을
달아 리드미컬한 발거음을 선사.
9. 보트 슈즈
- 고무 밑창 단화에서 유래, 편안하고 활동적임
제가 구입한 이 신발은 뭐라고 불러야 할까요? 로퍼가 맞겠죠?
'기타' 카테고리의 다른 글
| 확 굴려버려 - 볼링(Bowling) (0) | 2014.01.09 |
|---|---|
| [패션] 남자 구두 종류 (1) | 2013.08.05 |
| [연말정산] 월세공제 확정일자에 대한 잘못된 진실 (2) | 2013.01.31 |
| 지갑 (0) | 2011.05.26 |
| 2011년 자바 개발자 컨퍼런스 등록!! (1) | 2011.05.23 |
| Base64 Encoding (0) | 2011.02.18 |
설정
트랙백
댓글
-
나그네 2014.01.08 16:36
그 신발은 보트화네요 잘봤습니다
글
[알고리즘] 알고리즘 글 목록
정렬 알고리즘
문제
암호화/해쉬
'알고리즘.데이터구조' 카테고리의 다른 글
| [알고리즘] 알고리즘 글 목록 (0) | 2013.07.08 |
|---|---|
| 프로그래밍 문제 접근법 (0) | 2011.04.26 |
| 원 위에 나열된 수 제거하기 (0) | 2011.03.23 |
| 합병정렬(Merge Sort) (0) | 2011.03.23 |
| HMAC-SHA1 (0) | 2011.03.11 |
| 문제5 그래픽편집기 (0) | 2011.02.18 |
설정
트랙백
댓글
글
[iPhone] 아이폰앱 디자인 정석(TapWorthy)
"아이폰 앱 디자인 정석"이란 책을 읽고 몇 가지 내용을 정리했습니다.
사용자에게 가치있는 앱이 되기 위해 주의해야 할 사항을 이야기한 책이지요~
작년 9월~10월 2권의 책을 읽었습니다. 첫 번째는, simple and usable 두 번째, 아이폰앱 디자인 정석 입니다.
simple and usable이 SW 디자인을 위한 큰 계획이라면 후자는 그에 관련된 세부적인 지침이라고 할 수 있습니다.
디자인이란, 그저 모양만이 아니라 앱의 기능, 성능 유저 인터페이스(UI) 까지 포함하는 말입니다.
훌륭한 애플리케이션이란, 콘셉트, 적정하게 구성된 기능, 뛰어난 사용 편리성, 만든 사람의 개성이 적당히 버무려진 것입니다
simple and usable에서 배웠던 핵심 내용입니다.
- 핵심으로 내세웠던 단순화 전략
- 대체 / 조직화 / 숨김/ 제거
- 이 장에서도 동일하게 적용될 내용? 그렇다면 무엇이 다를까?
- 스마트폰에서 공통적으로 적용될 구체적인 가이드 라인
저자 조시 클라크는 디자이너, 개발자, 작가, 강사, 컨설턴트로 활동하면서 아이폰앱, 웹사이트 구축 컨설팅 일을 하고있고,
시간의 여유가 있을 때는 디자인들을 직접 구현하는 일을 하고 있습니다.
이 책은 11개의 장으로 이루어져 있는데, 그중에서 중요하다고 생각되는 4개의 장을 선택해서 그 내용을 소개해 드릴 것입니다.
1) 들어가기 전에 2) 빠른 조작 3) 탭할 가치가 있는 앱인가? 4) 조그만 터치 스크린 5) 표준 UI 요소
6) 눈에 띄게 한다 7) 첫 인상 8) 스와이프, 핀치, 플릭 9) 가로 화면의 활용 10) 예의 바른 대화
11) 안녕하세요. 이웃 여러분
사용자가 가지고 싶어할 만한 앱
- 사람들이 왜, 어떻게 사용하고 있는지를 차분히 이해하는 데서 시작됩니다.
사용자가 가지고 싶어할 만한 앱을 만들고 싶지 않는가요?
- 앱은 사용자의 요구에 응하지 않으면, 또한 마음을 사로잡아 곰곰히 들여다볼만한 것을 주지 않으면 금새 다른 앱으로 옮겨가 버린다
- 탭할 가치가 있는 앱의 디자인은 대상으로 삼을 사용자층과 그들의 목적을 명확하게 파악하는데서 시작됩니다.
두 장의 그림을 보겠습니다. 좌측은 기획자 또는 디자이너가 의도한 모습입니다.
오른쪽은 사용자가 바라보는 관점입니다. 두 관점이 많이 다르지요.
이것은 "정보를 어떻게 화면 위에 제시하는가"가 매우 중요하다는 것을 보여주고, 사용자가에게는 핵심인 몇 가지만을
제시하는게 효율적이다는 것을 의미합니다.
모바일 환경의 특성
- 사용자는 한손만을 쓸뿐이고 한눈으로만 화면을 보고 있으며 온 정성을 기울여 만든 인터페이스에는
그다지 주의를 기울이지 않는다
- 그렇기 때문에 어떤 방법으로 화면 위에 정보를 제시하는가가 매우 중요!
- 탭할 만한 대상이 되기 위해서는 “의미 있고”, “호기심을 돋우며”, “못 보고 넘어가지 않도록” 하는 것이 필수 조건
또 하나의 그림을 볼 텐데요
위 그림은 개발자가 만들고 싶어하는 앱이고, 아래는 사용자가 필요로 하는 앱입니다.
앱은 한번 사용하는 시간이 매우 짧다.
친구가 토요일에 축구 보러 가자고 하면 잠시 하던 이야기를 멈추고 만날 시각과 장소를 아이폰의 캘린더에 적은 후 다시 수다를 떨기 시작한다
바쁜 스케줄을 천에 비유하면, 좋은 앱은 그 천에 잘 짜여 들어가 있는 일부처럼 느껴진다
- 인터페이스가 효율적이여야 한다
- 참신한 아이디어만 있으면 확실히 성공할 수 있을까요?
앱스토어에 흘러 넘치는 다른앱에 묻혀 알려지지도 않은 채 탭할 가치가 충분한 수많은 앱이 사라짐
그래서 이 책에서는 이야기 하고 있습니다.
1. 앱 디자이너로서 절대로 앱스토어에서 성공하는 것을 목표로 삼아야 한다는 식으로 생각하지 않는다
=> 대부분 사용자의 요구에 효과적이고 참신한 방법으로 대응할 때 마케팅이나 디자인 면에서 타당한 해결책이 나온다
- 다른 어떤 앱도 해결할 수 없었던 문제를 해결하는 것을 목표로 앱을 만들자
2. 자신의 강점을 바탕으로 앱을 만드는 것은 당연하며 합리적. 하지만...
=> 여러분이 그앱에서 무엇을 얻는가 하는 것이지 사용자가 무엇을 얻는가에 대한 답은 아니다
- 여러분이 가진 테마, 관심, 전문적 지식을 참된 의미의 ‘유저 니즈’에 맞추도록 발상의 방향을 바꿀 필요가 있다
3. 특징적인 기능이나 콘텐츠, 눈이 번쩍 뜨이는 애니메이션은 앱의 중요한 요소일 수 있지만,
사용자가 그 앱을 사용해야 하는 이유는 아니다.
- 넓은 의미에서 어떤 앱을 탭할 가치가 있게 하는것은 “그것을 사용하는 이유” 이다.
* 최고의 앱은 명확한 요구사항에 대한 명쾌한 해결책
* 이 요구사항은 초점이 좁혀지면 좁혀질수록 좋다
* 앱을 구상할 때 실제로 그것이 “사용되는 상황” 혹은 시나리오를 생각해야 한다
- 시나리오는 특정한 상황에서 특정한 작업을 처리한다는 내용의 짧은 이야기.
- 시나리오는 5가지 W에 의거하여 작성한다 who, what, when, where, why 그 앱을 사용하는가 생각해보는 것
- 그 앱이 사용되리라고 가정된 상황은 현실에 존재해야 한다
- 사용자가 앱의 기능이나 콘텐츠를 사용하는 이유만이 아니라 그것을 “굳이 손에 들고” 사용하는 이유, 굳이 작은 기기로” 사용하는 이유도 포함하여 고려되야함...
앱의 기능이나 콘텐츠가 뛰어나더라도 사용자가 모바일 상황에서 그앱이 필요하며 사용하기 편하다고 느껴야함.
어떤 모바일 상황(책상을 떠나서)을 가정하고 디자인할 것인가, 책상이나 PC에서 떨어져 있을 때 그앱을 사용하는 이유는 무엇인가?
앱의 특징적인 기능을 생각할 때 언제나 그앱이 도움이 되는 모바일 상황을 가정해야 한다.
좋은 생산성 향상앱은 자주자주 단시간의 작업을 처리하는 사용방법에 맞춰져 있다.
생산성 향상앱, 콘텐츠 제공앱은 빈시간을 최대한 살리는데 초점을 맞추어 효율적이 인터페이스를 갖출 필요가 있다.
todo 앱 - things
- 어떤 화면에서든 새로운 요건을 재빨리 추가할 수 있다.
- 아이폰 표준 캘린더앱도 새로운 행사를 추가하기 쉽게 모든 화면의 오른쪽 위에 + 아이콘을 배치.
(카메라, 마이크, GPS, 모션센서, 나침반 )센서를 활용하여 사용자의 위치에 기반하여 풍부한 정보(의미있는)를 제공한다
SitOrSquart : 주변 화장실의 위치를 알려주는 앱
Babelshot : 텍스트 사진을 캡처해서 몇개의 언어로 번역해주는 여행앱
Sound Hound: 녹음된 음악을 분석해서 음악의 제목과 가수를 알려주는 앱
아이폰 사용자는 소프트웨어를 콘텐츠로 본다
따분함을 없애는 앱에 공통적인 것은 “탐색” 이라는 측면
뛰어난 앱은 사람들에게 갈 곳, 즉 무언가를 찾아서 여행을 하거나 돌아다닐 세계를 준다
=> 게임이 따분함을 물리치는 데 큰힘을 발휘하는 것은 이러한 이유때문...
전자책, 뉴스, 유튜브, 트위터의 클라이언트가 아이폰에서 대단한 인기를 끌고 있는 것도 이 같은 이유 때문.
- 아주 일반적인 업무용 앱도 사람들에게 같은 경험을 하게 할 수 있다.
- 섭취한 칼로리, 운동량의 기록이나, ToDo 리스트 등의 기록은 좋은 표현방법만 찾을 수 있다면 그 내용을 자료로 게임으로 다시 태어날 수있다.
:이제까지의 이력을 확인하고 앞으로의 목표를 설정하고 달성하는 게임으로 만들 수 있다.
비슷한 작업을 하는 앱이 이미 있을 수 있다. 여러분이 만들 앱은 기존앱과 어떻게 다른가?
1) 사용자에게 특별한 보상을 한다
2) 꼭 그것을 하고 싶게 만드는 무언가가 있다.
3) 매우 좁은 범위의 사용자층에 강하게 어필한다
4) 다른 누구도 제공할 수 없는 독특한 콘텐츠가 있다.
5) 새로운 수법으로 정보를 시각화한다
6) 뛰어난 기능을 제공하는 기술을 가지고 있다.
7) 그 앱을 사용하고 즐기는 사용자들 사이에 넓은 네트워크가 형성되어 있다.
8) 같은 종류의 다른 앱보다 비용이 적게 든다
9)앱의 대상을 보강해주는 웹사이트나 실생활의 무언가가 있다.
앱을 기획하는 초기단계에는 크고 대답하게 구상해야 한다.
주요한 기능, 대상 사용자층, 다른 앱과의 차별화 요소를 찾아낼 때는 넓은 시야에서 봐야한다
그런다음, 그렇게 마음 설레며 잔뜩 적어 넣은 ‘만들고 싶은 것 목록’ 에서 대부분의 기능을 버려야 한다.
“사랑하는 것을 죽여라”는 문필가가 좋아하는 금언이라고 한다. 좋을 글을 쓰려면 군더더기 말을 가차없이 잘라내라는 뜻입니다.
최대한 가능성을 탐구하라. 그러나 간추린 간결한 표현쪽이 문학적으로 덕지덕지 꾸며진 것보다 더 호소력이 있음을 기억하라는 말 .
아이폰은 한정된 리소스(사용자의 주의력, 시간, 표시영역, 메모리 용량, 처리능력)에 귀착된다.
사용자가 일을 처리하는데 필요한 단 한줌만을 남겨한 한다.
5W에 의거하여 사용자가 가장 빈번하게 반복하게 될 작업이 무엇인가를 찾아내는 것.
그 앱 전체를 대상 사용자층의 하나의 중요한 질문에 답하도록 축약하는 것도 좋은 생각
아이폰 앱을 디자인할 때 가장 어려운 일은 무엇일까?
- 아이폰의 조그만 크기. 웹사이트나 pc용 소프트웨어에 비해 아이폰의 3.5인치, 4인치는 너무나 작다.
뿐만 아니라 손에 쥐고 쓰는 기기이며, 손가락으로 직접 터치해서 작동시키므로
배치 뿐만이 아니라, 더욱 세심한 부분까지 고려해야 한다.
아이폰앱을 디자인 할때 단지 겉모양을 생각하는 것이 아니라 사용할 때의 느낌도 고려해야 한다
야 진짜 같다. 라는 말을 듣도록 노력하는 것만이 아닌 손으로 조작하는 기계처럼 느껴지는 인터페이스를 구축해야 한다.
그러면 유저가 예상한데로 동작하게 된다.
어떤앱은 실생활에서 친숙한 장치의 모양을 모방하여 사용자의 모든 조작에 대해 실재하는 기기와 똑같은
움직임을 보여주는 이른바 기기의 메타포를 철저하게 이용하기도 함.
전화앱 : 실제 전화의 디자인 사용
Rowmote : 애플의 리모트 컨트롤러 디자인을 그대로 사용
인간공학점 관점에서 사용자를 편하게 하고 싶다면 탭할 일이 가장 많은 UI 요소를
이 엄지손가락이 잘 닿는 영역에 배치해야 한다.
이 때문에 툴바나 탭바가 아이폰 화면의 하단, 즉 우리가 이전에 익숙하던 화면 인터페이스와는 반대되는 위치에 있다.
자주 사용되는 버튼이나 내비게이션 요소는 화면 왼쪽 아래에 배치해야하지만
잘 사용하지 않는 버튼 또는 데이터를 변경하는 버튼은 오른쪽 위에 둔다. (수정, 삭제, 정렬 같은 실수를 유발할 수 있는 버튼은 탭하기 어려운 지점에)
아이폰의 탭 대상은 크기가 어느 정도여야 적당할까요?
애플은 (3GS 기준) 44픽셀이라고 정하고 있다.
이 숫자는 아이폰에서 사용되는 표준 UI 요소 전체에 적용되고 있다.
- 계산기
- 아이폰의 가상 키보드의 키
- 화면상부의 네비게이션 바
아이폰의 인터페이스에서는 44픽셀의 블록이 다양한 의미에서 길이의 기준단위가 된다.
- 내비게이션 바에 배열된 버튼은 높이가 29픽셀밖에 안되지만 탭 영역은 내비게이션 바의 크기인 44픽셀까지 넓혀져 있다.
- 버튼은 시각적으로 작지만 탭 가능한 영역은 최소한 44픽셀이라는 룰을 지키고 있음
- UI 요소를 스스로 제작할 때는 44픽셀의 기준값을 지키고 있는지 확인해야 함.
- 탭 대상의 세로나 가로가 적어도 44픽셀이 되고 도저히 다른 방법이 없다면 가로나 세로 어느 한 쪽을 30픽셀까지 줄여도 된다.
- 44x30 픽셀 크기
예전에 계산기가 달린 카시오 손목시계를 차고 고생하던 추억이 있었다고함. 버튼사이가 너무 가까웠던 것.
5를 누르려면 2나 8이 눌려지곤 했음.
320x480의 픽셀. 어떻게 해서든 인터페이스를 몰아넣고 싶어지는게 사람의 심리.
- 이러한 요구를 단호하게 끊어야 한다.
애플은 툴바의 아이콘을 다섯개로 제한하도록 권장함.
320픽셀에 44픽셀의 아이콘을 최대 일곱개씩 늘어놓을 수 있지만 서로의 간격이 너무 좁아져서 위와 같은 문제가 발생
손가락으로 조작하는 인터페이스에서는 화면 하부의 영역에 여유를 두는것이 특히 중요
가장 중요한 정보는 화면의 가장위에 표시되어야 함.
- 화면의 가장 아래쪽은 손에 들고 조작하는 기기에서 엄지손가락으로 조작하기 쉬운 곳이지만, 가려지기 쉬운 위치.
기네스북에서 “최고의 다기능”으로 기록된 주머니칼.
- 스위스 아미 나이프의 제조원인 웽거(Wenger) 사의 제품.
- 주머니칼에는 87개의 소도구에 141가지 이상의 기능이 있다고 합니다.
- 하지만 가격은 1400달러, 무게는 1.4킬로그램이어서 실용적이 않음. 주머니에 넣을수 없는 주머니칼.
- 우리 머릿속에 숨은 “많으면 많을 수록 좋다” 는 욕구를 강하게 자극한다
- 가장 좋은 것은 "하고 싶은 일, 해야할 일"을 "가장 간단하게" 할 수 있는 것입니다.
- 많은 사용자가 자주 사용하는 UI 요소만을 채용한다
- 보조적인 툴이나 콘텐츠는 서브화면으로 이동시키거나 다 없애버린다.
아이폰 표준 연락처앱
- 연락처를 추가하거나 편질할 때 이방식을 채용하고 있음
- 메인화면에는 일반적인 정보만 표시하고 스크롤이 없음
- 하단에 필드 추가 버튼을 탭하면 부가적인 필드에 데이터를 입력할 수 있음
- 표준 아이폰앱에 무엇이 포함되어 있는가를 고민하는 만큼 무엇이 포함되어 있지 않은 가도 생각해보아야 함
어떤 기능을 제외하면 반드시 화를 내는 사람이 있을 것이다.
- 파워유저들은 일반적인 사용자에게는 상관없는 툴이나 기능을 원함.
- 정말로 기능이나 버튼을 추가해야 하더라도 쓸데없는 인터페이스 장식이 메인 콘텐츠를 밀어내지 않도록 한다
트위터앱의 고민: 재빨리 트윗을 작성할 수 있는 간단한 인터페이스를 갖추면서도 트위터 사용자들의 마음을
끄는 고도의 기능을 많이 갖추게 할지에 대한 고민
- 트위터는 UI 요소를 키보드 뒤로 감춤으로써 문제 해결
- 파워유저를 위한 “비밀 컨트롤 패널”이 있는 셈
전차책 앱 Stanza는 독서중에 책의 텍스트가 전체 화면모드가 되고, 사진을 보고 있을 때는 UI요소를 감춤.
- 사용자를 당황하게 할 우려가 있음. 어떻게 현재 뷰에서 빠져나갈지 모르게 될 가능성이 있지만
- 언제든지 화면을 탭하면 다시 UI 요소가 나타남
숨은 콘텐츠에도 문제가 있다. 숨겨져 있다는 것 자체가 문제임.
눈에서 멀어지면 마음에서도 멀어지는 법.
- 숨은 패널에 기능을 많이 넣을 수록, 사용자는 그것을 찾아내는 방법을 기억해두어야 한다는 부담
- 어떻게 해야하는지 시각적 힌트를 준비할 필요
앱에서 사용자에게 메시지를 전할 때가 있습니다.
경고화면은 뭔가 잘못되었음을,
푸시알림은 최신 뉴스를 전하고
프로그레스바는 작업 진행중임을 알린다
앱에서도 예의범절은 중요하다
메시지를 전하기 위해서 실행중인 작업을 중단시킵니까? 아니면 살그머니 메모를 건넵니까?
예의 바르기 위해서는 말투에 관해서도 태도에 관해서도 배려를 해야한다.
규칙은 간단합니다. 그 규칙이란 잠깐 멈춰서 생각하는 것.
경고화면은 앱의 급브레이크입니다.
그때까지 하고 있던 작업을 중단하고 무엇가 메시지를 전한다.
- 경고화면을 해제하지 않으면, 그 앱은 사용할 수 없는 모달한 상태가 된다.
=> 경고화면을 표시하려면, 그렇게까지 할만한 이유가 있어야 한다.
경고화면은 긴급한 정보를 표시하기 위한 것이기 때문에 일상적인 알림에 사용하는 것은 119에
전화해서 지금 몇 시냐고 묻는 것과 같다.
앱이 작동할 수 없는 경우
- 뭔가 큰 문제가 생겨, 현재 상태로는 앱을 전혀 사용할 수 없는 경우
- 예) 위치정보를 기반으로 하는 앱인데 현재 사용자가 있는 나라에서는 이용할 수 없거나 어떤 작업을 실행하기에 충분한 데이터를 얻을 수 없는 경우
- 불안정한 네트워크 상태 같은 일시적인 문제는 경고화면을 사용하지 않는 것이 좋다.
사소한 도움이 필요한 경우
- 사용자가 요구한 작업을 앱이 수행할 수 없어서 도움을 요청할 때도 적합
- 예) 데이터를 다운로드하려 할 때, 에어플레인 모드가 켜져 있다면, 경고화면에서 바로 “설정”으로 옮겨가서 “에어플레인 모드를 끌까요?” 하고 묻는식
- 문제가 생겼을 때 그 해결방법을 제안하는 것이 좋은 경고화면’
- 경고화면에 버튼은 보통 두개로...하나는 경고화면을 해제하여 제안된 해결책을 취소하는 기본버튼, 또 하나는 제안된 방법을 실행하는 버튼
승인이 필요한 경우
- 사용자가 알아차리지 못하고 후회하는 결과를 가져올 수 있는 작업 실행할 때
- 예) 프라이버시 보호
- 예) 사파리에서 “뒤로 가기” 버튼을 탭하면 폼 정보를 재송신하는 페이지로 돌아가 버리는 경우 경고를 표시하여, 앞으로 돌아가도 좋은지 확인
- 정말로 삭제하시겠습니까? 와 같으 확인 메시지와는 다름
- 경고화면은 사용자가 예기하지 않았던 이벤트, 즉 사용자가 취한 행동의 직접적 결과로서 생겨나는 것이 아닌 상태에 관하여 알리거나 경고할 때 사용
- 반면 확인 메시지는 사용자가 명확하게 명확하게 요청한 작업에서 생겨나는 직접적인 결과
경고화면을 “환영 화면”으로 사용하지 맙시다
- 경고화면을 표시하는 것 자체가 “어딘가 잘못됐다”는 의미를 갖기 때문에 앱을 처음 쓰는 사용자가 접하는 것으로 좋다고 할 수 없음
경고화면으로 앱스토어 평가를 의뢰하지 맙시다
- 언제나 개발자가 하고 싶은 일이 아니라 사용자의 목표와 과제에 초점을 맞추라. 그래도 넣고 싶으면 설정의 about us 에의 화면에 넣을 것
일시적인 문제에 대해 경고화면을 사용하지 맙시다
- 불안정한 네트워크 접속이나 GPS 신호의 상실과 같은 일시적인 문제에 일일이 경고화면을 사용하지 말자.
네트워크의 상태가 나쁜 상황은 모바일 앱에서 자주 일어나는 일. 다른 방법으로.
메시지는 언제나 조용한 목소리로 전합시다.
- 경고화면은 사용자에게 뭔가 잘못되었음을 알리고 동시에 사용자를 안심시켜주는 것.
- 상황을 명료하게 솔직하게 설명하고 사용자가 선택지를 이해하는데 필요한 정보도 충분히 덧붙히자.
- 경고 화면은 제목, 메시지, 버튼의 세 요소 구성. 세 가지에 같은 내용을 반복하지 말고,
“설정을 변경하려면 설정 버튼을 탭해 주십시오” 처럼 이미 아는 것을 굳이 설명하지 말자.
- 간결함과 명확한 전달 사이의 균형
- 사용자 인터페이스의 권위자 캐시 시에라는 WTF?!? 버튼 사용을 권하고 있음
- 앱이 사용자의 예상이나 이해대로 작동하지 않을때 탭하는 비상 버튼
- WTF?!? 사용자의 심리상태를 나타내는 말
- 경고화면에 문자열 뿐만 아니라 배치, 색조에도 주의.
- 경고화면의 버튼은 밝은 것과 어두운 것, 두 종류가 있고 기본 버튼은 언제나 밝은색으로 하고 오른쪽에 표시
- 위험도가 높거나 되돌릴 수 없는 결과를 가져올 수 있는 조작에 대한 경고화면에서는 “취소”버튼을 기본으로
- 문제 되지 않는 조작을 권장하는 경고화면이라면 그 조작을 실행하는 버튼을 기본으로 하고, “취소”를 왼쪽에 둔다
알림을 사용하는 예
- 텍스트 메시지, 캘린더의 알람 표시, 음성 메시지의 통지
- 사용자가 아이폰에서 무엇을 하고 있든 그것을 중단시켜 갑자기 나타나서 요란스럽게 메시지를 알리는 것.
- 문제는 메시지의 중요도에 상관없이 모든 알림이 갑자기 작업의 흐름을 끊고 나타난다는 점
- 개발자 측에서는 적어도 어떤 시점에 알림을 보낼지를 정하는데서 예의를 찾아야함.
* 알림의 내용을 조정하는 기능을 제공한다
- 소셜 네트워크 앱이 정해진 범위의 중요한 친구나 지인의 알림만을 허가
- 스포츠앱이 사용자가 요구한 팀의 성적이나 그 팀의 특정 경기에 한해서 득점을 알리도록 하는 것
* 조용한 시간을 확보한다
- Boxcar라는 앱은 트위터, 페이스북, 메일에서 발생한 액티비티를 알려주는 앱인데 시간대를 지정하여 알림을 끌수 있게 하고 있음
* 음향효과를 옵션으로 한다.
- 알림에서 음향효과는 알림에 개성을 가미.
- 예) Unbrella는 비가 올것 같은면 우산을 펴는 소리와 함께 알림을 보내줌.
- 소리를 끌수 있는 기능도 준비
앱이 사용자의 어떤 조작에 대해서도 일일이 시각적으로 응답해줌으로써 사용자는 “내 의도가 바르게 인식되었으며 지금 그 작업이 진행되고 있다”는 확신을 얻고, 안심할 수 있음
- 시간이 걸리는 경우에 “지금 작업하고 있어요”라는 메시지 전달
- 액티비티 인디케이터라고도 함
- 어떤 작업이든 1초 이상 걸릴때는 이것을 사용. 필요에 따라 앱이 어떤 작업을 하고 있는지 정확하게 표현하는 짧은 텍스트 레이블 추가
- 네트워크 통신이 시간이 걸린다면 “네트워크 스피너”를 표시.
- 동시에 큰 스피너도 표시. 로드중인 콘텐츠의 “플레이스 홀더 역할”도 하기때문.
- 전송이 완료되었음을 확인하는 경고창을 표시하기도 하는데, 이는 사용자에게 이 창을 해제하기 위해 일부러 또 한번 탭하게 하는 불필요한 수고를 시키는 것
- 모달 버튼은 앱의 상태와 사용ㅇ자의 조작에 따라서 모양이 바뀌는 버튼. 피드백이나 힌트를 알기 쉽고 조심스럽게 표시하는 방법임.
작업에 어느 정도 시간이 걸리는 경우 => 스피너 보다는 프로그레스바
시간은 상대적인 것. 그때 상황이나 심심풀이 수단의 유무, 작업 자체의 지루함 정도” 에 따라 시간으로 빠르게도,
혹은 느리게도 느껴짐
예) 음악을 찾아주는 앱 Shazam에서는 동그라미가 서서히 완성되어 가는 모양의 독창적인 인디케이터 사용.
예) 37 signals Highrise 는 연락처, 고객 등과의 대화내용, 회의 일정 등을 관리해주는 웹서비스 Highrise에 접속하도록
서포트하는 앱.
초기에 다운로드해야할 데이터의 양이 많아 시간이 걸리다는 점.
- 앱의 첫인상으로서는 부정적임.
- 초기 데이터를 다운로드 하는 동안 틱택토(tic-tac-toe) 게임을 제공. 프로그레스바가 진행되는 동안 게임을 하면서 시간을 보냄
facebook에서는 뉴스피드 화면을 로드한 후 계속해서 다음레벨의 콘텐츠를 미리 가져옴.
이전에 앱이 사용했던 마지막 순간의 콘텐츠나 데이터를 저장했다가 다시 시작할때 이용하면 앱이 빨리 실행된다는 인상을 줄 수 있음
'아이폰' 카테고리의 다른 글
| [iOS9] 3D Touch 시작하기 (0) | 2015.10.16 |
|---|---|
| [iOS] 익스텐션 (Extension) (0) | 2015.08.18 |
| [iPhone] 아이폰앱 디자인 정석(TapWorthy) (1) | 2013.07.07 |
| [iPhone] 아이폰 앱 디자인 실수: 문맥에 대한 간과 (0) | 2013.02.16 |
| [iPhone] iOS6 회전 지원하기 (0) | 2013.01.25 |
| [iPhone] UIView 애니메이션과 코어 애니메이션(CoreAnimation) (0) | 2013.01.23 |
설정
트랙백
댓글
글
오 마이 카! 자동차 구매 경험기
오 마이 카! 자동차 구매 경험기
[사진출처: 행복해지는 법 BLOG]
2013 5월 14일 인생에서 최초로 내 소유의 차를 가지게 되었습니다. 자동차를 구매하는 과정에서
경험했던 사항들을 간단히 글로 남기는데, 저와 같이 사전에 지식없이 첫차를 마련하려는 분들에게
조금이나마 도움이 되었으면 합니다. 저는 아래와 같은 순서를 따랐습니다.
1. 차 종류 결정
2. 받을 수 있는 서비스 조사
3. 영맨 찾기
4. 계약
5. 차량인도 및 잔금결재
6. 보험가입
7. 차량등록
1. 차 종류 결정
본인이 원하는 차량의 종류를 결정해야 합니다. 가격, 디자인, 회사, 사용 용도들을 고려하여 결정해야겠지요.
저의 경우 디자인이 멋진 준중형 차량을 선호했기 때문에, 초기에 기아 k3, 삼성 sm3, 쉐보레 cruze를 후보로 뽑았습니다.
신형 cruze가 준중형이지만 차체가 가장 크고 튼튼하고 외제차에 속하기 때문에 단연 1등 후보였지만 가격의 압박에 밀려
결국 디자인과 가격이 조화로운 k3를 선택했습니다. 구매 후 되돌려보면 후회없는 선택이었다고 생각합니다. 정말 잘빠진 k3.
제가 최종적으로 결정한 건 K3 트렌디!
- 기본: 트렌디 오토 (1788 만원)
- 옵션: 17인치 알로이휠/타이어 공기압 경보장치 (+40 만원)
- 컬러: 스노우 화이트펄(+7 만원)
- 이달의 혜택: -20만원
- 탁송료: +10만원
- 총액: 1860 만원
2. 받을 수 있는 서비스 조사
차량 가격은 정해져 있지만 어떤 영맨을 통해 구매하는냐에 따라 현금 할인과 서비스가 다릅니다. 영맨에게 떨어지는 마진을
포기하고 현금할인/서비스로 돌려주는 것이기 때문에 너무 무리한 요구는 하면 안되겠죠...전 인터넷을 검색해서 일반적으로
차량을 구매할 때 받을수 있는 서비스가 어느 정도인지 조사했습니다. 왜냐하면 영맨과 컨택시 비슷한 정도 또는 그 이상의
현금할인 또는 서비스를 제시할 수 있기 때문이지요.
3. 영맨 찾기
그런 후 지인을 통해 소개받은 영맨과 통화했는데 제시받은 서비스가 마음에 들지 않아서 개인적으로 영맨을 찾아보았습니다.
그러던중 "기아 k3몬스터"라고 기아자동차에서 공식적으로 인정한 까페를 알게되었습니다.
추천 쪽지글 중에 서울에서 원주까지 오셔서 서비스도 잘해 주었다는 글이 인상에 남았습니다. 단순히 서비스를 잘 해주었다는 글이 아니라, 적어도 이 사람에게 받으면 사기는 당하지 않겠다는 믿음이 가서 그분께 전화를 했습니다. 제가 받고 싶은 서비스를 제시했더니, 본인은 일정상 안되고 서비스를 제공해 줄수 있는 후배를 소개시켜 주었습니다. 그분과 이틀 후 보기로 약속을 잡았습니다.
4. 계약
회사 앞 까페에서 만나 "트렌디 + 하이클래스1 + 17인치휠" 로 했을 경우에 견적서를 받았습니다.
이때 기본으로 제공되는 할인(이달의 할인과 같은...노동절에는 추가로 20만원할인을 했는데 시기를 놓쳐서 아쉬웠죠;;)이 있고,
영맨 재량으로 받을수 있는 추가 현금할인과 서비스가 있습니다. 이것들은 영맨분과 잘 협상하시면 됩니다~
차량 등록의 경우 직접하면 대행할 때 보다 대략 2만원 절약할 수 있습니다. 물론 대행을 하면, 나중에 편하게 차량만 인수받으면
됩니다. 저는 등록과정이 복잡하지 않고, 개인적으로 직접하는 것을 좋아해서 대행을 하지 않았습니다.
근데 고맙게도 영맨분이 차량등록시 동행해 준다고 하셔서 어찌나 고마웠던지... ^^;;
계약서에 서명을 하고, 선수금 10만원 + 보험료 3,000원을 기아자동차 계좌로 송금했습니다.
차는 보통 15일이 걸리는데 k3는 요청물량이 많이 1주일 뒤면 받을 수 있다고 하더군요
5. 차량인도 및 잔금결재
차량을 인도받기 위해 카센터로 갔습니다. 카센터에는 화성에서 탁송되어온 k3가 멋진 자태를 뽐내며 네비게이션 매립과
썬팅작업을 받고 있었습니다. 차량 내외부에 이상유무를 확인했습니다. 자동차를 잘 몰라서 사실상 의미가 없었지만
일단 외형적으로 문제는 없는 것아 안심하고 잔금을 결재했습니다.
6. 보험가입
네비게이션을 매립하는 동안 차량등록을 하기위해 근처 구청으로 이동했습니다. 차량등록시 책임보험가입 증명서를
제출해야 등록이 가능합니다. 차대번호를 영맨분이 알려주기 때문에 미리 가입할 수도 있지만 차량확인 후 결정하고 싶어서
최종 사인 전까지 보류해두었지요. 하지만 가입할 보험에 대해 미리 조사해두었습니다.
메이저 회사여서 첫 보험으로는 신뢰가 가서 "삼성 애니카 다이렉트"로 결정을 했습니다. 보험료도 인터넷을 통해
견적받은 가격중에 제일 싼 편이었습니다. 한화다이렉트 보험에서 사실 가장 낮은 가격과 블랙박스 할인쿠폰도
제시했지만 "삼성 애니카 다이렉트"를 선택했습니다. 스마트폰 앱도 있어서 공인인증서만 사전에 등록해 놓으면
그 자리에 바로 보험료 견적 및 가입까지 가능합니다. 가입후 대리점 PC를 이용해 보험가입증명서를 출력했습니다.
7. 차량등록
필요한 서류는 아래와 같습니다. 책임보험 가입증명서만 있으면 나머지는 영맨에게 모두 받을 수 있습니다.
- 자동차신규등록신청서 (구청에 양식이 비치되 있지요)
- 자동차 완성 검사증
- 자동차 제작증
- 임시운행 허가증 (앞면유리에 부착되어 출고됨)
- 임시운행 허가 번호판 (자동차번호판에 부착하여 출고)
- 세금계산서 (잔금 결재 후 받을 수 있음)
- 책임보험 가입증명서 (보험가입후 인터넷으로 출력가능)
차량 등록과정을 정리하면
1) 자동차 등록담당에게 자동차 신규등록신청서 작성 후 제출
- 자동차신규등록신청서
- 임시운행 허가증
- 임시운행 허가 번호판
- 영수증(세금계산서)
- 자동차 완성 검사증
- 자동차 제작증
- 책임 보험가입증명서(인터넷 출력이 가능함)
2) 몇가지 보여주는 번호 중 차량번호 선택 후, 세무담당에게 취득세 신고
- 세무담당에게 가서 취득세 납부신청
- 차량가(탁송료포함)에서 부가세 제외한 금액에 7%를 납부하게 된다.
- 채권할인금액 납부 (지역마다 가격이 다른데, 강동의 경우 약 3만원)
3) 납부후 자동차 담당에게 차량등록증 발급받기
기타 영수증과 함께 차량등록증을 챙겨 나오시면 되고, 차량 등록증은 차량에 보관해야 합니다~
차량 등록과정중에 든 비용은 아래와 같습니다.
취등록세: 1,193,810원 (옵션을 포함한 차량가에서 부가가치세를 제외한 과세액에서 7%)
증지,인지+번호판비: 25,000원
지하철 공채: 30,950원 (지역마다 다르다고 하네요)
생각했던 것보다 등록과정이 복잡하지는 않습니다. 영맨분이 동행해주셨는데 결국 대행까지 해주셨네요..
혼자할려고 했는데 도와주셔서 많이 고마웠지요. ㅎㅎ
차량 등록을 마치고...
네비게이션 매립작업이 마무리 되고, 차량조작과 네비게이션 조작에 대한 설명을 들은 뒤
흥분된 마음으로 차를 몰고 집으로 돌아왔습니다.
제가 경험한 것은 여기까지 인데요...부디 다른분들에게 조금이라도 도움이 되었으면 합니다~
인터넷 검색을 통해 사전에 조사한 것도 있지만, 영맨에게 도움을 많이 받았습니다. 친절하게 서비스 해주셔서
다시한번 고맙다고 하고 싶네요. 혹시나 기아차 구매 의사 있으신 분은 이 분께(010-8746-5319) 연락해보세요.
고마워서 강력 추천해 드리고 싶네요~ 아마 서울이나 경기, 인천까지는 커버하실 수 있으실 것 같아요.
사전정보 습득시에 네이버 백과사전 형님에게 많이 배웠습니다. 역시 네이버 백과사전 형님!
그럼 마지막으로 구매한 차량을 자랑하며 포스팅을 마칩니다. ^^v
'경제로그' 카테고리의 다른 글
| 오 마이 카! 자동차 구매 경험기 (3) | 2013.04.29 |
|---|