카테고리 없음

프로그래밍 언어 활용

ds3hfj 2025. 5. 8. 19:24

61. 개발에 필요한 환경 구축과 관련하여 하드웨어 환경과 관련이 없는 것은?

  1. Eclipse
  2. Oracle DB
  3. WAS
  4. 웹서버

보기 설명 하드웨어 관련성 판단

Eclipse 개발자가 코드를 작성할 때 사용하는 통합 개발 환경(IDE). 소프트웨어 도구이며, 개발자의 로컬 PC에 설치됨 하드웨어 인프라와 직접 무관 정답
Oracle DB 대규모 데이터 저장 및 관리 시스템 → 운영을 위해 서버, 디스크, 메모리 등 하드웨어 자원 필요 ✅ 관련 있음
WAS (Web Application Server) 웹 애플리케이션을 실행하는 서버, 예: Tomcat, JBoss → 하드웨어 위에서 동작 ✅ 관련 있음
웹서버 정적 컨텐츠(HTML, CSS 등)를 클라이언트에 전달하는 서버 (예: Apache, Nginx) → 물리적 서버 필요 ✅ 관련 있음

 

 

62. UNIX에 대한 설명으로 옳지 않은 것은?

  1. 상당 부분 C 언어를 사용하여 작성되었으며, 이식성이 우수하다
  2. 사용자는 하나 이상의 작업을 백그라운드에서 수행할 수 있어 여러개의 작업을 병행 처리할 수 있다
  3. 쉘(Shell)은 프로세스 관리, 기억장치 관리, 입출력 관리 등의 기능을 수행한다
  4. 두사람 이상의 사용자가 동시에 시스템을 사용할 수 있어 정보와 유틸리티들을 공유하는 편리한 작업 환경을 제공한다

✅ UNIX란?

**UNIX(유닉스)**는 1969년 AT&T의 벨 연구소에서 개발된 멀티태스킹(Multitasking) 및 **멀티유저(Multi-user)**를 지원하는 범용 운영체제입니다.


📌 UNIX의 핵심 특징

특성설명
멀티유저 여러 사용자가 동시에 시스템에 접속해 사용할 수 있음
멀티태스킹 여러 프로그램을 동시에 실행할 수 있음
이식성 대부분 C 언어로 작성되어 다른 하드웨어에서도 쉽게 사용 가능
계층 구조 하드웨어 → 커널 → 쉘 → 사용자로 구성됨
보안성 사용자 권한, 파일 권한, 접근 제어가 철저함
장치 독립성 모든 장치를 파일처럼 다루는 설계 (/dev/sda1 등)
 

🎯 UNIX의 주요 구성 요소

구성 요소설명
커널(Kernel) 운영체제의 핵심. CPU, 메모리, 디스크, 프로세스, 입출력 장치 등 자원 관리
쉘(Shell) 사용자 명령어를 해석해서 커널에 전달하는 명령어 해석기 (bash, sh, ksh 등)
파일 시스템 트리 구조 기반. 모든 자원은 파일로 취급 (디바이스, 프로세스, 디렉터리도 파일)
명령어/유틸리티 ls, cd, grep, ps, chmod, kill 등 기본 명령어 도구 포함

 

UNIX와 리눅스(Linux)의 관계

항목UNIXLinux
역사 1969년 AT&T에서 개발 1991년 리누스 토르발스가 개발
라이선스 상용/비공개 오픈소스 (GPL)
구조 모놀리식 커널 모놀리식 커널
대표 예 AIX, HP-UX, Solaris Ubuntu, CentOS, Fedora, Arch
 

Linux는 UNIX와 구조적으로 매우 유사한 오픈소스 OS로, 흔히 UNIX-like OS라고도 부릅니다.


🔧 UNIX의 활용 분야

  • 서버 운영 시스템 (웹 서버, DB 서버)
  • 네트워크 장비 운영체제
  • 대형 컴퓨터 메인프레임
  • 소프트웨어 개발 환경
  • 보안 시스템 등

✅ 요약

항목내용
탄생 1969년, AT&T 벨 연구소
주요 특징 멀티유저, 멀티태스킹, 이식성, 보안성
구성 요소 커널, 쉘, 파일 시스템, 명령어
대표 쉘 bash, sh, csh, ksh 등
명령어 예 ls, cd, mkdir, grep, chmod, ps, kill

63. C 또는 Java의 printf 명령어에서 키보드의 [Tab] 키와 같이 커서를 일정간격 띄어주는데 사용하는 제어 문자는

제어 문자 의미

\n 줄 바꿈 (New Line)
\t 탭 (Tab) ← ✅ 정답
\\ 백슬래시 출력
\" 큰따옴표 출력
\' 작은따옴표 출력
\r 캐리지 리턴 (커서를 줄 맨 앞으로)

 

64. 다음 내용이 설명하는 결합도는?

- 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생하며, 권리 전도 현상이 발생할 수 있다

  1. 제어 결합도
  2. 스탬프 결합도
  3. 외부 결합도
  4. 내용 결합도

✅ 내용 결합도(Content Coupling)란?

한 모듈이 **다른 모듈의 내부 구현 내용(로직, 변수 등)**에 직접 접근하거나 제어하는 형태입니다.

📉 특징:

  • 가장 나쁜 결합도(최악)
  • 모듈 독립성 없음
  • 유지보수성, 확장성 저하
  • 예: 다른 모듈의 지역 변수나 제어 흐름을 직접 변경

🧠 보기별 설명

결합도설명높낮이
내용 결합도 다른 모듈의 내부 로직을 직접 참조/수정 ❌ 가장 강한 결합 (최악)
제어 결합도(Control Coupling) 어떤 모듈이 다른 모듈의 수행 흐름(제어문)을 결정하는 신호/플래그를 전달 약간 강함
스탬프 결합도(Stamp Coupling) 필요 이상으로 큰 구조체나 레코드를 전달 중간
외부 결합도(External Coupling) 모듈 간에 외부 장치나 파일 등 공유 자원을 통해 통신 중간 이상
 

✅ 결론:

다른 모듈의 처리 절차를 알고 통제하고, 권리 전도 현상까지 일어난다면
→ 그것은 내용 결합도(Content Coupling) 입니다.

 

 

65. OSI 참조 모델의 계층별 프로토콜 데이터 단위(PDU)의 연결이 틀린 것은?

  1. Physical Layer - Byte
  2. Data Link Layer - Frame
  3. Network Layer - Packet
  4. Application Layer - Message

계층 계층 이름 PDU 설명

7 Application (응용) Message 사용자 데이터
6 Presentation (표현) Message 데이터 인코딩, 암호화
5 Session (세션) Message 통신 세션 관리
4 Transport (전송) Segment (TCP) / Datagram (UDP) 포트 기준 연결
3 Network (네트워크) Packet IP 주소 기반 라우팅
2 Data Link (데이터링크) Frame MAC 주소 기준 전송
1 Physical (물리) Bit 전기적/기계적 신호 (0과 1)

 

항목              TCP (Transmission Control Protocol)                          UDP (User Datagram Protocol)

연결 방식 연결형(3-way handshake) 비연결형
신뢰성 높음 – 데이터 손실 시 재전송 낮음 – 손실 시 재전송 안 함
순서 보장 보장함 (데이터 순서대로 도착) 보장하지 않음
속도 느림 (오버헤드 많음) 빠름 (가벼움)
용도 신뢰가 중요한 서비스 (웹, 이메일 등) 빠른 응답이 중요한 서비스 (스트리밍, 게임, DNS 등)
대표 포트 HTTP(80), HTTPS(443), FTP(21), SMTP(25) 등 DNS(53), VoIP, 게임, 영상 통화 등

 

 

66. JAVA에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은

  1. Heap Collector
  2. Garbage Collector
  3. Memory Collector
  4. Variable Collector

메모리 영역 설명

Stack 메서드 호출 시 지역 변수, 매개변수 저장
Heap new로 생성한 객체 저장. GC가 관리
Method Area 클래스 정보, static 변수 등 저장
PC Register 현재 수행 중인 명령어 주소
Native Method Stack JVM 외부(C/C++) 메서드 처리 영역

 

67. 다음 중 연산자의 종류가 다른 하나는?

  1. %
  2. /
  3. -
  4. ++

📌 각 연산자 분석

연산자의미연산자 종류설명
% 나머지 연산 산술 연산자 10 % 3 → 1
/ 나눗셈 연산 산술 연산자 10 / 2 → 5
- 뺄셈 연산 산술 연산자 10 - 3 → 7
++ 증가 연산 (1 증가) 단항 연산자 (증감 연산자) i++ 또는 ++i
 

✅ 핵심 구분

범주포함 연산자
산술 연산자 (이항) +, -, *, /, %
단항 연산자 ++, --, !, ~ 등
비교/논리/대입 연산자 ==, &&, =, 등등
 
  • %, /, -는 산술 연산자
  • ++는 단항 연산자이자 증감 연산자

✅ 결론:

++는 나머지 연산자들과 연산 범주가 다릅니다.
따라서 정답은 **++**입니다.

 

 

68. 운영체제의 기능으로 틀린 것은?

  1. 개발에 필요한 여러 도구를 제공한다
  2. 자원 보호 기능을 제공한다
  3. 자원의 스케줄링 기능을 제공한다
  4. 사용자와 시스템 간의 편리한 인터페이스를 제공한다

기능 설명

자원 관리 CPU, 메모리, 디스크, 네트워크 등 자원을 관리
자원 스케줄링 여러 작업 간에 자원을 공정하고 효율적으로 분배
보호 및 보안 사용자 간 자원 격리, 권한 제어 등 보호 기능
입출력 관리 키보드, 디스크, 네트워크 등 입출력 장치 관리
사용자 인터페이스 제공 명령어 인터페이스(CLI), GUI 등

운영체제는 개발 도구(컴파일러, IDE 등)를 제공하지 않습니다.
따라서 정답은 → "개발에 필요한 여러 도구를 제공한다"

 

69. Java 프로그램이 실행되었을 때의 결과는?

-

 

🔍 흐름 정리

  • 초기: x = 7, y = 0
  • x-- > 0 → x는 6부터 시작하여 0까지 감소
    총 반복 횟수: 7번 (x = 6 ~ 0)

🔁 반복 과정 (x 값 기준으로 분석)

반복x (현재)x % 3 == 0 ?continue?y 증가?
1회차 6 ✅ 0 → true ✅ continue
2회차 5 ✅ y=1
3회차 4 ✅ y=2
4회차 3 ✅ 0 → true ✅ continue
5회차 2 ✅ y=3
6회차 1 ✅ y=4
7회차 0 ✅ 0 → true ✅ continue
 

✅ 최종 결과

  • y++가 실행된 횟수: 4번
  • 출력 결과: System.out.print(y); → 4

✅ 정답: 4

 

70.

*(s + i) = s[i]임

 

 

✅ 주요 서식 지정자 목록

서식의미예시 코드출력 결과
%c 문자 (character) printf("%c", 'A'); A
%d 10진 정수 (int) printf("%d", 10); 10
%f 실수 (float/double) printf("%f", 3.14); 3.140000
%.2f 소수점 둘째 자리까지 printf("%.2f", 3.14); 3.14
%s 문자열 (char 배열) printf("%s", "hello"); hello
%x 16진수 (소문자) printf("%x", 255); ff
%X 16진수 (대문자) printf("%X", 255); FF
%o 8진수 printf("%o", 8); 10
%% % 문자 출력 printf("100%%"); 100%

정답은 2번

 

71. IEEE 802.3 LAN에서 사용되는 전송 매체 접속 제어(MAC) 방식은?

  1. CSMA/CD
  2. Token Bus
  3. Token Ring
  4. Slotted Ring

📌 문제 핵심

IEEE 802.3 (이더넷 Ethernet) LAN에서 사용되는 MAC 방식은 무엇인가?

→ IEEE 802.3 표준은 바로 유선 LAN 이더넷에 해당하며, 이더넷에서는 CSMA/CD를 사용합니다.


✅ CSMA/CD란?

Carrier Sense Multiple Access with Collision Detection

뜻 풀이:

  • Carrier Sense (CS): 먼저 채널이 비어 있는지 감지하고
  • Multiple Access (MA): 여러 장치가 공유 채널을 함께 사용하며
  • Collision Detection (CD): **충돌(Collision)**이 나면 감지하고 재전송

⚠️ 참고:

  • CSMA/CD는 허브 기반 유선 이더넷에서 사용되며,
    **스위치 기반 환경이나 무선 LAN(802.11)**에서는 사용되지 않습니다.

❌ 다른 보기들

보기설명표준
Token Bus IEEE 802.4, 버스형 네트워크에서 토큰을 돌림
Token Ring IEEE 802.5, 링 형태의 네트워크에서 토큰 기반 통신
Slotted Ring 슬랏을 가진 링 네트워크 방식 (고전 방식, 표준 아님)
 

✅ 결론

IEEE 802.3 이더넷 LAN의 MAC 방식은 → CSMA/CD
정답은 CSMA/CD입니다.

 

MAC 방식 사용 표준/기술 전송 제어 방식 충돌 처리 방식 주요 사용 환경

CSMA/CD IEEE 802.3 (이더넷) 채널 감지 후 전송 충돌 후 감지 & 재전송 유선 LAN (허브 기반)
CSMA/CA IEEE 802.11 (Wi-Fi) 송신 전 RTS/CTS 교환 충돌 회피 무선 LAN, Wi-Fi
Token Bus IEEE 802.4 버스 위에 논리적 토큰 순환 충돌 없음 산업 자동화 네트워크
Token Ring IEEE 802.5 링 구조에서 토큰 전달 충돌 없음 과거 IBM LAN 환경
Polling 자체 설계 기반 중앙 제어자가 순서대로 통신 권한 부여 충돌 없음 마스터-슬레이브 통신
TDMA 위성, 셀룰러 시간 슬롯 할당 충돌 없음 이동통신, 衛星통신
FDMA 위성, 라디오 주파수 대역 분할 충돌 없음 아날로그 무선 통신
CDMA 3G 통신 고유 코드로 다중 전송 충돌 없음 3G 모바일 통신

 

 

72. 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법으로, 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램을 실행하는 할당 기법은?

  1. 오버레이
  2. 스와핑
  3. 페이징
  4. 세그먼테이션

✅ 오버레이(Overlay)란?

주기억장치(RAM)의 크기보다 큰 프로그램을 실행하기 위해
프로그램을 여러 개의 조각으로 나누고,
필요한 조각만 메모리에 적재하여 실행하는 기법입니다.


📌 오버레이의 특징

항목설명
목적 메모리가 부족한 상황에서 큰 프로그램 실행
방식 프로그램을 논리적 단위로 분할(Overlay Unit) 후, 필요한 부분만 적재
사용 위치 보조기억장치 ↔ 주기억장치 간 데이터 이동
단점 프로그래머가 오버레이 구조를 직접 설계해야 했던 불편함 (과거 시스템)
 

❌ 다른 보기 해설

보기설명정오
오버레이 ✅ 프로그램을 여러 조각으로 나눠 필요할 때만 메모리에 올림 ✅ 정답
스와핑(Swapping) 전체 프로세스를 디스크로 내렸다가 다시 올리는 방식 → 프로세스 단위의 교체
페이징(Paging) 물리적 메모리를 고정 크기 페이지 단위로 나눠서 관리
세그먼테이션(Segmentation) 프로그램을 의미 단위인 **세그먼트(코드, 스택 등)**로 분할

 

 

73. 배치 프로그램의 자동 수행 주기 중 사용자가 특정 조건을 설정해두고 해당 조건이 충족될 때만 수행되도록 하는 것은?

  1. 정기 배치
  2. 이벤트성 배치
  3. On-Demand 배치
  4. 사용자 배치

✅ 배치란? (Batch Processing)

사람의 개입 없이, 정해진 작업을 자동으로 일괄 처리하는 방식입니다.
보통 백그라운드에서 실행되며, 대량의 데이터 처리나 반복 작업에 적합합니다.


🧠 쉽게 말하면?

📦 **"작업 묶음(Job Batch)을 모아 자동으로 처리하는 프로그램"**이에요.

예를 들어:

  • 매일 자정에 서버 로그를 정리하고 백업
  • 한 달에 한 번, 급여 정산
  • 대용량 데이터를 읽어와 변환하여 저장

→ 이런 걸 사람이 일일이 클릭하지 않고,
예약된 시간이나 조건에 따라 자동 수행하도록 만드는 프로그램이 "배치 프로그램"입니다.


📌 배치의 주요 특징

항목설명
자동 실행 사용자 입력 없이 동작
일괄 처리 여러 작업을 한꺼번에 실행
예약 가능 시간 또는 조건 기반 실행 (예: 매일 1시)
주로 백엔드에서 실행 UI 없이 서버에서 돌고, 로그로 결과 확인
 

🧱 배치 실행 방식 종류

분류설명
정기 배치 매일, 매주, 매월 등 시간 주기 기반 실행
이벤트성 배치 어떤 조건/이벤트 발생 시 자동 실행
On-Demand 배치 사용자가 필요할 때 수동으로 실행
실시간 배치 (유사 개념) 소규모 데이터를 빠르게 나눠 처리, 스트리밍과 혼합됨
 

💡 예시 (현실 속 배치)

  • 은행: 매일 자정 고객의 거래 내역 정산
  • 쇼핑몰: 밤마다 하루 주문 데이터를 통계 처리
  • 학교: 학기 말 성적 자동 정산

✅ 정리

**배치(Batch)**는
정해진 작업을 자동으로, 일괄적으로 처리하는 프로그램”이며,
시스템이 알아서 돌아가게 만드는 백엔드의 핵심 자동화 수단입니다.

 

74. 다음은 어떤 프로그램 구조를 나타낸다. 모듈 F에서의 Fan-In과 Fan-Out의 수는 얼마인가?

Fan-In = 3

Fan-Out = 2

 

75.

do while은 일단 최초 1번은 실행됨

while문에 해당하지 않으므로 정답은 a=1 sum=1

 

76.Java에서 표준 출력 시 사용하는 명령어가 아닌 것은?

  1. prn
  2. print
  3. printf
  4. println

📘 Java에서 표준 출력 관련 메서드

명령어설명
print 줄바꿈 없이 출력
println 출력 후 줄바꿈 포함
printf C 스타일 포맷을 사용한 출력 (System.out.printf("이름: %s", name);)
 

✅ 이 세 가지는 모두 System.out 객체의 메서드입니다.


❌ prn은 무엇인가?

  • prn은 Java의 출력 메서드가 아닙니다.
  • 오래된 도스(DOS) 환경에서 프린터 장치 이름으로 쓰였던 예약어입니다.
  • Java에서는 System.out.prn 같은 메서드는 존재하지 않습니다.

✅ 최종 정답:

Java에서 표준 출력 명령어가 아닌 것 → prn
→ 정답: ① prn

더 궁금한 점 있으면 언제든지 질문해주세요!

 

77. 스크립트(Script) 언어가 아닌 것은?

  1. PHP
  2. Fortran
  3. Basic
  4. Python

✅ 스크립트 언어 vs 컴파일 언어 – 비교표

