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

모델링

lshfood2 2026. 1. 10. 20:50

모델링

모델링은 복잡한 시스템을 다루는

모든 분야에서 중요한 부분이다.


모델은 전체를 다루기에는 너무 복잡한 대상을

추상화 또는 단순화한 것이다.


소프트웨어 공학에서 시각적 모델은

솔루션의 문제점과 관점을 보다 잘 이해하는 데 사용된다.

 

소프트웨어 엔지니어링 이외에도 모델링은 많이 사용된다.
예를 들어 건축에서 모델은 건축가와 건설 관련 사람들 간의

의사소통을 향상시키기 위해 건축 중에 자주 사용된다.

 

건축 예에서 보듯이 모델은

생성 목적에 따라 서로 다른 관점을 가진다.

  • 스케일 모델: 창 배치, 지붕선, 트림 색상 같은 외부 세부 정보 포함
  • 평면 설계도: 방 크기, 레이아웃 같은 실내 세부 정보 포함

또 다른 차원은 상세 수준(추상화 수준)이다.
스케일 모델은 최종 결과를 시각화하는 데 적합하지만

너무 추상적이어서 시공 지침으로 사용하기 어렵다.

시공하는 계약자는 더 자세한 평면 설계도에 의존한다.

 

소프트웨어 개발에서도 모델링이 필요하다.
복잡한 소프트웨어 시스템의 논리적 설계는

구현 단계의 세부 사항으로 인해 흐려질 수 있으며,


논리적 설계에 대한 명확한 이해가 없으면

복잡한 소프트웨어 시스템을 변경하는 것은 어렵고 위험하다.


이때 시각적 모델이 도움이 될 수 있다.

소프트웨어 모델은 복잡한 소프트웨어 시스템의

내부 작동을 문서화, 전달 및 시각화하는 데 사용된다.


모델링을 하는 이유

대규모 소프트웨어 시스템을 개발하기 위해

모델링하는 주된 이유는 다음과 같다.

  1. 복잡함을 잘 관리하기 위함
  2. 형체가 없는 소프트웨어의 구조를 시각화하기 위함
  3. 다른 사람과 커뮤니케이션하기 위함
  4. 문제 도메인 및 제품 요구 사항을 이해하기 위함
  5. 개발 중인 시스템을 이해하기 위함
  6. 구현하기 전에 잠재적 솔루션을 실험해 보기 위함
  7. 기존 시스템의 문서화

관점과 추상화 수준

모델은 전체를 다루기에는

너무 복잡한 무언가를 추상화, 단순화하는 작업이며,

관점과 추상화 수준에 따라 달라진다.

 

복잡한 결과물은 다양한 관점의 뷰(view)를 제공한다.
예를 들어 Google 지도는 복잡한 지형에 대하여

지도 뷰와 위성보기 뷰를 제공한다.

 

또한 복잡한 결과물은 다양한 수준의

추상된 뷰를 제공할 수 있다.

Google 지도는 확대/축소가 가능하며,

확대하면 더 구체적인 수준의 뷰를,

축소하면 더 축약된 뷰를 볼 수 있다.

 

모델을 만드는 목적에 따라

상세 수준과 관점이 결정된다.

 

예를 들어 전국 일주 여행을 시작하는 경우

가장 유용한 모델은 높은 수준의 지도이다.
반면 목적지가 정해져 있다면

목적지 근교의 명소에 더 관심이 있을 것이며,

낮은 수준의 위성 뷰가 더 유용하다.


소프트웨어와 모델링

다른 엔지니어링 분야에서 모델(회로도, 설계도 등)을

작성하기 위해 표준과 규칙이 있는 것처럼,
소프트웨어 모델을 작성하기 위한 표준과 규칙이 있다.


대부분의 소프트웨어 모델은 그림 요소와

주석으로 구성된 시각적 다이어그램이다.

 

소프트웨어 개발에서 사용되는 시각적 모델은

추상/상세 수준, 관점에 따라 다르다.

모델을 만드는 목적이 관점과 형식을 결정한다.

 

소프트웨어를 모델링하는 관점에는

다음 세 가지 측면이 있다.

  • 비즈니스 프로세스
  • 구조
  • 동작

문제 영역인 도메인 모델에서는

비즈니스 프로세스를 사용하여

시스템 요구 사항을 표현하고 이해한다.


유스케이스 다이어그램과

액티비티 다이어그램이 대표적인 사례다.

 

구조와 동작 측면의 모델은 대상 시스템의

아키텍처를 설계하고 이해하는 데 사용된다.


객체 중심의 개발에서는 클래스 다이어그램과

시퀀스 다이어그램이 대표적인 사례다.


모델 사이의 관계

모델링 작업의 결과물은

다른 모델링 작업에 영향을 줄 수 있다.


예를 들어 요구 분석 작업 결과물 중 하나인

유스케이스 명세로부터 도메인 모델이 될 수 있는

용어, 개념, 속성, 관계 등을 찾아낼 수 있고

이를 도메인 모델로 정리할 수 있다.

 

모델링은 대상을 파악해 나가면서

특정 관점에 해당되는 요소를 찾아내어

시각적으로 표현한 것이다.


따라서 발견된 요소는

다른 관점의 모델링에 영향을 준다.

 

예를 들어 도메인 모델에서 찾아낸 용어나 개념은

정적 모델링의 클래스가 될 수 있고,


관계 등은 정적 모델링에서의 관계와

동적 모델링에서 오퍼레이션으로 반영될 수 있다.

 

개발이 진행되면서 요구 모델에 표현한 의미는

더 구체화되어 설계 모델로 발전된다.


도메인 영역의 개념들만 표현한 모델에서,

구현에 필요한 라이브러리 관련 요소나
제한조건을 만족시키기 위한 요소들이 추가되어

구현 가능한 설계 모델이 된다.


마무리

모델링은 복잡한 대상을 관점과

추상화 수준에 맞게 단순화하여
이해/의사소통/시각화/문서화를 가능하게 하고,

요구 모델이 설계 모델로 구체화되는 과정에서

다른 모델들과도 서로 영향을 주고받는다.

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

SQL) 함수  (0) 2026.01.12
SQL) WHERE절  (0) 2026.01.12
SQL) TCL (Transaction Control Language)  (0) 2026.01.09
요구 모델링  (0) 2026.01.08
SQL) DML (Data Manipulation Language)  (0) 2026.01.05