Skip to content

1.3 아키텍처의 중요성 #1467

@jongfeel

Description

@jongfeel

1.3 아키텍처의 중요성

1.3.1 거대한 진흙 덩어리

하나의 프로그램에 모든 처리를 기술하는 것은 실질적으로 불가능하기 때문에 여러 구성요소로 나누어 처리합니다.
객체지향 언어에서는 주로 클래스 단위로 분할합니다.

분할한 구성 요소들 사이에는 일종의 관계가 형성됩니다.
소프트웨어 구성 요소가 많아질수록 의존 관계 역시 늘어나며 전체적인 복잡도가 높아집니다.
분할 하는데 아무런 고려 없이 한다면 의존 관계가 복잡하게 얽히게 되서 거대한 진흙 덩어리Big ball of mud로 부르는 안티패턴에 빠질 수 있습니다.

이런 상황에서 요구사항 변경에 대응하려고 할 때 문제가 발생합니다.

  • 어떤 부분을 수정해야 할지 특정하기 어렵다.
  • 같은 수정을 여러 군데에서 반복해야 한다.
  • 수정한 내용이 다른 기능에 얘기치 않은 영향을 줄 수 있다.

1.3.2 내부 품질 개선을 위한 방침

누가 작성하든 일관되게 좋은 코드가 유지될 때 소프트웨어가 어질리티를 갖췄다고 할 수 있습니다.
어질리티를 가지려면 변화에 쉽게 대응할 수 있도록 코드의 유지보수성과 확장성을 높여 소프트웨어의 내부 품질을 향상시키는 것이 중요합니다.
이를 가능하게 하는 핵심이 바로 일관된 방침과 체계적인 구조이며, 이것이 소프트웨어 아키텍처입니다.

Metadata

Metadata

Assignees

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions