네트워크/네트워크 이론

OSI 7 Layer 개념 정리

Almon 2025. 6. 6. 04:48

 OSI 7 Layer

 

OSI 7 Layer 란?

OSI 7 계층(OSI 7 Layer)은 국제 표준화 기구(ISO)에서 네트워크 통신의 점검과 유지보수를 체계적으로 수행할 수 있도록 네트워크 통신 과정에서 사용되는 프로토콜과 역할을 7개 계층으로 나누어 정의한 모델입니다. 이는 우리가 더 쉽게 이해하기 위해 개념적으로 만든 것으로 실제 OSI 모델은 네트워킹 중 어떤 역할도 수행하지 않습니다.

출처: Ardika6879, Wikimedia Commons

 

OSI 7 Layer 구성

네트워크 통신이 어떻게 이루어지는지를 이해하기 위해, 7계층(응용 계층)부터 1계층(물리 계층)까지 순서대로 살펴보겠습니다.

 

 7계층: 응용 계층 (Application Layer)

응용 계층은 HTTP, SMTP, FTP 등과 같은 프로토콜이 동작하는 계층으로, 데이터의 출발지이자 최종 목적지 역할을 합니다.
우리는 웹 브라우저, 메일 클라이언트 등 다양한 애플리케이션을 통해 이 계층을 자연스럽게 사용하고 있으며, 전송되는 모든 데이터는 결국 송신 측의 응용 계층에서 시작해 수신 측의 응용 계층에 도달합니다.

항목 내용 예시
계층 목적 사용자와 응용 프로그램이 네트워크에 접근할 수 있도록 인터페이스 제공 브라우저, 이메일 클라이언트
주요 역할 응용 프로토콜을 통해 데이터 생성 및 응답 처리 웹 요청/응답, 메일 송수신
대표 프로토콜 HTTP, HTTPS, FTP, SMTP, POP3 등 HTTP 요청, SMTP 메일 전송
데이터 형태 사용자 입력 또는 서버 응답 결과물 HTML, JSON, 이메일 본문
동작 예시 사용자가 브라우저에서 naver.com 입력 -> HTTP Request 생성

 

아래 이미지는 사용자가 naver.com에 접속했을 때, 7계층(응용 계층)에서 생성된 HTTP Request 메시지입니다.
해당 요청은 브라우저가 생성한 것으로, GET /, 헤더(Host, User-Agent 등), 쿠키 등의 정보가 포함되어 있으며, 웹 서버와 통신을 위해 HTTP 프로토콜 형식에 따라 구성되었습니다.

HTTP Request

 

 

6계층: 표현 계층 (Presentation Layer)

표현 계층은 TEXT, JPEG, MP4 등과 같은 데이터 형식에 맞게 정보를 인코딩하거나 암호화하는 역할을 수행하는 계층입니다.
우리가 전송하는 데이터는 이 계층을 통해 문자 인코딩, 데이터 직렬화, 파일 포맷 설정 등의 과정을 거치며, 필요에 따라 암호화됩니다.
수신 측에서는 송신 측에서 수행한 암호화를 복호화하고, 인코딩된 데이터는 원래의 형식으로 디코딩하여 응용 계층에서 사용할 수 있도록 준비합니다.

항목
내용 예시
계층 목적 데이터의 표현 방식을 표준화하여 시스템 간 호환성과 이해 가능성 확보 서로 다른 운영체제 간 텍스트, 이미지, 영상 등을 동일하게 표현
주요 역할 인코딩/디코딩, 암호화/복호화, 압축/해제 등 데이터 표현 방식 통일 UTF-8 문자 인코딩, AES 암호화, GZIP 압축
데이터 형식 다양한 표현 형식, 문자 인코딩, 파일 포맷, 데이터 직렬화 ASCII, UTF-8, JPEG, MPEG, JSON, XML
동작 예시 클라이언트가 폼 입력값을 UTF-8로 인코딩 후 전송
REST API 요청 시 JSON 포맷으로 직렬화
이미지 업로드 시 JPEG 포맷 유지
HTTP 요청 시 Accept-Encoding: gzip 헤더 포함하여 압축 응답 요청

 

아래 이미지는 6계층과 관련된 요청 정보를 나타낸 것입니다. Accept로 시작하는 각 항목은 클라이언트가 수신 가능한 데이터의 표현 방식을 서버에 전달합니다.

각각 다음과 같은 의미를 가집니다.

Accept-Language: 문자 인코딩 및 언어 설정

Accept: 파일 포맷 및 콘텐츠 유형 지정 (MIME 타입)

Accept-Encoding: 데이터 압축 방식 지정 (gzip, deflate 등)

표현 계층과 관련된 헤더

 

 

 5계층: 세션 계층 (Session Layer)

세션 계층은 원래 수신자와의 연결을 유지하고, 사용자 세션을 관리하는 역할을 담당하는 계층입니다.
하지만 현재는 세션 관리는 주로 7계층(응용 계층)에서, 연결 유지는 4계층(전송 계층)에서 구현하기 때문에, 세션 계층은 개념적으로만 존재하는 경우가 많습니다. 그럼에도 세션의 복구 기능(RDP 등)처럼 여전히 활용되는 경우도 있습니다.

항목
내용 예시
계층 목적 통신하는 두 장치 간의 세션(논리적 연결)을 생성, 유지, 종료하여 대화 흐름을 관리 로그인 세션 유지,
다중 채팅방 연결,
원격 데스크톱 세션
주요 역할 세션 생성 및 종료
통신 동기화 지점 설정
세션 복원
다중 세션 동시 관리
FTP 연결 유지,
Zoom 통화 세션,
RDP 재접속 시 이전 상태 복구
구현 방식 세션 계층의 기능은 개념적으로는 5계층에 속하지만, 실제로는 4계층(TCP)과 7계층(HTTP 등) 기술들이 해당 기능을 구현하는 경우가 많음 TCP는 연결 유지,
HTTP는 세션 ID로 상태 관리,
RDP의 세션 유지
동작 예시 사용자가 로그인하면 세션 ID가 생성되어 요청마다 상태를 유지 ( RDP 재접속 시 작업 상태 유지 )
끊긴 통신을 재연결 시 동일 세션으로 복원 (중단된 다운로드 재시작)
동시에 여러 채널 접속 시 각 세션 분리 관리 (카카오톡 여러 채팅방 동시 유지)

 

아래 이미지는 RDP로 연결 후 재접속했을 때 작업 상태가 유지되는 모습입니다.
이는 5계층 세션 계층의 기능인 논리적 연결 유지를 보여주는 대표적인 예시입니다.

사용자가 RDP로 서버에 로그인하면, 사용자 세션이 생성되어 서버의 RAM에 유지됩니다. 이후 해당 세션에서 PowerShell을 실행한 뒤, 연결이 끊기더라도 TCP 연결만 사라질 뿐, 세션 자체는 여전히 유지되고 있습니다.
사용자가 다시 접속하면 새 세션을 생성하는 것이 아니라, 기존에 유지되던 세션에 다시 접속하게 되므로, 실행 중이던 프로그램과 작업 상태가 그대로 유지됩니다.
이처럼 논리적인 연결 상태를 유지하는 것은 OSI 5계층(Session Layer)의 개념적 역할입니다

rdp 처음 접속
연결을 끊고 재연결

 

 

 4계층: 전송 계층 (Transport Layer)

전송 계층은 TCP(연결 지향) 또는 UDP(비연결 지향)와 같이 데이터 전송 방식을 결정하는 계층입니다.

우리가 보내는 데이터는 이 계층에서 TCP 또는 UDP 방식 중 하나로 처리되며, TCP의 경우 3-way handshake를 통해 안정적인 연결을 수립하고, 세션을 유지하는 기능 등, 원래 세션 계층이 담당하던 수신자와의 연결 관리 역할도 전송 계층(TCP)에서 수행됩니다.

또한 전송 계층은 포트 번호를 통해 어떤 응용 프로그램과 통신할지를 구분하며, TCP의 경우 시퀀스 번호를 사용하여 데이터의 순서를 추적하고 재조립할 수 있도록 지원합니다.

항목
내용 예시
계층 목적 송신자와 수신자 간의 데이터 전송 및 종단 간 연결(End-to-End) 관리 브라우저에서 웹페이지 요청 시, 요청이 손실되지 않고 정확히 전달되도록 보장
주요 역할 포트 번호를 통해 애플리케이션 식별
시퀀스 번호를 통해 데이터의 순서 추적 및 재조립

흐름 제어 및 혼잡 제어
오류 감지 및 재전송
연결 설정/종료
TCP 3-way handshake
데이터 재전송
패킷 순서 정렬
대표 프로토콜 TCP(연결형, 신뢰성 보장)
UDP(비연결형, 속도 우선)
TLS/SSL(암호화)
TCP(HTTPS, FTP)
UDP(스트리밍, VoIP)
구현 방식 운영체제의 소켓 인터페이스에서 구현되며, 포트 번호 기반으로 통신을 담당 웹 브라우저는 TCP 443 포트로 HTTPS 요청 전송
동작 예시 사용자가 브라우저에 naver.com 입력
-> TCP 443 포트로 3-way handshake 수행
-> TLS handshake후 데이터 암호화
-> TCP 연결을 통해 HTTPS 요청 송신 및 응답 수신
종단 간 연결(End-to-End Connect): 데이터 전송의 양 끝단인 송신자와 수신자 애플리케이션이 중간에 존재하는 라우터, 방화벽 등 여러 네트워크 장비들을 거치더라도 마치 직접 연결되어 있는 것처럼 통신하도록 관리하는 방식입니다. 이는 주로 전송 계층(TCP)이 제공하며, 신뢰성 있는 통신, 순서 보장, 오류 복구 등을 통해 실현됩니다.

흐름 제어: 네트워크 전송 속도가 아무리 빠르더라도, 수신자의 버퍼가 가득 차면 데이터를 수신하지 못하고 손실될 수 있습니다. 이를 방지하기 위해 송신자는 수신자의 처리 능력에 맞춰 전송 속도를 조절해야 하며, 이러한 기능을  흐름 제어(Flow Control)라고 합니다. 이때 수신자가 한 번에 받을 수 있는 최대 바이트 크기인 윈도우 크기(Window Size)를 기준으로 삼습니다.

혼잡 제어: 네트워크 경로 상에 너무 많은 패킷이 몰려 혼잡 상태가 발생하면, 패킷 손실, 지연 증가, 재전송 폭증 등이 일어날 수 있습니다. 이런 상황을 막기 위해, 송신자는 네트워크의 상태를 감지하고 전송 속도를 자동으로 조절합니다. 이는 주로 TCP 프로토콜에서 사용되며, 네트워크에 부담을 주지 않기 위해 혼잡 윈도우(Congestion Window, cwnd) 값을 조절합니다. 이러한 조절은 BBR과 같은 혼잡 제어 알고리즘에 의해 이루어집니다.

* TCP 데이터 전송은 윈도우 크기(Window Size)와 혼잡 윈도우(Congestion Window) 중 더 작은 값을 기준으로 최대 전송 바이트 크기가 결정됩니다.

소켓(Socket): 응용 프로그램이 운영체제의 네트워크 계층과 통신하기 위해 사용하는 인터페이스입니다. 소켓은 운영체제의 커널 내부에서 구현되며, 네트워크 통신을 위해 필요한 IP 주소와 포트 번호를 기반으로 송신자와 수신자의 연결을 설정합니다.
특히 TCP/UDP와 같은 전송 계층 프로토콜을 사용하여, 포트 번호를 기준으로 데이터가 어떤 프로세스로 전달될지 결정됩니다. 응용 프로그램은 소켓을 통해 데이터를 읽고 쓰며, 실제 패킷 송수신, 흐름 제어, 오류 처리 등의 저수준 작업은 운영체제가 담당합니다.

 

아래 이미지는 naver.com을 입력했을 때 가장 먼저 일어나는 4계층의 3-way handshake 과정입니다.

클라이언트가 서버로 SYN 패킷을 보내고 서버가 SYN 패킷을 받으면 SYN, ACK 패킷을 보내고 클라이언트가 패킷을 받으면 ACK 패킷을 보내며 서로 통신이 연결되었다고 확인하는 절차입니다.

tcp 3-way handshake

TLS handshake와 암호화된 HTTPS 데이터가 오고 가는 패킷 이미지입니다.

Client Hello는 TCP 연결이 이루어진 후 클라이언트가 서버로 TLS 암호화를 요청하는 패킷입니다.

Server Hello는 서버가 연결을 수락하고 암호화 방식을 결정하는 패킷입니다.

Change Cipher Spec은 하위버전 호환용으로 남아있는 패킷입니다.

Application Data는 암호화된 HTTPS 요청 및 응답 메시지로 TLS 1.3을 통해 암호화되어 wireshark를 이용해도 내부 내용을 확인할 수 없습니다.

TLS handshake

 

아래는 Wireshark를 사용하여 TCP 패킷의 시퀀스 번호(Sequence Number)를 확인한 이미지입니다.

TCP는 전송한 데이터가 중간에 손실되거나 순서가 뒤바뀌는 상황에서도 안정적인 통신을 보장하기 위해, 각 패킷에 시퀀스 번호를 부여하여 수신 측에서 데이터를 올바른 순서로 재조립합니다.

이 시퀀스 번호는 Wireshark의 TCP 프로토콜 분석 항목에서 확인할 수 있으며, 패킷 간의 데이터 흐름 및 재전송 여부를 분석하는 데 중요한 역할을 합니다.

시퀀스 번호 1802
시퀀스 번호 1894

 

 

 3계층: 네트워크 계층 (Network Layer)

네트워크 계층은 IP 주소를 작성하고, 데이터를 목적지까지 전달하기 위한 라우팅을 담당하는 계층입니다.
이 계층에서는 송신자와 수신자의 IP 주소를 패킷에 포함시키고, 데이터가 여러 네트워크를 거쳐 최종 목적지에 도달할 수 있도록 적절한 경로를 선택(라우팅)합니다.

또한, 네트워크 계층은 IP, ICMP, IGMP, IPSec 등의 프로토콜로 구성되어 있으며, IP 헤더에는 상위 전송 계층(TCP, UDP 등)을 구분하기 위한 프로토콜 번호(Protocol Number) 필드도 포함되어 있습니다.
예를 들어 TCP는 프로토콜 번호 6번, UDP는 17번, ICMP는 1번으로 정의되어 있어 패킷이 수신자의 전송 계층에 전달될 때 어떤 프로토콜을 사용할지 알 수 있습니다.

항목
내용 예시
계층 목적 서로 다른 네트워크 간에 데이터를 전달하기 위해 IP 주소를 기반으로 경로를 설정하고 전달 인터넷에서 한국에 있는 PC가 미국 서버와 통신할 수 있도록 라우터를 통해 경로 설정
주요 역할 IP 주소를 통한 호스트 식별
최적 경로 선택(라우팅)
패킷 분할 및 재조립
오류 알림(ICMP)
IP 기반 전송
라우터가 목적지로 패킷 전달
ICMP로 목적지 도달 실패 알림
구현 방식 운영체제의 네트워크 스택에서 IP 주소 지정 및 라우팅 기능이 구현되며, 라우터는 하드웨어 수준에서 경로 결정 윈도우/리눅스의 IP 설정
라우터의 라우팅 테이블 설정
동작 예시 라우터가 수신한 패킷의 목적지 IP를 확인해 다음 홉으로 전달
인터넷 접속 시 공인 IP를 기준으로 서버와 통신
TTL(Time To Live) 값 감소로 루프 방지

 

윈도우에서 route print를 이용해 라우팅 테이블을 확인할 수 있습니다. 현재 제 컴퓨터는 0.0.0.0 그러니까 모든 IP 주소에 대해 게이트웨이인 192.168.0.1을 통해 데이터를 전달할 수 있다는 것을 확인할 수 있습니다. 사실 192.168.0.1은 내부 네트워크의 게이트웨이로 공유기를 의미합니다. 공유기의 WLAN 포트를 통해 ISP의 라우터인 공인 게이트웨이로 전송되어 목적지로 라우팅을 하게 됩니다.

라우팅 테이블 확인

 

윈도우에서는 tracert 명령어를 이용하면 대상 IP 혹은 도메인까지 도달하는 라우팅 경로를 확인할 수 있습니다.

아래 이미지는 google.com 도메인에 도달하는 경로로 제 PC에서 출발한 패킷은 내부 게이트웨이(공유기)를 지나 ISP의 라우터를 통한 뒤 외부의 네트워크로 향하게 됩니다. 그렇게 중간 라우터를 거치다 8번째 홉부터는 구글 소유의 라우터로 진입하게 됩니다.

이처럼, 목적지 서버에 도달할 때까지 패킷은 라우터를 하나씩 거치며 전달되는 방식으로 전달됩니다.

