본문 바로가기
JAVA

관심사의 분리(separation of concerns, SoC)

by winteringg 2022. 8. 14.

관심사의 분리

1) 프로그램을 구별된 부분으로 분리시키는 디자인 원칙.
  - 관심사란 컴퓨터 프로그램 코드에 영향을 미치는 정보의 집합.
  - 관심사는 코드 최적화가 필요한 하드웨어의 세세한 부분만큼 포괄적이거나, 시작할 클래스의 이름처럼 구체적일 수 있음.
  - 관심사의 분리는 정보를 잘 정의된 인터페이스가 있는 코드 부분 안에 캡슐화시킴으로써 달성할 수 있음.

* 캡슐화란?
  - 객체지향 프로그래밍관점에서 캡슐화란 객체의 속성(fields) 과 메서드를 하나로 묶고, 실제 구현 내용 일부를 private 하게 감추어 은닉하는 것을 말함.
  - 접근지정자(private)로 속성이나 메서드를 제한시킴.
  - 접근지정자에 의해 정의된 해당 멤버변수나 함수는 코드 중에 접근 방식을 위반한 코드를 작성하면 컴파일 오류로 처리하고 실행코드 생성을 제한함.

2) 관심사 분리를 이용하면 프로그램의 설계에서 코드의 단순화 및 유지보수에 자유도가 높아짐.
  - 이러한 자유도가 높아짐으로써 다른 부분의 세세한 사항을 모르더라도, 또 해당 부분들을 직접 가서 변경하지 않더라도 하나의 관심사의 코드 부분을 개선하거나 수정할 수 있게 됨.
  - 이를 통해 중간의 기능 손실 없이 단편적인 방식으로 복잡한 시스템을 업그레이드하는 자유도를 높여줌.

'JAVA' 카테고리의 다른 글

객체 지향 프로그래밍  (0) 2022.08.14
연산자  (0) 2022.08.14
상수와 리터럴  (0) 2022.08.14
변수와 자료형  (0) 2022.08.14
JDK 구성 및 기능  (0) 2022.08.14

댓글