구분스크립트 언어 (Script Language)컴파일 언어 (Compiled Language)
실행 방식 인터프리터(즉시 해석 실행) 컴파일러(코드를 한 번에 번역 후 실행)
실행 속도 느림 (실시간 해석) 빠름 (미리 기계어로 번역됨)
개발 속도 빠름 (수정 → 즉시 실행 가능) 느림 (수정 후 다시 컴파일 필요)
용도 자동화, 웹 개발, 간단한 툴 시스템/성능 중심 프로그램
플랫폼 의존성 낮음 (인터프리터만 있으면 됨) 높음 (컴파일된 실행 파일은 OS 종속)
디버깅 편리함 (라인 단위 확인 쉬움) 어렵기도 함 (전부 재컴파일 필요)
 

✅ 대표적인 스크립트 언어 예시

언어주요 특징
Python 범용 스크립트 언어, 간결한 문법, 자동화/AI 개발 등
JavaScript 브라우저 기반 웹 스크립팅
PHP 서버 사이드 웹 개발에 널리 사용
Bash 리눅스/유닉스 셸 스크립트
Ruby 간결하고 객체지향적인 웹 백엔드 언어 (Rails 등)
 

✅ 대표적인 컴파일 언어 예시

언어주요 특징
C 시스템 소프트웨어, 빠른 실행 속도
C++ 객체지향 + 성능, 게임/툴 개발
Java ※ 주의: 소스는 컴파일 → JVM에서 인터프리트 → 둘의 장점 혼합형
Fortran 수치 계산, 과학/공학 분야에서 오래 사용
Go 빠른 컴파일, 서버 사이드에 최적화
 

💡 요약 정리 문장

🔁 스크립트 언어는 "그때그때 읽고 바로 실행" → 개발 빠름
⚙️ 컴파일 언어는 "한 번에 기계어로 번역 후 실행" → 속도 빠름


✅ JIT 컴파일(JIT: Just-In-Time Compilation)이란?

인터프리터와 컴파일러의 장점을 모두 결합한 방식
"필요할 때 즉시 컴파일" 하는 하이브리드 실행 방식입니다.


📘 Java는 왜 혼합형 언어인가?

Java는 다음과 같은 2단계 실행 구조를 갖습니다:

  1. 컴파일 단계
    • .java → javac로 바이트코드(.class) 생성
    • 이 바이트코드는 기계어가 아닌 중간 코드
  2. 실행 단계
    • 바이트코드는 JVM(Java Virtual Machine) 위에서 실행됨
    • JVM은 이 바이트코드를 인터프리트 + JIT 컴파일을 통해 실행

✅ JIT 컴파일의 동작 방식

동작 단계설명
1. 인터프리트 처음에는 바이트코드를 한 줄씩 읽어서 실행
2. 분석 반복적으로 실행되는 코드를 JVM이 감지
3. 컴파일 성능이 중요한 코드를 네이티브 기계어로 컴파일
4. 캐시 이후엔 컴파일된 기계어 코드를 계속 사용 → 빠름
 

🔍 장점과 단점

항목장점단점
성능 인터프리트보다 훨씬 빠름 (자주 쓰는 코드는 최적화됨) 순수 컴파일 언어보다 약간 느릴 수 있음
이식성 바이트코드를 JVM만 있으면 어디서든 실행 가능 JVM 설치 필요
메모리 메모리 사용량 증가 (JIT 컴파일 캐시) 리소스 소모 가능성 있음
 

✅ 대표적인 JIT 기반 언어

언어설명
Java 대표적인 JIT 기반 언어 (HotSpot JVM)
C# (.NET) .NET 런타임에서 IL 코드를 JIT 컴파일
Scala, Kotlin Java 기반, JVM 위에서 동작
PyPy (Python 대체 인터프리터) Python 코드를 JIT 방식으로 실행

78. 다음중 페이지 교체(Page Replacement) 알고리즘이 아닌 것은?

  1. LRU
  2. OPT
  3. NUR
  4. SCF

알고리즘 약어 주요 특징 장점 단점 비고

First-In First-Out FIFO 가장 먼저 들어온 페이지를 제거 구현이 가장 간단함 오래된 페이지가 꼭 불필요하지는 않음 (Belady's anomaly 발생) 큐 사용
Least Recently Used LRU 가장 오랫동안 사용되지 않은 페이지 제거 실제 성능이 좋음 구현이 복잡 (시간/스택 필요) 스택, 참조 시간 기록
Optimal OPT 앞으로 가장 오랫동안 사용되지 않을 페이지 제거 페이지 부재 최소 (이론적 최적) 실제 구현 불가 (미래 예측 필요) 비교 기준으로 사용
Not Used Recently NUR 최근 사용되지 않은 페이지 제거 (참조/변경 비트 사용) 하드웨어 지원 시 효율적 구현 복잡 LRU 근사 방식
Second Chance (Clock) SC / Clock FIFO + 참조 비트로 최근 사용된 페이지는 보류 간단하고 효율적 완벽한 LRU는 아님 원형 큐 구조 사용

 

 

 

79.

str 이라는 문자열을

char s[] = str.toCharArray;을 통해 array로 만듦

이후 for문을 통해 e의 갯수 찾기 정답은 4개

 

80. 네트워크 계층까지의 프로토콜 구조가 다른 네트워크 간의 연결을 위해 프로토콜 변환 기능을 수해하는 네트워크 장비는 무엇인가

  1. 리피터(Repeater)
  2. 브리지(Bridge)
  3. 라우터(Router)
  4. 게이트웨이(Gateway)

✅ 게이트웨이(Gateway)란?

🔹 정의

게이트웨이는 서로 다른 프로토콜을 사용하는 네트워크를 연결하고, 데이터를 양쪽 네트워크에 맞게 변환하는 장비입니다.

즉,

  • TCP/IP 네트워크 ↔ IPX/SPX 네트워크
  • IPv4 ↔ IPv6
  • 이메일 ↔ 팩스 등
    다른 형식의 프로토콜을 해석하고 변환할 수 있어야 합니다.

🧱 OSI 7계층에서의 위치

계층게이트웨이
7. 응용 계층 ✔ 가능
6. 표현 계층 ✔ 가능
5. 세션 계층 ✔ 가능
4. 전송 계층 ✔ 가능
3. 네트워크 계층 ✔ 가능
2. 데이터링크 계층 ✔ 가능
1. 물리 계층 ✔ 가능
 
  • 👉 게이트웨이는 7계층 전체에서 작동 가능하며, 프로토콜 변환이 필요하다면 상위 계층까지 다룰 수 있음

📦 게이트웨이 예시

상황설명
IPv4 ↔ IPv6 IP 주소 체계 자체가 다르므로 변환 필요
TCP ↔ UDP 연결지향과 비연결지향 프로토콜 간 변환
이메일 ↔ 팩스 응용 계층 메시지 구조 자체가 다름
Windows ↔ Unix 시스템 간 통신 파일 전송이나 인증 방식이 달라 변환 필요
 

🔧 다른 장비와 비교

장비작동 계층주요 기능프로토콜 변환
리피터 1계층(물리) 신호 증폭 ✖ 없음
허브 1계층(물리) 단순 분배 ✖ 없음
브리지 2계층(데이터링크) MAC 주소 기반 분할 ✖ 없음
스위치 2계층(또는 3계층) 패킷 전송 ✖ 없음
라우터 3계층(네트워크) 경로 설정, IP 주소 기반 전달 ✖ 없음
게이트웨이 전 계층 이기종 네트워크 간 변환 ✔ 있음
 

🎯 결론

게이트웨이는 프로토콜 구조 자체가 다른 네트워크 간의 통신을 가능하게 만드는 유일한 장비입니다.

  • 다른 장비는 같은 프로토콜 기반의 네트워크만 연결
  • 게이트웨이는 “완전히 다른 네트워크” 간에도 통신 가능하도록 변환