2008년 2월에 산 아이맥이 또 말성이다.
예전에 액정에 김(?)이 서려서 A/S했었는데 이번에는 액정에 잔상이 남는다.
스크린샷을 찍었을 때는 깨끗하게 나오는 걸 봐서는 액정이 맛이 간거 같다.

자세히 보면 잔상은 그냥 줄이 간게 아니라 Finder가 프레임으로 보인다.
클릭해서 보면... 파일 이름하고 정보도 볼 수 있다. -_-;;;

내일 애플에 전화 넣어서 방문수리를 맡겨야 할 것 같다.

확실히 애플 제품은 애플케어를 사는게 맞는 것 같다. 1년쯤부터 고장이 나기 시작하는 걸 한두개 본게 아니니 원...

나랑 애플은 정말 안맞는 것 같다. 샀던 제품 대다수가 액정에 문제가 있으니 원...
맥북프로 새로 나오면 살려고 하고 있는데 이래서야 원 마음 놓고 살 수 있을까 모르겠다.
저작자 표시
Posted by 쟤시켜 알바

Nokia N97

UX/Products 2008/12/15 09:06
Nokia N97과 iPhone 3G를 비교한 글이 하나 올라왔다.(14일자)

  • 발표 시기는 iPhone 3G가 5개월(08년 7월) 빨리
  • 두께는 N97이 조금 더 두껍다.(몇미리 차이인지는 모름) slide open했을 때는 거의 두배
  • 무게는 N97이 150g, iPhone 3G가 133g
  • 지원하는 네트워크는 대충 비슷하나 중요한 이슈가 아니니 그냥 넘어가겠음
  • 둘다 3.5인치이나 N97의 해상도가 640×360으로 iPhone 3G(320×480)보다 큼
  • N97는 slide out 방식의 키보드 제공
  • N97은 Symbian v9.4 3G는 Mac X
  • N97은 Java와 MMS 지원
  • N97 내장 메모리는 32G, iPhone 3G는 8/16G
  • Bluetooth 모두 지원, IR은 지원 안함, Wi-Fi 지원
  • 내장 GPS 탑재, iPhone 3G는 Google map 사용, N97은 Nokia Maps 2.0 사용
  • N97은 5메가 픽셀 카메라, iPhone 3G는 2메가 픽셀 카메라, N97은 오토 포커싱, 플래시 지원
  • N97은 내장 라디오 지원, iPhone 3G은 없음
  • iPhone 3G의 배터리는 확인된 정보가 없음
  • N97은 09년 초 550 유로에 판매 예정
출처 : Gadget Review2U, Nokia N97 vs Apple iPhone 3G

보너스 #1 - 공식 데모 영상(구라빨)


보너스 #2 - 구동하는 동영상

저작자 표시

'UX > Products' 카테고리의 다른 글

HTC의 HD2 사진 몇장  (0) 2010/02/02
LG 쿠키폰  (10) 2009/04/07
Nokia N97  (0) 2008/12/15
딱 마음에 드는 컨셉폰  (0) 2008/12/12
HTC Touch Diamond를 잠시 사용해보고...  (4) 2008/07/28
소니 마일로(Sony mylo)  (8) 2008/04/29
Posted by 쟤시켜 알바
사진이 좀 이상하지만 이건 Dell 24인치에서 보이는 화면이다.
그리고 이건 MacBook Pro 17인치에서 보이는 화면이다. 사진이 좀 이상하지만 아래는 회색이 아닌 옅은 분홍색처럼 보인다.

Nikon D70s에서 찍은 사진이 좀 이상해서 Panasonic LX-2로 다시 찍어봤다.

이건 Dell 24인치에서 찍은 사진
이건 MacBook Pro 17인치

역시 사진이 이상하지만 회색이 아닌 색으로 표시되는 것을 알 수 있다.

처음에는 잘 인지하지 못하고 있었는데 같은  MacBook Pro 17인치를 사용하시는 분이 내 걸 보고는 색감이 무지 안좋다고 했다. 그 이야기를 딱 듣고 보니 역시 이상해 보였다. 제공되는 모니터 프로파일들을 변경해보면 아래 동영상처럼 색감이 확 변한다. 회사에 있는 iMac이나 내 자리에 있는 맥프로로 확인해봐도 이렇게 확 달라지지는 않는다.
iMac에서는 화면이 밝아지거나 짙어지는 정도지 동영상처럼 색감이 푸르딩딩하게 나타나거나 하지는 않는다..

