응집도와 결합도에 대해서 설명해 주세요.

2025. 1. 23. 09:12·백엔드 면접

응집도(Cohension)는 모듈에 포함된 내부 요소들이 연관되어 있는 정도를 나타냅니다. 결합도(Coupling)는 의존성의 정도를 나타내며, 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 포함합니다.

 

응집도와 결합도는 변경과 관련이 깊습니다. 일반적으로 좋은 설계란 높은 응집도와 낮은 결합도를 가진 모듈로 구성된 설계를 의미하는데요, 변경이 발생하는 경우 특정 모듈만 수정되면 응집도가 높다고 판단할 수 있습니다. 반면, 특정 모듈을 변경하는 경우에 다른 모듈도 변경해야 하는 상황에서는 결합도가 높다고 판단할 수 있습니다.

 

캡슐화의 정도가 응집도와 결합도에 영향을 미치게 됩니다. 캡슐화를 준수하면, 모듈 안의 응집도는 높아지고 모듈 사이의 결합도는 낮아집니다. 따라서 응집도와 결합도를 고려하기 전에 먼저 캡슐화를 잘 준수하는 것이 중요합니다.


캡슐화가 무엇인가요?

객체 내부에 세부적인 사항을 감추는 것을 캡슐화라고 합니다. 캡슐화의 목적은 변경하기 쉬운 객체를 만드는 것입니다. 캡슐화를 통해 객체 내부로의 접근을 제한하면 객체와 객체 사이의 결합도를 낮출 수 있기 때문에 더욱 쉽게 변경할 수 있습니다. 

 

만약 캡슐화가 제대로 되어 있지 않다면, 클라이언트 코드로 변경이 전파되어 변경이 쉽지 않을 수 있으며, 그리고 협력을 재사용하기 어렵게 만듭니다. 따라서 캡슐화는 객체 지향 프로그래밍에서 기본기로 여겨집니다.

'백엔드 면접' 카테고리의 다른 글

관계형 DB와 비 관계형 DB의 차이점은 무엇인가요?  (0) 2025.01.17
HTTP/1.1과 HTTP/2.0에 대해서 설명해 주세요.  (0) 2025.01.16
프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?  (0) 2025.01.15
스케일 아웃과 스케일 업의 차이점을 설명해 주세요.  (0) 2025.01.14
ACID에 대해서 설명해 주세요.  (0) 2025.01.13
'백엔드 면접' 카테고리의 다른 글
  • 관계형 DB와 비 관계형 DB의 차이점은 무엇인가요?
  • HTTP/1.1과 HTTP/2.0에 대해서 설명해 주세요.
  • 프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?
  • 스케일 아웃과 스케일 업의 차이점을 설명해 주세요.
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드 면접
    토스 페이먼츠
    티스토리챌린지
    스프링
    데브코스
    오블완
    raid
    자바
    JPA
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
응집도와 결합도에 대해서 설명해 주세요.
상단으로

티스토리툴바