728x90
반응형

https://youtu.be/O2r4FQ53mek?si=qOoJ429OYmNhiGFN

1. 통합 모델링 언어 (umule)

1-1. 통합 모델링 언어의 소개
- 표준화된 범용 모델링 언어임
- 원활한 의사소통을 위한 모델링 언어로, 다양한 객체 지향 방법론을 통합함
- 사물, 관계, 구조, 행동, 그룹, 주석으로 구성됨
- 사물은 관계가 형성될 수 있는 대상이고, 관계는 사물과 사물의 연관성을 나타냄
- 구조는 물리적 요소, 행동은 요소들의 행위나 상호작용, 그룹은 그룹화된 요소, 주석은 설명과 주석을 포함함

1-2. 관계의 종류와 표현
- 연관관계는 실선과 화살표로 표현, 양방향일 경우 실선으로
- (중요) 다중도는 두 사물이 관계를 가질 때, 그 관계의 강약을 나타냄
- 에스터리스크는 '없거나 다수'를 뜻함
- 관리-대리 관계는 대리점이 관리하고 다수의 대리점을 관리하는 관계
- 집합관계는 사물이 다른 사물에 포함되어 있고, 서로 독립적일 때 표현

1-3. 스테레오타입과 다이어그램
- 스테레오타입은 새로운 요소를 추가하는 형태
- 다이어그램은 6개(정적) 또는 7개(동적)의 다이어그램으로 표현
- 관계 외에 구조도 표현 가능, 이를 스테레오타입이라고도 부름
- '없거나 다수'의 의미를 나타내는 에스터리스크와 '만들었다'라는 의미를 가진 스테레오타입의 예시 존재

2. 다이어그램 이해

2-1. 다이어그램 종류와 특징
- 구조, 행위, 정적, 동적 다이어그램으로 나뉨
- 구조 다이어그램은 클래스, 객체, 컴포넌트 다이어그램으로 나뉨
- 행위 다이어그램은 시간, 상태, 메세지 등 다이어그램을 이용한 동적 시뮬레이션
- (중요) 정적 다이어그램은 기능 모델링을, 동적 다이어그램은 생명선, 실행 메세지 등을 사용
- 통신 다이어그램은 시퀀스 다이어그램에 객체 연관 관계를 더한 것

2-2. 다이어그램의 표현과 종류
- 일반화, 의존, 실체 관계 다이어그램을 이해
- (중요) 의존 관계는 짧은 시간 동안만 관계를 유지하며, 영향을 받는 사물에 영향
- 실체 관계는 그룹이나 객체가 가진 공통적인 속성이나 기능을 표현
- 다이어그램을 통해 서로의 관계를 구분하고 이해할 수 있음

2-3. 다이어그램의 예시와 이해
- 예시로 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램 등을 이해
- 클래스 다이어그램은 클래스 간의 구조를, 객체 다이어그램은 객체의 생성과 소멸 시점을 보여줌
- (중요) 컴포넌트 다이어그램은 특정 시점에서의 객체 구조를, 복합체 구조는 패키지 간의 관계를 보여줌
- 행위 다이어그램은 시간의 흐름에 따른 객체의 연관 관계를 표현
- 통신 다이어그램은 시퀀스 다이어그램에 객체 연관 관계를 더한 것

00:01
세 번째 섹션 uml에 대해서 같이 공부를 해보겠습니다. uml의 첫 번째 u 유니파이드에서 알 수 있듯이 무언가를 통합한 모델링 언어다 이렇게 알고 있으면 될 것 같고요. 여기 보면은 표준화된 범용 모델링 언어라고 되어 있죠. 요 정도가 이 uama를 나타내는 가장 간단한 표현이에요. 일단은 이 modeling을 하는 이유에 대해서 나와 있는 건데 원활한 의사소통을 위해서 modeling 언어를 만들었다 뭐 이렇게 생각을 하시면 되겠죠. 원활한 의사소통을 하려면 제가 쓰는 말이랑 내가 쓰는 말이 서로 똑같은 의미를 가져야 되겠죠. 자 그래서 여기 표준화라는 단어가 들어갔다고 생각을 하시면 되겠습니다. 뭐 numbow나 부치나 제이콥슨 등의 객체 지향 방법론 여러 가지가 통합되었다. 이렇게 보시면 되겠구요. uml은 사물과 관계 다이어그램으로 구성이 됩니다. 요 하나씩 살펴보도록 할까요? 첫 번째로, 사물입니다. 관계가 형성될 수 있는 대상을 사물이라고 얘기를 해요.

