Book (24) 썸네일형 리스트형 Designing Interfaces: 인터페이스 디자인 94가지 패턴 - 03. 둘러보기: 내비게이션, 사인, 길 찾기 1. 클리어 엔트리 포인트 (clear entry points)정의인터페이스 안으로 들어갈 수 있는 엔트리 포인트 (출입구)의 개수를 제한한다. 언제 사용하는가?태스크를 기본으로 하는 애플리케이션을 디자인할 때 왜 사용하는가?- 수많은 패널, 낯선 용어, 짜증나는 광고 등 많은 정보 대신에 명확하게 무엇을 해야 할지 가이드하기 때문에 주저없이 시작할 수 있다.- 사용자의 기대에 부합하는 옵션을 자신있게 선택할 수 있도록 해 사용자가 즉각적인 만족을 느끼도록 한다. 2. 글로벌 내비게이션 (global navigation)정의웹 사이트나 애플리케이션의 '모든 페이지에 일정 부분을 할애'하여 주요 페이지 또는 기능으로 이동할 수 있는 링크나 버튼으로 이루어진 고정 영역을 운영하는 방식이다. 언제 사용하는가?.. Designing Interfaces: 인터페이스 디자인 94가지 패턴 - 02. 콘텐츠 구성하기: 정보 구조와 애플리케이션 구조 1. 투 패널 셀렉터 (two-panel selector)정의인터페이스 안에 두 개의 패널을 나란히 놓는다. 첫 번째 패널에는 '선택할 수 있는' 아이템을 놓고, 다른 패널에는 '선택된' 아이템의 내용을 둔다. 언제 사용하는가?사용자들이 리스트의 전체 구조를 보는 동시에 스스로 선택한 순서에 따라 자신의 페이스로 아이템을 둘러보길 원할 때 왜 사용하는가?- 사용자의 시선이 패널 사이의 긴 거리를 이동할 필요 없이 물리적인 노력을 줄인다.- 윈도우 전체가 변하지 않고 대부분의 영역이 고정되어 있어 시각적인 인지 부담을 줄인다.- 이미 목록이 스크린 위에 떠있어 어떤 내용인지 굳이 기억해낼 필요 없이 바로 옆의 패널을 보고 기억해야 할 부담을 줄인다. 2. 캔버스 플러스 팔레트 (canvas plus pal.. Designing Interfaces: 인터페이스 디자인 94가지 패턴 - 01. 사용자들은 무엇을 하는가 인터페이스 디자인에 앞서좋은 인터페이스 디자인은 사람들을 이해하는 것에서부터 시작한다. 어떤 경우든지 간에, 사용자 인터페이스는 사용자들이 얻고자 하는 바를 성취하도록 도와주면서 사람과 기계와의 대화를 중간에서 전달하는 역할을 한다. 따라서 사람의 심리를 이해해야만 한다.사용자들의 동기와 의도는 무엇인가?사용자들이 쓰고 하는 단어, 아이콘, 제스처의 '어휘(vocabulary)'는 무엇인가?어떻게 애플리케이션이 사용자들의 기대를 적절히 채울 수 있는가?사용자들과 기계는 서로가 목적한 의사소통을 어떻게 끝내는가?툴, 소프트웨어 사용의 목적정보나 주제를 찾기 위해서무엇인가를 배우기 위해서업무 처리를 수행하기 위해서어떤 것을 컨트롤하거나 모니터링하기 위해서무엇인가를 만들어내기 위해서다른 사람들과 대화하기 위해.. 인스파이어드 인스파이어드에서 가장 인상깊었던 문구는 다음과 같다. 1. 위험은 마지막보다 초기에 대응한다.뛰어난 팀은 어떤 것에 대한 구현을 결정하기 이전에 4가지 위험을 먼저 발견하고 대응한다.가치 위험(value risk): 고객이 과연 이 제품을 구매할 것인가?사용성 위험(usability risk): 사용자가 이 제품의 사용 방법을 쉽게 이해할 수 있는가?실현 가능성 위험(feasibility risk): 우리 엔지니어가 보유한 시간/역량/기술로 필요한 것들을 만들어 낼 수 있는가?사업 유효성 위험(business viability risk): 이 솔루션이 영업/마케팅/재무/법무 등 우리 사업의 다양한 측면을 고려했을 때 제대로 효과를 발휘할 수 있는가? 2. 제품은 순차적인 방식보다 함께 협업하며 정의되고 .. 웹 개발자를 위한 웹 보안: 10장 요약 - 세션 하이재킹 서버의 세션 관리 기능에 취약점이 없을 경우에도 해커는 다른 사용자의 유효한 세션을 도용할 수 있는데, 이를 세션 하이재킹이라고 한다. 세션 작동 방식사용자가 HTTP에서 자신을 인증하면, 웹 서버는 로그인 프로세스 중에 사용자에게 세션 식별자를 할당한다. 세션 식별자를 통해 웹 서버는 함께 제공된 세션 ID를 인식해 적합한 사용자에게 매핑한다. 세션 ID는 사용자 이름과 달리 임시로 할당된 값이어야 한다. 해커들이 사용자 이름을 가지고 세션 ID를 도용할 수 있기 때문이다. 사용자 이름 외에도 웹 서버는 사용자의 최근 활동과 관련된 정보인 세션 상태를 세션 ID 옆에 저장한다. 전통적인 세션 관리 모델에서, 웹 서버는 세션 상태를 메모리에 유지하고 웹 서버와 브라우저는 세션 식별자를 앞뒤로 전달한다. .. 웹 개발자를 위한 웹 보안: 9장 요약 - 인증 손상 로그인은 사용자를 식별하는 프로세스인 인증의 한 가지 형태다. 기본 인증 방식은 사용자가 제공한 사용자 이름과 암호 사이에 콜론(:) 문자를 연결해 username:password 문자열을 생성한다. 이후 Base64라는 알고리듬을 사용해 문자열을 인코딩한 후, HTTP 요청의 Authorizationa 헤더에 있는 서버로 다시 전송한다. 다이제스트 인증은 브라우저가 사용자 이름, 암호, URL로 구성된 해시를 생성하는 것이다. 해시는 단방향 암호화 알고리듬의 출력값으로, 고유한 패턴을 생성한다. 그러나 이런 HTML 네이티브 인증 방식은 웹사이트에 맞게 인증 프롬프트를 스타일링 할 수 없어 사용자 경험에서 불편하다. 따라서 현대의 웹사이트들은 UI 구현과 세션 관리가 쉽고 비밀번호 복구 등 추가 보안 .. 웹 개발자를 위한 웹 보안: 8장 요약 - 사이트 간 요청 위조 공격 공격자는 사용자를 속여 원치 않거나 예상치 못한 작업을 수행하도록 유도하는 악의적인 링크를 클릭하도록 할 수 있다. 이를 사이트 간 요청 위조 (CSRF 또는 XSRF)라고 한다. 공격자는 CSRF를 사용해 연락처 목록을 도용하고, 원클릭 구매를 트리거하거나 라우터 구성을 변경한다. 공격자는 일반적으로 GET 요청을 구현하는 웹사이트를 공격해 CSRF를 시작한다. GET 요청은 공격 대상자가 링크를 클릭할 때 트리거되므로 대상 사이트에 잘못된 링크를 조작할 수 있기 때문이다. CSRF 공격에서 사용자를 보호하려면 GET 요청이 서버 상태를 변경하지 않도록 해야한다. REST 원칙에 따라 GET 요청을 보호해 잘못된 URL을 클릭해도 서버 상태가 변경되는 것을 막는다. 그러나 서드 파티 사이트에 호스팅된 .. 웹 개발자를 위한 웹 보안: 7장 요약 - 크로스 사이트 스크립팅 공격 공격자가 웹 서버와 같은 백엔드 시스템을 제어하기 위해 악의적으로 HTTP 요청을 작성하는 인젝션과 달리, 크로스 사이트 스크립팅 (XSS)는 사용자의 브라우저에 악의적인 자바스크립트를 주입하는 것을 의미한다. 자바스크립트는 웹 페이지의 모든 부분을 읽고 수정할 수 있기 때문이다. 스토어드 크로스 사이트 스크립팅 공격웹사이트는 사용자가 탐색한 URL에 따라 데이터베이스로부터 콘텐츠를 가져와서 페이지에 삽입해 완성된 HTML을 생성한다. 데이터베이스에서 나오는 페이지 내용은 해커의 잠재적인 공격 벡터 (Attack Vector)다. 크로스 사이트 스크립팅 공격은 공격자가 데이터베이스에 자바스크립트 코드를 주입하여 웹 서버가 HTML을 렌더링 할 때 자바스크립트를 작성하도록 하는 것이다. 예를 들어, 사용자.. 이전 1 2 3 다음 목록 더보기