본문 바로가기
  • 코딩, 허쌤이 떠먹여 줄게
BackEnd/정보처리기사

정보처리기사 실기 — 08 서버 프로그램 구현 정리

by 허쌤 2026. 4. 26.

정보처리기사 실기 — 08 서버 프로그램 구현 정리

NCS·교재에서 통상 「Ⅵ. 서버 프로그램 구현」 또는 6장 서버 프로그램 구현으로 묶이는 범위입니다. 5장 인터페이스 구현이 연계 모듈·검증·테스트에 가깝다면, 6장웹·애플리케이션 서버 위에서 동작하는 비즈니스 로직, 요청·응답 처리, MVC·프레임워크, 세션·보안(서버 측)서버 측 프로그램 자체에 초점이 맞춰집니다. 실기에서는 HTTP·서블릿·JSP·Spring(MVC·DI)·REST단답·용어·개념 서술로 자주 나옵니다.


1. 이 단원이 다루는 것

소단원(일반적 구성) 핵심 키워드
개발 환경·구성 JDK, WAS(Web Application Server), 톰캣, 배포 구조(WEB-INF, web.xml 개념)
HTTP·웹 기초 무상태(Stateless), 메서드, 상태 코드, 헤더·바디
서블릿·JSP 라이프사이클, HttpServletRequest / Response, forward vs redirect, 스코프
아키텍처 MVC, 3계층(3-Tier), DAO·Service·Controller 역할 구분
프레임워크 Spring IoC/DI, Spring MVC, @Controller, Spring Boot(내장 서버)
API 스타일 REST, 리소스·URI, JSON 응답, HTTP 메서드와 CRUD 대응
상태·보안 세션 vs 쿠키, 서버 측 검증, CSRF·XSS 개념(교재 수준)

2. 5장과의 역할 나누기

구분 인터페이스 구현(5장) 서버 프로그램 구현(6장)
관심사 연계 모듈, 송수신 검증, 스텁·드라이버, 통합 테스트 웹 요청 처리, 화면·API 흐름 제어, 도메인 로직 위치, 프레임워크 활용
산출물 예 연계 프로그램, 검증 규칙, 테스트 케이스 컨트롤러·서비스·DAO, JSP/뷰 템플릿, REST API 설계

두 장 모두 “서버에서 돌아가는 코드”이지만, 시험에서는 5장 = 연계·검증·테스트 용어, 6장 = HTTP·서블릿·Spring·MVC·REST로 나누어 묻는 경우가 많습니다.


3. 클라이언트-서버와 멀티티어

용어 시험용 한 줄
클라이언트 서비스를 요청하는 쪽(브라우저, 모바일 앱, 다른 시스템의 HTTP 클라이언트 등)
서버 요청을 받아 처리·응답하는 쪽(WAS, 웹 서버 + 애플리케이션 등)
2-Tier 클라이언트가 DB 등에 직접 가까이 붙는 구조(단순하나 확장·보안에 한계)
3-Tier(3계층) 표현(Presentation)업무 로직(Application)데이터(Data)물리·논리적 분리

3계층 예시(교재식): 화면(JSP/프론트) ↔ 비즈니스 로직(Service)데이터 접근(DAO + DB). 시험에서는 “화면에 SQL을 직접 넣지 않고 DAO로 분리하는 이유”가 유지보수·재사용·보안으로 서술되는 패턴이 흔합니다.


4. HTTP 핵심

HTTP는 기본적으로 무상태(Stateless): 각 요청이 이전 요청과 연결되지 않음 → 로그인 유지 등은 쿠키·세션·토큰 등으로 보완.

메서드(실기에서 자주 등장)

메서드 용도(요지)
GET 조회, 캐시 가능, 멱등 — URL에 쿼리스트링
POST 생성·처리, 요청 본문에 데이터 — 폼 전송·등록 API
PUT 전체 치환 성격의 수정(REST에서 자주)
PATCH 일부 수정
DELETE 삭제

상태 코드(대분류만 암기)

구간 의미
2xx 성공 (200 OK, 201 Created 등)
3xx 리다이렉션 (302 등)
4xx 클라이언트 오류 (404 Not Found, 400 Bad Request 등)
5xx 서버 오류 (500 Internal Server Error 등)

5. 서블릿(Servlet)

정의: 자바로 작성된 서버 측 프로그램으로, HTTP 요청을 받아 동적 응답을 생성합니다. WAS(톰캣 등) 위에서 동작합니다.

라이프사이클(순서 암기)

  1. 로딩·인스턴스 생성 — 컨테이너가 클래스 로드 후 객체 생성
  2. init()최초 1회 초기화
  3. service()doGet() / doPost()요청마다 호출
  4. destroy() — 서블릿 제거 시 정리

멀티스레드 주의(단답·서술)

  • 컨테이너는 서블릿 인스턴스를 보통 하나만 두고 요청마다 스레드doGet/doPost를 호출합니다.
  • 따라서 인스턴스 변수에 요청별 데이터를 넣으면 스레드 간 경합이 생깁니다. 요청 단위 데이터는 HttpServletRequest 속성 등으로 다루는 것이 안전합니다.

forward vs redirect

방식 브라우저 URL 특징
forward 그대로 서버 내부 위임 — 같은 요청 범위에서 JSP 등으로 넘김, request 속성 공유
redirect 변경 302 등으로 클라이언트에 새 요청 유도 — 이전 요청 스코프와 분리되는 경우가 많음

6. JSP(JavaServer Pages)

역할: HTML동적 부분을 끼워 넣어 응답을 만드는 뷰(View) 기술. 최근 교재·시험은 서블릿만으로 응답보다 MVC에서 JSP = 뷰 조합을 많이 설명합니다.

요소(이름만) 요지
스크립틀릿 <% %> 자바 코드 삽입(과도 사용은 유지보수 불리)
표현식 <%= %> 값 출력
지시자 <%@ %> 페이지 속성·import 등
액션 <jsp:useBean> 빈 사용·포워드 등(교재별)

스코프: page, request, session, application어느 스코프에 저장했는지에 따라 공유 범위가 달라집니다.


7. MVC 패턴

구성요소 책임(한 줄)
Model 데이터·비즈니스 규칙(엔티티, 서비스, DAO가 여기에 해당하는 교재도 많음)
View 화면 표현(JSP, Thymeleaf, JSON 응답 바디 등)
Controller 요청 분기·입력 검증 호출·모델 조회 후 뷰 선택

장점: 관심사 분리로 유지보수·테스트·재사용에 유리하다는 서술이 빈출입니다.


8. Spring Framework (요약)

IoC / DI

용어 의미
IoC(Inversion of Control) 객체 생성·연결의 제어를 개발자가 아니라 컨테이너가 맡음
DI(Dependency Injection) 필요한 객체를 생성자·세터·필드 등으로 주입

효과: 결합도 완화, 단위 테스트 시 Mock 주입 용이 등이 시험용 답변으로 자주 나옵니다.

Spring MVC (웹)

  • @Controller / @RestController: 웹 요청 처리 클래스 표시(@RestController = 응답 본문에 데이터 직접 — JSON API에 많이 사용)
  • @RequestMapping 계열: URL·HTTP 메서드 매핑(@GetMapping, @PostMapping 등)
  • View Resolver: 컨트롤러가 반환한 논리 뷰 이름 → 실제 JSP 경로 등으로 해석

Spring Boot

  • 설정 최소화, 내장 톰캣(임베디드 서버)단독 실행 가능한 JAR — “개발·배포 간소화”가 문제 포인트가 될 수 있습니다.

9. RESTful API (서버 구현 관점)

REST: 자원을 URI로 식별하고, HTTP 메서드로 의미를 표현하는 스타일(완전한 REST 논쟁은 시험 범위 밖).

연산 HTTP URI 예시(개념)
목록 조회 GET /api/users
단건 조회 GET /api/users/{id}
생성 POST /api/users
수정 PUT 또는 PATCH /api/users/{id}
삭제 DELETE /api/users/{id}

응답 형식: JSON이 일반적 — 직렬화(객체→JSON)는 3·4·5장의 “교환 형식”과 같은 맥락입니다.


10. 세션(Session)과 쿠키(Cookie)

구분 저장 위치 특징(시험용)
쿠키 클라이언트(브라우저) 용량·보안 한계, 만료·도메인 설정, 세션 ID 저장 등에 사용
세션 서버(메모리·스토어) 서버에 상태 저장, 세션 ID로 클라이언트 매핑, 타임아웃 설정

보안: 쿠키에 민감정보를 평문으로 넣지 않기, HttpOnly, HTTPS 등은 “개념 인지” 수준으로 교재에 나옵니다.


11. 서버 측 검증·보안(교재 수준)

  • 입력 검증: 5장의 검증과 동일하게, 클라이언트 검증만으로는 부족하고 서버에서 반드시 재검증
  • XSS: 출력 시 이스케이프, 신뢰할 수 없는 HTML 삽입 주의
  • CSRF: 폼 토큰, SameSite 쿠키 등으로 위조 요청 완화(용어·목적 수준)
  • SQL Injection: 3장과 연결 — PreparedStatement·바인딩

12. 기타 용어(선택 복습)

용어 한 줄
WAS 서블릿·JSP 등 웹 애플리케이션 실행 환경 제공
웹 서버(Apache, Nginx 등) 정적 리소스·리버스 프록시; WAS와 분리 또는 연동 구성이 많음
필터(Filter) 요청·응답 전후 공통 처리(인코딩, 로깅, 인증 등) — 서블릿 스펙
리스너(Listener) 컨텍스트·세션 생성·소멸 이벤트 처리

13. 시험 직전 체크리스트

  • 3-Tier 각 계층 역할 한 줄씩
  • HTTP 무상태 의미, GET vs POST 구분
  • 상태 코드 2xx / 4xx / 5xx 대분류
  • 서블릿 init → service(doGet/doPost) → destroy 흐름
  • 서블릿 멀티스레드·인스턴스 변수 주의
  • forward vs redirect (URL·요청 범위)
  • JSP 스코프: page / request / session / application
  • MVC 각 역할
  • IoC / DI 정의
  • @Controller vs @RestController 차이(개념)
  • REST에서 HTTP 메서드와 CRUD 대응
  • 세션 vs 쿠키 저장 위치·용도

14. 이 저장소의 관련 자료

  • info/정보처리기사-실기-03-데이터-입출력-구현-정리.md — JDBC, SQL Injection, JSON·파일 입출력
  • info/정보처리기사-실기-04-통합구현-정리.md — REST·SOAP·HTTP 메서드 개념
  • info/정보처리기사-실기-05-인터페이스-구현-정리.md — 검증·스텁·드라이버(서버 모듈 테스트 맥락)
  • info/정보처리기사-실기-IT용어-100문제-3탄.md — 서블릿, 세션, AJAX, 무상태 프로토콜 등

본 문서는 NCS·일반 교재 구성을 바탕으로 학습용으로 정리한 것이며, 시험 공고·출제 범위는 매년 한국산업인력공단 공식 안내를 확인하세요.