00:59
우리가 알고 있는 사물의 개념하고 같은 개념이죠. 일단 4가지가 있어요. 구조 행동 그룹 주해가 있는데, 해설이 그렇게 어렵지 않습니다. 구조 사물은 말 그대로 물리적인 요소에 대한 부분이고 행동은 그 요소들이 하는 행위나 상호작용 이런 것들을 얘기하는 거고, 그룹은 말 그대로 그룹화 되어 있는 거고, 주회는 설명 주석 뭐 이런 거라고 생각을 하시면 됩니다. 어려운 개념은 아니죠. 4가지 항목에 대해서 기억을 하고 계실 필요가 있어요. 내려가서 이번엔 관계에 대해서 보겠습니다. 자 관계는 사물과 사물의 연관성을 표현한 거다 뭐 당연한 얘기죠 연관 집합 포함 일반화 의존 실체화 관계까지 해서 6가지가 있는데, 이 6가지에 대해서 자세하게 아래쪽에 예시를 통해서 설명이 되어 있어요.

01:55
그걸 또 보도록 할게요 넘어가서 일단 다이어그램을 보면 사물과의 관계를 도형으로 표현한 형식이에요. 마찬가지 의사소통에 조금 더 도움이 되겠죠. 그림이 훨씬 이해하기 편할 테니까요? 글보다 이 다이어그램은 6개의 정적 다이어그램하고 그다음에 7개의 동적 다이어그램 이렇게 있다고 봅니다. 6개랑 7개도 마찬가지 아래쪽에 나와 있을 거예요. 자 그리고 이 관계 말고 이 구조 말고 조금 더 새롭게 확장된 표현을 할 수가 있는데, 그걸 스테레오타입이라고 이야기합니다. 스테레오타입은 새로운 요소를 만들어내는 형태예요. uml에 있는 거 말고 새로운 걸 자 그래서 이제 확장 구조를 가진다 이렇게도 표현을 하구요. 이 스테레오 타입은 구어맷 기어라고 하는데 그냥 이렇게 각진 괄호가 쌍으로 붙어있다고 생각을 하시면 됩니다.

02:54
특별하게 규칙이 있는 건 아니고 일반적으로 이런 식으로 쓰입니다. 가장 많이 쓰이는 거는 한 이 정도가 되겠는데 일단 문제에 이런 것들이 나올 수도 있기 때문에 일단 의미는 간단하게 읽어보시고요. 이거는 우리가 봤던 내용이죠. 나머지 부분은 의미만 어느 정도 파악을 하시고 항목을 외우시는 방법으로 접근을 하시는 게 좋을 것 같아요. 넘어가서 아까 봤던 관계의 종류가 나와 있습니다. 자세하게 나와 있으니까요? 간단하게 하나씩 보도록 하겠습니다. 그림도 나와 있고 의미 파악이 중요하지만 의미 파악을 엄청 심도 있게 다룰 필요는 없어요. 한번 같이 일단 볼게요 연관관계는 서로 관련이 있음을 나타내는 형태예요. 그래서 서로가 지속적으로 참조되는 관계라고 보시면 됩니다. 어떻게 표현을 하는지 실선 화살표로 표현을 하고요. 양방향일 경우에는 실선으로만 표현을 한다고 되어 있어요.

03:47
여기 아래쪽에 그림을 보시면 화살표가 안 나와 있죠. 이렇게 자 이렇게 되어 있는 거랑 이게 없는 거랑 같은 의미라는 뜻이고요. 서로가 서로를 참조를 한다. 이렇게 보시면 되겠습니다. 자 그리고 중요한 개념 연관 객체의 다중도를 양 끝단에 표기를 한다고 되어 있어요. 다중도는 예를 들어서 뭐 관련이 아예 없다. 하나가 있다. 다수의 관련이 있다. 이런 개념을 얘기하는 겁니다. 그래서 아예 없거나 다수인 경우 이거 에스터 리스크 별을 붙이는 거고요. 이쪽에 있는 n이라는 거는 숫자입니다. 만약에 여기가 6이라고 하면은 요렇게 6개 관련이 있다라는 의미란 뜻이죠. 자 그리고 뭐뭐 땡땡 뭐뭐 이렇게 써있는 거는 요 땡땡은 or의 개념이에요. 물결이라고 생각하면 편해요. 여기에 요렇게 써 있다고 생각을 하시면 돼요.

04:41
n개에서 m개 사이 이렇게 보시면 되고 자 이 부분은 그러면 요렇게 보시면 돼요. 이건 어쨌든 없거나 다수기 때문에 n개 이상 이렇게 의미가 되는 거죠. 자 요걸 바탕으로 아래쪽에 있는 관계를 파악을 해보면 대여하다라는 이런 키워드로 이런 기능으로 고객과 도서를 봤을 때 고객은 도서를 대여하는데 아예 대여하지 않거나 다수의 도서를 대여할 수 있다고 해석이 되는 거예요. 에스터리스크죠 아래도 마찬가지죠 도서를 대여한 고객은 아예 없거나 여러 명일 수 있다. 그래서 에스터리스크가 붙었다고 생각을 하시면 됩니다. 이것도 보면 마찬가지죠 대리점과 관리자예요.

05:36
그래서 이 관리하다라는 관계를 통해서 본다고 하면 이 대리점은 관리자를 1명만 가진단 소리예요. 그래서 대리점을 1명의 관리자가 관리한다. 관리된다. 이렇게 표현을 하는 거고요. 그다음에 이 관리자가 대리점을 봤을 때는 이 관리자는 여러 대리점을 관리할 수 있죠. 근데 너무 많이 관리하면 안 되니까. 여기서 1에서 3이라고 써 놓은 겁니다. 그래서 하나의 대리점에서 최대 세 곳까지 관리할 수 있다. 이렇게 해석이 되는 거죠. 이해가 되시죠. 넘어갈게요 다음은 집합관계입니다. 이렇게까지 자세하게 해석을 하실 필요까진 사실 없어요. 집합 관계는 사물이 다른 사물에 포함되어 있다라고 되어 있죠. 포함되어 있는 관계고 그다음에 서로 독립적이라고 되어 있어요.

06:29
포함되어 있지만 하나가 다른 하나에 포함되어 있지만 서로 독립적이다라고 되어 있어요. 자 표현 방법 나와있죠. 이 표현 방법 헷갈릴 수 있기 때문에 완벽하게 암기를 하시는 게 좋습니다. 자 아래쪽에서 해석을 해보죠. 컴퓨터와 마우스인데 컴퓨터와 마우스는 딱 누가 봐도 컴퓨터가 훨씬 더 큰 부분이고 그다음에 마우스가 그 부분에 속하겠죠. 자 그래서 전체에 해당하는 사물 쪽에 이 마름모를 붙인 건데요. 중요한 건 이거예요. 자 컴퓨터는 1개 이상의 마우스를 가진다 요거에 대한 설명이거든요. 1개 이상 하나거나 아니면은 더 많거나 하나 이상이라고 하는 거죠. 그러니까 마우스를 두 개를 꽂아도 상관이 없다는 뜻이에요. 이런 느낌입니다. 자 그래놓고 아래쪽에 보시면 컴퓨터와 마우스는 서로 독립적이다 라고 되어 있어요.

07:21
자 이 독립적이라는 개념을 어떻게 생각하면 되냐면 아래쪽에 나와 있듯이 컴퓨터가 없어지더라도 마우스는 같이 없어지지 않습니다. 물론 컴퓨터 운용의 한 부분이지만 마우스는 뺐다가 다른 컴퓨터라든지 다른 기기에 사용을 할 수가 있어요. 그렇기 때문에 서로 독립적이라고 할 수 있다는 얘기죠 요게 집합관계의 특징이에요. 자 이거랑 약간 다른 게 하나 있는데요. 아래쪽에 포함 관계입니다. 자 포함 관계는 똑같아요. 포함되어 있는 건데요. 속이 찬 말은 뭐예요? 속이 빈 게 아니고 아까 이렇게 비어있었죠. 지금은 이렇게 차 있어야 된다는 소리예요. 참 마름모고요. 얘네들은 서로 종속적이에요. 아까 독립적인 거는 컴퓨터와 마우스는 서로 떨어져 있어도 제 기능을 한다. 뭐 그런 개념이었는데. 이 포함 관계에서는 떨어지면 문제가 생긴다라는 거죠.

08:16
어떤 건지 다음 페이지에 나와있겠네요. 자 이겁니다. 자 무선 마우스 아시죠. 무선 마우스랑 마우스 리시버라는 게 있어요. 우리가 보통 무선 마우스를 사면 이 손톱 모양 손톱만큼의 크기에 리시버라는 걸 줍니다. 그걸 usb 쪽에 꽂고 마우스를 사용하죠. 요런 건데 얘네들이 종속적인 관계에요. 그러니까 리시버를 만약에 잃어버린다 그럼 마우스는 사용을 못합니다. 그래서 이걸 종속적이라고 할 수 있는 거죠. 자 그래서 전체가 사라졌을 때 부분이 살아남을 수 있는지 없는지 이거를 체크를 해보면 얘가 포함 관계인지 집합 관계인지를 알 수가 있다는 거죠. 그 정도 서로 구분할 수 있게끔 보고 넘어가겠습니다. 그다음은 일반화 관계인데요. 일반화는 상위 하위 관계를 가지는 것을 표현한다고 되어 있어요.

09:12
상위 하위가 어떤 의미냐 상위는 일반적인 속성을 가진 사물을 표현하고요. 일반적인 그다음에 하위는 구체적인 속성을 가진 사물을 표현하는 거예요. 일반적인 자 그리고 표현을 속이 빈 삼각 실선 화살표 여기 나와 있죠. 이렇게 표현을 하는 거고요. 이런 식의 형태로 해석이 될 수 있다라고 되어 있어요. 예시 이미지로 보면은 조금 더 이해가 쉽습니다. 마우스 키보드 마이크는 각각 입력 장치의 한 종류예요. 그렇죠. 정보를 입력하는 입력 장치의 한 종류입니다. 그래서 해석이 이렇게 된다는 거죠. 마우스는 입력 장치의 한 종류이다. 키보드는 마이크는 입력 장치의 한 종류이다. 이거를 이렇게 해석할 수가 있다는 뜻이에요. 이거를 이렇게 표현을 한 겁니다. 거꾸로 해석하자면 입력 장치에는 얘네들이 있다.

10:08
이렇게 표현을 할 수도 있겠죠. 어찌 됐건 입력 장치는 요 아래쪽에 키보드 마우스 마이크의 일반적인 표현인 거죠. 입력 장치라는 그리고 입력 장치에는 구체적으로 어떤 것들이 있는지 반대로 해석을 하시면 된다라는 겁니다. 이게 일반화 관계예요. 들어가서 다음 페이지에는 의존 관계라는 게 있네요. 자 의존 관계는 요게 포인트예요. 짧은 시간 동안만 영원히 그 관계를 가지는 게 아니에요. 짧은 시간 동안만 관계를 유지하는 거고요. 사물의 변화가 관계된 사물에 영향을 끼치는 이런 형태입니다. 영향을 받는 사물 쪽에 점선 화살표로 표현한다고 되어 있죠.

10:53
그래서 지금은 고객과 사은품인데 고객의 특성에 따라 사은품을 지급하거나 지급하지 않을 수 있는 또는 사은품의 그 지급 내용이 달라질 수 있는 이런 형태죠 이 고객의 특성이라는 거는 고객의 등급 같은 게 될 수 있겠죠. 뭐 vip 플래티넘 뭐 이런 거 있잖아요. 골드 이런 느낌 고런 거라고 생각하시면 됩니다. 그래서 어떤 특성 속성에 따라서 관계가 바뀌는 관계의 결과가 바뀌는 영향을 미치는 이런 것들을 의존 관계다 라고 이야기를 한다는 거죠. 크게 어려운 개념은 아니구요. 내려와서 다음은 실체와 관계입니다. 실체와 관계가 모양이 일반화랑 비슷하죠. 어떤 부분이 다른지 좀 볼게요 일단 공통적인 무언가를 그룹화에서 표현한다고 되어 있어요. 공통적인 기능 아까는 속성이라고 그랬거든요. 상위 사물로 그룹화해서 표현을 한다. 상위 사물 쪽에 속이 빈 삼각 점선 화살표로 표현을 한다고 되어 있어요.

11:50
이런 식으로 해석이 된다고 되어 있죠. 아래쪽에 예시를 한번 보면 정보 제공이라는 기능이 있다는 거예요. 도서나 강사나 컴퓨터는 같은 정보 제공이라는 기능을 가진다는 거죠. 자 그래서 아까랑 다른 점이 뭐냐면 아래쪽에 나와 있지만 공통 속성을 묶었다 하면은 일반화구요. 공통 기능을 묶었다 그러면 실체화라고 볼 수 있습니다. 약간 애매할 수 있는데, 요건 어차피 요 표현하는 방법이 중요한 거기 때문에 어느 정도 구분만 될 수 있으시면 될 거예요. 자 그래서 아래쪽에 컴퓨터는 정보를 제공할 수 있다. 이렇게 해석이 된다. 그러면 실체와 관계라고 보시면 됩니다. 무언가를 해줄 수 있다. 무언가를 할 수 있다. 이렇게 해석이 되는지를 판단하시면 될 것 같아요.

12:49
정보 제공 기능이 있는 사물은 이런 것들이 있다. 이렇게 해석이 되는 거죠. 자 이 정도 보고 여러분들은 직접 책으로 왔다 갔다 해보시면서 서로 어떤 차이가 있는지 비교해 가면서 보시면 좋을 것 같아요. 자 이번엔 다이어그램의 종류입니다. 다이어그램이 구조적 또는 행위적 정적 동적 다이어그램이 있다고 했죠. 서로를 구분할 수 있어야 됩니다. 한번 볼게요 일단 첫 번째로, 클래스 다이어그램이 있어요. 클래스 간의 구조를 표현하는 다이어그램인데 클래스 다이어그램에는 클래스명이나 속성 연산 접근 제어자 등이 포함되어 있다는 거고, 여기 아래쪽에는 접근 제어자가 나와 있는 겁니다. 오른쪽에 있는거는 요 기호가 나타내는 의미를 적어 놓은 거예요. 실제로는 요렇게만 써 있습니다.

13:40
마이너스 플러스 샵 물결 요것만 써있는 거고, 이걸 보고 이런 접근 제어 개념을 가지고 있구나라는 건데 요거가 문제로 나오는 경우는 그렇게 많이 없구요. 중요한 건 이거예요. 요건데 여기에 하나 더해서 이 부분이 요 파트에서는 크게 중요하지 않지만 나중에 java 가서 java에서 클래스를 배울 때는 이 개념이 중요해요. 그러니까 애초에 그냥 여기서 공부하실 때 다 같이 공부하셔도 크게 무리는 없으실 거예요. 아시겠죠. 넘어가서 다음은 객체 다이어그램입니다. 클래스 다이어그램은 클래스의 구조니까 객체는 객체 간의 관계 구조 이런 것들을 표현할 수 있다고 보시면 되겠죠. 자 그리고 아래쪽에 설명 추가적으로 특정 시점에 시스템 구조를 파악할 수 있다.

14:34
어떤 객체가 항상 존재하는 게 아니기 때문에 객체가 생성된 시점 또는 소멸되는 시점 이런 개념을 얘기하는 거죠. 특정 시점 넘어가서 컴포넌트 다이어그램입니다. 자 구현 단계에서 사용되는 다이어그램이 몇 개 있어요. 컴포넌트 간의 구성 구조 배치는 실제 이런 컴포넌트나 노드 같은 애들의 물리적인 아키텍처 물리적인 구조를 얘기하는 거죠. 그런 것들을 표현한다라는 거죠. 이 두 가지가 구현 단계에서 사용이 된다 라고 써 있으니까 두 가지 체크하시고요. 다음은 복합적인 구조를 가지는 복합체 구조 그다음에 패키지 간의 관계를 표현하는 패키지 다이어그램 이런 것들이 있다라는 거죠. 이게 결국에 지금 대부분 다 구조 구성 이런 것들을 표현하고 있잖아요. 얘네들 컴포넌트 배치 이런 것들의 상위 개념이 뭐였죠 구조적 다이어그램이었어요. 그래서 구조를 표현하는 다이어그램을 모아놓은 겁니다.

