61. 개발에 필요한 환경 구축과 관련하여 하드웨어 환경과 관련이 없는 것은?
- Eclipse
- Oracle DB
- WAS
- 웹서버
보기 설명 하드웨어 관련성 판단
| Eclipse | 개발자가 코드를 작성할 때 사용하는 통합 개발 환경(IDE). 소프트웨어 도구이며, 개발자의 로컬 PC에 설치됨 | ❌ 하드웨어 인프라와 직접 무관 | ✅ 정답 |
| Oracle DB | 대규모 데이터 저장 및 관리 시스템 → 운영을 위해 서버, 디스크, 메모리 등 하드웨어 자원 필요 | ✅ 관련 있음 | ❌ |
| WAS (Web Application Server) | 웹 애플리케이션을 실행하는 서버, 예: Tomcat, JBoss → 하드웨어 위에서 동작 | ✅ 관련 있음 | ❌ |
| 웹서버 | 정적 컨텐츠(HTML, CSS 등)를 클라이언트에 전달하는 서버 (예: Apache, Nginx) → 물리적 서버 필요 | ✅ 관련 있음 | ❌ |
62. UNIX에 대한 설명으로 옳지 않은 것은?
- 상당 부분 C 언어를 사용하여 작성되었으며, 이식성이 우수하다
- 사용자는 하나 이상의 작업을 백그라운드에서 수행할 수 있어 여러개의 작업을 병행 처리할 수 있다
- 쉘(Shell)은 프로세스 관리, 기억장치 관리, 입출력 관리 등의 기능을 수행한다
- 두사람 이상의 사용자가 동시에 시스템을 사용할 수 있어 정보와 유틸리티들을 공유하는 편리한 작업 환경을 제공한다
✅ 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)의 관계
| 역사 | 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. 다음 내용이 설명하는 결합도는?
- 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생하며, 권리 전도 현상이 발생할 수 있다
- 제어 결합도
- 스탬프 결합도
- 외부 결합도
- 내용 결합도
✅ 내용 결합도(Content Coupling)란?
한 모듈이 **다른 모듈의 내부 구현 내용(로직, 변수 등)**에 직접 접근하거나 제어하는 형태입니다.
📉 특징:
- 가장 나쁜 결합도(최악)
- 모듈 독립성 없음
- 유지보수성, 확장성 저하
- 예: 다른 모듈의 지역 변수나 제어 흐름을 직접 변경
🧠 보기별 설명
| ✅ 내용 결합도 | 다른 모듈의 내부 로직을 직접 참조/수정 | ❌ 가장 강한 결합 (최악) |
| 제어 결합도(Control Coupling) | 어떤 모듈이 다른 모듈의 수행 흐름(제어문)을 결정하는 신호/플래그를 전달 | 약간 강함 |
| 스탬프 결합도(Stamp Coupling) | 필요 이상으로 큰 구조체나 레코드를 전달 | 중간 |
| 외부 결합도(External Coupling) | 모듈 간에 외부 장치나 파일 등 공유 자원을 통해 통신 | 중간 이상 |
✅ 결론:
다른 모듈의 처리 절차를 알고 통제하고, 권리 전도 현상까지 일어난다면
→ 그것은 내용 결합도(Content Coupling) 입니다.
65. OSI 참조 모델의 계층별 프로토콜 데이터 단위(PDU)의 연결이 틀린 것은?
- Physical Layer - Byte
- Data Link Layer - Frame
- Network Layer - Packet
- 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)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은
- Heap Collector
- Garbage Collector
- Memory Collector
- Variable Collector
메모리 영역 설명
| Stack | 메서드 호출 시 지역 변수, 매개변수 저장 |
| Heap | new로 생성한 객체 저장. GC가 관리 |
| Method Area | 클래스 정보, static 변수 등 저장 |
| PC Register | 현재 수행 중인 명령어 주소 |
| Native Method Stack | JVM 외부(C/C++) 메서드 처리 영역 |
67. 다음 중 연산자의 종류가 다른 하나는?
- %
- /
- -
- ++
📌 각 연산자 분석
| % | 나머지 연산 | 산술 연산자 | 10 % 3 → 1 |
| / | 나눗셈 연산 | 산술 연산자 | 10 / 2 → 5 |
| - | 뺄셈 연산 | 산술 연산자 | 10 - 3 → 7 |
| ++ | 증가 연산 (1 증가) | ✅ 단항 연산자 (증감 연산자) | i++ 또는 ++i |
✅ 핵심 구분
| 산술 연산자 (이항) | +, -, *, /, % |
| 단항 연산자 | ++, --, !, ~ 등 |
| 비교/논리/대입 연산자 | ==, &&, =, 등등 |
- %, /, -는 산술 연산자
- ++는 단항 연산자이자 증감 연산자
✅ 결론:
++는 나머지 연산자들과 연산 범주가 다릅니다.
따라서 정답은 **++**입니다.
68. 운영체제의 기능으로 틀린 것은?
- 개발에 필요한 여러 도구를 제공한다
- 자원 보호 기능을 제공한다
- 자원의 스케줄링 기능을 제공한다
- 사용자와 시스템 간의 편리한 인터페이스를 제공한다
기능 설명
| 자원 관리 | CPU, 메모리, 디스크, 네트워크 등 자원을 관리 |
| 자원 스케줄링 | 여러 작업 간에 자원을 공정하고 효율적으로 분배 |
| 보호 및 보안 | 사용자 간 자원 격리, 권한 제어 등 보호 기능 |
| 입출력 관리 | 키보드, 디스크, 네트워크 등 입출력 장치 관리 |
| 사용자 인터페이스 제공 | 명령어 인터페이스(CLI), GUI 등 |
운영체제는 개발 도구(컴파일러, IDE 등)를 제공하지 않습니다.
따라서 정답은 → "개발에 필요한 여러 도구를 제공한다"
69. Java 프로그램이 실행되었을 때의 결과는?
-

🔍 흐름 정리
- 초기: x = 7, y = 0
- x-- > 0 → x는 6부터 시작하여 0까지 감소
총 반복 횟수: 7번 (x = 6 ~ 0)
🔁 반복 과정 (x 값 기준으로 분석)
| 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) 방식은?
- CSMA/CD
- Token Bus
- Token Ring
- 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. 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법으로, 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램을 실행하는 할당 기법은?
- 오버레이
- 스와핑
- 페이징
- 세그먼테이션
✅ 오버레이(Overlay)란?
주기억장치(RAM)의 크기보다 큰 프로그램을 실행하기 위해
프로그램을 여러 개의 조각으로 나누고,
필요한 조각만 메모리에 적재하여 실행하는 기법입니다.
📌 오버레이의 특징
| 목적 | 메모리가 부족한 상황에서 큰 프로그램 실행 |
| 방식 | 프로그램을 논리적 단위로 분할(Overlay Unit) 후, 필요한 부분만 적재 |
| 사용 위치 | 보조기억장치 ↔ 주기억장치 간 데이터 이동 |
| 단점 | 프로그래머가 오버레이 구조를 직접 설계해야 했던 불편함 (과거 시스템) |
❌ 다른 보기 해설
| 오버레이 | ✅ 프로그램을 여러 조각으로 나눠 필요할 때만 메모리에 올림 | ✅ 정답 |
| 스와핑(Swapping) | 전체 프로세스를 디스크로 내렸다가 다시 올리는 방식 → 프로세스 단위의 교체 | ❌ |
| 페이징(Paging) | 물리적 메모리를 고정 크기 페이지 단위로 나눠서 관리 | ❌ |
| 세그먼테이션(Segmentation) | 프로그램을 의미 단위인 **세그먼트(코드, 스택 등)**로 분할 | ❌ |
73. 배치 프로그램의 자동 수행 주기 중 사용자가 특정 조건을 설정해두고 해당 조건이 충족될 때만 수행되도록 하는 것은?
- 정기 배치
- 이벤트성 배치
- On-Demand 배치
- 사용자 배치
✅ 배치란? (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에서 표준 출력 시 사용하는 명령어가 아닌 것은?
- prn
- printf
- println
📘 Java에서 표준 출력 관련 메서드
| 줄바꿈 없이 출력 | |
| println | 출력 후 줄바꿈 포함 |
| printf | C 스타일 포맷을 사용한 출력 (System.out.printf("이름: %s", name);) |
✅ 이 세 가지는 모두 System.out 객체의 메서드입니다.
❌ prn은 무엇인가?
- prn은 Java의 출력 메서드가 아닙니다.
- 오래된 도스(DOS) 환경에서 프린터 장치 이름으로 쓰였던 예약어입니다.
- Java에서는 System.out.prn 같은 메서드는 존재하지 않습니다.
✅ 최종 정답:
Java에서 표준 출력 명령어가 아닌 것 → prn
→ 정답: ① prn ✅
더 궁금한 점 있으면 언제든지 질문해주세요!
77. 스크립트(Script) 언어가 아닌 것은?
- PHP
- Fortran
- Basic
- Python
✅ 스크립트 언어 vs 컴파일 언어 – 비교표
| 실행 방식 | 인터프리터(즉시 해석 실행) | 컴파일러(코드를 한 번에 번역 후 실행) |
| 실행 속도 | 느림 (실시간 해석) | 빠름 (미리 기계어로 번역됨) |
| 개발 속도 | 빠름 (수정 → 즉시 실행 가능) | 느림 (수정 후 다시 컴파일 필요) |
| 용도 | 자동화, 웹 개발, 간단한 툴 | 시스템/성능 중심 프로그램 |
| 플랫폼 의존성 | 낮음 (인터프리터만 있으면 됨) | 높음 (컴파일된 실행 파일은 OS 종속) |
| 디버깅 | 편리함 (라인 단위 확인 쉬움) | 어렵기도 함 (전부 재컴파일 필요) |
✅ 대표적인 스크립트 언어 예시
| Python | 범용 스크립트 언어, 간결한 문법, 자동화/AI 개발 등 |
| JavaScript | 브라우저 기반 웹 스크립팅 |
| PHP | 서버 사이드 웹 개발에 널리 사용 |
| Bash | 리눅스/유닉스 셸 스크립트 |
| Ruby | 간결하고 객체지향적인 웹 백엔드 언어 (Rails 등) |
✅ 대표적인 컴파일 언어 예시
| C | 시스템 소프트웨어, 빠른 실행 속도 |
| C++ | 객체지향 + 성능, 게임/툴 개발 |
| Java | ※ 주의: 소스는 컴파일 → JVM에서 인터프리트 → 둘의 장점 혼합형 |
| Fortran | 수치 계산, 과학/공학 분야에서 오래 사용 |
| Go | 빠른 컴파일, 서버 사이드에 최적화 |
💡 요약 정리 문장
🔁 스크립트 언어는 "그때그때 읽고 바로 실행" → 개발 빠름
⚙️ 컴파일 언어는 "한 번에 기계어로 번역 후 실행" → 속도 빠름
✅ JIT 컴파일(JIT: Just-In-Time Compilation)이란?
인터프리터와 컴파일러의 장점을 모두 결합한 방식
→ "필요할 때 즉시 컴파일" 하는 하이브리드 실행 방식입니다.
📘 Java는 왜 혼합형 언어인가?
Java는 다음과 같은 2단계 실행 구조를 갖습니다:
- 컴파일 단계
- .java → javac로 바이트코드(.class) 생성
- 이 바이트코드는 기계어가 아닌 중간 코드
- 실행 단계
- 바이트코드는 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) 알고리즘이 아닌 것은?
- LRU
- OPT
- NUR
- 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. 네트워크 계층까지의 프로토콜 구조가 다른 네트워크 간의 연결을 위해 프로토콜 변환 기능을 수해하는 네트워크 장비는 무엇인가
- 리피터(Repeater)
- 브리지(Bridge)
- 라우터(Router)
- 게이트웨이(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 주소 기반 전달 | ✖ 없음 |
| 게이트웨이 | 전 계층 | 이기종 네트워크 간 변환 | ✔ 있음 |
🎯 결론
게이트웨이는 프로토콜 구조 자체가 다른 네트워크 간의 통신을 가능하게 만드는 유일한 장비입니다.
- 다른 장비는 같은 프로토콜 기반의 네트워크만 연결
- 게이트웨이는 “완전히 다른 네트워크” 간에도 통신 가능하도록 변환