SlideShare a Scribd company logo
Clean Architecture
& Flux
Clean architecture
https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
● 최근의 소프트웨어 아키텍쳐들
● 여러 아키텍쳐 사이에는 매우 유사한 점들이 있음
○ 프레임워크에 대한 비 의존성
○ 테스트 가능성
○ UI에 대한 비 의존성
○ DB에 대한 비 의존성
○ 다른 어떤한 에이전시에 대한 비 의존성
● 이런 특징들을 하나의 액션 아이디어로 통합을 하려는 노력
Clean Architecture
의존성 방향 - 안쪽으로
● The outer circles are mechanisms.
● The inner circles are policies.
Entity와 Use Cases
● Business Rule
● These use cases orchestrate the
flow of data to and from the entities
Interface Adapter
Frameworks and Drivers.
Crossing boundaries - DIP
Clean Architecture in Android
https://github.com/googlesamples/android-architecture
https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/
● 안드로이드 앱에 여러 패턴을 적용하는 구글 주도 프로젝트
● MVP + Clean Architecture TODO
○ View와 Presenter를 “Contract”로 뽑음
○ Presenter에서 Use Case호출, 결과를 View에 업데이트
○ Use Case에서는 Service 혹은 Repository (Entity 영역)에 접근
Flux
단방향 데이타 흐름
● From Action to View
A Single Dispatcher
Stores
Views and Controller-Views
Actions
Dispatcher를 통한 decouple
ActionCreators
Store에서 View로는 Event
https://facebook.github.io/flux/docs/overview.html#content
Flux - 요상한점
왜 ActionCreator가
WebApi를 사용하지?
1. WebApi 완료후
Action flow를 만들기
위해
2. Store에서 하는 역할을
단순화하기 위해
3. Dispatching
Order때문에
- WaitFor
Flux 와 Angular JS
ActionCreator가 DataSoruce 계층인 API를 사용하는것은 여전히 이상하다.
Controller-Views가 모든 Event를 Handling하지 말고 EventHandler 스러운
Controller를 따로두는것은 안좋은건가? - Error Handling에 더 좋을것 같음.
AngularJS
● Scope을 DI로 해결
● $rootScope에 dispatch를 할수 있는 기능 탑제
● UI Component화 하기 용이
https://github.com/poksion/log-me/tree/master/fyac/public/apps

More Related Content

PPTX
Clean Code II - Dependency Injection
PDF
Android cleanarchitecture
PDF
꿀밋업1탄_왜_마이크로서비스인가
PDF
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
PDF
Configuration management best practices
PDF
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
PDF
Sw 아키텍처와 sw 공학
PDF
Event storming based msa training commerce example add_handson_v3
Clean Code II - Dependency Injection
Android cleanarchitecture
꿀밋업1탄_왜_마이크로서비스인가
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Configuration management best practices
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
Sw 아키텍처와 sw 공학
Event storming based msa training commerce example add_handson_v3

Similar to Clean architecture and flux (20)

PDF
ALM과 DevOps 그리고 Azure DevOps
PPTX
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
PDF
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
PDF
세션5_데보션테크데이_이상근.pdf
PDF
Cadworx water industry proposal
PDF
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
PDF
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
PPT
개발 생산성 향상 기법 V1.2
PDF
01.표준프레임워크개요
PPTX
05. it정보화전략-어플리케이션 프레임워크
PDF
Agados ABP(Application Building Process) Overview
PDF
Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
PDF
bsk_03_01
PDF
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
PPTX
Modern Android App Development
PPTX
DevSecOps 그리고 협업 - GitLab
PDF
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
PDF
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
PDF
Data discovery qlikview
PPTX
polyglot application development in the cloud
ALM과 DevOps 그리고 Azure DevOps
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
세션5_데보션테크데이_이상근.pdf
Cadworx water industry proposal
(Enterprise,RedHat) - SDC(IaaS) with SDS, Cloud References 2020-07 Samuel.pdf
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
개발 생산성 향상 기법 V1.2
01.표준프레임워크개요
05. it정보화전략-어플리케이션 프레임워크
Agados ABP(Application Building Process) Overview
Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브
bsk_03_01
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
Modern Android App Development
DevSecOps 그리고 협업 - GitLab
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
Data discovery qlikview
polyglot application development in the cloud
Ad

Clean architecture and flux

  • 2. Clean architecture https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html ● 최근의 소프트웨어 아키텍쳐들 ● 여러 아키텍쳐 사이에는 매우 유사한 점들이 있음 ○ 프레임워크에 대한 비 의존성 ○ 테스트 가능성 ○ UI에 대한 비 의존성 ○ DB에 대한 비 의존성 ○ 다른 어떤한 에이전시에 대한 비 의존성 ● 이런 특징들을 하나의 액션 아이디어로 통합을 하려는 노력
  • 3. Clean Architecture 의존성 방향 - 안쪽으로 ● The outer circles are mechanisms. ● The inner circles are policies. Entity와 Use Cases ● Business Rule ● These use cases orchestrate the flow of data to and from the entities Interface Adapter Frameworks and Drivers. Crossing boundaries - DIP
  • 4. Clean Architecture in Android https://github.com/googlesamples/android-architecture https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/ ● 안드로이드 앱에 여러 패턴을 적용하는 구글 주도 프로젝트 ● MVP + Clean Architecture TODO ○ View와 Presenter를 “Contract”로 뽑음 ○ Presenter에서 Use Case호출, 결과를 View에 업데이트 ○ Use Case에서는 Service 혹은 Repository (Entity 영역)에 접근
  • 5. Flux 단방향 데이타 흐름 ● From Action to View A Single Dispatcher Stores Views and Controller-Views Actions Dispatcher를 통한 decouple ActionCreators Store에서 View로는 Event https://facebook.github.io/flux/docs/overview.html#content
  • 6. Flux - 요상한점 왜 ActionCreator가 WebApi를 사용하지? 1. WebApi 완료후 Action flow를 만들기 위해 2. Store에서 하는 역할을 단순화하기 위해 3. Dispatching Order때문에 - WaitFor
  • 7. Flux 와 Angular JS ActionCreator가 DataSoruce 계층인 API를 사용하는것은 여전히 이상하다. Controller-Views가 모든 Event를 Handling하지 말고 EventHandler 스러운 Controller를 따로두는것은 안좋은건가? - Error Handling에 더 좋을것 같음. AngularJS ● Scope을 DI로 해결 ● $rootScope에 dispatch를 할수 있는 기능 탑제 ● UI Component화 하기 용이 https://github.com/poksion/log-me/tree/master/fyac/public/apps