Encapsulation, Encapsulating   캡슐화

(2020-11-08)

인캡슐레이션


1. [ 통신분야 ]통신분야에서의 캡슐화
     - OSI 계층모델에서 사용자 데이타가 각 계층을 지나면서, 
     - 하위 계층은 상위 계층으로부터 온 정보데이터로 취급하며,
     - 자신의 계층 특성을 담은 제어정보(주소,에러제어 등)를 헤더화시켜,
     - 이를 붙이는(포장하는) 일련의 과정

  ㅇ 통신계층의 각 계층에서 캡슐화하는 과정에 대한 설명 例
     - OSI의 7 계층모델에서 정보가 응용계층으로부터 물리계층까지 전달될 때, 
     - 각 계층은 특정제어정보(주로 Header)를 추가 (캡슐화)
       

     - 각 과정의 例)
        . 표현계층전송비트 수의 감소를 위해 압축 알고리즘을 사용했다고 표시하는 등
        . 세션계층세션 구별번호의 추가 등
        . 트랜스포트계층패킷 순서번호의 추가 등
        . 네트워크계층은 송수신 주소,가상회선 번호를 추가할 수 있는 등
        . 데이타링크계층프레임 순서번호의 추가 등
        . 물리계층에러 제어 비트를 추가하는 등

     - 위의 역 과정
        . 이와같이 각 계층에서 추가된 특정한 프로토콜 제어 정보(PCI,헤더)들을
        . 통신의 상대측에서는 위의 역순으로 제거하면서 응용계층까지 도달

  ※ [참고] ☞ IP 데이터그램 캡슐화터널링 (Tunneling)
     - 이때의 캡슐화는,
     - 어떤 네트워크 형태에 맞는 프레임을 다른 형태의 네트워크 프레임 안에 수납시키는 것을 의미


2. [ 전산분야 ]

  ㅇ 캡슐화
     - `외부에 대한 가시적인 부분`과 `내부 및 구현에 관계되는 세부적인 사항`을
       분리하는 모델링 및 구현기법

     - 즉,
        . ① 복잡하고 불필요한 부분 등을 사용자에게 안보이게 하고,
        . ② 외부세계와 인터페이스를 잘 할 수 있도록 표준화시킨 포장이 되도록 함
           .. 즉, 객체를 잘 사용키 위해, 인터페이스를 통해 객체 사용토록, 캡슐화하는 것

  ㅇ OOP(객체지향 프로그래밍) 캡슐화
     - 데이터(변수) 및 함수(처리방법,메소드)를 논리적으로 하나로 묶어놓는 것
        . 한편, 클래스화는 캡슐화를 지원하는 도구인 셈               ☞ 클래스 참조
           .. 클래스변수들은 메소드를 통해서 만 변경시키는 등
           .. 효율화를 위해 메소드의 내부 연산 방법을 바꾸더라도, 동일 기능 수행 가능

     - 임의의 객체 요소에의 접근을 제한하는 방법을 제공             ☞ 접근 제한 수식자 참조
        . 여기서, 접근 제한 수식자 이란?
           .. 메소드프로퍼티 앞에 붙여 다른 객체에게 이를 어느 정도 노출시키는 정도로써의
              보호수준을 결정하는 제한자

     - 한편, 내부 데이터를 캡슐화시켜 변경을 어렵게하고 보호하는 것을,
        . `정보 은닉(Information Hiding)`이라고도 함



Copyrightⓒ written by 차재복 (Cha Jae Bok)