UI는 사람들이 컴퓨터와 상호 작용하는 시스템을 의미한다.
휴대폰, 모니터 화면상의 그래픽 요소 외에도 키보드, 마우스 등의 물리적 요소도 컴퓨터와 상호작용하기 위한 시스템이므로 UI라고 볼 수 있다.
스마트폰, 컴퓨터 뿐만 아니라 스마트워치, 키오스크, 터치스크린 안내판 등 화면과의 상호 작용을 통해 사용하는 기기들을 많이 볼 수 있는데 여기서 그래픽 UI인 GUI가 굉장히 중요한 역할을 하게 되었다.
GUI는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 작업 환경을 말한다.
GUI의 예
- 운영체제(Mac OS, Window)의 화면
- 애플리케이션 화면
UX의 사전적 의미는 사용자가 어떤 시스템, 제품, 서비스를 직/간접적으로 이용하면서 느끼고 생각하는 총체적 경험이다.
예)제품, 서비스 그 자체에 대한 경험, 홍보, 접근성, 사후 처리 등 직/간접적으로 관련된 모든 경험을 사용자 경험이라고 할 수 있다.
노트북을 예로 들어보면, 노트북의 성능이 아무리 뛰어나도 내구성이 약해서 잘 망가지고, 사후 처리 시스템이 잘 갖춰지지 않아 수리가 어렵다면 사용자 경험이 좋을 수 없을 것이다. 그 외에도 제품의 홍보가 잘 되어있지 않다면 제품을 사용하기까지 이어지는 것이 어려울 수 있다. 이렇게 제품 그 자체뿐만 아니라 제품과 관련된 모든 요소들이 UX에 영향을 주게된다.
UI 디자인 패턴은 프로그래밍 시 자주 반복되어 나타나는 문제점을 해결할 때 재사용하기 좋은 형태로 만든 패턴을 말한다.
자주 사용되는 UI 컴포넌트라고 할 수 있는데, 자주 쓰이는 UI 디자인 패턴을 익혀두면 UI 디자인을 하기가 보다 쉬워지고, FE 개발자, 디자이너, PM과의 의사소통도 원활해져 협업 효율도 높아질 수 있다.
또 다른 브라우저 페이지를 여는 팝업창과는 구분되는 개념으로, 팝업은 브라우저에 의해 강제로 막힐 수 있지만, 모달은 브라우저 설정에 영향을 받지 않기 때문에 꼭 보여주고 싶은 내용이 있다면 모달을 사용하는 것이 좋다.
Toggle (토글)보통 On/Off와 같이 두 개의 옵션이 있을 때 사용하지만, 여러 개의 옵션이 있을 때에도 토글 사용이 가능하다. 하지만, 어느 옵션이 선택되어 있는지 직관적으로 알 수 있어야 되며, 옵션의 개수가 너무 많다면 Tab을 사용하는 것을 고려해야 된다.
Tab (탭)태그로 사용 될 키워드는 사용자가 직접 작성하게 만들거나 개발자가 종류를 아예 정해놓을 수도 있다. 태그의 추가, 제거는 자유롭게 할 수 있도록 설정해놓아야된다.
Autocomplete (자동완성)자동완성 항목은 너무 많은 항목이 나오지 않도록 개수를 제한하는 것이 좋고, 키보드 방향 키나 클릭 등으로 접근하여 사용할 수 있는 것이 좋다.
Dropdown (드롭다운)보통은 화살표 버튼을 누르면 펼쳐지게 만들지만, 그냥 마우스를 올려놓아도 펼쳐지게 만들 수도 있다. 드롭다운이 펼쳐지는 방식보다 중요한 것은 사용자가 자신이 선택한 항목을 정확히 알 수 있게 만드는 것이다.
이 외에도 Accordion(아코디언), Carousel(캐러셀), Pagination(페이지네이션), Infinite Scroll, Continuous Scroll(무한 스크롤), GNB (Global Navigation Bar), LNB (Local Navigation Bar) 등이 있고 자세한 내용은 UI Design patterns 홈페이지를 참고하면 좋다.
그리드(gird)는 수직, 수평으로 분할된 격자무늬를 뜻한다.
그리드 시스템은 화면을 격자로 나눈 다음 그 격자에 맞춰 컨텐츠를 배치하는 방법으로 질서 있는 구조의 UI를 구성할 수 있도록 도와준다.
웹 디자인 분야에서는 화면을 세로로 몇 개의 영역으로 나눌 것인가에 초점을 맞춘 Column Grid System을 사용하며, Margin, Column, Gutter라는 세 가지 요소로 구성된다.
컬럼 그리드 시스템에 대해서 자세히 알아보기 위해 material.io 홈페이지에 가서 참고하면 좋다.
Margin은 화면 양쪽의 여백을 의미한다.
너비를 px 같은 절대 단위를 사용해서 고정 값으로 사용해도 되고, vw, % 같은 상대 단위를 사용하여 유동성을 주어도 좋다.
페이지를 어떻게 디자인할 것인가에 따라 자유롭게 설정하시면 된다.
Column은 콘텐츠가 위치하게 될, 세로로 나누어진 영역으로 컬럼 개수를 임의로 나눌 수도 있지만, 표준적으로 휴대폰에서 4개, 태블릿에서 8개, PC에서는 12개의 컬럼으로 나눈다.
각 디바이스의 화면 크기는 보통 위 이미지와 같다. 이미지 속 화면 크기의 구분선을 break point라고 하는데 내가 만들고자 하는 UI가 어디에 속하는지 파악하고 컬럼 개수를 정하면 된다.
Column은 상대 단위를 사용하여 컨텐츠가 창 크기에 맞춰 크기가 변하도록 설정하는 것이 좋다.
기기마다 화면의 크기가 조금씩 다르고, 브라우저의 크기를 사용자 마음대로 바꿀 수 있기 때문이다.
Gutter는 Column 사이의 공간으로 컨텐츠를 구분하는데 도움을 준다.
Gutter의 간격이 좁을수록 컨텐츠들이 연관성 있어보이고, 넓을수록 각 컨텐츠가 독립적인 느낌을 준다.
Gutter는 아무리 넓어도 Column 너비보다는 작게 설정해야 된다.