정보처리기사 23년도 1회차

·2025년 4월 18일

just공부

목록 보기
16/47

5. 아래 내용을 확인하여 괄호 안에 용어를 표안에 알맞는 값을 고르시오.

구분내용
( )- 회선교환 방식과 데이터그램 방식의 장점을 결합한 통신 기술이다.
- 처음 패킷으로 최적의 경로를 고정하고, 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송할 수 있다.
- 통신기술에는 ATM이 있으며, 정해진 시간 안이나 다량의 데이터를 연속으로 보낼 때 적합하다.
( )- 패킷교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미한다.
- 각 전송패킷을 미리 정해진 경로 없이 독립적으로 처리하여 교환하는 방식이다.
- 특정 교환기의 고장 시 모든 패킷을 잃어버리는 가상회선과 달리, 그 경로를 피해서 전송할 수 있으므로 더욱 신뢰가 가능하다.
- 짧은 메시지의 패킷들을 전송할 때 효과적이고 재정렬 기능이 필요하다.

풀이

  • 가상 회선 패킷 교환 (Virtual Circuit Packet Switching)
    • 데이터그램 + 회선교환 방식 결합
    • 전송 순서 보장
    • 회선 설정 시간 필요
    • 안정적, 지연 시간 예측 가능
    • ex) ATM, Frame Relay
    • 적용
      • QoS, 영상통화, 스트리밍
  • 데이터그램 패킷 교환 (Datagram Packet Switching)
    • 인터넷은 기본적으로 데이터그램 방식
    • 패킷이 전송될 때마다 독립적으로 경로 결정
    • 연결 설정 없이 바로 전송 가능(Connectionless)
    • 라우터들은 패킷마다 최적의 경로 찾아줌(Dynamic Routing)
    • ex) TCP/IP 기반 인터넷, 이메일, 짧은 메시지 등

추가개념

  • 회선 교환
    • 송수신자 간에 전용 물리적 회선 설정
    • 해당 회선은 독점 사용
    • 유선 전화 통화 방식
  • ATM (Asynchronous Transfer Mode)
    • 고정 길이의 작은 패킷(53byte) 사용하는 고속 네트워크 전송 기술
    • 가상회선 방식을 기반으로 함
    • 시간이 적고 QoS 보장
  • TCP
    • 연결형 전송
    • 신뢰성 보장
    • 순서 보장
    • 재전송 기능 있음
  • UDP
    • 비연결형 전송
    • 빠르지만 신뢰성 없음
    • 순서 보장 없음

정답

  • 가상회선, 데이터그램

6. 아래 내용을 확인하여 알맞는 답을 작성하시오.

  • 2계층(데이터링크 계층)에서 구현되는 터널링 기술 중 하나
  • L2F와 PPTP가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용
  • IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 익명화에 더 적합

개념

  • L2TP
    • Layer 2 Tunneling Protocol
    • L2F와 PPTP를 결합한 터널링 프로토콜
    • 보안은 약하나 IPsec과 함께 쓰면 보안 강화 기능
  • VPN (Virtual Private Network)
    • 인터넷 위에 가상 사설 네트워크 구성
  • IPsec
    • 네트워크 레벨에서 데이터 암호화

정답

  • L2TP

11. 다음은 디자인 패턴에 관한 설명이다. 설명에 내용에 알맞는 답을 고르시오.

( )은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체을 조합하는 패턴에 속하며,
대리라는 이름으로도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해 주고,
외부에서는 객체의 세부인 내용을 숨기는 역할을 한다.

개념

패턴 분류주요 패턴키워드별칭(다른 이름)
생성(Creational)싱글톤 (Singleton)하나의 인스턴스-
팩토리 메서드 (Factory Method)하나의 객체 생성, 객체 생성을 분리, 가상 생성자가상 생성자 패턴(Virtual Constructor Pattern)
추상 팩토리 (Abstract Factory)연관된 서브 클래스 묶어 한 번에 교체, 키트 패턴, 추상적 표현키트 패턴(Kit Pattern)
빌더 (Builder)단계적으로 복잡한 객체 조립조립자 패턴(Assembler Pattern)
프로토타입 (Prototype)기존 객체를 복사하여 생성복제 패턴(Clone Pattern)
구조(Structural)어댑터 (Adapter)다른 인터페이스 통일, 인터페이스 변환, 순차적 접근 가능, 호환성래퍼 패턴(Wrapper Pattern)
프록시 (Proxy)객체 대신 요청 수행, 접근 제어, 대리대리자 패턴(Representative Pattern)
퍼사드 (Facade)복잡한 서브시스템을 간단히 제공통합 인터페이스 패턴(Unified Interface Pattern)
브릿지 (Bridge)구현부와 추상층 분리, 두 개의 별도 클래스 계층핸들과 바디 패턴(Handle and Body Pattern)
데코레이터 (Decorator)기능을 동적으로 추가포장지 패턴(Wrapper Pattern)
컴포지트 (Composite)폴더와 파일 합성, 복합 객체 안 복합 객체부분-전체 패턴
플라이웨이트 (Flyweight)인스턴스 공유하여 메모리 절약경량 패턴
행위(Behavioral)옵서버 (Observer)상태 변화 감시, 일대다 의존성, 이벤트 수신퍼블리셔-서브스크라이버(Publisher-Subscriber Pattern)
전략 (Strategy)알고리즘 교체 가능, 런타임에 교체정책 패턴(Policy Pattern)
책임 연쇄 (Chain of Responsibility)요청 해결될 때까지 책임 넘어감
커맨드 (Command)명령어 하나로 합침, 추상클래스/구체 클래스동작 캡슐화 패턴
인터프리터 (Interpreter)언어에 문법 표현 정의
반복자 (Iterator)같은 명령 반복, 내부 표현 방법 노출 없이 순차적 접근 가능커서 패턴
중재자 (Mediator)복잡한 상호작용을 객체 정의, 결합도 감소조정자 패턴
메멘토 (Memento)특정 시점의 상태로 돌릴 수 있음스냅샷 패턴
상태 (state)객체 상태에 따라 동일 동작을 다르게 처리오토마타 패턴
템플릿 메소드 (Template Method)상위 클래스에서 골격 정의, 하위 클래스에서 세부 처리 구체화
방문자 (Visitor)처리 기능을 별도 클래스로 구성

정답

  • Proxy

12. 릴레이션의 구성하는 용어들에 대한 다음 설명에서 괄호(① ~ ③)에 들어갈 알맞은 답을 에서 찾아 쓰시오.

○도메인 ○차수 ○속성 ○튜플
○디그리 ○카디널리티 ○릴레이션 스키마 ○릴레이션 인스턴스

개념

용어의미else
릴레이션테이블 구조를 가진 데이터 집합관계형 DB의 핵심 단위
속성릴레이션의 열필드
튜플릴레이션의 행레코드
도메인속성이 가질 수 있는 값의 범위ex) 나이 -> 정수
차수릴레이션의 속성 개수열의 수
카디널리티릴레이션의 튜플 개수행의 수
릴레이션 인스턴스실제 데이터가 저장된 릴레이션데이터는 변함, 구조는 고정
릴레이션 스키마릴레이션의 구조(정의)속성명 + 도메인+ 제약조건 등

추가 개념

용어의미비고
기본키튜플을 유일하게 식별중복X, NULL X
후보키기본키 후보가 되는 속성들유일성 O
대체키후보키 중 기본키로 선택되지 않은 키
외래키다른 릴레이션의 기본키를 참조하는 속성참조 무결성 제약과 관련
슈퍼키튜플을 식별할 수 있는 모든 속성의 집합최소성을 만족하지 않아도 됨

정답

  • ① 튜플
  • ② 릴레이션 인스턴스
  • ③ 카디널리티

15. 다음 파이썬 코드의 알맞는 출력값을 작성하시오.

a = {'한국', '중국', '일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩', '한국', '태국'})
print(a)

풀이

  • a.add('베트남') : 베트남 추가
  • a.add('중국') : 중국은 중복이라 추가X
  • a.remove('일본') : 일본 삭제
  • a.update({'홍콩', '한국', '태국'})
    • 한국은 중복이라 추가X
    • 홍콩, 태국 추가
  • print(a)
    • {'베트남', '중국', '태국', '홍콩', '한국'} 출력됨
  • set 은 중복 불가, 순서 없음

주요 컬렉션 자료형 구분

자료형설명예시중복 허용 여부순서 유지 여부변경 가능 여부주요 메소드
list순서 있는 값들의 모음[1, 2, 3]중복 허용순서 유지변경 가능append, pop
tuple변경 불가한 리스트(1, 2, 3)중복 허용순서 유지변경 불가-
set중복 없는 값들의 집합{1, 2, 3}중복 불가순서 없음변경 가능add, remove, update
dictionary키-값 쌍의 집합{'a': 1, 'b': 2}키 중복 불가파이썬 3.7부터 입력 순서 유지변경 가능keys, values, items

