feat: EOS 전 챕터 Vision 이미지 분석 삽입 (fig. 1.1–11.5, E.1–E.10)
- 9개 wiki 소스 페이지에 총 69개 JPEG 이미지 Vision 분석 결과 삽입 - fig. 2.1–2.8, 3.1, 3.3–3.5: EOS-part1-motivations (Backblaze·Dropbox 설계 결함) - fig. 4.1, 4.3, 4.5–4.6: EOS-ch4-concept-structure (개념 5요소·상태 기계) - fig. 5.1–5.10: EOS-ch5-concept-purposes (목적 기준·미스피트 사례) - fig. 6.1, 6.4, 6.6, 6.9: EOS-ch6-concept-composition (시너지·동기화 문제) - fig. 7.1–7.3: EOS-ch7-concept-dependence (의존 다이어그램) - fig. 8.1–8.5, 8.7, 8.10–8.11: EOS-ch8-concept-mapping (UI 매핑·다크 패턴) - fig. 9.1, 9.3–9.4, 9.6–9.9, 10.1–10.3, 11.1–11.2, 11.4–11.5: EOS-part3-principles - fig. E.1–E.5: EOS-endnotes-formalism (상태 기계·관계형 모델·Photoshop layer) - fig. E.6–E.9: EOS-endnotes-context (Bosch·Gmail·nail clipper·Photoshop crop) - fig. E.10: EOS-part3-principles (Apple Pages '09 부분 스타일) - 책 표지·챕터 헤더 이미지는 스킵 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,8 @@ updated: 2026-04-30
|
||||
- **delegate forwarding**: "다른 사람에게 전화를 위임한다" — A→B→C로 두 단계 전환 (연쇄 적용)
|
||||
- **follow-me forwarding**: "내가 다른 장소로 이동했다" — A에서 B 위치로만 전환 (단일 전환)
|
||||
|
||||
> **fig. 5.1** (*Call forwarding: a design puzzle (top) and two solutions (below). If A is forwarded to B, and B is forwarded to C, does a call to A get forwarded to B or to C?*): 위 다이어그램은 발신자 → A → B → C 연쇄 전환을 보여주며, A에 온 전화가 B로 가는지 C로 가는지의 설계 퍼즐을 제시한다. 가운데 "delegate forwarding" 다이어그램은 발신자가 A를 건너뛰고 C까지 직접 연결되는 2단계 전환을 보여준다. 아래 "follow-me forwarding" 다이어그램은 발신자가 A를 건너뛰고 B에만 연결되는 1단계 전환을 보여준다. 두 개념의 목적 차이(위임 vs. 위치 이동)가 서로 다른 전환 행동을 정당화함을 시각화한다.
|
||||
|
||||
하나의 개념에 두 목적을 섞으면 불합리한 동작이 나온다.
|
||||
|
||||
## 목적 없는 개념
|
||||
@@ -42,10 +44,14 @@ updated: 2026-04-30
|
||||
|
||||
신식 단일 손잡이: 회전 = 온도, 상하 = 수량. 목적과 제어가 1:1 대응한다.
|
||||
|
||||
> **fig. 5.2** (*A physical analogy: do faucet controls have purposes?*): 왼쪽은 온수·냉수 두 개의 십자형 손잡이가 달린 구식 혼합 수도꼭지, 오른쪽은 단일 레버 손잡이가 달린 신식 수도꼭지. 구식의 각 손잡이는 "온도"나 "수량"이라는 사용자 목적에 직접 대응하지 않지만, 신식의 단일 레버는 회전(온도)과 상하(수량)로 사용자 목적과 1:1 대응한다. 목적 없는 개념(구식 핸들)이 사용성 문제를 일으키는 물리적 유비로 사용된다.
|
||||
|
||||
### 에디터 버퍼
|
||||
|
||||
*editor buffer* 개념: 메모리에 텍스트를 유지하다가 저장 명령으로 디스크에 씀. 이 개념의 목적은 사용자가 아닌 구현의 필요에서 비롯됐다. Apple은 OS X Lion(2011)에서 이 개념을 제거했다. "저장"은 이제 파일에 이름을 붙이는 것이 됐고, "다른 이름으로 저장"도 사라졌다.
|
||||
|
||||
> **fig. 5.3** (*Apple file menu: the "save as" action in the old menu (left) reflected the buffer concept, no longer present in the new menu (right).*): 왼쪽은 구 Apple File 메뉴로 New, Open, Save, Save As, Rename, Move To, Revert To 등의 항목이 나열돼 있다. 오른쪽은 새 File 메뉴로 "Save As…"가 사라지고 Close, Save, Duplicate, Rename, Move To, Revert To로 대체됐다. "Save As"의 제거가 *editor buffer* 개념의 소멸을 반영하며, 이제 파일 복사는 "Duplicate"(파일을 복제)로 대체됨을 보여준다.
|
||||
|
||||
**원칙**: 개념은 내부 구현 메커니즘이 아닌 사용자 필요에서 비롯되어야 한다.
|
||||
|
||||
## 목적이 불명확한 개념: Twitter의 favorite
|
||||
@@ -54,6 +60,10 @@ Twitter의 *favorite* 개념 문제: 사용자들이 개념을 "나중에 볼
|
||||
- *favorite* → *like*로 이름 변경 (목적과 일치)
|
||||
- *bookmark* 개념 신규 도입 (사적 저장 목적)
|
||||
|
||||
> **fig. 5.4** (*An unflattering tweet unintentionally endorsed due to a misunderstanding over the purpose of Twitter's favorite concept.*): Andy Ostroy(@AndyOstroy)가 트럼프와 영부인의 관계를 조롱한 트윗 스크린샷으로, 하트 8,221개와 2017년 5월 2일 날짜가 표시돼 있다. 이 트윗에 MELANIA TRUMP가 "liked your Tweet" 알림을 받은 화면이 오른쪽(fig. 5.4의 두 번째 이미지)에 표시된다. 영부인이 *favorite*(하트 클릭)의 목적이 공개 승인 표시임을 인지하지 못하고 "저장"으로 오해해 발생한 실수로, 개념 목적 불명확성의 실제 파급 사례다.
|
||||
|
||||
> **fig. 5.5** (*Twitter's response to problems with the "favorite" concept: a new "bookmark" concept, accessible through the share menu (on the right), and the original concept, renamed "like," still represented by a heart icon (on the left).*): 왼쪽은 The Boston Globe 트윗에 하트(좋아요) 94개가 표시된 일반 트윗 화면, 오른쪽은 공유 버튼을 누르면 나타나는 드롭다운 메뉴로 "Send via Direct Message", "Add Tweet to Bookmarks", "Copy link to Tweet", "Share Tweet via…" 항목이 보인다. *favorite* 개념의 목적 혼란을 해결하기 위해 Twitter가 두 개념으로 분리한 결과 — 공개 승인은 *like*(하트), 사적 저장은 *bookmark*(공유 메뉴 내)로 명확히 구분됐다.
|
||||
|
||||
## 기만적 목적: Nanny Scam
|
||||
|
||||
*available funds* 개념과 *cleared check* 개념이 혼동됨. 은행 앱이 수표 처리 전에 일부 금액을 "사용 가능"으로 표시하는 것은 의회 법령에 따른 것인데, 사용자들은 이를 "수표가 청산됐다"고 오해한다. 사기꾼들은 이 개념 오해를 악용해 먼저 "수표 받기" → "초과분 반환 요청" → 수표 부도로 피해를 입힌다.
|
||||
@@ -67,12 +77,22 @@ Twitter의 *favorite* 개념 문제: 사용자들이 개념을 "나중에 볼
|
||||
| Quora 로그인 강제 | "커뮤니티 기여" | 사용자 데이터 수집·광고 타겟팅 |
|
||||
| Direct flight 개념 | 편의성 | 예약 시스템 검색 우선 노출 |
|
||||
|
||||
> **fig. 5.6** (*Image size dialog in Photoshop. If you check the resample box (top left), and change the resolution from 300 to 600, the pixel dimensions double (bottom left). If you change the resolution with the resample box unchecked (top right), the pixel dimensions stay the same but the width and height are halved (bottom right).*): 4개의 Photoshop Image Size 다이얼로그 스크린샷. 왼쪽 상단(Resample 체크됨): 6000×4000px, 20인치, 300 ppi. 왼쪽 하단(해상도를 600으로 변경 후): 12000×8000px로 픽셀 수가 두 배로 증가. 오른쪽 상단(Resample 체크 해제): 동일한 6000×4000px, 300 ppi. 오른쪽 하단(해상도를 600으로 변경 후): 픽셀 수는 그대로지만 인쇄 크기가 10×6.7인치로 절반. Resample 유무에 따라 해상도 변경의 의미가 달라지는 *image size* 개념의 복잡성을 4분할 비교로 시각화한다.
|
||||
|
||||
> **fig. 5.7** (*The tagging concept in Facebook: no mention of why you should do this.*): Facebook의 "Who Is in These Photos?" 화면으로, "To tag your friends, review the suggested names and click Save Tags…" 안내문 아래 두 사람의 얼굴 사진과 "Who is this?" 텍스트 박스가 표시돼 있다. 태그를 *왜* 해야 하는지에 대한 설명이 전혀 없다 — "If someone doesn't like a photo, they can untag themselves" 같은 단서는 있지만 태그의 목적(소셜 그래프 확장)은 숨겨져 있다. 기만적 목적의 전형적 예시다.
|
||||
|
||||
> **fig. 5.8** (*Quora's disingenuous explanation for why reading posts requires sign-in.*): Quora 로그인 화면으로, "Continue with Google"과 "Continue with Facebook" 버튼 아래 "Why do I need to sign in?" 섹션에 "Quora is a knowledge-sharing community that depends on everyone being able to pitch in when they know something."이라는 설명이 표시돼 있다. 실제 목적(사용자 데이터 수집·광고 타겟팅)을 숨기고 커뮤니티 기여라는 이타적 이유를 내세우는 기만적 목적 표현의 사례다.
|
||||
|
||||
> **fig. 5.9** (*A flight reservation app showing non-stop and direct options: note the parenthetic explanation of the direct flight concept next to the checkbox at the bottom left.*): Southwest Airlines 항공편 검색 결과 화면(Boston → Chicago, 2016년 2월 26일). 하단 "Filter My Results" 영역에 "Nonstop"과 "Direct (No plane change, with stops)" 체크박스가 나란히 있다. *Direct flight* 개념에 "(No plane change, with stops)"라는 괄호 설명이 붙어 있어, 환승 없이 논스톱이라는 사용자의 잘못된 기대를 바로잡는다. 기만적 목적이 있는 개념에 대해 UI에서 명시적 설명을 추가해 오해를 방지하는 사례다.
|
||||
|
||||
## 미스피트(Misfits): 목적이 실현되지 않을 때
|
||||
|
||||
소프트웨어 설계는 "형태(form)"를 "맥락(context)"에 맞추는 것이다. 미스피트는 이 맞춤이 실패하는 지점이다. 미스피트는 예측하기 어렵다:
|
||||
|
||||
1. **설계 결함으로 인한 미스피트**: PLGR GPS 기기 — 배터리 교체 후 재부팅 시 좌표가 기기 자신의 위치로 리셋됨 → 오폭 사고. *battery* 개념과 *target* 개념의 상호작용을 설계 시 고려했다면 방지 가능했다.
|
||||
|
||||
> **fig. 5.10** (*A GPS receiver (left) similar to the one that caused the accident in Afghanistan in which the operator unwittingly set the target of a bombing run to his own position, and the warning messages (right) that are now displayed.*): 왼쪽은 DAGR GPS 수신기 실물 사진으로, 현재 위치(MGRS 좌표), 고도, 속도, 날짜 등이 표시된 도트 매트릭스 화면과 F1/F2/F3, PWR/QUIT, BAT/MENU 등의 버튼이 보인다. 오른쪽 상단에는 "DANGER! TARGET POSITION SAME AS YOUR POSITION! RE-CHECK!" 경고, 하단에는 "WARNING! TARGET IS 123.44m FROM YOU!" 경고가 표시돼 있다. 배터리 교체 후 목표 좌표가 자신의 위치로 리셋되는 *battery*·*target* 개념 상호작용 결함을 사후 경고 메시지로 보완한 것을 보여주는 사례다.
|
||||
|
||||
2. **맥락 변화로 인한 미스피트**: 팬데믹으로 화상 회의가 일반화되자, *slideshow* 개념의 전체 화면 모드가 화상 회의 앱의 패널을 가리는 문제 발생. Apple Keynote는 "창 모드로 재생" 옵션 추가로 해결.
|
||||
|
||||
3. **구버전에서 작동했던 것이 다시 안 됨**: Apple Numbers의 *range* 개념 — 구버전은 범위 마지막 행 아래에 행 추가 시 범위에 포함됐지만, 새 버전에서는 포함되지 않아 실무에 큰 불편. Microsoft Excel도 동일한 결함.
|
||||
|
||||
Reference in New Issue
Block a user