# ✏️ 5주차 \[8기\] B반 스터디
## 🗓2023-01-21
**참여자** : 리지, vetto, Harry, 송준, sehong
**진행자** : vetto
## \[금주의 실험🔥\] UML
- 실험: 작성된 UML을 바탕으로 한 코드를 작성해봅시다.
-----------------------------------------------------------------------
## 규칙
- 한사람이 화면을 공유하고 driver 역할을 맡음
- 개인별로 하나의 클래스를 정해 navigator 역할을 맡아 코드를 구현
## 🔍 분석 & 공부한 내용
### 클래스 다이어그램 - 화살표에 대한 정의
<img src = "https://i.imgur.com/BkzALpD.png" width = "600">
#### Person
```swift
class Person {
var coffee: Coffee?
func buy(_ menu: CoffeeMenu, at shop: CoffeeShop) {
}
}
```
- <span style='background-color: #fff5b1'>(직접연관)</span> → Coffee
- <span style='background-color: #dcffe4'>(의존)</span> → CoffeeMenu
- <span style='background-color: #dcffe4'>(의존)</span> → CoffeeShop
#### CafeManager
```swift
class CafeManager: Person {
func brew(_ menu: CoffeeMenu) -> Coffee? {
}
}
```
- <span style='background-color: #f5f0ff'>(일반화)</span> → Person
- <span style='background-color: #dcffe4'>(의존)</span> → CoffeeMenu
#### Coffee
```swift
class Coffee {
let kind: CoffeeMenu
}
```
- <span style='background-color: #fff5b1'>(직접연관)</span> → CoffeeMenu
#### CoffeeShop
```swift
class CoffeeShop {
let manager: CafeManager
func order(_ menu: CoffeeMenu) -> Coffee? {
}
}
```
- <span style='background-color: #fff5b1'>(직접연관)</span> → CafeManager
- <span style='background-color: #dcffe4'>(의존)</span> → CoffeeMenu
#### CoffeeMenu
```swift
enum CoffeeMenu {
case americano
case latte
var price: Int {
}
}
```
### 시퀀스 다이어그램
<img src = "https://i.imgur.com/tObqXIX.png" width ="600">
- 실선과 꽉 찬 화살표는 요청을 보내는 것을 의미한다.
- 점선과 빈 화살표는 요청받은 결과를 반환하는 것을 의미한다.
- 사각형 두개가 겹친 것은 인스턴스간 상호작용 뿐만 아니라 하나의 인스턴스에서 처리를 하는 경우이다.
## 🔍 공부가 더 필요한 부분
- UML의 종류
- 다이어그램 -> 코드
###### tags: `toyo`