# ✏️ 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`