개주 훈련일지/📚 코살대 교본 학습

UI 설계와 기본 개념

lshfood2 2026. 2. 16. 19:28

[ UI 설계와 기본 개념 ]

소프트웨어 개발에서 설계가

특히 중요한 축은 크게 두 가지다.

 

하나는 내부 구조를 다루는 아키텍처 설계,

다른 하나는 사용자가 직접 마주하는

사용자 인터페이스(UI) 설계다.

 

설계는 무엇인가를 구성하는 방법을 탐구하고,

여러 대안 사이에서 절충하여

최적의 구성을 찾아내는 과정이다.

 

UI 설계는 단순히 화면을 예쁘게 꾸미는 작업이 아니라,

사용자가 소프트웨어를 이해하고 효율적으로

사용할 수 있도록 만드는 품질 설계다.

 

더 나아가 UI는 정적인 화면 구성에만 머무르지 않고,

제품을 사용하는 과정에서

느끼는 경험인 UX로 확장 연결된다.

 

또한 UI는 상호작용과 밀접하다.

한번 구현된 뒤에는 워크플로우나

상호작용 요소를 바꾸기 어렵기 때문에,

UI 요소는 초기 단계에서 신중하게 확정되어야 한다.


1. UI 설계가 중요한 이유

오늘날 대부분의 소프트웨어에서

사용용이성은 최우선 품질 속성으로 다뤄진다.

사용자가 사용하기 쉬운 소프트웨어를 강조하지 않는

요구 명세서를 찾기 어려울 정도다.

 

UI는 소프트웨어를 살릴 수도 있고 외면당하게 할 수도 있다.

일반 사용자 관점에서는 응용 프로그램과

UI를 구분하지 않는 경우가 많다.

 

즉 사용자에게 UI는 곧 응용 프로그램 자체로 인식된다.

모바일 앱 또한 사용하기 쉬운 제품이

우수한 소프트웨어로 평가받는 경향이 강하고,

태블릿과 같은 디바이스 확산으로 사용자 층이 넓어지면서

학습 비용이 낮은 UI의 중요성이 더 커졌다.

 

UI는 제품의 차별화 요소가 되었다.

사람들은 사용하기 쉽다는 이유로 특정 제품을 선호하고,

사용하기 어려운 UI에 대해서는 관대하지 않다.

그만큼 소프트웨어는 사용성 측면에서

기대 수준이 높아진 상태다.


2. 소프트웨어 설계에서 UI의 위치

아키텍처 설계와 UI 설계는

서로 다른 대상에 초점을 둔다.

 

아키텍처는 내부 구조와 모듈의 품질을 다루고,

UI는 사용자가 접하는 접점의 품질을 다룬다.

다만 둘은 분리된 작업이 아니라

제품 품질을 함께 결정한다.

 

흐름도로 정리하면 다음처럼 이해할 수 있다.

[소프트웨어 설계]
   |
   +--> [아키텍처 설계]
   |        - 내부 구조, 모듈, 확장/재사용/이해 용이성
   |
   +--> [UI 설계]
            - 화면 구성 요소, 상호작용, 사용 흐름
            - 사용성 향상 -> UX로 확장

UI 디자인이 동적 측면과 연결되는 이유도 여기서 나온다.

UI는 화면 배치(정적)만이 아니라 사용자의 입력과

시스템의 반응(동적)을 통해 상호작용을 만든다.

 

결국 상호작용은 사용자와 시스템 간 정보를

교환하고 조정하는 수단이 되므로 중요하다.


3. UX와 UI의 관계

UX와 UI는 구분되지만 실제 제품에서는

긴밀하게 결합되어 결과물이 나온다.

 

핵심을 표로 정리하면 다음과 같다.

구분 UX UI
의미 사용자가 제품/서비스와
상호작용하며 느끼는
전반적 경험
사용자가 직접 마주하는
시각적 인터페이스
범위 사용성, 접근성,
전체 흐름과 느낌,
과업 수행 경험
화면, 페이지, 버튼, 아이콘,
레이아웃, 시각적 브랜드
목표 의미 있고 연관성 있는
경험을 제공
미적으로 보기 좋고
직관적으로 탐색 가능
대표
산출물
연결
UX 결과를 UI에
연결하는 설계 기반
UX 기반 위에서
실제 화면 설계로 구체화

UX와 UI가 결합된 대표 산출물을

흐름도로 정리하면 다음과 같다.

[UX 활동 결과]
(현장탐사/사용자 탐구/테스트/정보 구조)
        |
        v
[와이어프레임]
- UX 결과를 UI 화면 구조로 옮기는 가교
        |
        v
[프로토타입]
- 세부까지 설계된 시제품
- 사용성 테스트 가능한 수준
        |
        v
[최종 UI]

4. UI의 핵심 품질: 사용성(usability)

UI 설계 결과는 소프트웨어의

비기능적 품질 중 사용성을 좌우한다.

 

사용성은 일반적으로 시스템이

얼마나 사용하기 편한지를 나타내는 척도이며,

보다 구체적으로는 사용자가 특정 사용 환경에서

목표를 달성하기 위해 소프트웨어를

효과적이고  효율적으로, 그리고 만족스럽게

사용할 수 있는 정도로 볼 수 있다.

 

사용성은 단순히 프로그램 동작만이 아니라

문서의 유용성, 설치 절차 등도 포함되는 넓은 개념이다.

 

4-1) 사용성 요소

사용성에 영향을 주는 요소를 표로 정리하면 다음과 같다.

요소 의미 설계 포인트
학습용이성 처음 사용했을 때
얼마나 쉬운가
친근함, 일관성,
기능 예측 가능성,
단순성/미니멀리즘
효율성 익힌 뒤 작업 수행이
얼마나 빠르고 쉬운가
핵심 동작의 단계 수 감소,
단축 동선,
반복 작업 최적화
기억용이성 오랜만에 다시 써도
쉽게 떠올릴 수 있는가
패턴 유지,
명확한 용어/아이콘,
일관된 위치
낮은 오류율 오류가 적고 복구가 쉬운가 실수 방지, 되돌리기,
명확한 에러 메시지
자신감과 만족 즐겁고 만족스러운가,
통제감을 주는가
상태 피드백,
예측 가능한 반응,
안정감 있는 흐름

 

4-2) 사용성 목표의 우선순위

사용성 목표는 단계적으로 쌓인다.

  1. 효과적이어야 하고,
  2. 그 위에 사용하기 쉬움이 올라가며,
  3. 그 다음에 즐거움과 만족이 올라간다.
[사용성 우선순위 피라미드]

      즐거움, 만족
     ----------------
        사용하기 쉬움
     ----------------
           효과적

핵심은 아래에서 위로 올라간다는 점이다.

목표 달성이 불가능하면 만족 이전에 이탈한다.

목표 달성이 되더라도 너무 어렵다면 역시 이탈한다.

그래서 UI는 우선 효과성과 용이성을 먼저 확보해야 한다.


5. 멘탈 모델: 사용자가 예상하는 작동 방식

멘탈 모델은 현실 세계의 사물이나 과정이

어떻게 작동하는지에 대한 개인의 이해다.

 

예를 들어 패스트푸드점에서 주문하는 과정은

대부분의 사람이 비슷한 멘탈 모델을 갖는다.

줄을 서고, 메뉴를 보고, 주문하고,

지불하고, 음식을 기다린다.

 

이런 과정이 머릿속 모델로 존재하기 때문에

처음 가는 가게에서도 큰 어려움 없이 행동할 수 있다.

 

소프트웨어 사용자도

소프트웨어 작동 방식에 대한 멘탈 모델을 갖는다.

이 멘탈 모델은 사용자가 어떤 행동을 하면

어떤 결과가 나올지 예측하게 해준다.

 

그래서 UI가 멘탈 모델과 어긋나면

사용자는 예상대로 동작하지 않는다고 느끼고,

학습 부담이 급격히 올라간다.

 

사용자와 개발자의 멘탈 모델 차이

사용자와 개발자는 바라보는 기준이 다르다.

이를 도식화하면 다음과 같다.

[사용자]                          [개발자]
- 화면에서 보이는 것 중심          - 내부 구조/로직 중심
- '이 버튼 누르면 이렇게 되겠지'   - '이 로직은 이렇게 돌아가'
- 기존 경험의 유추로 예측          - 설계 의도/제약을 알고 있음

(둘의 멘탈 모델이 다를 수 있음)

좋은 UI 설계는 사용자가 기대했던 것과 유사하게 동작한다.

그러면 학습 곡선이 완만해지고 빠르게 적응한다.

 

반대로 멘탈 모델을 배반하는 UI는

사용자가 개념적 모델을 새로 학습해야 하므로

비용이 커진다.


6. 피드백: 사용자가 통제감을 느끼게 하는 장치

사용자는 명령이 잘 전달되었는지,

지금 무슨 일이 진행 중인지,

입력이 어떻게 해석되었는지 알고 싶어 한다.

 

피드백은 시스템 상태와

사용자의 지시에 대한 효과를 보여준다.

 

입력에 대한 피드백은 사용자가 지시가 수용되었다고

확신하게 하고 통제력을 제공하기 때문에 중요하다.

 

반응 시간에 따른 피드백 원칙

피드백은 작업이 걸리는 시간에 따라다르게 제공해야 한다.

핵심을 표로 정리하면 다음과 같다.

