과목별 요약 › 정보처리기사 › 프로그래밍 언어 활용
정보처리기사 프로그래밍 언어 활용 핵심 요약 정리
정보처리기사 필기 프로그래밍 언어 활용의 시험에 자주 나오는 쟁점을 요약 카드 22개로 정리했어요. 형광펜 은 시험에 나오는 핵심 낱말이에요. 개발 환경 구축과 배치 프로그램, C 언어의 자료형과 변수, 연산자와 우선순위, 비트 연산과 증감 연산, 제어문 (if·switch·반복문), 배열과 포인터 등.
프로그래밍 언어 활용 요약을 빈칸 암기 로 외우고, OX·객관식 문제 와 실전 모의고사 로 확인해 보세요. 틀린 문제는 1·3·7·14·30일 간격으로 다시 나와요. 회원가입 없이 무료예요.
자격공부노트에서 정보처리기사 공부하기
서버프로그램 구현
개발 환경 구축과 배치 프로그램 ★ 빈출
개발 환경 구성 하드웨어: 클라이언트, 서버 — 웹 서버 (정적 콘텐츠, Apache·IIS·Nginx), WAS (동적 콘텐츠, Tomcat·JEUS), DB 서버 , 파일 서버 소프트웨어: 요구사항 관리 도구, 설계·모델링 도구, 구현 도구(IDE), 테스트 도구, 형상 관리 도구, 빌드 도구 배치 프로그램 : 사용자와 상호작용 없이 대량의 데이터를 일괄 처리 필수 요소: 대용량 데이터 , 자동화 , 견고성 , 안정성 (신뢰성), 성능 종류: 이벤트 배치, 온디맨드 배치, 정기 배치 배치 스케줄러 : 스프링 배치 , Quartz , Cron Cron 표현식(리눅스): 분 시 일 월 요일 명령 — 예: "0 2 * * *"는 매일 새벽 2시 서버 프로그램 구현: 업무 프로세스를 처리하는 공통 모듈·DAO·DTO·VO 등을 구현 (MVC 패턴) WAS 제품: Tomcat, JEUS, WebLogic, WebSphere (JVM은 WAS가 아님) / 빌드 도구: Ant, Maven, Gradle (Kerberos는 인증 프로토콜) 프레임워크: 기본 구조를 제공해 재사용 을 가능하게 함. 확장 가능, 모듈화 가능 (아키텍처와는 다른 개념)
프로그래밍 언어 활용
C 언어의 자료형과 변수 ★ 빈출
자료형 크기 (일반적인 32·64비트 환경): char 1 바이트, short 2, int 4 , long 4 또는 8, float 4 , double 8 변수 이름 규칙 영문자, 숫자, _ (밑줄)만 사용. 첫 글자로 숫자 는 올 수 없음 대소문자를 구분 함 (Sum과 sum은 다른 변수) 예약어 (int, for, if 등)는 쓸 수 없음. 공백 불가상수: const 또는 #define 으로 선언 기억 클래스: auto(자동), register, static(정적: 함수가 끝나도 값 유지), extern(외부) 정수 자료형: int , short, long / 실수: float, double / 문자: char / 구조체: struct 서식 문자: %d 정수, %f 실수, %c 문자, %s 문자열, %o 8진수, %x 16진수 char 1바이트 int 4바이트 double 8바이트
연산자와 우선순위 ★ 빈출
우선순위 (높음 → 낮음)단항 : ! ~ ++ -- sizeof (cast)산술 : * / % → + −시프트 : << >>관계 : < <= > >= → == !=비트 : & → ^ → |논리 : && → ||조건 : ? :대입 : = += -= …순서: , 외우기: "단산시관비논조대순" 정수끼리 나누면 몫만: 7 / 2 = 3 , 나머지: 7 % 2 = 1 산술 연산자: + − * / % ( = 은 대입 연산자) / 비트 논리 연산자: & | ^ ~ ( ?는 조건 연산자) || : 둘 중 하나라도 참이면 1, && : 둘 다 참이어야 1 논리 연산 결과: 참이면 1, 거짓이면 0
비트 연산과 증감 연산 ★ 빈출 · 헷갈림
& (AND): 둘 다 1이면 1 / | (OR): 하나라도 1이면 1 / ^ (XOR): 서로 다르면 1 / ~ (NOT): 비트 반전예: 5 & 3 = 1 (0101 & 0011 = 0001) / 5 | 3 = 7 / 5 ^ 3 = 6 ~5 = −6 (정수의 2의 보수 표현: ~x = −x − 1) << : 왼쪽으로 n비트 이동 = 2ⁿ을 곱함 — 1 << 3 = 8>> : 오른쪽으로 n비트 이동 = 2ⁿ으로 나눔 — 16 >> 2 = 4증감 연산자 ++a (전위): 먼저 1 증가시킨 뒤 값을 사용a++ (후위): 값을 먼저 사용한 뒤 1 증가예: a = 5; b = a++; → b = 5, a = 6 / a = 5; b = ++a; → b = 6, a = 6
제어문 (if·switch·반복문) ★ 빈출
switch : case 끝에 break 가 없으면 다음 case도 이어서 실행(fall-through). 맞는 case가 없으면 default 실행for (초기식; 조건식; 증감식): 정해진 횟수만큼 반복while (조건): 조건이 참인 동안 반복. 처음부터 거짓이면 한 번도 실행 안 함do-while : 먼저 실행한 뒤 조건 검사 → 조건이 거짓이어도 최소 1번 실행break : 반복문(또는 switch)을 즉시 빠져나감continue : 이번 반복의 나머지를 건너뛰고 다음 반복 으로예: for(i=1; i<=10; i++) { if(i%2==0) continue; sum += i; } → 홀수의 합 25
배열과 포인터 ★ 빈출
배열 a[5]: 인덱스는 0 부터 4 까지 배열 이름은 배열의 시작 주소 : a == &a[0] a[i] == *(a + i) : i번째 요소의 값& : 변수의 주소 / * : 포인터가 가리키는 곳의 값예: int x = 10; int *p = &x; *p = 20; → x는 20 포인터 + 1은 자료형 크기만큼 주소가 증가 (int면 4바이트) 문자열은 문자 배열이고 끝에 널 문자('\0') 가 붙음 — "ABC"는 4바이트 2차원 배열 int a[2][3]: 2행 3열, 요소 6개
Java 객체지향 문법 ★ 빈출 · 헷갈림
접근 제어자(넓음 → 좁음): public (어디서나) > protected (같은 패키지 + 하위 클래스) > default (같은 패키지) > private (같은 클래스) 상속: class B extends A (단일 상속만) / 인터페이스 구현: class C implements I (여러 개 가능) 접근 제어자는 public, protected, default, private 네 가지뿐 (package, internal은 없음) 자료형 크기: byte 1, short 2, int 4, long 8 , float 4, double 8, char 2바이트(문자 하나 ), boolean(참·거짓) 출력: System.out.print(), println(), printf() / 문자열 + 숫자는 문자열 연결: "5 + 2 = " + 3 + 4 → "5 + 2 = 34", "5 + 2 = " + (3 + 4) → "5 + 2 = 7" 가비지 컬렉터 : 참조를 잃어 더 이상 쓰지 않는 힙의 객체를 자동으로 제거abstract : 추상 메서드(구현 없음)를 가진 클래스. 객체를 직접 만들 수 없음final : 변수는 상수, 메서드는 오버라이딩 금지, 클래스는 상속 금지static : 객체를 만들지 않고 클래스 이름으로 사용. 모든 객체가 공유this : 자기 자신 객체 / super : 부모 클래스(부모 생성자 super())오버로딩 : 같은 이름, 매개변수 개수·타입이 다름 / 오버라이딩 : 부모 메서드를 같은 형태로 재정의부모 타입 변수에 자식 객체를 넣고 메서드를 호출하면 자식의 오버라이딩된 메서드 가 실행됨 (동적 바인딩)
예외 처리
예외 : 프로그램 실행 중 생기는 오류 (0으로 나누기, 배열 범위 초과, 파일 없음 등)Java 예외 처리: try { 예외가 생길 수 있는 코드 } catch (예외 e) { 처리 } finally { 예외 여부와 관계없이 항상 실행 } throw : 예외를 직접 발생 / throws : 메서드에서 처리하지 않고 호출한 쪽으로 넘김주요 예외: ArithmeticException(0으로 나누기), ArrayIndexOutOfBoundsException(배열 범위 초과), NullPointerException(null 참조), NumberFormatException(숫자 변환 실패), ClassNotFoundException Python: try / except / else(예외가 없을 때) / finally
Python 기본 문법 ★ 빈출
자료형 리스트 [1, 2, 3]: 순서 있음, 수정 가능튜플 (1, 2, 3): 순서 있음, 수정 불가 세트 {1, 2, 3}: 순서 없음, 중복 불가 딕셔너리 {'a': 1}: 키-값 쌍range (시작, 끝, 증가): 끝은 포함하지 않음 — range(1, 5) → 1, 2, 3, 4슬라이싱 s[시작:끝:간격]: 끝 인덱스는 포함하지 않음 — "Python"[1:4] → "yth" / s[::-1] → 거꾸로연산자: // 몫, % 나머지, ** 거듭제곱 — 7 // 2 = 3, 2 ** 3 = 8, 7 / 2 = 3.5 리스트 메서드: append(끝에 추가), extend(리스트를 이어 붙임), insert(위치에 삽입), pop(꺼내서 삭제), remove(값으로 삭제), sort, reverse, index, count print의 end (끝 문자, 기본 줄바꿈), sep (구분자, 기본 공백) 조건문: if / elif / else (else if가 아님) 변수 이름: 영문자·숫자·밑줄, 첫 글자 숫자 불가, 공백 불가 , 예약어 불가 Python: 귀도 반 로섬이 만든 인터프리터 방식 객체지향 스크립트 언어
모듈의 결합도와 응집도 ★ 빈출 · 헷갈림
좋은 모듈: 결합도는 낮게 (약하게), 응집도는 높게 (강하게) → 모듈 독립성↑, 오류의 파급 효과(Ripple Effect)↓ 결합도 (모듈 사이의 의존 정도) 약함 → 강함: 자료 < 스탬프 < 제어 < 외부 < 공통 < 내용 자료: 매개변수로 자료만 전달 / 스탬프: 배열·레코드 같은 자료 구조 전달 제어: 다른 모듈의 논리 흐름을 바꾸는 제어 신호 전달. 하위 모듈이 상위 모듈에 처리 명령을 내리는 권리 전도 현상 외부: 외부에 선언된 데이터 참조 / 공통: 전역 변수 공유 / 내용: 다른 모듈의 내부 기능·자료 를 직접 참조 결합도를 낮추려면 전역 변수보다 매개변수 를 사용 응집도 (모듈 안 요소들의 관련 정도, Myers 분류) 강함 → 약함: 기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적 순차적: 한 활동의 출력 이 다음 활동의 입력 / 교환(통신)적: 같은 입력·출력을 사용 절차적: 여러 관련 기능을 순차적으로 수행 / 시간적: 같은 시간대 에 실행 / 논리적: 비슷한 성격의 기능을 모음 / 우연적: 서로 관련 없음 모듈의 특징 : 독립적인 기능 단위, 독립적인 컴파일 가능, 유일한 이름, 다른 모듈에서 접근 가능모듈 수가 늘면 각 모듈 크기는 작아지고 모듈 사이의 상호 교류가 늘어남
프로그래밍 언어의 분류와 특성
절차적 언어 : 순서대로 명령을 실행 — C , ALGOL, COBOL, FORTRAN, BASIC객체지향 언어 : 객체 단위로 프로그래밍 — Java , C++ , C#, Smalltalk스크립트 언어 : 소스를 바로 실행(인터프리터)서버 측: PHP, JSP, ASP, Python / 클라이언트 측: JavaScript 선언형 언어 : 무엇을 원하는지 기술함수형 : LISP, Haskell / 논리형 : Prolog / 그 밖: SQL, HTML, XML컴파일러 : 전체를 한꺼번에 기계어로 번역 → 실행 속도 빠름, 목적 프로그램 생성인터프리터 : 한 줄씩 번역하며 실행 → 실행 속도 느림, 목적 프로그램 없음Java: 소스 → 바이트 코드(.class) → JVM 에서 실행 (플랫폼 독립적) JavaScript: 프로토타입 기반 객체지향 언어 (클래스 기반 상속이 아님) / COBOL은 스크립트 언어가 아님 PHP 연산자 예: @(오류 무시), <>(같지 않음), ===(값과 타입 모두 같음). #은 주석
라이브러리 활용
라이브러리 : 자주 쓰는 함수·클래스를 모아 둔 것. 표준 라이브러리와 외부 라이브러리C 표준 헤더 stdio.h : 입출력 — printf, scanf, fopen, fclose, getcharstdlib.h : 메모리 할당·변환·난수 — malloc , free, atoi (문자열→정수), rand, exitstring.h : 문자열 — strlen (길이), strcpy(복사), strcmp(비교), strcat(연결)math.h: 수학 — sqrt, pow, abs / time.h: 시간 Java : java.lang (자동 import, String·Math·System), java.util(자료구조·날짜: ArrayList, HashMap), java.io(입출력), java.net(네트워크), java.awt(GUI)Python : math, random, datetime, os, sys 등. import로 불러옴표준 라이브러리: 언어가 기본으로 갖고 있는 것 / 외부 라이브러리: 별도로 설치해야 하는 것라이브러리는 모듈과 패키지를 아우름 — 모듈은 개별 파일, 패키지는 파일을 모은 폴더 string.h: strlen(길이), strcpy(s1, s2: s2를 s1에 복사), strcmp (비교), strcat(연결), strrev(뒤집기) stdlib.h: 문자열 ↔ 수치 변환 함수(atoi: 문자열 → 정수, atof: 문자열 → 실수, itoa: 정수 → 문자열)
운영체제
운영체제의 목적과 UNIX·LINUX ★ 빈출
운영체제 성능 평가 기준 : 처리 능력 (Throughput) 향상, 반환 시간 (Turnaround Time) 단축, 사용 가능도 (Availability) 향상, 신뢰도 (Reliability) 향상UNIX 구성 커널 : UNIX의 핵심. 프로세스·메모리·파일·입출력 관리, 하드웨어 보호. 컴퓨터가 켜지면 메모리에 상주쉘 (Shell): 사용자의 명령을 해석해 커널에 전달하는 명령어 해석기 유틸리티: 에디터, 컴파일러 등 UNIX 특징: 대부분 C 언어 로 작성되어 이식성 높음, 다중 사용자·다중 작업 , 트리 구조 파일 시스템, 백그라운드 작업 가능 쉘 기능: 명령 해석·커널 전달, 반복 명령 프로그래밍, 초기화 파일로 사용자 환경 설정 (프로세스·메모리 관리는 커널의 일) bash 제어문: if, case, for, while, until (조건이 참이 될 때까지 반복) / 환경 변수 출력: env, printenv, setenv, export (매개변수 없이 쓰면 환경 변수 출력, 변수를 전역처럼 만듦) uname: 커널 이름·릴리스 정보 확인 리눅스 명령어 : ls(목록), cd(이동), pwd(현재 경로), cp(복사), mv(이동·이름 변경), rm(삭제), mkdir(디렉터리 생성), cat(내용 보기), chmod (권한 변경), chown (소유자 변경), ps (프로세스 보기), kill (프로세스 종료), fork (새 프로세스 생성)
리눅스 파일 권한 (chmod) ★ 빈출
권한 표시: 소유자 (user) / 그룹 (group) / 기타 사용자 (other) 순으로 각각 rwx r (읽기) = 4 , w (쓰기) = 2 , x (실행) = 1 → 더해서 숫자로 표현rwx = 7, rw- = 6, r-x = 5, r-- = 4 예: chmod 754 file → rwxr-xr-- (소유자 rwx, 그룹 r-x, 기타 r--) 예: chmod 644 file → rw-r--r-- ls -l 맨 앞 글자: - 일반 파일, d 디렉터리, l 링크 기호 방식: chmod u+x file (소유자에게 실행 권한 추가), chmod go-w file
기억장치 관리 전략과 배치 ★ 빈출
반입 (Fetch, 언제 ): 요구 반입, 예상 반입배치 (Placement, 어디에 )최초 적합 (First Fit): 들어갈 수 있는 첫 번째 빈 공간최적 적합 (Best Fit): 들어간 뒤 남는 공간(단편화)이 가장 작은 빈 공간최악 적합 (Worst Fit): 남는 공간이 가장 큰 빈 공간교체 (Replacement, 무엇을 ): FIFO, LRU, LFU, OPT, NUR, SCR예: 빈 공간이 차례로 10K, 4K, 20K, 18K이고 17K 프로그램을 넣을 때 최초 적합 → 20K / 최적 적합 → 18K / 최악 적합 → 20K 단편화: 내부 단편화(분할 공간이 커서 남는 부분), 외부 단편화(공간이 작아 쓸 수 없는 부분). 해결: 통합(Coalescing), 압축(Compaction) 예: 빈 공간 15K, 23K, 22K, 21K에 17K를 최초 적합 → 23K에 배치, 내부 단편화 23 − 17 = 6K 예: 빈 공간 20KB, 16KB, 8KB, 40KB에 17KB를 최적 적합 → 20KB에 배치, 내부 단편화 3KB
가상기억장치와 페이지 교체 ★ 빈출 · 헷갈림
페이징 : 같은 크기(페이지)로 나눔 → 외부 단편화 없음 , 내부 단편화 발생 가능세그먼테이션 : 논리적 단위로 크기가 다르게 나눔 → 내부 단편화 없음, 외부 단편화 발생 가능페이지 교체 알고리즘 FIFO : 가장 먼저 들어온 페이지를 교체LRU : 가장 오랫동안 사용되지 않은 페이지를 교체LFU : 사용 횟수가 가장 적은 페이지를 교체OPT : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체 (이론상 최적, 구현 어려움)NUR: 참조 비트·변형 비트 이용 / SCR(2차 기회): FIFO 보완 예: 프레임 3개, 참조 순서 1, 2, 3, 1, 4, 2, 5 → FIFO 페이지 부재 5 번 예: 프레임 4개, 참조 순서 1, 2, 3, 1, 2, 4, 5, 1 → FIFO 페이지 부재 6번 예: 프레임 4개, 참조 순서 1, 2, 3, 1, 2, 4, 1, 2, 5 → LRU 페이지 부재 5번 페이지 크기가 작을수록 : 내부 단편화 감소, 기억 장소 효율 증가, 페이지 맵 테이블 커짐 , 입출력 시간 증가 세그먼테이션 주소 변환: 물리 주소 = 세그먼트 시작 주소 + 변위 (변위가 길이보다 작아야 함) — 예: 시작 222, 길이 198, 논리 주소 (2, 176) → 222 + 176 = 398 스래싱 : 페이지 교체가 너무 잦아 실행 시간보다 교체 시간이 더 많은 현상구역성 (Locality): 시간 구역성(반복문, 스택), 공간 구역성(배열 순회) / 워킹 셋 : 일정 시간 동안 자주 참조하는 페이지 집합
프로세스와 스레드 ★ 빈출
프로세스 : 실행 중인 프로그램. PCB (프로세스 제어 블록)에 정보를 저장 — 프로세스 상태, 고유 식별자, 우선순위, 레지스터, 메모리 정보, 입출력 정보 등상태 전이 생성 → 준비 (Ready) → 실행 (Running) → 종료 디스패치 : 준비 → 실행 (CPU를 할당)타이머 런아웃 : 실행 → 준비 (할당 시간 만료)블록 : 실행 → 대기 (입출력 요청)웨이크업 : 대기 → 준비 (입출력 완료)스레드 : 프로세스 안의 실행 단위. 같은 프로세스의 스레드들은 자원(메모리)을 공유 → 경량 프로세스문맥 교환(Context Switching): CPU를 다른 프로세스로 넘길 때 상태를 저장·복원 한 프로세스는 여러 스레드를 가질 수 있음. 사용자 수준 스레드는 커널 모드 전환 없이 교환해 오버헤드가 적음, 커널 수준 스레드는 운영체제가 관리 프로세스 상태에 Request는 없음 (생성·준비·실행·대기·종료)
CPU 스케줄링 ★ 빈출 · 헷갈림
비선점형 (실행 중인 프로세스의 CPU를 빼앗을 수 없음)FCFS (FIFO): 먼저 온 순서대로SJF : 실행 시간이 가장 짧은 작업부터HRN : 우선순위 = (대기 시간 + 서비스 시간 ) / 서비스 시간 — 값이 큰 것부터. SJF의 단점(긴 작업 차별) 보완우선순위, 기한부 선점형 (CPU를 빼앗을 수 있음)RR (라운드 로빈): 같은 시간 할당량만큼 돌아가며 실행SRT : 남은 실행 시간이 가장 짧은 것부터 (SJF의 선점형)다단계 큐(MLQ), 다단계 피드백 큐(MLFQ) 대기 시간 = 시작 시간 − 도착 시간 / 반환 시간 = 대기 시간 + 실행 시간 예: 도착 시간 모두 0, 실행 시간 A=6, B=3, C=8 → SJF 순서 B, A, C, 평균 대기 시간 (0+3+9)/3 = 4
교착상태와 상호 배제, 디스크 스케줄링 ★ 빈출
교착상태 필요 충분 조건 (네 가지 모두 만족해야 발생): 상호 배제 , 점유와 대기 , 비선점 , 환형 대기 해결 방법 예방 (Prevention): 네 조건 중 하나를 부정회피 (Avoidance): 안전 상태를 유지하도록 자원 할당 — 은행원 알고리즘 (Banker's Algorithm)발견 (Detection): 교착상태가 생겼는지 점검회복 (Recovery): 프로세스 종료나 자원 선점으로 해결상호 배제 기법: 세마포어 (P·V 연산), 데커 알고리즘, 피터슨 알고리즘, 램포트 알고리즘 운영체제 분류 : 제어 프로그램(감시, 작업 제어, 데이터 관리) / 처리 프로그램(언어 번역, 서비스 , 문제 처리). 컴파일러·어셈블러는 운영체제가 아님디스크 스케줄링 : FCFS, SSTF (현재 헤드에서 탐색 거리가 가장 짧은 요청부터), SCAN, C-SCAN예: 헤드 53, 큐 98, 183, 37, 122, 14, 124, 65, 67 → SSTF 순서 53-65-67-37-14-98-122-124-183 파일 디스크립터 (FCB): 파일 관리 정보. 파일을 열면 주기억장치로 옮겨짐. 사용자가 직접 참조할 수 없음
네트워크
OSI 7계층 ★ 빈출
물리 계층(1): 전기·기계적 연결. 비트 전송 — 리피터, 허브데이터 링크 계층(2): 인접 노드 사이의 신뢰성 있는 전송, 프레임 단위, 흐름 제어·오류 제어 — HDLC, PPP, 이더넷, 브리지 , 스위치 네트워크 계층(3): 경로 설정 (라우팅), 패킷 단위 — IP , ICMP, ARP, 라우터 전송 계층(4): 종단 간(End-to-End) 신뢰성 있는 전송, 세그먼트 단위 — TCP , UDP 세션 계층(5): 대화(연결) 관리, 동기점 삽입표현 계층(6): 코드 변환, 암호화 , 압축 , 데이터 형식 변환응용 계층(7): 사용자 서비스 — HTTP, FTP, SMTP, DNS, Telnet외우기: 물-데-네-전-세-표-응 데이터 링크 계층 프로토콜: HDLC, PPP, LLC, 이더넷 (HTTP는 응용 계층) 매체 접근 제어: IEEE 802.3 유선 LAN은 CSMA/CD (충돌 감지), IEEE 802.11 무선 LAN은 CSMA/CA (충돌 회피). 802.11e는 QoS 강화 오류 제어 ARQ: Stop-and-Wait, Go-back-N, Selective-Repeat / TCP 흐름 제어: Stop and Wait(한 번에 1개), Sliding Window
IP 주소와 서브넷 ★ 빈출
IPv4 : 32비트 , 8비트씩 4부분을 점(.)으로 구분A 클래스: 0~127 / B: 128~191 / C: 192~223 / D: 224~239(멀티캐스트 ) / E: 240~255(실험용) IPv6 : 128비트 , 16비트씩 8부분을 콜론(:)으로 구분주소 체계: 유니캐스트 , 멀티캐스트 , 애니캐스트 (브로드캐스트는 없음 ) 주소 공간이 넓고, 보안(IPSec)·실시간 처리(QoS)·자동 설정 강화, 확장 헤더로 기능 확장 기본 헤더는 40바이트 고정 (패킷 크기가 64KB로 고정된 것은 아님) 서브넷 마스크 /24 = 255.255.255.0 (호스트 254개) / /26 = 255.255.255.192 (네트워크 4개, 각 호스트 62 개) / /27 = 255.255.255.224 (호스트 30개) 사용 가능한 호스트 수 = 2^(호스트 비트 수) − 2 (네트워크 주소·브로드캐스트 주소 제외) IPv4 → IPv6 전환: 듀얼 스택, 터널링, 주소 변환
TCP/IP 프로토콜과 포트 ★ 빈출
TCP : 연결형 , 신뢰성 보장, 순서 제어·흐름 제어·혼잡 제어, 3-way handshake 로 연결(SYN → SYN+ACK → ACK)UDP : 비연결형 , 신뢰성 보장 없음, 빠름 → 실시간 스트리밍, DNS 등ARP : IP 주소 → MAC 주소 변환 / RARP : MAC 주소 → IP 주소ICMP : 오류 메시지·제어 메시지 전달 (ping이 사용) / IGMP : 멀티캐스트 그룹 관리잘 알려진 포트 : FTP 20, 21 / SSH 22 / Telnet 23 / SMTP 25 / DNS 53 / HTTP 80 / HTTPS 443 응용 프로토콜: DNS (도메인 이름 → IP), DHCP (IP 주소 자동 할당), SNMP(네트워크 관리) IP : 비연결형, Best Effort (최선형) 전송, 패킷 분할·병합, 헤더 체크섬만 제공 (데이터 체크섬 없음)TCP: 전이중 양방향 가상 회선, 스트림 전송, 기본 헤더 20바이트 (인접 노드 사이의 프레임 전송은 데이터 링크 계층의 일) RIP : 홉 수(hop count)를 기준으로 경로 선택하는 IGP (내부 라우팅 프로토콜), 벨만-포드 알고리즘
프로그래밍 언어 활용 OX 예시 문제 눌러서 정답과 해설을 확인하세요. 앱에는 프로그래밍 언어 활용 연습문제가 145개 있어요.
Quartz와 스프링 배치는 배치 스케줄러로 사용된다. 정답 O · Cron도 대표적인 배치 스케줄러예요.
C 언어는 변수명의 대소문자를 구분한다. 정답 O · Sum과 sum은 서로 다른 변수예요.
static으로 선언한 지역 변수는 함수가 끝나면 값이 사라진다. 정답 X · static 변수는 함수가 끝나도 값이 유지돼요.
논리 연산자 &&는 관계 연산자 ==보다 우선순위가 높다. 정답 X · 관계 연산자가 논리 연산자보다 우선순위가 높아요.
전위 증가 연산자(++a)는 변수의 값을 먼저 1 증가시킨 뒤 그 값을 사용한다. 정답 O · 후위(a++)는 값을 먼저 쓰고 나중에 증가해요.
do-while 문은 조건이 처음부터 거짓이면 한 번도 실행되지 않는다. 정답 X · do-while은 먼저 실행하고 나서 조건을 검사하므로 최소 한 번은 실행돼요.
continue 문을 만나면 반복문을 완전히 빠져나간다. 정답 X · 완전히 빠져나가는 것은 break예요. continue는 다음 반복으로 넘어가요.
C 언어에서 배열 a의 i번째 요소 a[i]는 *(a + i)와 같다. 정답 O · 배열 이름은 시작 주소이므로 같은 의미예요.
C 언어에서 char s[] = "ABC"; 로 선언한 배열의 크기는 3바이트이다. 정답 X · 문자열 끝에 널 문자가 붙어 4바이트예요.
Java에서 final로 선언한 클래스는 다른 클래스가 상속할 수 없다. 정답 O · final 클래스는 상속, final 메서드는 오버라이딩이 금지돼요.
프로그래밍 언어 활용 요약을 빈칸 암기 로 외우고, OX·객관식 문제 와 실전 모의고사 로 확인해 보세요. 틀린 문제는 1·3·7·14·30일 간격으로 다시 나와요. 회원가입 없이 무료예요.
자격공부노트에서 정보처리기사 공부하기
정보처리기사 다른 과목