지금부터는 애플의 개판 5분 후 A/S에 대해 이야기를 하겠다.
이 문제를 확실히 인지한 후 애플 기술지원센터(1544-2662)에 전화를 걸었다.
나 : 얼마전(1월 16일) 맥북 프로 17인치를 구입해서 22일날 받고 23일날 개봉했다. 몇일 쓰다가 보니 옅은 회색(내 블로그 사이드바 배경색)이 옅은 분홍색으로 보인다.
담당 직원(인지 알바인지) : 고객님이 환경설정에서 잘못 만지시면 그럴수도 있다. 어쩌고 한다.
나 : 그래서 혹시나 내가 잘못 건드린게 있는지 하고 레퍼드를 새로 깐 후에 바로 다시 봤는데 그렇더라.
담당직원 : 맥북 프로가 원래 라인에 따라 다른 부품을 쓰기 때문에 미세한 차이는 있다.
나 : 회색이 분홍색으로 보이는게 미세한 차이냐?
담당직원 : 기본적으로 기술지원은 고객님이 노트북 앞에 있어야 가능하다.
나 : 내가 회사고 내가 퇴근하는 시간이면 당신네들은 응답 시간이 끝나지 않냐.
담당직원 : 회사에 가져와서 하면 되지 않느냐
나 : 우리 회사는 노트북 들고와서 개봉할 수 없는 회사다(노트북 뿐만 아니라 왠만한 전자제품은 다 결재를 받아야만 안에서 사용할 수 있고, 노트북 같은 것은 좀 복잡하다.)
나 : 내가 어제 색상 보정도 해봤다.
담당직원 : 고객님이 잘못 만져서 그럴 수도 있다. 전문가 모드로 해봤느냐
나 : 하다가 중간에 껐다.
담당직원 : 중간에 꺼도 설정 값이 남을 수 있다.
나 : 내가 아까도 말했듯이 내가 잘못한 게 있을까봐 새로 설치를 해서 확인을 했다.
이런 식의 무한 루프 약간 반복 후
나 : 알겠으니 오프라인 A/S 매장이나 알려달라, 찾아가겠다.
담당직원 : 이 문제로 A/S를 받을 수 있는지 잘 모르겠다.
나 : 알겠으니 알려나 달라

그래서 용산에 있는 전화번호를 받은 후 끊었다. 열도 받고 짜증도 나서 오후 반차를 내고 집으로 가서 다시 기술지원센터에 전화를 했다.
나 : 오전에 전화를 했었다. 지금 노트북 앞이다.
담당직원 : 오전에 상담내역을 확인하고, 몇가지를 해보라고 한다.
첫번째가 시스템 환경설정 -> 모니터 -> 색상으로 가서 보정을 누르고 이것저것 만져보라고 한다.
나 : 아침에도 이야기 했었는데 내가 다 해봤다. 그래도 문제는 여전하다.
담당직원 : 그래도 모르니 다시 한번 해봐라.
나 : 깔짝깔짝 거린 후 그래도 어제와 같다.
담당직원 : 옵션키와 커맨드키 P키 R키를 동시에 눌러봐라.
나 : 똑같다.
나 : A/S 센터 가겠다.
담당직원 : A/S 받을 수 없을 수도 있다.

전화를 끊고 사진을 잠시 찍어 빨빤 형에게 보여줬더니 색상 온도 문제일 확률이 90%라고 한다.
그래서 부트 캠프를 이용하여 XP를 설치한 후 확인해 봤더니 제대로 보인다.
그리곤 피곤해서 잤다.

아침에 출근해서 다시 기술지원센터에 전화를 했다.
나 : 어제 전화를 했었다. 레퍼드에서는 이상하게 보이는데 XP에서는 제대로 보인다.
담당직원 : 라인업에 따라 다르게 보일 수도 있다.
나 : 안다. 근데 처음 왔을 때부터 색상이 잘못 보이는 거는 애플이 잘못한 거 아니냐. 색상 온도값 문제 같다. 이 부분을 해결해 달라.
담당직원 : 시스템 환경설정 -> 모니터 -> 색상 -> 보정 -> 전문가모드를 이용하여 이 부분을 해결할 수 있다.
나 : 장난하냐. 일반 사용자가 그걸 어떻게 맞추냐
담당직원 : 그럼 애플에서 제공하는 공식 메뉴얼을 이메일로 보내주겠다. 이메일 주소를 알려달라.
나 : 이건 나만 문제가 있는게 아니지 않냐. 동일한 라인업이면 동일한 문제가 발생할 수 있는데 애플에서 패치를 해주든거 처리를 해주어야 하지 않냐
잠시 공식 메뉴얼 보내주겠다는 이야기를 반복했다.(이때 강한 충동을 느꼈다. 죽여버릴까-_-)
나 : 지금 무슨 헛소리냐. 애플이 잘못해서 내놓은 걸 나보고 고쳐서 쓰라는 거냐. 난 그럴 수 없다. 패치를 내놓던가 해라.
담당직원 : 여기(기술지원센터)에서는 그걸 처리할 수 없다.
나 : 그럼 그걸 처리하는 데 연락처를 달라.
담당직원 : 바로 연결이 안된다.
나 : 그럼 연결해달라.
담당직원 : 2~3분만 기다려달라. 연결하고 있다.
약 10여분이 지난 후
담당직원 : 연결이 안된다. 다시 2~3분만 기다려 달라.
약 10여분이 지난 후
담당직원 : 죄송하다. 연결이 안된다.
나 : 더 이상 못기다리니 니네가 나한테 전화해라. 오전 중으로
담당직원 : 죄송하다. 빠른 시간에 연락 주겠다.

여기서 일차전 끝.
이 이야기를 간결하게 팀 사람 몇분에게 이야기를 했다. 이야길 들으신 분 한분이 애플 쪽에 전화를 걸었다.
그리고 이차전 시작. 여기서는 내가 직접 통화한게 아니라 담당직원이 무슨 말을 했는지 모른다.
먼저 애플 온라인 스토어에 전화를 걸어 맥북 프로를 구입했는데 색감이 이상하다. 고장난 것 같다 하니 애플 온라인 스토어에서 기술지원센터에 연락하라고 했다. 그래서 연락을 하여 LCD 색감이 이상하다. 고장난 것 같다하면서 기술지원센터에서 뭐라고 하던 간에 난 잘 모른다. 고장난것 같다. 교환해달라고 했다. 잠시 후 연락 준다고 한 후 감감 무소식 나는 외근이 있어서 나갔고 문자를 보냈더니 다시 연락을 준다고 했다고 한다. 그리고 한 5시 쯤 넘어서 새제품으로 교환해 주겠다고 했다. 새제품 교환은 1회로 한정되는데 교환 후에도 똑같은 문제가 발생할 수 있다고 한다. 내가 도와주신 분에게 환불은 안되냐고 물었더니 교환 씨리얼을 알려줄테니 애플 온라인 스토어에 전화를 해서 그때 물어보면 된다고 했다.
1회 교환 후에 똑같은 증상이 나타나면 당연히 환불 받아야 하지 않겠는가.

애플은 예전이나 지금이나 고객 가지고 장난치려는 수작이 뻔히 보인다. 조금 모르면 다 고객이 잘못한 것으로 떠넘길려는 심보가 확실히 보인다. 미국처럼 기업소송 활성화되면 반드시 애플 소송 한 번 걸 것이다.

한가지 느낀 것은 이런 전화를 할 때 나처럼 꼼꼼히 문제점을 파악하는 것보다 그냥 모른다고 고장 난 것이니 바꿔달라고 우기는 게 현명하다는 것을 느꼈다. 다음부터 문제 생기면 나도 그렇게 해야겠다.
우리팀 그분의 포스는 감히 범접할 수가 없다.

내일 전화해서 1회 새제품 교환 후 동일 문제 발생 시 환불이 되는지 물어보고 안된다면 그냥 환불해달라고 해야겠다.
지금 나온 라인업이 아마 이번 버전의 맥북프로 마지막 버전일 듯 싶은 데, 패널 문제라면 동일한 문제가 계속 발생할 게 불 보듯 뻔한데 참고 쓸 수는 없는 노릇 아닌가.
(잠깐 검색해보니 패널하고 VGA하고 안맞으면 이럴 수도 있다고 한다.)

환불 받으면 맥북 프로 다시 안사고 맥북 중고를 사서 쓸 생각이다. 그러다가 새버전 맥북 프로 나오면 그 때 다시 맥북 프로를 질러야 할 듯 하다.

p.s. - 상담내역은 좀 미화하여 쓴 거고 실제 내용은 좀더 고객을 열받게 하는 말투였다. 그리고 나는 언성을 높여서 이야기를 하고 있던 상태였고.

Updated : 2008/01/30 09:54
방금전 애플 온라인 스토어에 전화를 걸어서 환불 신청을 했다.
나 : 맥북 프로에 문제가 있어서 애플 쪽에서 새제품으로 교환을 해주기로 했다. 그런데 새제품으로 바꿔도 동일 증상이 발생할 수 있다는 이야기도 같이 들었는데 환불이 가능하냐?
담당직원 : 그건 주문지원부(이름이 확실하지 않다.)에 연락을 하셔야 한다. 그쪽으로 연결해주겠다.
다른 담당직원으로 변경
나 : 좀전에 했던 이야기 반복.
담당직원 : 환불 진행되고 있다.
나 : 그건 내가 전에 잘못 주문한 마우스에 대한 환불이다.
담당직원 : 그렇네.
나 : 새제품 교환 해주기로.... 환불은 안되냐?
담당직원 : 언제 주문 했냐
나 : 1월 16일날 주문했다.
담당직원 : 오늘까지 보내주셔야 한다.
나 : 16일날 주문이고 22일날 받았다.
담당직원 : 그러냐. 그럼 월요일이나 화요일쯤 받겠다.
나 : 받았던 세트 그대로 주면 되냐
담당직원 : 그렇다.
나 : 알았다.

환불한데니 목소리가 마이 차갑네. ㅋㅋㅋ
맥북 프로 환불 하면 문제가 이것저것 사놓은 것이 무용지물이 된다. 내 메모리 4기가와 껍데기와 LCD 보호하는 천떼기, 가방...
그냥 냅뒀다가 새 맥북프로 17인치 나올 때까지 기다려봐야겠다.
Posted by 쟤시켜 알바
Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
Mobility에 대한 디자인은 노트북 사용의 급등함에 따라 점점더 중요해지고 있다.
Mobility를 지원하는 프로그램은 시스템 폴링이나 불필요한 주변 장치에 대한 접근을 통한 배터리 파워를 낭비하지 않고, 사용자가 이동할 때나 모니터 구성을 변경하거나 슬립모드 또는 활성화되었을 때 멈추지 않게 하는 기능을 제공해야 한다.
Mobility를 지원하기 위해, 프로그램은 네트워크 구성 변경을 포함한 다른 시스템 구성에 적응할 수 있어야 한다.
많은 하드웨어 디바이스는 컴퓨터가 동작하는 중에 플러그 상태 또는 언플러그 상태가 될 수 있다. 이동을 인지하는 프로그램은 이러한 변화에 우아하게(?) 반응해야 한다.
또한 파워 사용과 같은 이슈에 민감해야 한다.
지속적인 하드나 광학 드라이브에 대한 접근은 노트북의 배터리를 빠르게 소모시킨다.
하나의 배터리 충전으로 컴퓨터를 더 오래 사용할 수 있도록 모바일 사용자를 고려해야 한다.

Guidelines
  • 이벤트에 대한 폴링을 피하라.
    • 시스템 폴링은 불필요하게 CPU 시간을 낭비하고 그 다음으로 포터블 시스템에서 배터리 파워를 소모한다.
    • 대부분의 modern API는 흥미로운 뭔가가 일어나면 프로그램에 알려주는 방법을 가지고 있다.
    • 이러한 통지를 받기위해 등록하고 적절하게 응답하라; 그렇지 않으면 (프로그램이 아무것도 하지 않는다면) 완전히 유휴 상태가 된다.
  • 소프트웨어를 사용할 때 사용자에게 프로그램 CD를 넣으라는 요구를 하지 마라.
    • 사용자에게 로컬 하드 드라이브에 모든 것을  설치할 수 있는 옵션을 제공하라.
  • 하드나 광학 드라이브에 파일 접근을 최소화하라.
    • Performance를 향상시킬 뿐 아니라, 드라이브를 좀더 자주 덜 돌게 함으로써 배터리 소모를 줄일 수 있다.
  • 네트워크 구성 변경을 적용하기 위해서는 Modern 네트워크 인터페이스  사용하라.
    • 모바일 사용자는 장소나 어느 한순간에 무선 접속 장소를 바꿀 수 있다.
    • 이러한 구성 변경을 다루기 위해 CFNetwork와 다른 modern 인터페이스를 사용하라.
  • 네트워크 볼륨의 연결이 끊기는 경우, 파일 시스템에 접근할 때 이를 허용하라.
    • 네트워크 볼륨이 사라지면 사용자에게 알리고 파일을 다른 볼륨에 저장할 수 있는 옵션을 제공하라.
  • 화면 해상도 변경과 모니터의 플러그와 언플러그에 민감하게 반응하라.
    • 모바일 사용자는 다른 해상도를 요구하는 프로젝트나 다른 디바이스에 연결할 수도 있기 때문에 소프트웨어의 화면 크기를 고정이라고 생각하면 안된다.
    • 모니터가 사라지면, 윈도우들이 보이는 상태로 남을 수 있도록 모니터에 있던 모든 윈도우의 위치를 조정하라.(모니터가 다시 나타났을 때 이전 위치에 놓이게 하기 위해)
Posted by 쟤시켜 알바
Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
Interoperability는 프로그램이 다른 환경들 사이로 커뮤니케이션할 수 있는 능력을 뜻한다.
이 커뮤니케이션은 사용자 또는 프로그램 레벨에서 일어나고 현재 컴퓨터 또는 원격 컴퓨터의 프로세스에서 발생할 수 있다.
프로그램 레벨에서, 상호 사용 가능한 프로그램은 다른 프로그램과 자신의 프로그램 사이에 데이터를 옮기는 것을 지원한다.
Pasteboard(클립보드)를 지원해야 하고 같은 또는 플랫폼에서 다른 프로그램의 파일 포맷을 읽을 수 있다.
사용자는 pasteboard, drag&drop, AppleScript, Bonjour, 그리고 서비스 메뉴에서 서비스 등과 같은 특징에서 interoperability를 볼 수 있다.
이러한 모든 특징은 사용자가 다른 어플리케이션으로(부터) 데이터를 보내거나 받을 수 있는 방법을 제공한다.

Guidelines
  • 가능하면 사용자가 다른 프로그램의 사용자와 문서를 쉽게 교환할 수 있도록 커스텀 파일 포맷 사용을 피하라.
    • 커스텀 파일 포맷을 사용해야만 한다면, 사용자가 다른 어플리케이션과 데이터 교환을 위해 가져오기와 내보내기 기능(capability)를  제공하라.
  • 모든 지원가능한 플랫폼에서 동일한 파일 포맷을 사용하라.
    • 한 플랫폼의 어플리케이션에서 만들어진 문서가 다른 플랫폼의 동일 어플리케이션에서 읽혀질 수 있도록 하라.
    • 다른 플랫폼의 사용자가 알아볼 수 있고 열어 볼 수 있도록 파일 확장자를 지원하라.
  • 가능한 데이터 교환에 표준 프로토콜을 사용하라.
    • XML은 크로스 플랫폼이고 광범위하게 지원되기 때문에 어플리케이션과 플랫폼에서 데이터 교환에 있어 선호되는 포맷이다.
    • Mac OS X 역시 매우 많은 네트워크 프로토콜을 지원한다.
  • Cocoa와 Core Foundation으로 제공되는 Mac OS X 환경설정(preference system) 수행을 이용하여 설정 데이터를 저장하라.
    • 이러한 수행은 설정 데이터를 사용자에게 데이터를 바로 또는 스크립트를 이용하여 수정할 수 있는 기회를 제공하는 일반 텍스트 파일로 저장한다.
  • 유연성과 확장성이 가능하게 AppleScript 객체 모델을 조심스럽게 디자인하라.
    • 좋은 AppleScript 통합(integration)은 사용자나 어플리케이션이 데이터와 상호 작용하는 것에 대한 사상이 필요하다.
    • 또한 프로그램의 데이터 구조와 주의깊은 통합이 필요하다.
Posted by 쟤시켜 알바
Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
Adaptable 프로그램은 주변 환경에 적절하게 적응하는 것이다.
현재 환경이 바뀔 때 동작이 멈추지 않는다는 것이다.
네트워크 연결이 다운된다면, adaptable 프로그램은 사용자가 오프라인에서 계속 작업할 수 있게 해준다.
마찬가지로, 특정 리소스가 잠기거나 사용 불가능하게 되었을 때, adaptable 프로그램은 사용자의 요청에 맞는 다른 방법을 찾을 것이다.
Mac OS X의 강점 중 한가지는 설정 변화에 빠르게 적응할 수 있는 능력이다.
예를 들어, 사용자가 시스템 설정에서 컴퓨터의 네트워크 환경을 변경한다면, CFNetwork를 이용하여 네트워크 설정 변경을 자동으로 처리하는 사파리나 메일과 같은 어플리케이션이 자동으로 변경된 부분을 잡아낸다.

Guidelines
  • 인터페이스에 허용(forgiveness)와 영리함(intelligence)를 넣어라.
    • 소프트웨어가 파일 시스템 볼륨이나 네트워크가 사라지는 경우를 다룰 수 있게 하라.
    • 사용자에게 다른 볼륨에 저장하기나 추후 네트워크에 재연결과 같은 옵션을 제공하라.
  • 가능한 하드웨어와 접근할 수 있는 하드웨어에 가정을 피하라.
    • 하드웨어 구성은 컴퓨터, 국가, 사용자에 따라 아주 다르게 바뀔 수 있다.
    • 예를 들어, 모든 매킨토시가 프로세서에 벨로시티 엔진이 장착된것이 아니다.
    • 마찬가지로 모든 키보드가 같은 키셋을 가지고 있지 않다.
    • 하드웨어는 실행 중 추가되거나 제거될 수 있다.
    • 사용 가능한 디바이스 구성을 감지하기 위해 I/O 킷 인터페이스를 사용하라.
  • 현재 사용자의 장소에 의해 가정하지 마라.
    • 다른 날짜,  시간, 그리고 숫자 포맷을 다룰 수 있게 준비하라.
    • 또한, 현재 사용자의 주소 포맷이 반드시 사용 중인 주소 포맷이라고 가정하지 마라.
    • 예를 들어, 사용자는 address book에 외국인의 주소와 함께 연락처를 저장할 수도 있다.
  • 실행 환경을 가정하지 마라.
    • 프로그램이 NetBootk 환경에서 실행된다면, 시스템 리소스의 접근은 제한되거나 읽기 전용일 것이다.
    • 예를 들어, 전형적인 NetBoot 환경에서는 사용자의 홈 디렉토리만 쓰기 가능하다.
  • 화면 유효성과 해상도의 변화에 민감해져라.
    • Mac OS X는 모니터의 하플러깅을 지원하고 Quartz 서비스를 통해 변경을 어플리케이션에 알려준다.
    • 소프트웨어는 윈도우 위치와 크기를 조정하여 이에 대해 적절하게 반응해야 한다.
  • Modern 시스템 API를 사용하라.
    • 애플은 Modern 시스템 API는 구성 변경을 제대로 다루도록 동작한다.
    • 몇몇 legacy API 또한 구성 변경을 지원할 수도 있지만, 미래의 릴리스 버전에서 지원할 것이다
  • 커스텀 디바이스 드라이버를 만들지 마라.
    • I/O 킷은 많은 표준 프로토콜과 디바이스 타입을 지원하는 동작 드라이버를 포함하고 있다.
    • 이러한 드라이버에 의존하면  새 버전의 Mac OS X에서 하드웨어어가 자동으로 동작하는 것을 의미한다.

Posted by 쟤시켜 알바
Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
사용자의 신뢰를 받을 수 있는 프로그램이 신뢰할만한(reliable) 프로그램이다. 사용자가 예상하고 바라는 방향으로 정보를 보여주는 그런 프로그램 말이다.
신뢰할만한 프로그램은 사용자의 데이터의 무결성을 유지시켜주고 데이터 상실이나 전와될만한 것을 방지해주기 위해 가능한 모든 것을 수행한다. 또한 이러한 것들을 충분히 해결할 수 있고 충돌 없이 복잡한 상황을 처리할 수 있다.
Reliability는 소프트웨어 디자인의 모든 분야에서 중요하며, 특히 오래 실행되는 프로그램에서 더욱 중요하다.
예를 들어, 과학 프로그램은 종종 큰 데이터 셋 계산을 수행하며, 계산을 수행하는데 오랜 시간이 걸린다. 만약 이러한 프로그램이 계산 도중 충돌이 일어난다면, 과학자는 몇일 또는 몇주간의 일하는 시간을 잃어버릴 수도 있다.

Guidelines
  • 사용자 인터페이스는 예상 가능한 방식으로 작동하게 하라.
    • 같은 종류의 액션들은 각각 같은 결과를 만들어야 한다.
  • 문서에 예상 가능한 결과를 제공하라.
    • 출력에서 있어, 사용자가 화면에서 보는 컨텐츠는 출력이 되는 것과 같게 하라.(Mac OS X 프린팅 다이얼로그에서는 프린트 미리보기 옵션을 제공하고 있다)
  • 문서를 불러오거나(import) 내보낼때(export) 데이터 손실을 줄이거나 없애라.
    • 프로그램이 다른 어플리케이션의 파일을 불러오거나 가져올 때, 파일 포맷을 완벽하게 지원하라.
    • 어플리케이션이 주어진 파일 포맷에서 모든 데이터를 가져오지 못하면, 사용자에게 데이터 손실이 일어날 수도 있다는 경고를 하고 원본 파일의 복사본에서 작업할 수 있는 옵션을 제공하라.
  • 다양한 환경에서 소프트웨어를 테스트하고 적절하게 반응하지는 검증하라.
    • 네트워크가 다운되거나 마운트된 볼륨이 사라지는지에 대해 시뮬레이션하고 소프트웨어가 적절하게 반응하고 처리하는지 확실하게 하라.
  • 패키징시 소프트웨어가 시스템 요구사항을 명확히 표기하라.
    • 소프트웨어가 저사양 하드웨어에서 테스트할 때까지 저사양 하드웨어에서 돌아간다고 가정하지 마라.
    • 마찬가지로, 지원하는 Mac OS X버전을 표기하라.
  • 에러를 예측하고 우아하게 다뤄라.
    • 함수가 결과 코드를 반환하면, 문제가 있는지 적절하게 반응하지는지에 대해 체크하라.
    • 또한 에러를 잡기 위해 예외 처리자를 사용할 수 있다.; 그러나, 최소한응로 사용하라.
    • 예외 처리자는 어플리케이션의 메모리가 차지하는 공간을 증가시키며 이는 performance를 떨어뜨린다.
  • 사용자 입력이 예상한대로 입력된 것인지 확실히 하기 위해 사용자 입력의 유효성을 확인하라.
    • 형식지정자(formatter object)는 사용자가 숫자와 날짜를 올바르게 입력할 수 있도록 도와준다.
    • 문제가 발생하는 것을 막기 위해 코드에서 사용자 입력 데이터의 유효성을 확인해야 한다.
  • 메모리 누수와 코드에서 발생하는 다른 문제들을 찾기 위해 애플이 제공하는 performance와 debugging 툴을 사용하라.
    • 이러한 툴들은 개발자가 알지 못하는 숨겨진 버그를 찾아낸다.
  • Legacy API보다는 modern API를 선택하라.
    • Modern API는 legacy API보다 더나은 시스템 설정 처리를 제공한다.
  • 커스텀 API을 시스템과 표준 기반의 API에 속하게 하라.
    • (표준 방식에 맞추라는 의미인듯)
Posted by 쟤시켜 알바
Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
사용자가 매킨토시 플랫폼과 특히 Mac OS X에 끌리는 한가지 특징은 멋진(stylish) 디자인과 하드웨어와 소프트웨어의 attractive appearance다.
매력적인 하드웨어와 시스템 소프트웨어를 만드는 것이 애플의 일이지만, 소프트웨어에 attractive appearance를 가미하기 위해 Mac OS X의 강점을 이용해야만 한다.
Mac OS X와 함께 딸려 오는 파인더와 다른 어플리케이션들은 고해상도와 고품질의 그래픽와 32비트 컬러와 투명도를 포함하는 아이콘을 사용한다.
어플리케이션이 appearance와 사용자에게 연관성이 있는 정보를 더 잘 전달하기 위해 고품질 그래픽을 사용해라.
예를 들어, 시스템은 가장 나은 선택을 구분하고 윈도우에 차원 성질을 더하기 위해 투명효과를 사용한다.

Gudelines
  • 사용자 인터페이스를 디자인할 때 Part3에 있는 가이드라인을 따라라.
    • 가이드라인은 컨텐츠를 배치하는 방법과 소프트웨어의 시각적 외형을 디자인하는데 필요한 조언을 제공한다.
  • 패키징에서 사용자 인터페이스를 잘 다듬는 일까지, 소프트웨어가 전문적으로 디자인한 것처럼 보이게 하라.
    • 고화질의 그래픽과 아이콘을 사용하라. 필요하다면, 이러한 것들을 만드는 전문 그래픽 디자인 회사와 계약하라.
    • 컨트롤, 메뉴, 다이얼로그와 같은 표준 Mac OS X 사용자 인터페이스 요소를 채택하라. 시스템에서 제공하는 것들을 대신하기 위해 자신만의 커스텀 컨트롤이나 다이얼로그를 구현하지 마라.
    • 시스템에서 제공하지 않는 컨트롤이 정말로 필요하다면 이 문서에 있는 가이드라인을 참고하고 새로운 요소를 만들기로 결정하거나 기존에 있는 요소나 작동방식을 바꾸기 전에 'Extending the Interface'를 읽어라.
    • (이 부분은 추후에 보강해야할 것 같다.)
  • 32비트 색상을 사용하라.
    • Mac OS X는 32비티 색상에서 최고의 performance를 제공하도록 최적화되어 있다.
    • 시각적 요소에 8비트 색상 팔레트로 한정할 필요가 없다.
    • 8비트 그래픽은 최소한으로 지원되며 예전 어플리케이션을 지원하는데 대부분 충분하다.
  • 사용자 인터페이스를 디자인하기 위해 인터페이스 빌더를 사용하라.
    • nib 파일들을 사용하지 않더라도, 인터페이스 빌더가 제공하는 메트릭스를 사용하여 코드에서 화면과 컨트롤들을 정확히 배치할 수 있다.
    • (윈도우 계열은 공식적인 인터페이스 빌더가 없으니 패쓰, 물론 VS에서 할 수는 있지만 지원하는 형식에서만 사용가능하다.)
  • Quartz, Cocoa, ATSUI, 그리고 OpenGL과 같은 modern API를 사용하여 텍스트와 그래픽을 표현하라.
    • QuickDraw와 같은 legacy API를 사용하는 것을 피하라.
Posted by 쟤시켜 알바
Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
사용하기 편리한 프로그램은 사용자에게 강력하고 직관적인  경험을 제공한다.
복잡한 문제를 해결할 수 있는 고상한(elegant) 해결책을 제공하고 친숙한 패러다임을 사용하는 아주 잘 계획된 인터페이스를 갖게 된다.
사용자에게  이해가 빠른 선택을 제공하기 때문에 설치와 설정이 쉬우나, 필요할 때 이러한 선택을 되돌릴 수 있는 옵션을 사용자에게 제공해야 한다.
이러한 것은 연관이 없는 툴들을 제거하거나 비활성화한, 현재 상황과 연관성이 있는 툴들을 사용자가 가지고 있음을 의미한다.
또한 사용자에게 위험한 액션에 대한 경고와 이러한 위험한 액션이 발생했을 때 되돌릴 수 있는 방법을 제공하는 것을 의미한다.

Guidelines
  • 사용자 인터페이스에서, 구체적이고 친숙한 관념들을 나타내는 메타포를 사용하라.
    • 사용자가 자신이 예상하는 것들을 좀 더 쉽게 컴퓨터 환경을 응용할 수 있도록 메타포를 명확하게 하라.
    • 예를 들어, Mac OS X는 문서를 저장하기 위해 파일 폴더의 메타포를 사용한다.
  • 특징(feature)이 아닌 솔루션에 집중하라.
    • 경쟁이 될만하다는 이유로 연관성이 없는 특징을 추가하는 것을 피하라.
    • 모든 특징이 사용자에게 실제 이득을 제공할 수 있도록 해라.
  • 패키지가 시스템 요구사항을 명확하게 표시하고 사용자가 바로 곧바로 사용하는데 필요한 모든 것을 포함하라.
    • 프로그램에 지능적인 기본 설정을 수립하라.
    • 지루하게 긴 설정 과정이 필요로 하는 것을 피하라.
    • 사용자로부터 정보가 필요한 경우에는 설정 어시스턴트를 제공하는 것을 고려하라.
    • 사용자에게 적절한 초기 설정들을 제공하고 환경 설정(preference)이나 옵션판을 통해 이러한 설정들을 변경할 수 있는 옵션을 제공하라.
  • 한번에 너무나 많은 정보를 표시하여 사용자가 당황하지 않도록 해라.
    • 정보를 표현하기 위해 필요한 만큼만 정보를 계속적으로 보여주는 점진적인 표현 방법을 사용하고 사용자가 유용하다고 생각되지 않는 정보를 보이지 않게 하는 옵션을 제공해라.
  • 어플리케이션을 일괄(패키지) 판매하라.
    • 어플리케이션 번들은 소프트웨어 배포에서 선호되는 메커니즘이다.
    • 설치를 단순화하고 파인더로 옮기기 쉽다.
    • (이 부분은 정확히 이해가 되지 않는다.)
  • 하드웨어 개발자라면, plug-and-play 하드웨어에 대한 공개된 표준을 지원하라.
    • Mac OS X는 마우스, 키보드, 하드 드라이브와 같은 USB와 FireWire 디바이스에 대한 많은 공개된 하드웨어 표준을 지원한다.
    • 이러한 표준을 따른다면, 새 디바이스는 컴퓨터에 꽂으면 "바로 작동'하게 되며 일반 디바이스 드라이브가 필요치 않게 된다.
  • 한명의 사용자가 로그인 중이며 현재 사용자가 콘솔에 액세스할 것이라는 가정을 하지 마라.
    • 빠른 사용자 전환은 어플리케이션의 다중 인스턴스가 동시에 작동하는 것을 의미한다.
    • 어플리케이션은 이러한 상황(다중 인스턴스가 동시에 작동)에 대해 준비되어 있어야 한다.
  • 무언가 잘못되었을 때 사용자에게 유용한 에러 메시지를 제공하라.
    • 에러 메시지는 명확하게 무슨 일이 일어났는지, 왜 일어났는지, 그리고 현재 상황에서 벗어나기 위한 옵션을 명확하게 전달해야 한다.
    • 한가지가 사용 가능하다면 대안을 제공하고 사용자가 데이터를 잃지 않게끔 할 수 있는 모든 것을 해라.
    • 사용자 인터페이스에 원래 경로와 파일명 대신 display name(뭐라고 표현해야 할지 몰라)을 사용하라.
  • display name은 사용자의 확립된 언어와 파일 확장자에 대한 선호를 포함하고 있다.
    • (이 부분은 좀 어렵다-_-)
  • 사용자가 그들의 데이터에 돌이킬 수 없는 피해를 유발하지 않고 어플리케이션의 특징을 살펴볼 수 있게 하라.
    • 취소하기와 되돌리기와 같은 특징들을 지원하라.
    • 파일을 되돌릴 수 있는 특징들을 지원하는 것을 원할수도 있다.
  • 소프트웨어를 여러 언어에서 사용(internationalize)할 수 있게 하라.
    • 가능할 때마다 지역화 버전을 제공하라.
    • 자신들의 언어로 프로그램을 사용하면 사용자들은 좀더 편안하게 느낄 것이다.
  • 장애를 가진 사람들이 접근할 수 있게 어플리케이션을 개발하라.
    • 이러한 보조적인 어플리케이션은 어플리케이션과 상호작용하며 장애를 가진 사람들이 사용할 수 있게 해준다.
    • 접근성에 대한 많은 지원이 시스템에서 자동적으로 제공되고 있지만, 시스템에서 제공하는 것을 개선하여 더 나은 지원을 해줄 수가 있다.
  • 소프트웨어에 대한 적절한 문서를 제공하라.
    • 애플 도움말은 어플리케이션에 문서를 통합할 수 있는 HTML 기반의 도움말 시스템이다.
몇몇가지는 은근히 말이 안된다. 내가 잘 모르는 부분도 있고...
내공이 마이 부족하다.

출처 : Apple Human Interface Guidelines
Posted by 쟤시켜 알바
Apple에서 제공하고 있는 Apple의 HI Guideline에서 PC가 아닌 다른 곳에서도 사용될 수 있고 쓸만한 부분을 한글로 정리를 하려는 목적에서 이 글을 쓴다.

먼저 Characteristics of Great Software와  Human Interface Design 부분을 정리하려고 한다.
능력이 되는 한 원본 글을 손상하려고 하지 않겠지만 내공이 부족한 관계로 자의적으로 해석해서 변경하는 부분도 종종 있을 것이다.

Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
Performance는 소프트웨어의 속도와 효율성을 측정할 수 있는 척도이며 모든 소프트웨어의 성공에 중요하다.
소프트웨어가 느리다고 느끼게 되면, 사용자는 그 제품을 덜 사려고 할 것이다.
사용자에게 응답하는 시간보다 더 오랜 시간을 처리하는데 사용한다면 최적화 알고리즘을 사용하더라도 느리게 될 수 있다.
개발자는 Mac OS X에서 성능에 영향을 주는 요소들을 배우는데 시간을 들여야만 한다.(이는 모든 플랫폼에서 마찬가지)
이러한 요소들에 대해 이해하는 것은 소프트웨어의 디자인과 구현에 있어 더 나은 선택을 할 수 있게 된다.

Guidelines
  • Performance 문제를 식별하기 위해 metrics를 사용하라.
    • 절대로 가정에 의해 소프트웨어의 performance를 조정하려고 하지 마라.
    • 초기에 baseline metrics를 수집하고 목적에 반하는 경과를 측정하기 위해 개발하는 동안 metrics를 수집하는 것을 지속해야 한다.
    • Performance가 떨어지는 것이 보이면 문제를 해결하기 위해 즉시 수정하라.
  • Legacy API 보다는 modern API를 사용하라.
    • Modern 인터페이스는 Mac OS X를 위해 만들어졌고 최신 기술과 가능한 최고의 performance를 수행하는 디자인 정보의 이점을 취할 수 있다.
    • (이 부분은 Mac OS X가 아닌 다른 OS 또는 플랫폼에서도 동일하게 적용할 수 있다.)
  • 소프트웨어의 수행 목적에 가장 가까운 적합한 기술을 사용하라.
    • 예를 들어, Cocoa는 배포된 객체를 사용하는기에 좀더 편하지만, 소프트웨어가 네트워크 상에서 최대 performance가 필요하다면 CFNetwork나 BSD 소켓이 좀 더 나은 선택이 될 것이다.
    • (이 부분은 Mac OS X가 아닌 다른 OS 또는 플랫폼에서도 동일하게 적용할 수 있다.)
  • 코드의 반응성을 개선하기 위해 쓰레드를 사용하라.
    • 쓰레드에 의해 제공되는 parallelism(병렬 처리)의 이점을 이용하면 상당한 performance 이점을 제공할 수 있다, 특히 멀티프로세서 시스템에서.
  • 정보를 위해 시스템의 폴링을 하지 마라.
    • 폴링은 CPU 시간의 상당량을  소비하고 대부분의 modern API에서 불필요하다.
    • 대부분의 modern API는 상태 변화나 요청 데이터가 유효할 때 당신에게 알려주는 비동기화 메커니즘 방식을 제공하고 있다.
    • 폴링 대신 이러한 비동기화 콜백 메커니즘을 사용하라
  • 불필요한 I/O operation을 제거하라.
    • 하드나 광학 드라이브에 액세스하는 것은 모든 컴퓨터에서 가장 느린 operation 중 하나다.
    • 이러한 operation을 최소화하는 것은 상당한 performance의 향상을 가져온다.
  • Mac OS X의 가상 메모리 시스템의 이용하여 메모리 사용을 최적하 하라.
    • Mac OS X에서 가상 메모리가 동작하는 방식을 이해하면 메모리를 더욱 효율적으로 사용할 수 있게 된다.
    • (하드웨어의 capacity가 빠르게 커지면서 이러한 부분이 많이 빠지고 있지만 PC가 아닌 mobile 기기에서는 아직도 메모리는 중요한 이슈이므로 해당 시스템 또는 플랫폼이 갖는 메모리 시스템을 충분히 이해하고 메모리를 최적화해야 할 것이다.)
  • 소프트웨어가 해당 리소스를 실제로 필요로 할 때까지 리소스를 로딩하는 것을 피하라.
    • 초기에 리소스를 로딩하는 것은 메모리를 낭비하고 리소스가 사용되기 전에 paging사용한 리소스를 paging하는 경우를 만들어낸다.
    • 리소스를 필요로 할 때까지 기다리고 적절한 때에 cache하라.
  • Mach-O 실행 포맷을 사용하라.
    • Mach-O는 Mac OS X의 고유 실행 포맷이며 모든 시스템 프레임웍에서 사용된다.
    • Legacy Code Fragment Manager(XCFM) 실행 포멧을 사용하기 위해서는 추가적인 를 사용하기 위해서는  인 Mach-O를 사용할 것;Legacy Code Fragment manager(CFM) 실행 포맷은 코드와 시스템 라이브러리 사이에 추가적인  브리징(bridging) 코드가 필요하다.
    • 이러한 브리징은 연결하는데 시간이 드는 작은 performance 패널티가 발생한다.
    • (Windows는 따로 이러한 부분이 없는 것으로 알고 있기 때문에 이부분은 크게 신경쓰지 않아도 될 것 같다.)
괄호는 내 개인적인 생각을 쓴 것으로 잘못된 부분이 있으면 추후에 수정하도록 할 예정이다.

출처 : Apple Human Interface Guidelines
Posted by 쟤시켜 알바