작업 시간 사용자 체감 피드백 전략 예시
0.1초 이내 즉각 반응으로 인식 별도 피드백이
오히려 혼란일 수 있음
버튼 클릭 즉시
화면 갱신
1초 미만 거의 즉각, 약간의 지연 과도한 피드백은 불필요 미세 로딩
표시 없이 처리
1~10초 눈에 띄는 지연 진행 중임을
알려주는 확인 필요
스피너,
회전 아이콘
10초 이상 대기 시간이 길다 진행률/남은 시간 등
명확한 정보 제공
진행률 바,
완료 예상 시간

이 원칙을 흐름도로 요약하면 다음처럼 된다.

작업 시작
  |
  v
걸리는 시간 측정/예상
  |
  +--> 0.1초 이내 -> 즉시 처리(피드백 최소)
  |
  +--> 1~10초      -> '진행 중' 표시(스피너 등)
  |
  +--> 10초 이상   -> 진행률/남은 시간 제공(진행 바 등)

7. 제약: 사용자는 매뉴얼을 읽지 않는다

UI 설계를 할 때 알아두어야 할 제약이 있다.

일반적인 사용자는 소프트웨어를 사용하기 위해

매뉴얼을 읽기 싫어한다.

 

따라서 직관적으로 파악할 수 있게 UI를 설계해야 한다.

나쁜 UI의 전형은 다음 패턴으로 나타난다.

  1. 장황한 설명을 읽어야만 선택할 수 있다
  2. 선택지가 과도하게 많고 무엇을 골라야 할지 어렵다
  3. 처음 사용자에게 불필요한 결정을 강요한다

이를 설계 관점에서 표로 바꾸면 다음처럼 정리할 수 있다.

상황 문제 개선 방향
긴 설명을 읽어야 선택 가능 인지 부담 증가,
사용 흐름 끊김
기본값 제공,
단계적 공개,
짧은 문장
선택지가 과도함 처음 사용자 혼란,
실수 유발
핵심 옵션만 노출,
고급 옵션은 접기
무엇을 골라야 하는지 불명확 목표 달성 실패 질문 명확화,
추천/가이드 제공

8. 나쁜 UI 사례가 주는 교훈

실제로 사용자를 불편하게 만드는 사례를 보면

어떤 설계가 문제를 만들었는지 바로 보이고,

그걸 반대로 적용하면 피해야 할 기준이 명확해진다.

 

8-1) 두려움을 유발하는 경고 메시지

사용자를 두렵게 하는 경고 메시지는 좋지 않다.

경고가 필요하더라도, 사용자가 무엇을 해야 하는지

명확하게 안내하고 과장된 공포를 유발하지 않아야 한다.

 

체크 포인트

  • 경고의 이유가 구체적인가
  • 사용자가 취할 수 있는 선택이
    안전하게 설계되어 있는가
  • 기본 선택이 사용자를 보호하는 방향인가

8-2) 혼동을 유발하는 질문/버튼 구성

혼동을 유발하는 UI도 바람직하지 않다.

특히 파일 삭제 같은 민감한 작업에서

질문이 애매하거나 버튼 의미가 불명확하면

사용자는 실수하거나 불안감을 느낀다.

 

문제 상황을 패턴으로 정리하면 다음과 같다.

나쁜 패턴 사용자가 느끼는 문제 개선 방향
질문이 무엇을 묻는지 애매함 뭘 눌러야 할지 모름 질문 문장 명확화
(무엇이 삭제되는지)
버튼 라벨이 행동을 설명하지 않음 결과 예측 불가 '삭제', '취소'처럼
행동 중심 라벨
선택 결과가 비대칭/위험 실수 1번이 치명적 안전한 기본값,
되돌리기 제공

[ 마무리 ]

UI 설계는 화면 배치만 다루는 작업이 아니라,

사용성과 상호작용을 설계하는 품질 작업이다.

 

사용성은 학습용이성, 효율성, 기억용이성,

낮은 오류율, 만족 같은 요소로 구성되고,

효과성→용이성→만족의 순서로 쌓이는 구조를 가진다.

 

멘탈 모델을 존중한 UI는 사용자의 예측과

실제 동작이 일치해 학습 비용을 낮추고,

피드백은 반응 시간에 맞춰

적절한 수준으로 제공되어야 한다.

 

또한 사용자는 매뉴얼을 읽지 않으므로,

과도한 설명과 선택 강요를 줄이고

직관성을 높이는 방향이 중요하다.

'개주 훈련일지 > 📚 코살대 교본 학습' 카테고리의 다른 글

아키텍처 평가  (0) 2026.02.13
디자인 패턴  (0) 2026.02.11
아키텍처 스타일  (0) 2026.02.10
SQL) DCL (Data Control Language)  (0) 2026.02.09
아키텍처 기초  (0) 2026.02.09