정답

  • {'베트남', '중국', '태국', '홍콩', '한국'}

16. 다음 성적 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수' 를 검색하고자 한다. [조건]을 참고하여 적합한 SQL문을 작성하시오.

[조건]

  • WHERE사용하지 말아야 한다.
  • SELECT절에 별칭을 사용하여 작성해야 한다.
  • SQL 구문 마지막에 세미콜론(;)은 생락 가능하다.
  • 반드시 GROUP BY와 HAVING 을 사용해야 한다.
  • 집계 함수를 사용해야 한다.

풀이

  • 성적 테이블 불러오기
  • 과목이름 기준으로 묶기 (GROUP BY)
  • 그룹마다
    • MIN(점수), MAX(점수) 계산
    • AVG(점수) 계산하여,
    • 평균이 90 이상인 그룹만 남김(HAVING)
  • 남은 과목 이름, 최소 점수, 최대 점수 출력
SQL 절역할내용
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수결과에 출력할 컬럼 선택각 과목의 이름과 해당 과목의 최소/최대 점수를 가져옴
FROM 성적조회할 테이블 지정테이블 이름 : 성적
GROUP BY 과목이름그룹핑 기준 설정과목이름을 기준으로 데이터를 묶음
HAVING AVG(점수) >= 90그룹핑 결과에 조건 부여과목별 평균 점수가 90 이상인 것만 선택

개념

  • GROUP BY
    • 특정 컬럼 기준으로 데이터를 그룹으로 묶음
    • SELECT에 나오는 컬럼은 GROUP BY에 포함되거나, 집계 함수를 통해 나와야 함
  • 집계 함수
    • 여러 개의 값을 받아 하나의 결과값을 리턴
    • 함수역할
      COUNT()데이터 개수 세기
      SUM()합계 구하기
      AVG()평균 구하기
      MIN()최소값 구하기
      MAX()최대값 구하기
  • HAVING
    • GROUP BY 로 만들어진 각 그룹에 조건을 걸 때 사용
    • WHERE과 유사하나, HAVING은 그룹에 대해 필터링
    • HAVING에서는 집계 함수 사용 가능

정답

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수
FROM 성적
GROUP BY 과목이름 HAVING AVG(점수) >= 90;

18. 다음은 스키마와 관련된 내용이다. 각 괄호안에 알맞는 답을 작성하시오.

개념

구분설명관점
외부 스키마사용자가 보는 데이터베이스의 일부사용자 관점
개념 스키마데이터베이스의 전체 논리적 구조, 테이블 관계 정의조직(설계자) 관점
내부 스키마데이터가 실제로 물리적 저장되는 방법을 정의저장장치 관점

정답

  • 외부 스키마
  • 개념 스키마
  • 내부 스키마

20. 다음 Java 코드에 대한 출력 값을 작성하시오.

class Parent {
    int x = 100;
    Parent() {
        this(500);
    }
    Parent(int x) {
        this.x = x;
    }
    int getX() {
        return x;
    }
}
class Child extends Parent {
    int x = 4000;
    Child() {
        this(5000);
    }
    Child(int x) {
        this.x = x;
    }
}
public class Main {
    public static void main(String[] args) {
        Child obj = new Child();
        System.out.println(obj.getX());
    }
}

풀이

  • 생성자 호출 순서
    • Child()
    • Child(int x)
    • Parent()
    • Parent(int x)
  • 부모 x값 : 500
  • 자식 x값 : 5000
  • getX() 호출 : Parentx 반환 -> 500
  • 자식 클래스인 Child의 생성자가 호출될 때, 먼저 부모 클래스의 생성자 호출이 일어남
    • Child(int x) 생성자가 호출될 때 암묵적으로 super() 가 호출됨
    • Parent() 생성자 실행

개념

개념설명
this()같은 클래스 내 다른 생성자 호출할 때 사용
super()부모 클래스의 생성자 호출할 때 사용
(자식 생성자 시작 전에 항상 부모 생성자가 호출됨)
필드 섀도잉부모 클래스와 자식 클래스가 동일한 이름의 필드를 가질 때, 서로 별개의 필드로 존재
메소드 오버라이딩부모 메소드를 자식이 재정의하는 것
생성자 호출 순서자식 생성자가 실행되기 전 반드시 부모 생성자가 먼저 호출됨

정답

  • 500
profile
Whatever I want | Interested in DFIR, Security, Infra, Cloud

0개의 댓글