-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Communication Pattern들에 대하여 설명해주세요. #33
Comments
객체들간의 Communication Pattern 들로는 Delegate, Notification, KVO 방식이 있는 것으로 알고 있습니다. DelegateDelegate는 대리자, 위임자 라는 뜻으로 한 객체에서 처리해야 할 일 중 일부를 프로토콜로 분리해 다른 객체가 채택하고 대신 처리하도록 위임하는 패턴을 말합니다. Delegate 패턴은 프로토콜로 구현되기 때문에 재사용성이 뛰어나고 객체지향적이란 장점이 있지만, 작성해야 하는 코드양이 많고 위임받을 객체가 nil이 될 수 있어 개발자가 주의해 작성해야한다는 단점이 있습니다. NotificationNotification은 NotificationCenter라는 싱글톤 객체를 사용해 특정 이벤트를 구독하고 있는 사용자들에게 이벤트를 전달하는 방식입니다. KVOKVO는 Key-Value Observing의 약자로, 객체의 프로퍼티의 변경사항을 다른 객체에게 알릴 수 있는 패턴입니다. |
Swift에서 Communication Pattern은 객체 간 데이터나 이벤트를 전달하기 위해 사용하는 방법들을 의미합니다. Swift에서는 주로 Delegate, NotificationCenter, Closure, Combine 등을 통해 이를 구현할 수 있습니다. Delegate 패턴은 주로 1:1 관계에서 사용되며 한 객체의 어떤 작업을 다른 객체가 대신 처리하도록 책임을 위임하는 패턴입니다. NotificationCenter는 1:N 관계에서 사용되며 싱글톤으로 구현된 NotificationCenter를 통해 App 내에서 전역적인 이벤트를 post로 등록하고 이를 addObserver한 여러 객체에서 이벤트를 전달받을 수 있습니다. Closure는 주로 1:1 관계에서 사용되며 콜백을 통해 이벤트를 전달합니다. 클로저를 통해 호출된 코드 블럭 내에서 작업을 처리할 수 있습니다. Combine은 iOS에서 제공하는 비동기 데이터 스트림을 관리하는 프레임워크로 여러 퍼블리셔와 send와 sink를 통해 객체간 통신을 주고받으며 처리할 수 있습니다. |
Communication Pattern 이란 객체 간 상호작용 에 대한 규칙 또는 방식을 말합니다. Delegate 패턴은 객체 간의 1대1 상호작용에 사용됩니다. Delegate는 위임하다라는 뜻으로 하나의 객체가 필요한 행동을 다른 객체에 위임하여 처리합니다. Observer 패턴은 객체의 상태 변화를 감지하여 이를 구독하고 있는 다른 객체들에게 상태 변화를 알리는 패턴입니다. Swift에서는 Notification Center를 통해 구현할 수 있습니다. Callback 패턴은 주로 비동기 프로그래밍 상황에서 작업이 완료된 이후 클로저를 통해 결과를 전달하고 원하는 동작을 실행할 수 있도록 하는 패턴입니다. Swift에서는 탈출 클로저를 이용해 두 객체간에 비동기 프로그래밍의 결과를 전달하는데 사용합니다. |
🙋🏻 답변커뮤니케이션 패턴은 소프트웨어에서 객체나 컴포넌트간에 상호작용 방식을 정의하는 방식을 의미합니다. Swift 소프트웨어 개발에서 다양한 커뮤니케이션 패턴이 존재하며 대표적으로 콜백 패턴, 델리게이트 패턴, 옵저버 패턴, 퍼블리셔-서브스크라이브 패턴 등이 존재합니다. 콜백 패턴은 함수의 인자로 클로저를 전달하여 비동기 작업에서 콜백 처리를 할 때 주로 사용되며, 델리게이트 패턴은 프로토콜을 통해 한 객체가 다른 객체에게 작업을 위임하는 방식으로 단방향성이 있습니다. 옵저버 패턴은 노티피케이션센터를 이용하여 여러 객체가 동일한 이벤트를 수신할 수 있게 해주는 브로드캐스팅 방식으로, 객체간 느슨한 결합을 유지하는 데 유용하며, 퍼블리셔-서브스크라이버 패턴은 컴바인과 같은 프레임워크를 통해 반응형으로 데이터 흐름을 관리할 수 있는 상호 작용 방식입니다. Swift에서는 이러한 패턴들을 적절히 활용하여 코드의 재사용성과 유지보수성을 높일 수 있습니다. 🏷️ 키워드
|
No description provided.
The text was updated successfully, but these errors were encountered: