본문 바로가기

TIL

Day18

### 관심사의 분리

- 관심사의 분리(separation of concerns,SoC)란?
    - 컴퓨터 프로그램을 구별된 부분으로 분리시키는 디자인 원칙으로, 각 부문은 개개의 관심사를 해결한다.
    - 관심사란 컴퓨터 프로그램 코드에 영향을 미치는 정보의 집합니다. 관심사는 코드 최적화가 필요한 하드웨어의 세세한 부분만큼 포괄적이거나, 시작할 클래스의 이름처럼 구체적일 수 있다.
    - SoC를 구현하는 프로그램은 모듈러 프로그램이라고 부른다.
    - 모듈식, 즉 관심사의 분리는 정보를 잘 정의된 인터페이스가 있는 코드 부분 안에 캡슐화시킴으로써 달성한다.
    - 캡슐화는 정보 숨기기의 한 수단이다.
    - 정보 시스템의 계층화된 디자인은 관심사 분리의 다른 구현이다.
- 관심사 분리의 장점
    - 관심사 분리를 이용하면 프로그램의 설계, 디플로이, 이용의 일부 관점에 더 높은 자유가 생긴다. 이 가운데 일반적인 것은 코드의 단순화 및 유지 보수의 더 높은 수준의 자유이다. 관심사가 잘 분리될 때 독립적인 개발과 업그레이드 외에도 모듈 재사용을 위한 더 높은 정도의 자유가 있다. 모듈이 인터페이스 뒤에서 이러한 관심사의 세세한 부분을 숨기기 때문에 자유도가 높아짐으로써 다른 부분의 세세한 사항을 모르더라도, 또 해당 부분들에 상응하는 변경을 취하지 않더라도 하나의 관심사의 코드 부분을 개선하거나 수정할 수 있게 된다. 또, 모듈은 각기 다른 버전의 인터페이스를 노출할 수 있으며, 이를 통해 중간의 기능 손실 없이 단편적인 방식으로 복잡한 시스템을 업그레이드 하는 자유도를 높여준다.
- 관심사 분리는 추상화의 일종이다. 대부분의 추상화에서처럼 인터페이스의 추가는 필수이며 실행에 쓰이는 더 순수한 코드가 있는 것이 일반적이다. 그러므로 잘 분리된 관심사의 여러 장점에도 불구하고 관련 실행에 따른 불이익이 있기도 하다.

망각의 동물
강의를 듣고 따라하고 이제 알겠다싶어 밥을 먹고 돌아와서 다시 해보려고 하면 기억이 나지 않는다...
코드를 이해하는 것이 아닌 암기하려고 해서 그런건지 이해를 못해서 그런건지 연습 부족인건지 아니면 모든게 다 부족한건지 한참이나 자괴감에 빠져든다.
자괴감에 빠져들다 끝끝내 든 생각은 계속해서 반복하자는 생각이다. 안되면 될 때까지 하는 것이다. 공부를 하며 쓸데없이 낭비 하는 시간을 줄여서 더 많은 공부를 하는 것이 성장하는 지름길이라 생각한다.

'TIL' 카테고리의 다른 글

Day20(생성자)  (0) 2023.02.21
Day19(객체 )  (0) 2023.02.20
Day17(클래스 멤버와 인스턴스 멤버)  (0) 2023.02.18
Day16(클래스,객체,인스턴스,객체 지향 )  (0) 2023.02.17
Day15(static)  (0) 2023.02.16