적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Trend

클린 아키텍처 Clean Architecture

hongssup_ 2022. 11. 21. 22:13
반응형

보통 기능 개발이 중요하다고 생각하지만 

프로젝트 규모가 커질수록 구조가 중요해진다

ex) 정리가 되지 않은 방

 

좋은 아키텍처란? 아키텍처가 왜 중요한가?

필요한 시스템을 만들고 유지보수하는 투입되는 인력을 최소화 하는 것- by 로버트 C. 마틴 ㅠㅠ

기능이 있기만 하면 되는 것이 아니라 기능을 계속 더하고 구조가 굉장히 중요해진다.

많은 기능들이 있지만 나름의 질서가 있어서 구조를 파악하기 어렵지 않은 상태를 추구해야. 

 

아키텍처 패턴

계층형 아키텍처 Layered Architecture

(영속성에 의존하게 되어) 영속성에 대해 먼저 정의를 하고 데이터베이스 주도 설계를 유도하게 되는 단점

 

클린 아키텍처

로버트 C. 마틴이 좋은 아키텍처들의 특징 공통점을 모아 하나로 합친 ? 

도메인이 중심! (의존성 역전을 이용)

 

클린 아키텍처, 헥사고날 아키텍처 사용하면 패키지 수가 많이 늘어난다. 

패키지를 더 세분화 해서 각각의 계층을 좀 더 분명하게 나타내기 위함. 

ex) 정리정돈 위해 수남 가구를 들여놓는 느낌이라 생각하면 될듯. 

 

 

** 영속성 Persistence 이란?

데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특성을 말한다. 데이터를 파일이나 DB에 영구 저장함으로써 데이터에 영속성을 부여한다.

엔티티 매니저(Session?)를 통해 영속성 컨텍스트에 엔티티를 보관하고 관리 

(영속성을 갖지 않으면 메모리에서만 존재하는 데이터는 프로그램이 종료되면 모두 사라지게됨)

 

한국어로 번역된 영속성이라는 단어가 좀 생소하고 어려웠는데 CoreData 생성할 때 persistentContainer에 context 만들어 사용해봤었움 ㅎㅎ 

 


참고 : 

https://www.youtube.com/watch?v=g6Tg6_qpIVc

 

https://github.com/kudoleh/iOS-Clean-Architecture-MVVM

 

GitHub - kudoleh/iOS-Clean-Architecture-MVVM: Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoor

Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI - GitHub - kudoleh/iOS-Clean-Architecture-MVVM: Tem...

github.com

https://k-elon.tistory.com/38

 

Clean Architecture 란 ?

안녕하세요 ! 국산 엘런 입니다 :) Robert C Martin(Uncle Bob) 형님이 블로그에 기재하시면서 화재가 된 것이 Clean Architecture 입니다. Clean Architecture 에 대한 소개에 앞서 알아야할 개념 두가지, Business Rule

k-elon.tistory.com

 

728x90
반응형