Clean Code, Clean Architecture

jiji·2023년 10월 14일

Developer

목록 보기
7/12

"Clean code does one thing well.”
클린 코드는 하나의 일을 잘 하는 코드이다.
- Bjarne Stroustrup, inventor of ‘C++

“Clean code is simple and direct."
클린 코드는 간결하며, 직접적이다.
- Grady Booch, author of ‘Object-Oriented Analysis and Design with Applications’

✨ 클린 코드란?

  1. 원하는 로직을 빠르게 찾을 수 있는 코드
  2. 다른 사람이 이해하기 쉽도록 작성된 코드
    => 가독성 좋은 코드

how

  1. 주석을 최소한으로
    코드가 스스로 설명하게 끔 - Self-Descriptive
  2. null을 리턴하거나, 인수로 받지 말자
  • 응집도 : 같은 목적의 코드는 뭉쳐두어야한다.
    - 핵심 데이터는 보여주고, 세부 구현은 숨기자
    => 선언적 프로그래밍이라 함(<-> 명령형 프로그래밍)
  • 단일책임 : 하나의 일만 하는 뚜렷한 이름의 함수를 제작한다.
  • 추상화 : 핵심 개념을 뽑아야한다.

✨ 클린 아키텍쳐란?

시스템의 각 요소들을 명확하게 분리하면서도, 유연하게 연결될 수 있도록 디자인 하는 SW 설계 구조

  • 특정 기능의 수정 및 추가가 전체 시스템에 영향을 미치지 않고 기획자의 요구사항 등에 따라 유연하게 적용 가능합니다.
  • SW를 모듈화하여, 유지 보수가 용이하다는 장점(+확장성)

why

  1. 구성 요소 분리
    클린 아키텍처는 소프트웨어 시스템의 다양한 부분을 독립적인 구성 요소로 분리하는 것을 강조하기에, 시간이 지남에 따라 시스템을 더 쉽게 유지 관리할 수 있습니다.

  2. 모듈화
    클린 아키텍처는 모듈식 설계를 권장합니다. 이는 시스템의 개별 구성 요소를 분리해, 테스트와 유지보수를 쉽게 만들어 줍니다.

  3. 확장성
    클린 아키텍처는 시스템 구축에 사용되는 기본 기술과 요구사항의 변화를 수용할 수 있는 확장 가능한 설계를 제공합니다.

  4. 재사용성
    클린 아키텍처는 여러 시스템에서 재사용 가능한 컴포넌트를 만드는 것을 장려합니다.
    이이 따라, 개발자가 다른 SW혹은 기능을 개발 할 때 구축하는 데 필요한 시간과 노력이 줄어들게 됩니다.

  5. 개념의 단순함
    클린 아키텍쳐의 개념은 단순하고, 이해 하기도 굉장히 간단합니다.
    워낙 개념이 이해하기 쉽기에 여러 개발자들과 IT 스타트업들이 도입을 시도했고, 하나의 큰 트렌드로 이어지게 되었습니다.

how

  1. 안으로 갈 수록 변경 가능석이 낮아야 한다.
    원의 안쪽에는 잘 변경되지 않는 기능
    바깥은 반대.(UI, DB..)
  2. 외부 영역은 내부 영역에 의존 가능, 반대는 불가.
    각 계층 간 의존성이 낮아지고 역할 구분이 확실해 진다. 이를 통해 유지보수가 수월해짐.
  3. 프레임워크에 의존하지 않는다
    의외로, 가장 바깥쪽에 프레임워크가 위치해 있다.
    프레임워크는 어디까지나 개발 생산성을 높이는 도구이다. 이것으로 내부의 로직이 좌우되면 안된다!
  4. 유스케이스(UseCases)는 아키텍처에서 최우선이다.
    유즈케이스는 비즈니스 로직을 담당하므로 어플리케이션의 핵심이다.

reference
https://blog.toktokhan.dev/%EC%9A%94%EC%A6%98-%EB%8C%80%EC%84%B8-clean-architecture-67b80df66c6

0개의 댓글