라우팅 경로 확인

 

ping 명령어를 사용하여 naver.com에 패킷을 보낼 때, TTL(Time To Live) 값을 1로 설정하면, 패킷이 첫 번째 라우터를 통과한 뒤 TTL이 0이 되어 더 이상 전송되지 않고 폐기됩니다. 이로 인해 "TTL이 만료되었습니다."라는 응답 메시지를 받게 되고, 이는 ICMP Time Exceeded 메시지입니다.

TTL(Time To Live)은 패킷이 라우터를 하나 지날 때마다 1씩 감소하며, 최대 255까지 설정이 가능합니다. 이는 라우팅 루프 방지와 네트워크 경로 제어를 위한 메커니즘입니다.

ping 요청

 

IP 헤더에는 Protocol 번호가 포함되어 있으며, 이는 수신 측이 해당 IP 패킷의 데이터를 어떤 4계층 프로토콜로 처리해야 할지를 판단하는 기준이 됩니다.
예를 들어, 프로토콜 번호 6번은 TCP, 17번은 UDP를 의미합니다. 수신 측은 이 값을 확인하여, IP 페이로드(세그먼트, 데이터그램)를 해당 전송 계층 프로토콜(TCP, UDP 등)로 전달하게 됩니다.

프로토콜 번호 확인

 

 

 2계층: 데이터 링크 계층 (Data Link Layer)

데이터 링크 계층은 ARP, Ethernet, 무선 LAN, VLAN과 같은 프로토콜이 동작하는 계층입니다.

이 계층에서는 상위 계층(네트워크 계층)에서 전달받은 IP 패킷을 전송하기 위해, 라우팅 테이블을 참조해 결정된 다음 홉의 IP 주소를 ARP를 통해 MAC 주소로 변환하고, 이 MAC 주소를 프레임 헤더에 추가하여 전송합니다.

또한 프레임 전송 시에는 CRC(Cyclic Redundancy Check) 등의 방식으로 오류 검출을 수행하며, 일부 프로토콜에서는 흐름 제어 기능을 통해 수신 측이 처리 가능한 속도에 맞춰 데이터를 조절하기도 합니다.
이렇게 구성된 프레임은 한 홉씩 다음 장비로 전달되는 과정을 반복하며 최종 목적지까지 도달하게 됩니다.

항목
내용 예시
계층 목적 인접한 네트워크 장비 간에 프레임 단위의 안정적인 데이터 전송을 담당 PC -> 스위치, 라우터 -> 라우터 사이의 데이터 전송
주요 역할 MAC 주소를 이용한 목적지 지정
프레임 생성 및 전송
오류 검출 (CRC)
흐름 제어 일부 담당
목적지 MAC 지정(송신)
오류 감지 후 유효성 확인(수신)
대표 프로토콜 Ethernet
ARP
802.11 (WiFi)
PPP (Point-to-Point Protocol)
HDLC(High-Level Data Link Control)
유선 LAN(Ethernet)
무선 LAN(WiFi)
MAC 주소 조회(ARP)
ISP와 모뎀 사이의 통신(PPP)
라우터간 통신(HDLC)
구현 방식 네트워크 카드(NIC)에서 동작하며, MAC 주소 기반으로 프레임을 송수신 이더넷 카드가 목적지 MAC 주소로 프레임 전송Wi-Fi가 MAC으로 무선 전송 수행
동작 예시 사용자가 naver.com에 접속
-> ARP로 라우터 MAC 주소 조회
-> 목적지 MAC으로 프레임 구성
-> 라우터로 프레임 전송
-> 이후 각 라우터는 목적지 IP를 기준으로 다음 홉(라우터)을 결정하고,
새로운 MAC 주소로 프레임을 구성하여 전달

-> 이 과정을 반복하며 네이버 웹 서버에 도달

 

Wireshark를 사용하면 네트워크 통신 중 이더넷 프레임의 출발지(Source)와 도착지(Destination) MAC 주소를 확인할 수 있습니다. 이 중 Source에 표시된 MAC 주소는 제 PC의 랜카드의 MAC 주소를 의미하며, 해당 프레임이 제 PC에서 출발했다는 것을 나타냅니다.

반면 Destination에 표시된 MAC 주소는 내부 네트워크의 게이트웨이이자 공유기인 ipTIME의 MAC 주소입니다.

