Clean Architecture 6부: 세부사항

jiffydev·2021년 5월 6일
0

Clean Architecture

목록 보기
5/5

로버트 C. 마틴의 클린 아키텍처를 읽고 내용 요약 및 생각 정리용 포스트

요약

1. 데이터베이스

이전 포스트에서도 언급했지만 여기서 말하는 데이터베이스는 데이터 구조가 아니라 단순히 데이터에 접근할 수 있는 도구로서의 데이터베이스를 의미힌다.
파일 시스템이든 RDBMS이든 디스크에 저장된 데이터에 접근, 저장하는 방식의 차이일 뿐 둘의 본질은 내가 필요한 데이터를 RAM으로 옮겨주는 도구에 지나지 않는다. 그래서 업무규칙은 데이터가 있다는 것만 알면 될 뿐, 데이터를 어떤 종류의 디스크에서 어떤 방식으로 꺼내오는지에 대해서는 전혀 알 필요가 없다.

2. 웹

GUI는 세부사항이다 -> 웹은 GUI다 -> 따라서 웹은 세부사항이다
웹도 결국은 "입출력 장치"라고 할 수 있다. 그리고 우리는 애플리케이션을 "장치 독립적"으로 만들어야 한다고 수없이 들어왔을 것이다. 따라서 웹은 핵심 업무규칙과는 거리를 두어야 한다.

3. 프레임워크

프레임워크는 분명 편리하지만 애플리케이션과의 결합을 유도하므로 신중하게 사용해야 한다.

  • 프레임워크는 업무 규칙을 만들 때도 자신의 코드를 상속하도록 요구함으로써 의존성 규칙을 위반하게 한다.
  • 프레임워크는 초기 기능 제작에는 유리하지만, 프로젝트가 확장될수록 프레임워크로 인한 제약이 늘어난다.
  • 프레임워크가 업그레이드 됨으로 인해 애플리케이션이 영향을 받고, 심지어 사용중이던 기능이 사라질 수도 있다.

이러한 이유로 프레임워크는 사용하더라도 반드시 원의 바깥에 위치시켜야 한다.

으악 포인트

  • 개발에 입문했을 때 django로 프로젝트를 만들었다. 개발 지식이 전무했을 때는 장고에서 제공하는 수많은 유틸리티, 구조가 도움이 되었지만, 돌이켜보면 거의 모든 코드가 장고와 결합된 것이라 섬뜩하다. 만약에 프로젝트가 더 커져서 장고의 기본 구조만으로는 버틸 수 없을 때, 결합된 코드들을 온전히 분리할 수 있을까?

질문

소감

  • 실질적인 마지막 챕터인데, 여기까지 오면서 이 책을 100% 이해했다고는 말할 수 없지만, clean architecture를 기반으로 한 회사 코드와 이 책의 내용을 함께 보면서 좋은 아키텍처란 무엇인지, 현재 코드에서 개선할 점은 있는지 찾아보아야 한다.

추가 사항

profile
잘 & 열심히 살고싶은 개발자

0개의 댓글