송우택 is the main character who is 28 years old. He has an outgoing personality. The document provides basic information about the main character named Song Woo-taek, who is 28 years old and has an outgoing personality.
송우택 is the main character who is 28 years old. He has an outgoing personality. The document provides basic information about the main character named Song Woo-taek, who is 28 years old and has an outgoing personality.
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
O documento resume:
1) A apresentação discute estratégias de integração de aplicações e as capacidades do BizTalk Server para criar uma plataforma de integração corporativa.
2) Os desafios atuais do mercado incluem sistemas incompatíveis, processos ineficientes e informações inconsistentes, que podem ser resolvidos com uma plataforma de integração.
3) O BizTalk Server fornece componentes como adaptadores, pipelines e um motor de mensagens para integrar múltiplas aplicações usando padrões como
Reactive Model-View-ViewModel ArchitectureGyuwon Yi
컨텐츠 중심의 모바일 서비스 응용프로그램을 개발하기 위해 MVVM(Model-View-ViewModel) 패턴과 Rx(Reactive Extensions)를 활용해 설계한 Reactive MVVM 아키텍쳐를 설명합니다. 조금 더 자세한 설명은 블로그 포스트를 참고하세요. https://justhackem.wordpress.com/2015/03/19/rmvvm-architecture/
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015NAVER / MusicPlatform
youtube : https://youtu.be/E_Bgv9upahI
비동기 이벤트 기반의 라이브러리로만 생각 했던 RxJava가 지금 이 시대 프로그래머에게 닥쳐 올 커다란 메시지라는 사실을 알게 된 지금. 현장에서 직접 느낀 RxJava의 본질인 Function Reactive Programming(FRP)에 대해 우리가 잘 아는 Java 이야기로 풀어 보고 ReactiveX(RxJava) 개발을 위한 서버 환경에 대한 이해와 SpringFramework, Netty에서의 RxJava를 어떻게 이용 하고 개발 했는지 공유 하고자 합니다.
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
O documento resume:
1) A apresentação discute estratégias de integração de aplicações e as capacidades do BizTalk Server para criar uma plataforma de integração corporativa.
2) Os desafios atuais do mercado incluem sistemas incompatíveis, processos ineficientes e informações inconsistentes, que podem ser resolvidos com uma plataforma de integração.
3) O BizTalk Server fornece componentes como adaptadores, pipelines e um motor de mensagens para integrar múltiplas aplicações usando padrões como
Reactive Model-View-ViewModel ArchitectureGyuwon Yi
컨텐츠 중심의 모바일 서비스 응용프로그램을 개발하기 위해 MVVM(Model-View-ViewModel) 패턴과 Rx(Reactive Extensions)를 활용해 설계한 Reactive MVVM 아키텍쳐를 설명합니다. 조금 더 자세한 설명은 블로그 포스트를 참고하세요. https://justhackem.wordpress.com/2015/03/19/rmvvm-architecture/
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015NAVER / MusicPlatform
youtube : https://youtu.be/E_Bgv9upahI
비동기 이벤트 기반의 라이브러리로만 생각 했던 RxJava가 지금 이 시대 프로그래머에게 닥쳐 올 커다란 메시지라는 사실을 알게 된 지금. 현장에서 직접 느낀 RxJava의 본질인 Function Reactive Programming(FRP)에 대해 우리가 잘 아는 Java 이야기로 풀어 보고 ReactiveX(RxJava) 개발을 위한 서버 환경에 대한 이해와 SpringFramework, Netty에서의 RxJava를 어떻게 이용 하고 개발 했는지 공유 하고자 합니다.
2. 본 PPT는 Design Patterns Study를 위해 작성되었습니다.
Study에 사용한 교재는 한빛미디어에서 나온
[Head First Desgin Patterns]을 사용하였습니다.
Written by 서울시립대 이희태 For study with NHN NEXT2기 조현호
서 울 시 립 대 이 희 태
3. 옵저버 패턴??
게임 스타크래프트 프로토스의 유닛 옵저버를 기억하는가?
이 유닛은 정작 본인은 보이지 않으면서 적 진영을 훤히 꾀
뚫어보는 말그대로 “관측”에 타고난 유닛이다.
옵저버 패턴 역시 “관측”하는 Observer들과 관측할 대상
인 Subject로 구성된 패턴이다.
이 패턴을 공부하면서 일대다 관계와 느슨한 결합도 알아보
자.
4. 업무 계약 체결서
저희 회사의 차세대 인터넷 기반 기상 정보 스테이션 구축 프로
젝트 업체로 선정된 것을 축하합니다!
기상 정보 스테이션은 저희 회사에서 현재 특허 출원 중인
WeatherData객체를 바탕으로 만들어질 것입니다. 이 객체는 현
재의 기상조건(기온, 습도, 기압)을 추적하는 객체입니다.
기본적으로 세 개의 항목을 화면에 표시하는 애플리케이션을 만
들어주시길 바랍니다. 세 개의 항목은 각각 현재 조건, 기상 통계,
그리고 간단한 기상 예보이며, 이 세 항목 모두 WeatherData객체
에서 최신 측정치를 수집할 때마다 실시간으로 갱신됩니다.
(… …)
여러분이 개발한 디자인과 알파버전을 기다리겠습니다.
- From 조니 허리케인, CEO of Weather-O-Rama
6. 코드를 옵저버 패턴 쓰지 않고 만든 경우
Interface가 아닌 구체적인
구현으로 코드를 짰다.
3개의 display모두 공통된 인자를
받아들이면서 update()를 사용하기
에 추상화를 하는 것이 낫다.
Display마다 달라지는 update()항목은
따로 빼서 캡슐화하는 것이 좋다.
7. 그렇다면 옵저버 패턴이란 무엇인가?
Subject
obj
2
obj
1
obj
3
obj
4
Observer Pattern : 한 객체(subject)의 상태가 바뀌면 그 객체에
의존하는 다른 객체들(observers)한테 연락이 가고 자동으로 내
용이 갱신되는 방식의 일대다 의존성 관계이다.
1 : 多 관계
10. 여기 두 신문사와 세 명의
잠재 고객이 있다.
John(28) Bob(34) Maggie(29)
Fire Daily
EXTRA NEWS
11. John
Fire Daily
EXTRA NEWS
저는 John인데
요. Fire Daily 6
개월간 구독하
려구요.
Bob
Maggie
좀 지켜봐
야겠다.
저도 Fire
Daily 6개월
구독신청이요.
신청자 이름
은 Bob이에요.
Fire Daily 등록
Fire Daily 특별 이벤트입니다.
지금 등록하시면 6개월간
$35라는 저렴한 가격으로 구
독하실수 있습니다.
빠르고 정확
한 Extra
News,
1달에 $7!
12. John
Fire Daily
EXTRA NEWS
구독자 John인
데요. 6개월 더
연장 구독할 게
요.
Bob
Maggie
가격이 올랐
네요. Fire
Daily 구독 해
지하겠습니다.
빠르고 정확
한 Extra
News,
1달에 $7!
6개월 후 - 이벤트 종료 -
엄선된 토픽을 선별하는 Fire
Daily! 1달에 $8!
구독자에게 알림
구독 해지
Maggie라는
사람인데요.
Extra News 6개월
구독요…
Extra News등록
14. 디자인 원칙 2. 느슨한 결합 LOOSE COUPLING
1. Subject가 Observer객체에 대해서 아는 것은 오직 observer가 특정
Interface를 구현한다는 것 뿐이다.
2. Observer객체의 추가/제거는 언제든지 할 수 있다.
3. 새로운 형식의 Observer를 추가하려고 한다 해도 Subject를 전혀 변
경할 필요가 없다.
4. Subject와 Observer는 서로 독립적으로 재사용할 수 있다.
서로 상호작용하는 객체 사이에서는 가능하면 느슨하게
결합(하는 디자인을 사용해야 한다.
26. public void notifyObservers(Object arg) :
hasChanged()가 실행되어 이 객체가 변하면,
객체에 등록된 모든 observer들에게 바뀐 정보를 알려준 후
clearChanged()가 실행되어 더 이상의 변화가 없도록 한다.
각각의 observer들은 두 개의 매개변수를 받는 update(observable
o, object arg) 메소드를 구현해야한다.
notifyObservers() 메소드
27. 알리는 방식은 PUSH방식과 PULL방식이 있다
Subject
(=Obser
vable)
obser
ver
obser
ver
obser
ver
PUSH!
notifyObservers(Object arg)
Subject가 변하
면 자동으로 모
든 observer들에
게 push!
Subject
(=Obser
vable)
obser
ver
obser
ver
obser
ver
PULL~
notifyObservers()
Subject가 변하면
observer들이 알아서
원하는 데이터를 당겨
옴(pull!)
28. 옵저버가 연락 받는 방법
PUS
H
PULL
Push방법:
Observable객체가
notify(Object arg) 를 사용하면,
Observer쪽에서는 update(Observable o,
object arg)에서 arg를 그대로 받는다.
Pull방법:
Observable객체는 notify()를 사용.
Observer쪽에서는 update(Observable o,
object arg)에서 arg는 null이 된다.
☞ notify() == notify(null)
* notifyObservers()를 편의상 notify()로 표현
31. CONSOLE 출력 결과 (PULL)
이전의 출력과 비교했을
때 순서가 바뀌었다?
사실 순서라는 것이 의미가 없다.
옵저버한테 연락이 가는 순서에 의존하면 절대 안된다.
32. 요 약 정 리
• 옵저버 패턴에서는 관찰대상인 Subject(Observable)
와 관찰하는 Observer와의 1대 多관계를 정의한다.
• Observable객체와 Observer객체 사이의 결합은 느
슨한 결합이다.
• 옵저버 패턴을 이용하면 Observable객체에서 데이터
를 보내거나(push), Observer가 데이터를 가져오는
(pull) 방식을 쓸 수 있다.
• 스윙 및 여러 gui프레임워크에서도 옵저버패턴이 많
이 응용된다.