232. UML (Unified Modeling Language) - OMG 표준 객체지향 모델링 언어 설계 도면 가시화 문서화 시스템 청사진 사물 관계 다이어그램
핵심 인사이트: 한국인(설계자)이 건물을 짓는데 미국인, 중국인, 일본인 노동자(개발자들)를 모아놨다. 한국인이 허공에 손짓하며 "여기에 기둥 3개 박고, 저기에 문 내요!"라고 한국말로 떠들면? 노동자들은 "왓? 셤머?" 거리다가 기둥을 허공에 박고 건물을 무너뜨린다. "야!! 입 닫아!! 개발자 놈들이 모였으면 전 세계 어디서나 똑같이 통하는 '그림(표준 도면)'으로 대화해!! 네모 상자 위에 이름 적고, 화살표를 쫙쫙 그어서 객체들끼리 어떻게 통신하는지 그림으로 딱 그려서 던져주라고!! 그럼 인도에서 온 자바 개발자든 미국에서 온 파이썬 개발자든, 그 그림(도면) 딱 한 장만 보면 소름 돋게 100% 똑같은 코드를 1초 만에 다다닥 쳐낼 거 아니야!!" 개발자들끼리 말 안 통할 때 꺼내 드는 전 세계 객체지향 100% 통일 공통어(그림 사전), UML이다.
Ⅰ. 모델링(Modeling)의 본질과 바벨탑의 저주
- 모델링: 코드를 짜기 전에, 현실 세계의 복잡한 요구사항을 단순한 뼈대(그림)로 미리 스케치해 보는 작업입니다. (건축의 청사진 도면)
- 옛날 1990년대에는 설계자 A는 동그라미로 도면을 그리고, 설계자 B는 세모로 그렸습니다. 기호가 제멋대로라 회사가 다르면 도면을 아예 해석할 수 없었습니다.
Ⅱ. UML (Unified Modeling Language)의 개념 🌟
- 개념: 1997년, 전 세계 객체지향의 거장 3인방(Booch, Rumbaugh, Jacobson)이 힘을 합쳐 **"앞으로 객체지향 소프트웨어 설계 도면을 그릴 때는, 무조건 우리가 정한 이 네모 상자와 화살표 기호(표준)만 써라!"라고 하나로 통일(Unified)해버린, 국제 표준(OMG 제정) 객체지향 모델링 언어(그림 언어)**입니다.
- 용도: 시스템의 뼈대와 흐름을 시각화(가시화), 명세화, 구축, 문서화하는 데 쓰이는 전 세계 개발자의 공통 나침반입니다.
Ⅲ. UML을 이루는 3대 핵심 블록 (사물, 관계, 다이어그램) 🌟 기출 빈출 🌟
1. 사물 (Things) - "그림의 주인공들"
도면을 구성하는 가장 기본이 되는 명사(단어) 조각들입니다.
- 구조 사물: 뼈대를 이루는 명사. (클래스, 인터페이스, 컴포넌트, 노드 등)
- 행동 사물: 시간과 공간에 따른 움직임, 동사. (상호작용, 상태 머신)
- 그룹 사물: 사물들을 예쁘게 묶어주는 폴더. (패키지)
- 주해 사물: 부가 설명을 적어놓는 포스트잇. (메모/주석 Note)
2. 관계 (Relationships) - "주인공들의 멱살잡이(화살표)" 🌟 (234번에서 딥하게 파고듦)
사물과 사물 사이에 어떤 연관이 있는지 이어주는 **'선과 화살표'**들입니다. 이 화살표 촉의 모양(빈 세모, 까만 마름모 등)에 따라 코딩 방식이 180도 바뀝니다.
- 연관(Association), 의존(Dependency), 일반화(Generalization 상속), 실체화(Realization 인터페이스), 집합(Aggregation), 합성(Composition).
3. 다이어그램 (Diagrams) - "최종 완성된 1장짜리 캔버스" 🌟 (233, 235~241번 총출동)
사물과 관계들을 조합해서 어떤 관점으로 시스템을 보여줄지 결정한 최종 결과물(그림판)입니다. 크게 두 갈래로 나뉩니다.
- 정적(구조) 다이어그램: 시간이 멈춘 상태에서, 클래스와 컴포넌트들이 어떻게 생겨먹었고 얽혀있는지 **'뼈대의 외형'**만 엑스레이로 찍은 정지 사진. (예: 클래스, 객체, 컴포넌트, 배치, 패키지, 복합 구조 다이어그램 - 총 6종)
- 동적(행위) 다이어그램: 시간이 흘러감에 따라, 객체들이 서로 언제 메시지(함수)를 쏘고 받고 상태가 어떻게 살아서 펄떡이며 변하는지 **'살아 움직이는 영화'**처럼 찍은 동영상. (예: 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍 다이어그램 - 총 7종)
Ⅳ. 시험 정복 팁 (UML 파트는 노다지다)
- 정보처리기사와 감리사 등 모든 IT 시험에서 **UML의 다이어그램 종류 구별(이게 정적이냐 동적이냐?)**과 관계 화살표의 모양 해석은 매년 100% 무조건 최소 2문제가 고정으로 출제되는 절대 족보 구역입니다. 앞으로 이어지는 233번~241번 문서들을 통해 이 그림 맞추기 퀴즈를 싹 다 부숴버릴 것입니다.
📢 섹션 요약 비유: **UML(통일 모델링 언어)**은 레고 장난감 회사에서 전 세계 아이들을 위해 만든 **'글씨가 단 한 줄도 없는 만국 공통 레고 조립 설명서(도면)'**입니다. 만약 레고 조립 설명서를 한국어로 빽빽하게 글로 적어놨다면, 미국 아이는 우주선을 조립할 수 없습니다. 레고 회사는 글씨를 싹 다 지우고, 무조건 **'블록 모양 그림(사물)'**과 **'화살표(관계)'**만으로 설명서(다이어그램)를 완벽하게 통일(Unified)해버렸습니다. 긴 직사각형 그림과 짧은 정사각형 그림이 있고, 두 개를 끼우라는 굵은 화살표가 그려져 있다면, 국적이나 언어에 상관없이 전 세계 누구나 똑같이 블록을 찰칵 조립해 냅니다. UML도 똑같습니다. "로그인 기능 만들어 줘"라고 말로 하는 대신, 동그라미(유스케이스)와 막대라 인간(액터)을 화살표로 이은 UML 다이어그램 1장만 던져주면, 한국 자바 개발자든 러시아 파이썬 개발자든 머릿속에 100% 동일한 로직 구조를 떠올리고 에러 없이 똑같은 프로그램을 찍어내게 만드는 숭고한 그림판 헌법입니다.