AWS User Group July 2014 - Getting Started with cloud computing and AWS
Getting Started with cloud computing and AWS
Slides for the following AWS User Group Talks:
"Public Cloud and AWS Overview" - Ryan Koop, Director of Products and Marketing at Cohesive @ryankoop
"Getting Started in AWS" - Jonny Sywulak, Continuous Delivery Engineer at Stelligent Systems LLC @jonathansywulak
July Sponsors:
Hosts: Cohesive
Beers and drinks: Cohesive
Pizza: el el see
Organizers: Cohesive
Interested in getting involved next time? Have an idea for a talk? email margaret.walkerATcohesive.net
#AWSChicago
RxMVVM-DataCenter is iOS app architecture to remove dependencies among ViewControllers. If you see the result which is made by using RxMVVM-DataCenter at https://github.com/skyfe79/RxGitSearch. You can know there is no dependencies among ViewControllers and how to use Rx techniques.
RxMVVM-DataCenter 은 어떻게 하면 의존성을 제거할 수 있을까에 대한 고민에서 시작된 프로젝트입니다. RxGitSearch라는 작은 예제를 만들어서 ViewController간에 의존성을 제거하였고 Rx를 사용하여 앱을 유연하게 변화에 빠르게 대응할 수 있도록 구현하였습니다.
AWS User Group July 2014 - Getting Started with cloud computing and AWS
Getting Started with cloud computing and AWS
Slides for the following AWS User Group Talks:
"Public Cloud and AWS Overview" - Ryan Koop, Director of Products and Marketing at Cohesive @ryankoop
"Getting Started in AWS" - Jonny Sywulak, Continuous Delivery Engineer at Stelligent Systems LLC @jonathansywulak
July Sponsors:
Hosts: Cohesive
Beers and drinks: Cohesive
Pizza: el el see
Organizers: Cohesive
Interested in getting involved next time? Have an idea for a talk? email margaret.walkerATcohesive.net
#AWSChicago
RxMVVM-DataCenter is iOS app architecture to remove dependencies among ViewControllers. If you see the result which is made by using RxMVVM-DataCenter at https://github.com/skyfe79/RxGitSearch. You can know there is no dependencies among ViewControllers and how to use Rx techniques.
RxMVVM-DataCenter 은 어떻게 하면 의존성을 제거할 수 있을까에 대한 고민에서 시작된 프로젝트입니다. RxGitSearch라는 작은 예제를 만들어서 ViewController간에 의존성을 제거하였고 Rx를 사용하여 앱을 유연하게 변화에 빠르게 대응할 수 있도록 구현하였습니다.
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
[Microsoft Azure와 Red Hat OpenShift를 통한 비즈니스 스피드 업! 웨비나]
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
락플레이스 구천모 상무
영상 다시보기 : https://youtu.be/i3yKrHLHYJI
안녕하세요. 이희종입니다. 한국 오라클에서 근무 하고 있습니다.
저희 팀에서는 지식 먹방이라는 방송을 Youtube 채널을 통해서 하고 있구요. 이번에 마이크로서비스라는 주제를 가지고 한번 다루어 보는 시간을 가져 보았습니다. 아직 마이크로서비스라는 단어에 대해서 생소하신 분이라면 개념을 이해하기에 좋은 자료라고 생각됩니다.
방송영상은 https://www.youtube.com/watch?v=64t4Kck6JEQ 보실 수 있습니다.
이와 더불어 오라클 클라우드 서비스 중에 하나인 Application Container Cloud Service 에 대한 내용도 포함되어 있습니다.
파울러는 2004년의 글에서 제어의 어떤 측면이 역행되는 것인지에 대한 의문을 제기하고 의존하는 객체를 역행적으로 취득하는 것이라는 결론을 내렸다. 그는 그와 같은 정의에 기초하여 제어 역행이라는 용어에 좀 더 참신한 ‘의존성주입(DI,dependency injection)’이라는 이름을 지어줬다.
모든 어플리케이션은 비즈니스 로직을 수행하기 위해 서로 협업하는 둘 또는 그 이상의 클래스들로 이뤄진다. 전통적으로 각 객체는 협업 할 객체의 참조를 취득해야 하는 책임이 있다.
이것이 의존성이다. 이는 결합도가 높으며 테스트하기 어려운 코드를 만들어낸다.
IoC를 적용함으로써 객체들은 시스템 내의 각 객체를 조정하는 어떤 외부의 존재에 의해 생성시점에서 의존성을 부여 받는데, 의존성이 객체로 주입(inject)된다는 말이다. 따라서 IoC는 한 객체가 협업해야 하는 다른 객체의 참조를 취득하는 방법에 대한 제어의 역행이라는 의미를 갖는다.
일반적으로 IoC는 의존성주입(DI), 의존성룩업(DL) 두 개의 하위부류로 나눌 수 있으며, 일반적으로 DI를 이야기 할 때는 IoC를 가리키지만 IoC를 이야기할 때는 DI를 가리키는 것은아니다. DI도 여러 종류 (세터주입,생성자주입,메소드주입)가 있지만 DL의 경우도 의존성 풀과 컨텍스트화된 의존성룩업(CDL) 두 종류가 있다.
2. 문제점
주류 J2EE 의 문제 : heavyweight complexity
대안은 Open source
다양한 Lightweight Container 출현
※ 고민 :
어떻게 서로 다른 요소를 같이 엮어서 쓸 수 있을까?
ex) 각자 만든 web controller architecture와 Database
Interface를 어떻게 같이 사용할 수 있을까?
8. 핵심
여러 플러그인들을 어떻게 조립해서 한 애플리케이션으로 만들 수 있을까?
Inversion of Control
9. Inversion of Control
Inversion of Control는 프레임워크의 공통된 특성,
Dependency Injection
Why?
핵심은 어떤 제어를 역전시키려고 했는가?
Plug-in Implementation을 찾는 방법
= implementation이 Injection 가능하도록 함
18. Using a Service Locator
- Dependency를 없앨 수 있는 다른 방법
- 응용 프로그램이 필요로 할 서비스들의 전체 소유권을 어떻게 취할지 알고 있는 어떤 객체를 두자는 것
[The dependencies for a Service Locator]
23. Using both a locator and injection with Avalon
Avalon은 Service Locator와 Dependency Injection 모두 사용 가능
24. Deciding which option to use
Service Locator vs Dependency Injection
Service Locator
Dependency Injection
장점
- 개발자에게 더 직접적인 표현
- 명시적인 호출이 없음
- 의존관계 파악이 쉬움
- 테스트 쉬움
단점
-
- 컴포넌트가 추가적인 요청을 할 수 없음
모든 객체가 Service Locator에 의존
의존관계 파악이 어려움
Service Locator API에 잘 알고 있어야 함
테스트가 상대적으로 어려움
Constructor vs Setter Injection
Constructor Injection
Setter Injection
장점
- Field 를 숨길 수 있음
- 객체 생성에 대한 명확한 의도 표현
간단하고 쉬움
단점
-
Immutable field에 대한 신뢰
매개변수가 많아지면 코드가 지저분
생성 방법이 여러 가지인 경우, 표현이 어려움
위치를 통해 매개변수의 용도를 알기 어려움
상속인 경우 부모클래스 + 자기 매개변수
※ Interface Injection 탈락 사유 : 인터페이스를 만들어야 됨. 상대적으로 많은 작업 필요
25. Code or configuration files
XML hell-!!
ex)
API vs XML
Compile!!
개발자에겐 프로그래밍 언어가 더 익숙..
둘 다 지원하고, 선택은 사용자에게 맡겨라.
27. 그 외..
Java Spec
JSR 330: Dependency Injection for Java
http://jcp.org/en/jsr/detail?id=330
DI Frameworks
google-guice
http://code.google.com/p/google-guice
PicoContainer
https://github.com/picocontainer
Spring
http://www.springsource.org