User Interface, 사용자 인터페이스의 약자로, 사람들이 컴퓨터(PC, 태블릿, 스마트폰 등)와 상호 작용하는 시스템을 의미한다.
최근 물리 버튼이 없어지고 터치 스크린이 커지는 등 화면과의 상호 작용을 통해 사용하는 기기들이 많아졌기 때문에 그래픽 UI가 매우 중요해졌다.
Graphical User Interface, 그래픽 사용자 인터페이스의 약자로, 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 작업환경을 말한다.
프론트 개발자의 입장에서의 UI는 대부분 GUI를 의미한다.
User Experience, 사용자 경험의 약자로, 사전적 의미는 사용자가 어떤 시스템, 제품, 서비스를 직•간접적으로 이용하면서 느끼고 생각하는 총체적 경험이다.
사용자 경험 = 제품, 서비스 그 자체에 대한 경험(직접적 경험) + 홍보, 접근성, 사후 처리 등(간접적 경험)
프로그래밍 시 자주 반복되어 나타나는 문제점을 해결하고자, 과거의 다른 사람이 해결한 결과물을 재사용하기 좋은 형태로 만튼 패턴 → 자주 사용되는 UI 컴포넌트
자주 쓰이는 UI 디자인 패턴을 익혀두면 UI를 디자인하기 보다 쉬워지고, 협업 효율도 높아진다.
아래 몇 가지 예시로 자주 쓰이는 UI 디자인 패턴을 익혀보자
기존에 이용하던 화면 위에 오버레이 되는 창
또 다른 브라우저 페이지를 여는 팝업창과는 다르다
On/Off를 설정할 때 사용하는 스위치 버튼
탭은 콘텐츠를 분리해서 보여주고 싶을 때 사용하는 UI 디자인 패턴
콘텐츠를 설명하는 키워드를 사용해서 라벨을 붙이는 역할
자동완성은 말 그대로 사용자가 내용을 입력 중일 때 사용자가 입력하고자 하는 내용과 일치할 가능성이 높은 항목을 보여주는 것
선택할 수 있는 항목들을 숨겨놓았다가, 펼쳐지면서 선택할 수 있게 해주는 UI 디자인 패턴
접었다 폈다 할 수 있는 컴포넌트로, 보통 같은 분류의 아코디언을 여러 개 연속해서 배치한다.
컨베이어 벨트나 회전목마처럼 빙글빙글 돌아가면서 콘텐츠를 표시해 주는 UI 디자인 패턴
한 페이지에 띄우기에 정보가 너무 많은 경우, 책 페이지를 넘기듯이 번호를 붙여 페이지를 구분해주는 것
모든 콘텐츠를 불러올 때까지 무한으로 스크롤을 내릴 수 있는 것으로, 한 번에 띄우기엔 정보가 너무 많을 때 사용하는 패턴
GNB(Global Navigation Bar): 어느 페이지에 들어가든 사용할 수 있는 최상위 메뉴
LNB(Local Navigation Bar): GNB에 종속되는 서브 메뉴 혹은 특정 페이지에서만 볼 수 있는 메뉴
위 예시에서는 탭 형식으로 최상단에 위치한 메뉴가 GNB, 마우스를 올렸을 때 드롭다운 형식으로 내려오는 서브 메뉴가 LNB이다.
화면을 격자(수직, 수평)로 나눠 UI를 배치하는 방법
웹 디자인 분야에서는 화면을 세로로 몇 개의 영역으로 나눌 것인가에 초점을 맞춘 컬럼 그리드 시스템을 사용하며, 아래 세 가지 요소로 구성된다.
화면 양쪽의 여백을 의미
px
같은 절대 단위를 사용하면 고정 값으로 사용vw
, %
같은 상대 단위를 사용하면 유동성을 줄 수 있음콘텐츠가 위치하게 될 세로로 나누어진 영역
컬럼 그리드 시스템을 활용할 때 화면 가로 길이에 따라서 컬럼 개수가 달라지도록 코드를 작성하면 다양한 디바이스와 다양한 환경에 유연하게 대응하는 UI를 만들 수 있으며, 이를 반응형 웹이라고 부른다.
Gutter는 Column 사이의 공간으로, 콘텐츠를 구분하는데 도움을 줌
기능 별, 상황 별 컴포넌트를 나누어 구현을 해보았다.
동영상 첨부가 안되길래 gif로 변환했더니 뭔가 화질이 이상해졌다
GNB부터 모달, 토글, 탭, 아코디언, 드롭다운까지는 어떻게든 구현을 했는데, 자동완성은 감이 아예 잡히지 않아 틀만 만들어둔 상태이다. 🥲
이 다음엔 사이트 클론을 해야하는데 잘 해낼 수 있을까 걱정이 이만저만 아니다. 😩
오늘 구현 해보지 않은 기능을 갖고있는 사이트를 찾아 최대한 비슷하게 구현 해보고 싶다!
Command
+ C
Command
+ V
Command
+ X
Command
+ D
혹은 Option
누른 상태로 드래그Shift
누른 상태로 클릭Command
+ G
Command
+ Option
+ G
Command
+ Shift
+ G
Option
누르고 다른 요소에 마우스 올려놓기Shift
+ A
Design
탭 Auto layout
에서 +
버튼 선택Shift
+ Option
+ A
Command
+ Option
+ K
혹은 상단 Create component 버튼 클릭Create component
버튼 옆 드롭다운 클릭 → Create multiple component
선택Create component
버튼 옆 드롭다운 클릭 → Create component set
선택Design
탭 Properties
에서 +
버튼 클릭 → Variant
선택 → 컴포넌트 하단에 생긴 보라색 +
버튼 눌러 상태 추가Command
+ D
혹은 Option
누른 상태로 드래그)Assets
탭에서 인스턴스를 생성할 컴포넌트를 드래그하여 화면에 끌어다놓기