Skip to content

관심사의 분리

관심사의 분리 published on 관심사의 분리에 댓글 없음

관심사의 분리(SoC; Separation of Concerns)

애플리케이션을 서로 겹치지 않는 개별 단위로 나누는 과정을 말하며, 각각은 자체적인 경계를 지닌다. 관심사는 피처(feature), 기능, 관심정보, 데이터, 프로세스일 수 있다.

관심사의 분리가 유용한 이유는 한 영역이 다른 영역과 격리되기 때문에 다른 영역에 영향을 주지 않고도 변경할 수 있다는 것이며, 애플리케이션의 전체적인 유지보수가 용이해진다.

변경이 지역화되기 때문에 디버그, 문제 격리와 식별이 용이해지고, 코드 중복이 줄어들이 코드 재사용이 증진된다.

관심사의 구현으로 메서드, 클래스, 패키지, 컴포넌트, 폴더 계층구조, 계층, 티어, 라이브러리, 설치 프로그램, 테이블, 데이터베이스, 애플리케이션, 서비스가 있다.

관심사의 분리의 실제 사례로는 HTML/CSS/자바스크립트의 분리와 MVC 패턴이 있다.

관심사는 기능적/비기능적, 시간, 위치, 특수화/일반화, 목적에 따라 분리할 수 있다.

관심사의 분리에 사용되는 전략

  • 피처와 어스펙트(features and aspects)
  • 티어와 계층(tiers and layers)
  • 단계적 정제(stepwise refinement)
  • 모듈화(modularization)

출처: SOFTWARE DESIGN PRINCIPLES

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax