๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ๊ธฐ/์ •์ฒ˜๊ธฐ

2. ํ™”๋ฉด ์„ค๊ณ„ (UI ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ / UI ์„ค๊ณ„)

by ๋™ ๋”” 2025. 2. 11.

๐Ÿ”ข

01. UI ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ

02. UI ์„ค๊ณ„


01. UI ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ 

UI(User Interface)

- ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ ์‚ฌ์ด์—์„œ ์˜์‚ฌ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋œ ๋ฌผ๋ฆฌ์ , ๊ฐ€์ƒ์˜ ๋งค๊ฐœ์ฒด

UX(User eXperience)

- ์ œํ’ˆ๊ณผ ์‹œ์Šคํ…œ, ์„œ๋น„์Šค ๋“ฑ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง/๊ฐ„์ ‘์ ์œผ๋กœ ๊ฒฝํ—˜ํ•˜๋ฉด์„œ ๋А๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์ฒด์  ๊ฒฝํ—˜

 

UI ์œ ํ˜•

CLI
(Command Line Interface)
์ •์ ์ธ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ช…๋ น์–ด ํ…์ŠคํŠธ ์ž…๋ ฅ
GUI
(Graphical User Interface)
๊ทธ๋ž˜ํ”ฝ ๋ฐ˜์‘ ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ๋งˆ์šฐ์Šค, ์ „์žํŽœ ์ด์šฉ
NUI
(Natural User Interface)
์ง๊ด€์  ์‚ฌ์šฉ์ž ๋ฐ˜์‘ ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ํ‚ค๋ณด๋“œ/๋งˆ์šฐ์Šค ์—†์ด ์‹ ์ฒด ๋ถ€์œ„ ํ„ฐ์น˜ ๋ฐ ์Œ์„ฑ
OUI
(Organic User Interface)
์œ ๊ธฐ์  ์ƒํ˜ธ ์ž‘์šฉ ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์ž์˜ ๋™์ž‘, ํ™˜๊ฒฝ, ๋ฌผ๋ฆฌ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ฐ˜์˜ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ์ˆ 

 

 

UI ์„ค๊ณ„ ์›์น™

์ง์œ ํ•™์œ 

์ง๊ด€์„ฑ Intuitiveness ์ธํˆฌ์ž‡ํ‹ฐ๋ธŒ๋„ˆ์Šค ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ด, ์‰ฝ๊ฒŒ ์‚ฌ์šฉ ์ผ๊ด€์„ฑ / ์‰ฌ์šด ์‚ฌ์šฉ
์œ ํšจ์„ฑ Efficiency ์ •ํ™•, ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉ์ž ๋ชฉํ‘œ ๋‹ฌ์„ฑ ์‰ฌ์šด ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐ ๋ณต๊ตฌ
ํ•™์Šต์„ฑ Learnability ์ดˆ๋ณด๋„ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ œ์ž‘ ์‰ฝ๊ฒŒ ํ•™์Šต / ์‰ฝ๊ฒŒ ๊ธฐ์–ต
์œ ์—ฐ์„ฑ Flexibility ์‹ค์ˆ˜ ๋ฐฉ์ง€, ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ ์ตœ๋Œ€ ์ˆ˜์šฉ ์˜ค๋ฅ˜ ์˜ˆ๋ฐฉ / ์‹ค์ˆ˜ํฌ์šฉ / ์˜ค๋ฅ˜ ๊ฐ์ง€

 

 

UI ์„ค๊ณ„ ์ง€์นจ

์‚ฌ์šฉ์ž ์ค‘์‹ฌ  
์ผ๊ด€์„ฑ  
๋‹จ์ˆœ์„ฑ  
๊ฒฐ๊ณผ ์˜ˆ์ธก ๊ฐ€๋Šฅ  
๊ฐ€์‹œ์„ฑ  
ํ‘œ์ค€ํ™”  
์ ‘๊ทผ์„ฑ  
๋ช…ํ™•์„ฑ  
์˜ค๋ฅ˜ ๋ฐœ์ƒ ํ•ด๊ฒฐ  

 

 

UI ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ (ISO/IEC 1926 ๊ธฐ๋ฐ˜)

๊ธฐ์‹ ์‚ฌํšจ์œ ์ด

1. ๊ธฐ๋Šฅ์„ฑ (Functionality) ์‹ค์ œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ - ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ ์ฐจ์ด ๋ถ„์„ ๋ฐ ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ๊ด€์ฐฐํ•˜๊ธฐ ์œ„ํ•œ ํ’ˆ์งˆ๊ธฐ์ค€
2. ์‹ ๋ขฐ์„ฑ (Reliability) ์‹œ์Šคํ…œ์ด ์ผ์ •ํ•œ ์‹œ๊ฐ„, ์ •ํ•ด์ง„ ์‹œ๊ฐ„๋™์•ˆ ์˜๋„ํ•˜๋Š” ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ๋ณด์ฆํ•˜๋Š” ํ’ˆ์งˆ๊ธฐ์ค€
3. ์‚ฌ์šฉ์„ฑ (Usability) ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด ๋ฐœ์ƒํ•˜๋Š” ์–ด๋–คํ•œ ํ–‰์œ„๋ฅผ ์ •ํ™•ํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ํ’ˆ์งˆ๊ธฐ์ค€
4. ํšจ์œจ์„ฑ (Effciency) ํ• ๋‹น๋œ ์‹œ๊ฐ„์— ํ•œ์ •๋œ ์ž์›์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€์— ๋Œ€ํ•œ ํ’ˆ์งˆ๊ธฐ์ค€
5. ์œ ์ง€๋ณด์ˆ˜์„ฑ (Maintainability) ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐœ์„ ํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ๋ฐ ์žˆ์–ด ์–ผ๋งˆ๋‚˜ ์šฉ์ดํ•œ๊ฐ€์— ๋Œ€ํ•œ ํ’ˆ์งˆ๊ธฐ์ค€
6. ์ด์‹์„ฑ (Portability) ๋‹ค๋ฅธ OS์—์„œ๋„ ๋งŽ์€ ์ถ”๊ฐ€ ์ž‘์—… ์—†์ด ์–ผ๋งˆ๋‚˜ ์‰ฝ๊ฒŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€์— ๋Œ€ํ•œ ํ’ˆ์งˆ๊ธฐ์ค€

 

1. ๊ธฐ๋Šฅ์„ฑ (Functionality)

  • ์ ์ ˆ์„ฑ
  • ์ •๋ฐ€์„ฑ
  • ์ƒํ˜ธ ์šด์šฉ์„ฑ
  • ๋ณด์•ˆ์„ฑ
  • ํ˜ธํ™˜์„ฑ

2. ์‹ ๋ขฐ์„ฑ (Reliability)

  • ์„ฑ์ˆ™์„ฑ
  • ๊ณ ์žฅ ํ—ˆ์šฉ์„ฑ
  • ํšŒ๋ณต์„ฑ

3. ์‚ฌ์šฉ์„ฑ (Usability)

  • ์ดํ•ด์„ฑ
  • ํ•™์Šต์„ฑ
  • ์šด์šฉ์„ฑ

4. ํšจ์œจ์„ฑ (Effciency)

  • ์‹œ๊ฐ„ ํšจ์œจ์„ฑ
  • ์ž์› ํšจ์œจ์„ฑ

5. ์œ ์ง€๋ณด์ˆ˜์„ฑ (Maintainability)

  • ๋ถ„์„์„ฑ
  • ๋ณ€๊ฒฝ์„ฑ
  • ์•ˆ์ •์„ฑ
  • ์‹œํ—˜์„ฑ

6. ์ด์‹์„ฑ (Portability)

  • ์ ์šฉ์„ฑ
  • ์„ค์น˜์„ค
  • ๋Œ€์ฒด์„ฑ

02. UI ์„ค๊ณ„

UML (Unified Modeling Language)

- ๊ฐ์ฒด์ง€ํ–ฅ SW ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‚ฐ์ถœ๋ฌผ์„ ๋ช…์„ธํ™”, ์‹œ๊ฐํ™”, ๋ฌธ์„œํ™”ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ๋ง ๊ธฐ์ˆ ๊ณผ ๋ฐฉ๋ฒ•๋ก ์„ ํ†ตํ•ด ๋งŒ๋“  ํ‘œ์ค€ ๋ชจ๋ธ๋ง ์–ธ์–ด

 

UML์˜ ํŠน์ง•

๊ฐ€๊ตฌ๋ช…๋ฌธ

๊ฐ€์‹œํ™” ์–ธ์–ด ๊ฐœ๋… ๋ชจ๋ธ ์ž‘์„ฑ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ์ ๊ต ์˜์‚ฌ์‚ฌํ†ต ์šฉ์ด
๊ตฌ์ถ• ์–ธ์–ด ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ์–ธ์–ด๋กœ ์‹คํ–‰ ์‹œ์Šคํ…œ์˜ ์˜ˆ์ธก ๊ฐ€๋Šฅ
UML์„ ์†Œ์Šค์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ตฌ์ถ•๊ฐ€๋Šฅ, ์—ญ ๋ณ€ํ™˜ํ•˜์—ฌ ์—ญ๊ณตํ•™ ๊ฐ€๋Šฅ
๋ช…์„ธํ™” ์–ธ์–ด ์ •ํ™•ํ•œ ๋ชจ๋ธ ์ œ์‹œ, ์™„์ „ํ•œ ๋ชจ๋ธ ์ž‘์„ฑ ๊ฐ€๋Šฅ
๋ฌธ์„œํ™” ์–ธ์–ด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ‰๊ฐ€ ๋ฐ ์˜์‚ฌ์‚ฌํ†ต์˜ ๋ฌธ์„œ

 

 

UML์˜ ๊ตฌ์„ฑ์š”์†Œ

๋ต๋‹ค๋ฆฌ or ์‚ฌ๊ด€๋‹ค

์‚ฌ๋ฌผ (Things) ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์œผ๋กœ ์ฃผ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์š”์†Œ
๊ด€๊ณ„ (Relationships) ์‚ฌ๋ฌผ์˜ ์˜๋ฏธ ํ™•์žฅ, ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๋Š” ์š”์†Œ
์‚ฌ๋ฌผ๊ณผ ์‚ฌ๋ฌผ ์—ฐ๊ฒฐ, ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์š”์†Œ
๋‹ค์ด์–ด๊ทธ๋žจ (Diagram) ์‚ฌ๋ฌผ, ๊ด€๊ณ„๋ฅผ ๋ชจ์•„ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•œ ํ˜•ํƒœ
ํ˜•์‹, ๋ชฉ์ ์— ๋”ฐ๋ผ 9๊ฐ€์ง€๋กœ ์ •์˜

 

 

UML์˜ ๊ตฌ์„ฑ์š”์†Œ ไธญ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊ตฌ๋ถ„

* ๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ (Structural Diagram) = ์ •์  ๋‹ค์ด์–ด๊ทธ๋žจ (Static Diagram)

ํด๊ฐ์ปด๋ฐฐ๋ณตํŒจ

ํด๋ž˜์Šค
(Class)
ํด๋ž˜์Šค์˜ ์†์„ฑ ๋ฐ ์—ฐ์‚ฐ๊ณผ ํด๋ž˜์Šค ๊ฐ„ ์ •์ ์ธ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„
ํด๋ž˜์Šค / ์†์„ฑ / ์—ฐ์‚ฐ / ์ ‘๊ทผ์ œ์–ด์ž(-private,+public,#protect,~default)
ํด๋ž˜์Šค๊ฐ„ ๊ด€๊ณ„(์—ฐ์˜์ผ์‹คํฌ์ง‘) : ์—ฐ๊ด€ / ์˜์กด / ์ผ๋ฐ˜ํ™” / ์‹ค์ฒดํ™” / ํฌํ•จ(๋ณต์žก) / ์ง‘ํ•ฉ
๊ฐ์ฒด
(Object)
ํด๋ž˜์Šค์— ์†ํ•œ ์‚ฌ๋ฌผ๋“ค, ์ธ์Šคํ„ด์Šค ํŠน์ • ์‹œ์ ์˜ ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„๋กœ ํ‘œํ˜„
์ปดํฌ๋„ŒํŠธ
(Component)
์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์ปดํฌ๋„ŒํŠธ์™€ ๊ทธ๋“ค ์‚ฌ์ด์˜ ์˜์กด๊ด€๊ณ„๋ฅผ ํ‘œํ˜„. ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ ํ‘œํ˜„
์ปดํฌ๋„ŒํŠธ / ์ธํ„ฐํŽ˜์ด์Šค / ์˜์กด๊ด€๊ณ„
๋ฐฐ์น˜
(Deployment)
์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์˜ ์ข…์†์„ฑ์„ ํ‘œํ˜„.
๊ฒฐ๊ณผ๋ฌผ / ํ”„๋กœ์„ธ์Šค / ์ปดํฌ๋„ŒํŠธ ๋“ฑ ๋ฌผ๋ฆฌ์  ์š”์†Œ๋“ค์ด ์œ„์น˜๋ฅผ ํ‘œํ˜„
๋ณตํ•ฉ์  ๊ตฌ์กฐ
(Composite Structure)
ํด๋ž˜์Šค๋‚˜ ์ปดํฌ๋„Œ๊ฐ€ ๋ณตํ•ฉ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ ๊ทธ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„
ํŒจํ‚ค์ง€
(Package)
์œ ์Šค์ผ€์ด์Šค๋‚˜ ํด๋ž˜์Šค ๋“ฑ ๋ชจ๋ธ ์š”์†Œ๋“ค์„ ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋“ค ์‚ฌ์ด ์˜์กด๊ด€๊ณ„๋ฅผ ํ‘œํ˜„
ํŒจํ‚ค์ง€(๐Ÿ“ / ์˜์กด๊ด€๊ณ„(<<import>>, <<access>>)

 

* ํ–‰์œ„์  ๋‹ค์ด์–ด๊ทธ๋žจ (Behavioral Diagram) = ๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ (Dynamic Diagram)

์œ ์‹œ์ปค์ƒํ™œํƒ€

์œ ์Šค์ผ€์ด์Šค
(Usecase)
์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ, ๊ทธ ๊ด€๋ จ ์™ธ๋ถ€ ์š”์†Œ๋ฅผ ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ํ‘œํ˜„
์œ ์Šค์ผ€์ด์Šค(โฌญ) / ์•กํ„ฐ(แŒฟ) / ์‹œ์Šคํ…œ / ์‹œ๋‚˜๋ฆฌ์˜ค / ์ด๋ฒคํŠธ์˜ ํ๋ฆ„
์•กํ„ฐ ↔ ์œ ์ผ€ or ์œ ์ผ€↔์œ ์ผ€ ์‚ฌ์ด ๋‚˜ํƒ€๋‚ด๋Š” ๊ด€๊ณ„ : ํฌํ•จ(include) / ํ™•์žฅ(extend) / ์ผ๋ฐ˜ํ™”(-โ–ท)
์‹œํ€€์Šค
(Sequence)
๊ฐ์ฒด ๊ฐ„ ๋™์  ์ƒํ˜ธ ์ž‘์šฉ์„ ์‹œ๊ฐ„์  ๊ฐœ๋…์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฉ”์‹œ์ง€ ํ๋ฆ„์œผ๋กœ ํ‘œํ˜„
์•กํ„ฐ (แŒฟ) / ๊ฐ์ฒด(โ–ก) / ์ƒ๋ช…์„ (์ ์„ ) / ํ™œ์„ฑํ™”(์ ์„ ์—๋ฐ•์Šค) / ๋ฉ”์‹œ์ง€(→)
์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜
(Communication)
๋™์ž‘์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐ์ฒด๋“ค์ด ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œํ˜„ + ๊ฐ์ฒด๊ฐ„์˜ ์—ฐ๊ด€๊นŒ์ง€ ํ‘œํ˜„
์‹œ์Šคํ…œ, ๊ฐ์ฒด๋“ค์ด ์‹œ๊ฐ„์˜ ํ๋ฆ„์—๋”ฐ๋ผ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๋Š” ๊ณผ์ •์„ ํ‘œํ˜„
์•กํ„ฐ (แŒฟ) / ๊ฐ์ฒด (โ–ก) / ๋งํฌ(์‹ค์„ ) / ๋ฉ”์‹œ์ง€(→)
์ƒํƒœ
(State)
ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ์ž์‹ ์ด ์†ํ•œ ํด๋ž˜์Šค ์ƒํƒœ ๋ณ€ํ™”, ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์ƒํ˜ธ ์ž‘์šฉ์—๋”ฐ๋ผ ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ํ‘œํ˜„
์ƒํƒœ(โ– ๋‘ฅ๊ทผ๋„ค๋ชจ) / ์‹œ์ž‘์ƒํƒœ(โ—) / ์ข…๋ฃŒ์ƒํƒœ(โŠ™) / ์ „์ด(→) / ์ด๋ฒคํŠธ(๋‚ด์šฉ→) / ์ „์ด์กฐ๊ฑด([์กฐ๊ฑด]→)
ํ™œ๋™
(Activity)
์‹œ์Šคํ…œ์ด ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ๊ฐ์ฒด ์ฒ˜๋ฆฌ ๋กœ์ง์ด๋‚˜ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์ˆœ์„œ๋Œ€๋กœ ํ‘œํ˜„
์‹œ์ž‘์  / ์ „์ด / ์•ก์…˜ / ์ข…๋ฃŒ์  / ์กฐ๊ฑด๋…ธ๋“œ / ๋ณ‘ํ•ฉ๋…ธ๋“œ / ํฌํฌ๋…ธ๋“œ
ํƒ€์ด๋ฐ
(Timing)
๊ฐ์ฒด ์ƒํƒœ ๋ณ€ํ™”์˜ ์‹œ๊ฐ„ ์ œ์•ฝ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„