Wireshark는 제 PC를 기준으로 송수신되는 패킷만 캡처하기 때문에, 외부로 나가는 요청의 가장 첫 도착지인 공유기의 MAC 주소가 프레임의 목적지로 설정된 것을 확인할 수 있습니다.

네트워크 통신 중 MAC 주소 확인

 

ARP 요청과 응답 역시 Wireshark를 통해 직접 확인할 수 있습니다.
아래 이미지는 공유기(192.168.0.1)가 제 PC(192.168.0.3)의 MAC 주소를 알기 위해 ARP 요청을 하는 모습입니다.

이때 공유기는 “192.168.0.3 IP를 가진 장치야 MAC 주소가 뭐야?”라고 네트워크 전체에 브로드캐스트 방식으로 요청을 보냅니다.
이는 MAC 주소 없이는 IP 기반 통신이 불가능하기 때문입니다. 이에 대해 제 PC는 “내가 192.168.0.3이고, 내 MAC 주소는 70:85:c2:~~~”라고 ARP 응답을 보내며 공유기가 자신을 식별하고 통신할 수 있도록 합니다.

이처럼 ARP(Address Resolution Protocol)는 2계층(MAC)과 3계층(IP)을 연결하는 역할을 하며, IP 주소를 통해 네트워크에 연결된 장치의 물리적 주소(MAC)를 알아내는 방식으로 동작합니다.

ARP 요청과 응답

 

 

 1계층: 물리 계층 (Physical Layer)

물리 계층은 데이터 전송의 가장 하위 계층으로, 실제 전기 신호, 빛 신호, 무선 신호 등의 형태로 데이터를 주고받는 역할을 담당하는 계층입니다.

이 계층에서는 전압(0, 1 구분), 주파수(5GHz 등), 비트 전송률(1Gbps 등), 케이블의 길이 및 커넥터 형태(이더넷 케이블 등) 등 물리적인 특성을 정의하며, 데이터를 0과 1의 비트 형태로 변환하여 전송합니다.

주로 이더넷 케이블, 광케이블, 허브, 리피터 등의 장비들이 이 계층에서 동작합니다.

항목 내용 예시
계층 목적 0과 1로 이루어진 비트 데이터를 실제 전기 신호, 빛 신호, 무선 신호 등으로 변환하여 전송 매체(케이블)를 통해 전달 LAN 케이블을 통해 데이터를 전기 신호로 전송
Wi-Fi로 데이터를 무선 전송
주요 역할 신호 인코딩/디코딩
전송 매체 선택 및 제어
전송 속도 및 타이밍 동기화
물리적 연결 설정
전기 신호의 전압 크기로 비트 표현
전파 신호의 진폭, 주파수 등으로 비트 표현
비트를 전파/전기 신호로 생성
전선 연결 상태 확인 등
구현 방식 네트워크 장비의 하드웨어(포트, 케이블, 무선 송수신 회로 등)에서 동작하며 신호 생성 및 전송 수행 이더넷 포트에서 신호를 케이블로 출력
WiFi 안테나가 무선 신호를 송출
동작 예시 사용자가 naver.com에 접속
-> 네트워크 인터페이스 카드(NIC)가 0101~~ 비트를 전기 신호로 인코딩
-> UTP 케이블을 통해 공유기로 전송
-> 공유기의 포트가 신호 수신 및 디코딩 수행
-> 다음 홉으로 신호를 재생성하여 전달

 

 

느낀점

공부를 하면서 느낀 점은, OSI 모델이 실제 장비나 기술들과 1:1로 완벽하게 대응되는 구조는 아니라는 것입니다.
예를 들어, 어떤 프로토콜은 여러 계층을 넘나들며 동작하고, 일부 계층은 실질적으로 특정 기술이나 장비에선 생략되거나 통합되어 구현되기도 하죠. 이런 이유로 처음엔 경계가 모호하게 느껴져 혼란스러웠지만, 전체적인 흐름을 이해하고 나니 네트워크 통신 구조가 머릿속에 그려지는 것 같았습니다.
특히, 데이터를 주고받는 과정에서 어떤 계층이 어떤 역할을 하는지 연상할 수 있게 되면서, 와이어샤크 같은 도구를 볼 때도 이해도가 훨씬 높아졌습니다.