15:28
그러니까 구조적 다이어그램에서 클래스 다이어그램이다라고 하면 클래스의 구조를 나타내는 거다 이렇게 해석을 하면 암기하는데 조금 더 도움이 되겠죠. 자 그러면 이번에는 행위 다이어그램이에요. 그러면 얘는 정적인 게 아니라 동적인 무언가가 상호작용하거나 움직이거나 흐르거나 하는 그런 개념을 설명을 하겠죠. 자 유스케이스 다이어그램은 기능을 중심으로 기능이 뭔가 수행되는 거니까요? 모델링한 결과물을 표현하는 거고, 시퀀스는 객체들의 생성과 소멸 또는 주고받는 메시지 이런 것들을 표현할 수 있다고 되어 있어요. 이것도 마찬가지 행위니까 동적인 부분을 표현을 해야 되죠. 자 그래서 아래쪽에 이런 것들을 통해서 시간의 흐름 이런 것들을 이용해서 표현을 한다라고 되어 있어요. 생명선 실행 메세지 요런 것들이 있는데, 어떻게 표현하는지 정도는 파악을 하시고 넘어가시는 게 좋겠습니다. 자 이번엔 통신입니다.

16:26
통신이 뭐 대화적 이런 말이 사용이 되기도 해요. 커뮤니케이션이라는 의미가 파악이 된다고 하면 다 그쪽 다이어그램이라고 생각을 하시면 됩니다. 시퀀스 다이어그램에다가 객체들의 연관 관계까지 표현할 수 있는 걸 통신 다이어그램이라고 합니다. 자 그리고 상태 다이어그램은 한 객체의 이벤트 활성에 따른 상태 변화를 표현한 것이다. 모든 기관이나 객체를 대상으로 하는 게 아니라 특정 특정 객체를 대상으로 한다 라고 써 있습니다. 이 특정이랑 이벤트랑 같은 의미라고 보시면 돼요. 예를 들어서 시계라고 치면 알람 시계를 생각을 해보면 알람이 계속 울리고 있는 게 아니라 어떤 이 지정한 시간이 딱 되면 그때 알람이 활성화가 되는 거죠. 그게 이 개념이에요. 어떤 특정 정해진 이벤트가 활성화된다. 예를 들어서 오전 8시라는 이벤트가 활성화가 된다.

17:26
그러면 알람을 울리는 상태로 바꾸는 거죠. 자 요런 걸 상태 다이어그램이라고 할 수 있는데, 이거랑 마찬가지 이 이벤트가 발생하는 특정 기간을 대상으로 표현을 한다라는 겁니다. 말이 좀 어렵게 나와 있는데, 제가 좀 쉽게 설명을 드린다고 드렸어요. 다음으로, 활동 다이어그램 흐름도처럼 객체의 프로세스나 로직의 처리 흐름을 표현하는 거 활동 다이어그램이라고 이 활동하는 모습을 보여준다는 뜻이겠죠. 그다음에 상호작용 다이어그램 상호작용 개요 다이어그램이라고도 해요. 어쨌든 통신 시퀀스 타이밍 등의 다이어그램 사이의 제어 흐름을 표현할 수가 있다라고 되어 있고 다음은 마지막으로, 타이밍 다이어그램 객체 상태의 변화와 시간의 제약을 명시적으로 표현할 수 있다. 까지 다이어그램이 되겠습니다.

18:23
이렇게 7가지의 행위 다이어그램을 같이 봤는데 내부적으로는 요거를 상호작용 다이어그램이라고 조금 더 세부적으로 분류를 하기도 해요. 이 부분까지 체크하시고 넘어가시면 되겠습니다.

728x90
반응형
posted by 아이윤맨
: