개요
클린 아키텍쳐에 대한 각자의 해석이 어떻게 다른지? 애매한(?) 이라는 단어가 어떤 부분이라고 생각하는지 궁금해 듣게 되었습니다.
소프트웨어 아키텍쳐의 중요성
- 소프트웨어가 주는 가치에는 기능과 구조가 있습니다. 세션에선 구조가 훨씬 중요하다고 언급한다.
- 왜? 구조가 중요할까? 구조가 중요한 이유는 깔끔함이 유지되었을 때 어떤 장점이 존재하기 때문이다. 그런데 이 장점은 무엇인가?
- 어차피 깔끔함이라는 건 기능들이 많이 추가되면 자연스럽게 사라지게 된다. 그럼에도 불구하고 우리가 깔끔함을 유지해야 하는 이유는 나름의 질서를 통해 내부의 규칙을 파악하기 쉽기 때문이다.
좋은 아키텍쳐가 왜 중요한가요?
- 결국 비용이다. 소프트웨어 시스템을 만들고 유지보수하기 위한 맨먼스를 줄이는 것이 소프트웨어 아키텍쳐의 목표이다.
- 기능보다 구조가 좋은 이유는 수정하기가 쉽기 때문이다. 수정은 결국 인건비(맨먼스)와 동일하다.
- 결국은 프로그램의 라이프사이클이 짧아지게 되고 비용이 늘어난다
좋은 아키텍처를 어떻게 만드나요?
- 보통은 헥사고날 아키텍쳐, 레이어트 아키텍쳐, 클린 아키텍쳐와 같은 패턴을 사용한다. 디자인 패턴처럼 우리가 앞서 고민했던 내용들의 해답 참조가 많이 담긴 패턴들을 사용하는 것.
- 그런데 이런 패턴들을 효과적으로 사용하기 위해선 패턴을 잘 활용해야 한다.
- 처음엔 그냥 따라해보기
- 몸에 숙달되면 나에 맞게 적용해보고 바꿔보기
- 계층형은 웹 → 도메인 → 영속성, 클린 아키텍쳐는 웹 → 도메인 ← 영속성 형태로 의존성 방향이 변경된다.
클린 아키텍쳐가 뭐죠?
- 결국 좋은 아키텍쳐는 의존성의 방향이 도메인 쪽을 향해야 한다는 것입니다.
아키텍쳐별 클래스와 패키지
