이 시험의 문제점

쪼잔함 지수 2 이상 문제들. 한마디 코멘트 함께 봅니다.

쪼잔함 5 (현타)6
  1. 2020-1 #16

    2020년에 LOC로 개발 기간을 산정하는 문제를 내다니, 출제위원 분은 아직도 폭포수 모델의 영광 속에서 살고 계신가 봅니다.

    #16·단답형·난이도 보통·쪼잔함 5 (현타)소프트웨어공학

    LOC 기법에 의하여 예측된 총 라인수가 30,000라인일 경우, 개발에 투입될 프로그래머의 수가 5명이고, 프로그래머들의 평균 생산성이 월당 300라인일 때, 개발에 소요되는 기간(개월)을 구하여 쓰시오. (단, 프로젝트에 참여하는 개발자들의 평균 생산성은 모두 동일하다고 가정한다)

  2. 2020-3 #10

    이론적인 기호 암기 문제. 실무자에게는 고통이다.

    #10·단답형·난이도 ·쪼잔함 5 (현타)데이터베이스

    릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계 대수의 기호는 무엇인가?

  3. 2021-3 #10

    이미 뚫린 지 오래된 암호 알고리즘을 왜 아직도 시험에 내는지 의문입니다.

    #10·단답형·난이도 어려움·쪼잔함 5 (현타)보안

    다음 괄호 안에 들어갈 용어를 작성하시오.

    ( )은 블록 암호의 일종으로, 1975년 미국 국립 표준국 NBS(현재 NIST)에서 국가 표준으로 정한 암호이다. ( )은 64비트 평문을 64비트 암호문으로 16번의 라운드를 반복하며 진행되던 대칭 암호 알고리즘이다. ( )의 키는 64비트이나 오류검출을 위한 정보가 8비트씩 들어가기 때문에 실질적으로는 56비트이다.

  4. 2022-1 #13

    이론적 분류에 집착하는 전형적인 자격증용 문제다.

    #13·단답형·난이도 어려움·쪼잔함 5 (현타)소프트웨어공학테스트

    다음 중에서 블랙박스 테스트 기법을 3가지 골라 작성하시오.

    • Equivalence Partitioning
    • Boundary Value Analysis
    • Statement Coverage
    • Base Path Test
    • Loop Test
    • Base Path Coverage
    • Decision Coverage
    • cause-effect Graph
    • Boundary Value Analysis
  5. 2024-1 #3

    이런 분류 암기 문제는 실무 능력과 아무런 상관이 없다.

    #3·단답형·난이도 보통·쪼잔함 5 (현타)소프트웨어공학

    다음 응집도(Cohesion)를 높은 순서대로 나열하시오.

    ㄱ. 기능적 응집도 ㄴ. 통신적(교환적) 응집도 ㄷ. 우연적 응집도 ㄹ. 시간적 응집도

  6. 2025-1 #12

    이런 분류 암기 문제는 실무 역량과는 무관한 전형적인 시험용 지식입니다.

    #12··난이도 보통·쪼잔함 5 (현타)소프트웨어공학

    다음은 결합도와 관련된 내용입니다. [보기]에서 알맞은 답을 골라 작성하시오.

    1. 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
    2. 모듈 간의 인터페이스로 배열이나 오브젝트, 자료구조가 전달되는 경우의 결합도
    3. 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도

    [보기] ㄱ. 자료 결합도 ㄴ. 스탬프 결합도 ㄷ. 제어 결합도 ㄹ. 공통 결합도 ㅁ. 내용 결합도 ㅂ. 외부 결합도

    보기 펼치기
    1. ㅁ, 2. ㄴ, 3. ㄹ
쪼잔함 4 (화병)80
  1. 2020-1 #7

    이런 계산식 암기는 시험을 위한 시험일 뿐이다.

    #7·단답형·난이도 어려움·쪼잔함 4 (화병)운영체제

    스케줄링 방식에서 HRN(Highest Response ratio Next) 우선순위 계산식을 쓰시오.

  2. 2020-1 #11

    소프트웨어 공학의 고전적인 암기 문제로, 실무적 감각보다는 이론적 분류에 치중되어 있다.

    #11·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음은 모듈 구현의 개념에 대한 설명이다. 괄호 안에 알맞은 용어를 쓰시오.

    • 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 인터페이스 모듈, 데이터베이스 접근 모듈 등을 필요로 함. 공통 모듈 구현기이다.
    • 모듈 간의 ( ㉠ )은/는 줄이고, ( ㉡ )은/는 높이는 공통 모듈 구현을 권장하고 있다.
  3. 2020-1 #15

    릴리즈 노트의 어느 부분이 헤더인지 맞추는 게 개발자 실무 능력과 무슨 상관이죠? 다음 문제는 커밋 메시지 제목을 뭐라고 부르는지 물어볼 건가요?

    #15·단답형·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    릴리즈 노트(Release Note)는 고객 편의성을 고려하여 조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서이다. 릴리즈 노트의 내용으로는 보통 특정 소프트웨어 문서의 최근 변경 사항, 개선 사항 및 버그 수정을 간결히 요약되어 있다. 릴리즈 노트 작성 항목 중 릴리즈 노트 이름(릴리즈 노트 날짜, 참고 날짜, 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등을 기술하는 작성 항목이 무엇인지 쓰시오.

  4. 2020-1 #18

    아, 네. 'All People Seem To Need Data Processing' 잘 외웠습니다. 이제 실무 능력 좀 보여드릴게요.

    #18·단답형·난이도 쉬움·쪼잔함 4 (화병)네트워크

    OSI 계층 중 비트를 전송하는 계층은 무엇인가?

  5. 2020-2 #8

    네트워크 보안의 핵심 프로토콜을 묻는 건 좋지만, 이런 암기식 문제는 실무 능력과 큰 상관이 없다.

    #8·단답형·난이도 어려움·쪼잔함 4 (화병)네트워크보안

    무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 프로토콜로 네트워크 계층(Network Layer)인 인터넷 프로토콜(IP)에 보안을 제공해주는 표준화된 기술이 무엇인지 쓰시오.

  6. 2020-2 #10

    GoF 패턴 분류를 묻는 건 디자인 패턴의 본질보다는 분류학적 지식을 묻는 것에 가깝다.

    #10·단답형·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음 디자인 패턴과 관련된 설명에 가장 부합하는 용어를 영어로 쓰시오.

    • 디자인 패턴은 유사한 문제를 해결하기 위해 설계들을 분류하고 각 문제 유형별로 가장 적합한 설계를 일반화하여 효과적으로 정리해 놓은 것으로 소프트웨어 개발 패턴, 구조 패턴, 행위 패턴으로 분류할 수 있다. GoF(Gang of Four)의 25개의 디자인 패턴은 사용 목적에 따라 생성, 구조, 행위 패턴으로 분류할 수 있다.
  7. 2020-2 #13

    SOAP을 묻는 건 기술 스택이 다소 올드하다는 느낌을 지울 수 없다.

    #13·단답형·난이도 어려움·쪼잔함 4 (화병)네트워크

    HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜로서, 웹 서비스의 기본적인 메시지 전송 수단을 의미하는 용어를 쓰시오.

  8. 2020-2 #16

    이런 이론적 정의를 달달 외운다고 좋은 UI가 나오는 건 아니다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    UI(User Interface)는 사용자와 컴퓨터 상호 간의 소통을 원활히 할 수 있도록 돕는 연계 작업을 뜻한다. 다음은 UI 설계 원칙 4가지이다. 괄호에 알맞은 용어를 쓰시오.

    | 직관성 | 누구나 쉽게 이해하고 사용할 수 있어야 한다. | | ( ㉠ ) | 사용자의 목적을 정확하게 달성해야 한다. | | 학습성 | 누구나 쉽게 배우고 익힐 수 있어야 한다. | | 유연성 | 사용자의 요구사항을 최대한 수용하며 오류를 최소화하여야 한다. |

  9. 2020-2 #17

    이런 개념은 학술적 정의에 가까워 실무에서 언급할 일이 거의 없다.

    #17·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)네트워크

    다음 신기술 동향과 관련된 설명에 가장 부합하는 용어를 영문 완전이름(Full-name)으로 쓰시오.

    • ( ㉠ )은 개방형 정부, 개방형 데이터의 시대적 요구와 맞물려, 기존의 거대한 정보 생태계인 웹을 활용하고 웹 기술과 핵심 개념을 그대로 활용한다는 점에서 주목받고 있다.
    • ( ㉠ )의 주요 특징은 URI(Uniform Resource Identifier)를 사용한다는 점이다. 흔히 알고 있는 URL(Uniform Resource Locator)과 비슷한 개념이다. D. URL이 특정 자원의 종류와 위치를 가리킨다면 URI는 HTTP 프로토콜을 통해 저장된 개체(식별자)를 가리킨다는 점에서 다르다.
    • 웹상에 존재하는 오픈된 정보를 하나로 묶는 RESTful한 방식이며, 링크 기능이 강조된 시맨틱 웹(Semantic Web)의 모형에 속한다고 볼 수 있다. ( ㉠ )은 시맨틱 웹을 실현하기 위한 방법이자 기술적 접근점으로 볼 수 있다.
    • ( ㉠ )은 Linked Data와 Open Data의 합성어이다. Linked Data가 정보 기술적인 면이 강한 반면, ( ㉠ )은 정보 문화적인 면이 강한 용어이다.
  10. 2020-3 #11

    변수명에 자료형을 적는 건 IDE가 없던 시절의 고육지책인데, 이걸 아직도 시험 문제로 내는 이유를 모르겠다.

    #11··난이도 쉬움·쪼잔함 4 (화병)소프트웨어공학

    헝가리안 표기법(Hungarian Notation)에 대해서 서술하시오.

  11. 2020-3 #18

    이런 용어 분류를 묻는 것은 전형적인 자격증 시험용 문제다.

    #18·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학아키텍처

    EAI 구축 유형 중 빈칸에 알맞은 유형은?

    유형개념설명
    ( ① )중간에 미들웨어를 두고 각 애플리케이션 간 Point to Point 형태로 연결단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
    ( ② )애플리케이션 사이에 미들웨어(버스)를 두어 처리미들웨어를 통한 통합
    Hybrid그룹 내에는 Hub & Spoke 방식, 그룹 간에는 메시징 버스 방식을 사용-
  12. 2020-4 #2

    이런 분류 암기 문제는 실무 역량과는 거리가 먼 전형적인 시험용 문제다.

    #2·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    디자인 패턴의 3가지 종류이다. 빈 칸에 들어갈 패턴은 무엇인가?

    생성 패턴, 구조 패턴, ( ) 패턴

  13. 2020-4 #14

    이런 용어 암기보다는 실제 테스트 자동화 도구를 한 번 더 써보는 게 훨씬 도움 됩니다.

    #14·단답형·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공하는 오라클로, 전 범위의 테스트가 불가능한 경우에 사용하는 것은 무엇인지 작성하시오.

  14. 2020-4 #17

    운영체제 역사 퀴즈인가요? 실무자는 커널 버전과 배포판이 중요합니다.

    #17·단답형·난이도 어려움·쪼잔함 4 (화병)운영체제

    데니스 리치와 켄톰 등이 함께 벨 연구소를 통해 만든 운영체제이며, 90% 이상 C언어로 구현되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능하며 계층적 트리 구조를 가짐으로써 통합적인 파일 관리가 용이한 운영체제는 무엇인가?

  15. 2021-1 #3

    기능과 비기능을 구분하는 건 기본이지만, 이걸 굳이 시험 문제로 내서 암기하게 만드는 건 좀 피곤하네요.

    #3·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음은 요구사항의 분류에 대한 설명이다. 괄호 안에 들어갈 요구사항의 유형에 대해서 쓰시오.

    • ( ㉠ ) 요구사항은 시스템이 제공하는 기능, 서비스에 대한 요구사항이다.
    • ( ㉡ ) 요구사항은 시스템이 수행하는 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항이다.
  16. 2021-1 #4

    WSDL, UDDI 같은 용어는 이제 박물관에 보내줄 때가 되지 않았나요?

    #4·단답형·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학네트워크

    웹서비스 제공 위치, 메시지 포맷, 프로토콜 정보를 웹 서비스에 상세 정보가 기술된 XML 형식으로 구성된 언어를 무엇이라 하는지 쓰시오.

  17. 2021-1 #10

    용어 암기 시험인가, 소프트웨어 공학 시험인가?

    #10·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학테스트

    다음은 테스트 종류에 대한 설명이다. 빈칸에 들어갈 알맞은 용어를 [보기]에서 찾아 쓰시오.

    • ( ① )은 개별 모듈, 서브루틴이 정상적으로 실행되는지 확인
    • ( ② )은 인터페이스 간 시스템이 정상적으로 실행되는지 확인

    [보기] 단위 테스트 / 인수 테스트 / 알파 테스트 / 화이트박스 테스트

  18. 2021-1 #16

    용어 빈칸 채우기 문제는 실무 능력과 큰 상관이 없다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)데이터베이스

    데이터 모델 구성요소 3가지를 쓰시오.

    데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구이다.

    • 개체 데이터 모델에서는 ( ㉠ )을 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내는데, 논리 데이터 모델에서는 ( ㉡ )을 이렇게 나타낸다.
    • ( ㉢ )은 데이터 무결성 유지를 위한 DB의 보편적 방법으로 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체무결성과 참조 무결성이 있다.
  19. 2021-1 #19

    이론적인 분류를 달달 외우게 하는 전형적인 시험용 문제네요.

    #19·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음은 결합도에 대한 설명이다. 빈칸에 들어갈 알맞은 용어를 [보기]에서 찾아 쓰시오.

    • ( ① )은/는 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도이다.
    • ( ② )은/는 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도이다.
    • ( ③ )은/는 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도이다.

    [보기] 자료 결합도 / 스탬프 결합도 / 제어 결합도 / 공통 결합도 / 내용 결합도 / 외부 결합도

  20. 2021-2 #7

    파이썬으로 비트 연산 문제를 내는 건 언어의 특성을 활용한 건지 그냥 괴롭히려는 건지 모르겠다.

    #7·코드 추적·난이도 어려움·쪼잔함 4 (화병)프로그래밍Python

    다음 파이썬 비트 연산자 코드 결과를 쓰시오.

    a = 100
    for i in range(1, 3):
        result = a >> i
        result = result + 1
    print(result)
    
  21. 2021-2 #9

    실무에서는 도구가 알아서 측정해주는데, 이걸 정의를 외우고 앉아있는 게 참.

    #9··난이도 어려움·쪼잔함 4 (화병)소프트웨어공학테스트

    화이트박스 테스트 종류 중에, 각 번호에 해당하는 단어를 [보기]에서 선택하시오.

    ( ① ) 커버리지: 최소 한번은 모든 문장이 수행되어야 한다. ( ② ) 커버리지: 결정(Decision) 검증 기준이라고도 하며, 조건절 참/거짓이 한 번 이상 수행되어야 한다. ( ③ ) 커버리지: 조건과 결정과 상관없이, 모든 개별 조건식에 대해 참/거짓이 한 번 이상 수행되어야 한다.

    보기 펼치기

    보기: 변형조건/결정, 구문(문장), 조건(분기)

  22. 2021-2 #11

    응집도 종류를 달달 외우는 것보다 코드 한 줄 더 깔끔하게 짜는 게 중요합니다.

    #11·단답형·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    각 번호에 해당하는 응집도를 쓰시오.

    1. 입출력 간 연관은 없으나, 순서에 따라 수행하는 것
    2. 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모인 것
    3. 하나의 기능에 모두 기여하고 모든 기능들이 밀접하게 연관되어 있는 것

    [보기] ㄱ. coincidental Cohesion ㄴ. Logical Cohesion ㄷ. Temporal Cohesion ㄹ. Procedural Cohesion ㅁ. Communication Cohesion ㅂ. Sequential Cohesion ㅅ. Functional Cohesion

  23. 2021-2 #13

    GoF 패턴 분류를 묻는 문제는 이제 그만 나올 때도 되지 않았나요?

    #13·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    괄호 안에 알맞은 단어를 쓰시오.

    GoF 디자인 패턴 중에서 ( ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로, 클래스나 객체들이 상호작용하는 방법이다. 알고리즘의 패턴에는 Interpreter, Observer, Command, Visitor 등이 있다.

  24. 2021-2 #15

    모델링의 정의를 이렇게 쪼개서 묻는 건 너무 지엽적입니다.

    #15·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)데이터베이스

    럼바우 데이터 모델링에 관한 설명이다. 해당하는 답안을 보기에서 고르시오.

    ( ① ) Modeling: 입력값에 대한 결과를 나타내며 자료 흐름도(DFD)를 이용하여 각 개체에서 수행되는 동작을 기술한다. ( ② ) Modeling: 상태 다이어그램(상태도)을 이용하여 시간에 따라 객체들의 제어 흐름 상호 반응 연산 순서를 나타낸다. ( ③ ) Modeling: 시스템에서 요구되는 객체를 찾아내고 개체들 간의 관계를 정의하여 ER다이어그램(ERD)으로 표현한다.

    [보기] ㄱ. Abstraction ㄴ. State ㄷ. Information ㄹ. Usecase ㅁ. Function ㅂ. Transaction ㅅ. Dynamic ㅇ. Sequence ㅈ. Relation

  25. 2021-2 #20

    이런 용어 암기 문제는 실무 역량보다는 시험 합격용 지식에 가깝다.

    #20·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학테스트

    다음 괄호 안에 알맞은 답을 작성하시오.

    테스트 하네스의 구성 요소 중, 상향식 테스트 시, 상위 모듈 역할을 대신하는 테스트 드라이버와 하향식 테스트 시, 하위 모듈 역할을 대신하는 테스트 ( ) 이 있다.

  26. 2021-3 #7

    UML 기호 암기시키는 건 20년 전이나 지금이나 변함이 없네요.

    #7·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음 괄호 안에 들어갈 용어를 [보기]에서 고르시오.

    • 눈에 보이지 않는 것을 개념으로 표현하는 것을 ( ㉠ )화라 하며, 이는 실세계의 복잡한 상황을 간결하고 명확하게 개념화하는 것이다.
    • ( ㉡ )은 클래스 사이의 전체 또는 부분 같은 관계를 나타내는 것이고, 전체 개체가 없어져도 부분은 없어지지 않는다.
    • ( ㉢ )은 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A 관계라 하며, 일반화 관계로 모델링한다.

    [보기] Classification, Association, Composition, Aggregation, Dependency, Generalization

  27. 2021-3 #9

    이론적인 테스트 기법 이름 맞추기 문제, 실무에서는 그냥 테스트 코드 짭니다.

    #9·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학

    ( ) 통에 요구사항 명세를 입력 조건과 출력 조건 간의 논리적 관계로 표현하고, 이를 기반으로 테스트 케이스를 도출한다.

    ( )의 '원인(causes)'은 입력 조건을 의미하고 '결과(effects)'는 입력 조건의 결과를 의미하며, 원인과 결과 간의 논리적 관계를 AND, OR, NOT 같은 boolean 연산자를 사용하여 표현한다.

  28. 2021-3 #19

    이런 문제는 정보처리기사 시험의 변별력을 의심하게 만든다.

    #19·빈칸 채우기·난이도 쉬움·쪼잔함 4 (화병)운영체제

    다음 괄호 안에 알맞은 답을 영문으로 작성하시오.

    ( ㉠ )은(는) 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다. 이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행했지만 ( ㉠ )에서는 키보드뿐만 아니라 마우스 등을 이용하여 화면의 메뉴 중 하나를 선택하여 작업을 수행한다.

  29. 2022-1 #3

    이런 코드를 짜는 사람이 있다면 즉시 코드 리뷰에서 반려하고 면담을 요청해야 합니다.

    #3·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍Java

    다음 자바 문법에 알맞은 출력 결과를 작성하시오.

    class A {
        int a;
        int b;
    }
    
    public class Main {
        static void func1(A m) {
            m.a *= 10;
        }
    
        static void func2(A m) {
            m.a += m.b;
        }
    
        public static void main(String args[]) {
            A m = new A();
            m.a = 100;
    
            func1(m);
    
            m.b = m.a
            func2(m);
    
            System.out.printf("%d", m.a);
        }
    }
    
  30. 2022-1 #8

    이미 사장된 기술의 약자를 묻는 것은 역사 공부에 가깝다.

    #8·단답형·난이도 어려움·쪼잔함 4 (화병)네트워크보안

    아래의 설명에 해당하는 단어를 영어 약자로 작성하시오.

    • 이것은 IEEE 802.11의 무선 네트워킹 표준으로 사용되는 보안 프로토콜이다.
    • 이것은 IEEE 802.11의 작업 그룹과 와이파이 얼라이언스에서 WEP를 하드웨어의 교체 없이 대체하기 위해 고안되었다.
    • 이것은 WEP의 취약점으로 인해서 와이파이 네트워크 간의 LAN과 같은 보안을 제공하지 못한 채 방치된 것과, 이미 많이 사용되고 있는 하드웨어에 대한 대안으로 필수적이었다.
    • 이 프로토콜이 도입된 이유는 WEP의 취약점으로 인해 서만 무선 네트워크 보안이 Link-layer 수준에서 사라지기 때문이고, 또 이미 배포된 하드웨어에 대한 결함이 필요했기 때문이다.
  31. 2022-1 #12

    도구 이름 외우기보다는 직접 써보는 게 훨씬 중요한데, 왜 이런 식의 암기 문제를 내는지 모르겠다.

    #12·단답형·난이도 보통·쪼잔함 4 (화병)소프트웨어공학테스트

    다음 설명에 알맞은 테스트 도구를 쓰시오.

    도구명설명목적
    JUnit자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법이다.숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 Framework이다.
    Selenium웹/GUI 테스트 자동화 도구: 사용자 인터페이스(UI)를 통한 테스트를 자동화하는 도구이다.다양한 브라우저와 운영체제 환경에서 웹 애플리케이션 테스트를 자동화하는 도구이다.
    JMeter성능 테스트 도구: 시스템의 성능과 부하를 측정하는 도구이다.아파치에서 개발한 도구로, 서버의 부하(Stress)를 측정하여 성능을 분석한다.
  32. 2022-1 #16

    보안의 3요소는 너무 자주 나와서 이제는 지겹다.

    #16·단답형·난이도 보통·쪼잔함 4 (화병)보안

    다음 설명에 대한 답을 영어 약자로 작성하시오.

    정보보호의 3요소인 CIA는 ISMS의 가장 기본적인 목표이다.

    요소영문 약어(Full Name)정의(목표)
    CConfidentiality(기밀성)인가된 사용자만 정보 자산에 접근할 수 있도록 한다.
    IIntegrity(무결성)정보가 정확하고 완전하며, 인가되지 않은 방식으로 변경되거나 파괴되지 않도록 보호한다.
    AAvailability(가용성)인가된 사용자가 정보 자산을 필요로 할 때 지체 없이 접근하고 사용할 수 있도록 보장한다.
  33. 2022-2 #2

    이런 암기형 문제는 정보처리기사 시험의 고질적인 병폐다. 라이브러리 가져다 쓰면 그만인 시대에 굳이 이걸 왜 외우게 하는지 의문이다.

    #2·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)보안

    다음은 대칭 키 알고리즘에 대한 설명이다. 해당 설명에 알맞은 용어를 각각 쓰시오.

    ① 스위스에서 1990년 Xuejia Lai, James Messey가 만든 PES(Proposed Encryption Standard)를 개량하여, 1991년에 제작된 블록 암호 알고리즘이다. 현재 가장 안전하고 최고라고 여겨지는 알고리즘으로, 64비트의 블록을 128비트의 key를 이용하며, 8개의 round로 구성되어 있다. ② 미국 정부가 후원하는 키 에스크로 방식의 암호화 알고리즘으로 제안되었으며 암호는 변조 방지 하드웨어에서 구현된 Clipper 칩에서 사용하기 위해 제공되었다. 전화기와 같은 음성을 암호화하는 데 주로 사용되며, 64비트 입출력에 80비트의 키 총 32라운드를 가진다.

  34. 2022-2 #6

    SOLID 원칙을 아는 것과 실무에서 적용하는 것은 별개다. 암기 위주의 문제 구성이 아쉽다.

    #6·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음은 SOLID 원칙에 관한 내용이다. 괄호 안에 알맞은 단어를 [보기]에서 고르시오.

    [보기] SRP, OCP, LSP, ISP, DIP

    • ( )은/는 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다.
    • ( )은/는 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리함으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.
    • 예를 들어 하나의 프린터와 복사기, 팩스 머신이 드가 있는 이 세 가지 복사기는 같은 파일에 존재하고 프린터 로직만 바뀌어도 복사기와 팩스 제품 파일은 해야 한다.
    • 그러므로 ( )을/를 적용하여 로직이 바뀌어도 다를 때는 영향을 받지 않도록 해야 한다.
  35. 2022-2 #10

    이런 용어 암기 문제는 실무 능력과 큰 상관이 없다.

    #10·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학테스트

    다음 설명에 대한 괄호 안에 알맞은 단어를 각각 작성하시오.

    • ( ㉠ ) 테스트는 하드웨어나 소프트웨어 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업으로 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 고객으로 하여금 일정 기간 후 완료한다. 공식적인 발매하기 이전에 최종적으로 실시하는 검사 작업이다.
    • ( ㉡ ) 테스트는 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트, 즉 제품이 운영되는 동안의 신뢰성 연구와 개발 단계에서 초기 작동의 결과를 평가하는 수단이며 개발 회사 내부에서 이루어지는 데 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.
  36. 2022-2 #15

    C언어 포인터의 늪을 보여주는 문제. 실무에서 이런 코드를 짜면 동료들에게 지탄받는다.

    #15·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어에서 출력에 알맞은 답을 작성하시오.

    #include <stdio.h>
    
    int len(char *p) {
        int r = 0;
        while (*p != '\0') {
            p++;
            r++;
        }
        return r;
    }
    
    int main() {
        char *p1 = "2022";
        char *p2 = "202207";
        int a = len(p1);
        int b = len(p2);
        printf("%d", a + b);
    }
    
  37. 2022-2 #16

    코드 가독성을 일부러 떨어뜨려 놓고 맞히라는 식의 전형적인 시험용 문제.

    #16·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어 코드에서 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    int main(int argc, char *argv[]) {
        int a[4] = {0, 2, 4, 8};
        int i;
        int sum = 0;
        int *p;
        for (i = 4; i > 0; i--) {
            p = a + i - 1;
            sum = sum + *p - a[i - 1];
        }
        printf("%d", sum);
        return 0;
    }
    
  38. 2022-2 #18

    이론적인 정의를 달달 외우는 게 무슨 의미가 있는지 모르겠다.

    #18·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)데이터베이스정규화

    다음은 함수 종속에 대한 설명이다. 해당 문제에 알맞은 답을 보기에서 골라 작성하시오.

    학생학과성적학년
    스폰지밥컴퓨터공학과371
    다람이한국무용학과601
    뚱이전자공학과944
    스폰지밥조리학과753

    [보기]

    • 완전 함수 종속(Full Functional Dependency)

    • 부분 함수 종속(Partial Functional Dependency)

    • 이행적 종속(transitive Dependency)

    • 성적은 학과와 학년이 있어야 가능하므로, 이 경우에는 성적 속성은 기본키에 ( ㉠ )이다.

    • 릴레이션에서 X, Y, Z라는 3개의 속성이 있을 때 X -> Y, Y -> Z가 성립되는 경우는 ( ㉡ )이다.

  39. 2022-3 #3

    이런 암기형 문제는 객관식으로 내는 게 맞지 않나 싶다.

    #3·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음은 디자인 패턴에 대한 설명이다. 각 설명에 적합한 패턴을 쓰시오.

    1. 구조적 디자인 패턴에 속한다.
    2. 기능/구현부로부터 분리되어 애플리케이션을 기능/구현부 각각 독립적인 계층화를 통해 발전시켜 나가는 설계 방식이다.
    3. 단순히 분리만 하는 것이 아니라 두 개의 클래스 사이에 다리를 놓아 연결해준다.

    (보기)

    • Abstract Factory
    • Bridge
    • Decorator
    • Adapter
    • Mediator
    • Observer
    • Strategy
  40. 2022-3 #11

    이런 도구 분류 문제는 실무 경험이 많아도 헷갈릴 수 있는 암기 위주의 문제다.

    #11··난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음 중 형상관리 도구 3가지를 고르시오.

    ㄱ. OLAP ㄴ. CVS ㄷ. Ant ㄹ. Ant ㅁ. Git ㅂ. Jenkins ㅅ. Spring ㅇ. SVN

    보기 펼치기
    1. CVS, Git, SVN
    2. OLAP, CVS, Ant
    3. Ant, Jenkins, Spring
    4. Git, Jenkins, SVN
  41. 2022-3 #17

    UML 다이어그램 종류를 괄호 채우기로 묻는 건 실무 역량과는 거리가 멀다.

    #17·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음은 UML에 관한 설명이다. 괄호 안에 알맞은 답을 작성하시오.

    • UML은 모델링 언어이다.
    • 구성 요소로는 사물 ( ㉠ ), 다이어그램으로 이루어져 있다.
    • 구조 다이어그램 중, ( ㉡ ) 다이어그램은 시스템에 사용되는 객체 타입을 정의하고, 그들 간의 정적인 관계를 다양한 방식으로 표현한 다이어그램이다.
    • ( ㉢ )은 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트를 정의하는 모델 요소이다.
  42. 2023-1 #8

    이런 분류 암기 문제는 보안 실무보다는 보안 기사 시험을 위한 전형적인 문제다.

    #8··난이도 보통·쪼잔함 4 (화병)보안

    아래 설명에 알맞은 답을 작성하시오.

    ① 감염된 컴퓨터 시스템에서 스스로 복제해 다른 컴퓨터로 복사로 실행되며 다른 실행 프로그램이 필요하지 않으며, 파일 전송 기능을 착취하도록 설계된다. ② 정상적인 프로그램으로 가장해 사용자가 직접 컴퓨터에 설치하도록 유도하며, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴한다. ③ 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램이다.

    • 감염된 후에 스스로 복제하는 능력은 없다.
  43. 2023-1 #12

    데이터베이스 용어 사전도 아니고, 이런 암기식 문제는 실무 역량과 큰 상관이 없다.

    #12·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)데이터베이스

    다음은 데이터베이스에 관련된 내용이다. 각 괄호 안에 알맞은 답을 작성하시오.

    ① ( ) : 셀 수 있는 튜플의 수이다. ② ( ) : 어떤 시점에 릴레이션의 내용(상태), 즉 저장된 데이터 전체를 의미한다. ③ ( ) : 단순히 릴레이션 또는 릴레이션 외연(Relation Extension)이라고도 한다. ④ ( ) : 특정 데이터 집합의 유니크(Unique)한 값의 개수이다.

  44. 2023-2 #3

    gets() 함수를 문제로 내다니, 보안 의식이 전혀 없는 90년대식 코딩 문제네요.

    #3·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)프로그래밍C언어

    다음은 C언어의 코드이다. 보기의 조건에 맞추어 알맞은 출력을 작성하시오.

    입력값은 홍길동, 김철수, 박영희 순서로 주어진다.

    #include <stdio.h>
    #include <stdlib.h>
    
    char n[30];
    
    char *test() {
        gets(n); // ① ④ ⑦
        return n;
    }
    
    int main() {
        char *test1;
        char *test2;
        char *test3;
        test1 = test(); // ③
        test2 = test(); // ⑥
        test3 = test(); // ⑨
        printf("%s\n", test1);
        printf("%s", test3);
        return 0;
    }
    
  45. 2023-2 #6

    이런 용어 구분은 실무보다 자격증 시험을 위한 전형적인 암기 문제다.

    #6··난이도 보통·쪼잔함 4 (화병)소프트웨어공학테스트

    다음은 테스트 커버리지에 대한 내용이다. 보기에서 알맞은 기호를 고르시오.

    • 프로그램 내에 있는 결정포인트 내의 모든 각 개별 조건식에 대한 모든 가능한 값(참/거짓)에 대해 적어도 한 번 수행한다.
    • 소프트웨어 테스트 수행 시 소스 코드를 어느 수준까지 수행하였는지를 나타내는 기준을 나열한다.
    • 실제 업무에서는 다양한 툴을 사용하여 테스팅을 수행한다.
    • True / False에 충분한 양을 줄 수 없는 경우가 발생 가능한 한계를 지닌다.

    [보기] ㄱ. 구문 커버리지 ㄴ. 변형 조건/결정 커버리지 ㄷ. 조건/결정 커버리지 ㄹ. 결정 커버리지

    보기 펼치기

    ① ㄱ ② ㄴ ③ ㄷ ④ ㄹ

  46. 2023-2 #11

    패턴을 왜 분류별로 외워야 하는지 모르겠다. 패턴을 적재적소에 사용하는 능력이 중요하지 분류가 중요한가?

    #11··난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음은 디자인 패턴에 관한 문제이다. [보기]에서 알맞은 것을 작성하시오.

    ① 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. ② 알고리즘을 객체 구조에서 분리시키는 디자인 패턴으로 연산을 수행해야 할 요소의 수정이 없지 않고 새로운 연산을 추가 가능하게 하는 방법이다.

    보기 펼치기

    생성패턴, 구조패턴, 행위패턴, Singleton, Adapter, Observer, Factory Method, Bridge, Strategy, Builder, Decorator, Visitor

  47. 2023-2 #13

    이런 고대 유물 같은 프로토콜의 세부 필드까지 외우게 하는 것은 너무한 것 아닌가?

    #13·빈칸 채우기·난이도 ·쪼잔함 4 (화병)네트워크

    다음은 HDLC 프로토콜에 대한 설명이다. 괄호 안에 알맞은 답을 [보기]에서 골라 작성하시오.

    • ( ① ) 프레임은 Seq, Next, P/F의 필드를 가진다. 또한 한 번 처음 비트를 0으로 준다. Seq는 송신 순서를 가진다. P/F를 1로 설정하고 Next는 주소에서 송신측에 데이터 전송을 하라는 의미이고 P/F로 설정된 경우 데이터 전송을 요구하는 것이 아니라 다음 비트가 0이냐 아니냐를 따진다. 데이터를 보내는 역할은 아니라 다음 응답의 기능을 수행하므로 Seq에 대한 필요가 없다고 다음 프레임을 요구하는 형태는 존재한다.
    • ( ④ )은/는 양호 모드 주로 주국과 하위 없이 종국에 데이터를 전송할 수 있다.
    보기 펼치기

    ㄱ. 연결제어, ㄴ. 감독, ㄷ. 의명, ㄹ. 비번호, ㅁ. 릴레이, ㅂ. 양방향 응답, ㅅ. 릴레이, ㅇ. 동기균형(SBM), ㅈ. 비동기균형(ABM)

  48. 2023-2 #18

    버블 정렬을 직접 구현하는 코드를 시험에 내는 건 20년 전이나 지금이나 변함이 없네.

    #18·코드 추적·난이도 어려움·쪼잔함 4 (화병)프로그래밍C언어

    다음 코드는 선택형 구현에 관한 문제이다. 오름차순으로 정렬할 경우 빈칸에 알맞은 연산자를 [보기]에서 골라 작성하시오.

    #include <stdio.h>
    int main() {
        int E[] = {64, 25, 12, 22, 11};
        int n = sizeof(E) / sizeof(E[0]);
        do {
            int i = 0;
            do {
                if (E[i] ( ) E[i+1]) {
                    int tmp = E[i];
                    E[i] = E[i+1];
                    E[i+1] = tmp;
                }
                i++;
            } while (i < n - 1);
            n--;
        } while (n > 1);
    }
    

    [보기] <, <=, >, >=, ==, %

  49. 2023-3 #4

    코드 트레이싱을 위해 억지로 꼬아놓은 문제라 실무적 가치는 낮다.

    #4·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어 코드의 출력 결과를 작성하시오.

    #include <stdio.h>
    
    int main() {
        int num = 10;
        typedef struct Data {
            char c;
            int *numPtr;
        } Data;
        Data d1;
        Data *d2 = malloc(sizeof(struct Data));
        d1.numPtr = &num;
        d2->numPtr = &num;
        printf("%d", *d1.numPtr);
        printf("%d", *(d2->numPtr));
        free(d2);
        return 0;
    }
    
  50. 2023-3 #9

    이런 고전 기술을 묻는 건 정보처리기사 시험의 고질적인 문제죠.

    #9·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)네트워크TCP/IP

    다음 설명에 대해 괄호 안에 알맞은 용어를 작성하시오. (영어 약자로 작성하시오)

    ( ㉠ )은 자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송 방식이다.

    • 셀이라 부르는 고정 길이 패킷을 이용하여 처리가 단순하고 고속망에 적합하며, 연속으로 셀을 보낼 때 다중화를 하지 않고 셀 단위로 동기가 이루어지지만 경우에 따라 동기식 시간 분할 다중화를 사용하기도 한다.
    • 가상 채널(Virtual Channel) 기반의 연결 지향 서비스로, 셀이라 부르는 고정 길이(53바이트) 패킷을 사용하여 통신을 하며 계층 다중화 방식을 이용한다.
  51. 2023-3 #19

    수학 기호 암기 테스트. 실무에서는 그냥 SQL 쿼리 짜는 게 훨씬 빠르다.

    #19·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)데이터베이스sql

    다음은 관계대수에 대한 내용이다. [보기]에 알맞은 기호를 작성하시오.

    1. join: ( ㉠ )
    2. project: ( ㉡ )
    3. select: ( ㉢ )
    4. division: ( ㉣ )

    [보기] ㄱ. σ ㄴ. π ㄷ. ⨝ ㄹ. ÷

  52. 2024-1 #2

    가독성을 해치는 이런 코드는 실무에서 작성하면 바로 코드 리뷰 반려 대상이다.

    #2·코드 추적·난이도 어려움·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어 코드에서 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    int main() {
    
        int v1 = 0, v2 = 35, v3 = 29;
    
        if(v1 > v2 ? v2 : v1) {
            v2 = v2 << 2;
        } else {
            v3 = v3 << 2;
        }
    
        printf("%d", v2 + v3);
    }
    
  53. 2024-1 #6

    이런 표를 보고 제2정규형 위반을 찾는 건 시험용 퍼즐이지, 실제 DB 설계는 ERD 툴이 다 해준다.

    #6·단답형·난이도 어려움·쪼잔함 4 (화병)데이터베이스정규화

    다음 표에서 어떤 정규형이 위반되었는지 쓰시오.

    고객이름강좌명강좌번호
    한지수토익P001
    한지수전기기사P002
    한지수토익P001
    한지수정보처리기사P003
    한지수전기기사P002
  54. 2024-1 #8

    이론적인 용어 정의를 묻는 전형적인 시험용 문제네요.

    #8··난이도 어려움·쪼잔함 4 (화병)데이터베이스SQL

    다음 각 설명에 해당하는 용어를 쓰시오.

    구분세타 조인 (Theta Join)동등 조인 (Equi Join)자연 조인 (Natural Join)
    정의연산자 <, >, =, <=, >=, <>를 사용하여 조인하는 조인등호(=)를 기준으로 조인하는 조인공통 속성 이름을 기준으로 자동으로 조인하는 조인
    결과조건에 맞는 모든 튜플 결합조건에 맞는 튜플 결합공통 속성은 한 번 나타나고, 조건에 맞는 튜플 결합
  55. 2024-1 #14

    이론적 정의를 묻는 전형적인 시험용 문제다.

    #14·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학테스트

    아래는 애플리케이션 테스트 관리 내용이다. 설명하는 답을 보기에서 골라 작성하시오.

    보기

    ㄱ. 구문 커버리지 ㄴ. 결정 커버리지 ㄷ. 조건 커버리지 ㄹ. 변경 조건/결정 커버리지 ㅁ. 다중 조건 커버리지 ㅂ. 경로 커버리지

    설명

    • 모든 분기와 조건의 조합을 고려하나 모든 조합을 테스트하지 않고 테스트가 필요한 중요한 조합을 찾는다는 점이 특징이다.
  56. 2024-1 #19

    C언어의 포인터와 문자열 처리를 억지로 꼬아놓은 전형적인 시험용 문제다.

    #19·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C 언어 코드의 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    #include <ctype.h>
    
    int main() {
        char *p = "it is 8";
        char result[100];
        int i;
        for(i = 0; p[i] != '\0'; i++) {
            if(isupper(p[i]))
                result[i] = (p[i] - 'A' + 5) % 26 + 'A';
            else if(islower(p[i]))
                result[i] = (p[i] - 'a' + 10) % 26 + 'a';
            else if(isdigit(p[i]))
                result[i] = (p[i] - '0' + 3) % 10 + '0';
            else
                result[i] = p[i];
        }
        result[i] = '\0';
        printf("%s\n", result);
        return 0;
    }
    
  57. 2024-2 #4

    이론적인 용어 정의를 묻는 전형적인 시험용 문제다.

    #4·단답형·난이도 쉬움·쪼잔함 4 (화병)데이터베이스

    다음 릴레이션의 Cardinality와 Degree를 작성하시오.

    이름나이주소취미
    한키스23서울독서
    아키스25순천뜨개질
    화키스20진주게임
    박키스40광명달리기

    Cardinality: ( ㉠ ) Degree: ( ㉡ )

  58. 2024-2 #9

    이론적인 분류를 묻는 전형적인 시험용 문제로, 실무에서는 '이거 너무 꼬여있는데?'라고 말하지 '이건 순차적 응집도야'라고 말하지 않는다.

    #9··난이도 보통·쪼잔함 4 (화병)소프트웨어공학

    다음 내용을 확인하고 [보기]에서 알맞은 답을 고르시오.

    • 실행 순서가 밀접한 관계를 갖는 요소를 모아 모듈로 구성한다.
    • 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 요소의 입력 자료로서 제공되는 형태다.

    [보기] ㄱ. 기능적(functional) ㄴ. 우연적(Coincidental) ㄷ. 통신적(Communication) ㄹ. 절차적(Procedural) ㅁ. 시간적(Temporal) ㅂ. 순차적(Sequential) ㅅ. 논리적(Logical)

    보기 펼치기

    ① ㄱ ② ㄴ ③ ㅂ ④ ㄹ

  59. 2024-2 #10

    패턴의 이름과 용도를 아는 것이 중요하지, 이걸 분류하는 게 무슨 의미가 있는지 모르겠다.

    #10·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음은 디자인 패턴에 관한 설명이다. 아래 설명에 알맞은 용어를 작성하시오.

    • 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다.
    • 이 패턴은 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있도록 해준다.
    • 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적 구현에 종속되지 않도록 한다.
  60. 2024-2 #15

    포인터로 문자열을 덮어쓰는 이런 코드는 실무에서 작성하는 순간 코드 리뷰에서 즉시 반려 대상이다.

    #15·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력 결과를 작성하시오.

    #include <string.h>
    #include <stdio.h>
    
    void sumFn(char *d, const char *s) {
        while(*s) {
            *d = *s;
            d++;
            s++;
        }
        *d = '\0';
    }
    
    int main() {
        const char *str1 = "first";
        char str2[50] = "teststring";
        int result = 0;
    
        sumFn(str2, str1);
    
        for(int i = 0; str2[i] != '\0'; i++) {
            result += i;
        }
    
        printf("%d", result);
        return 0;
    }
    
  61. 2024-2 #17

    재귀 호출의 흐름을 억지로 꼬아놓은 전형적인 '시험용' 코드다.

    #17·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍Java

    다음 Java에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력 값을 작성하시오.

    class Main {
        public static void main(String[] args) {
            String str = "abacabcd";
            boolean[] seen = new boolean[256];
            System.out.print(calculFn(str, str.length() - 1, seen));
        }
    
        public static String calculFn(String str, int index, boolean[] seen) {
            if(index < 0) return "";
            char c = str.charAt(index);
            String result = calculFn(str, index - 1, seen);
            if(!seen[c]) {
                seen[c] = true;
                return c + result;
            }
            return result;
        }
    }
    
  62. 2024-2 #18

    break를 안 넣어서 결과를 꼬아놓는 건 실무에서는 '악마의 코드'로 분류된다.

    #18·코드 추적·난이도 어려움·쪼잔함 4 (화병)프로그래밍C언어

    다음 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        int a = 11;
        int b = 19;
        swap(a, b);
    }
    
    void swap(int a, int b) {
        switch(a) {
            case 1:
                b = 1;
            case 11:
                b = 2;
            default:
                b += 3;
        }
        printf("%d", a - b);
    }
    
  63. 2024-3 #4

    이런 손으로 푸는 페이지 교체 알고리즘은 컴퓨터 구조론 시험의 고전이지만, 실무와는 거리가 멀다.

    #4·단답형·난이도 어려움·쪼잔함 4 (화병)운영체제

    다음 운영체제 페이지 순서를 참고하여 할당된 프레임의 수가 3개일 때 LRU 알고리즘의 페이지 부재 횟수를 작성하시오.

    페이지 참조 순서: 7 0 1 2 0 3 0 4 2 3 0 2 1 2 0 1 7 0 1

  64. 2024-3 #6

    패턴의 이름과 용도를 아는 것이 중요하지, 생성/구조/행위로 분류하는 것은 시험을 위한 암기일 뿐이다.

    #6·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음은 GoF 디자인 패턴과 관련된 문제이다. 괄호 안에 알맞은 용어를 작성하시오.

    • ( ㉠ ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배를 정의하는 패턴이다.
    • ( ㉡ ) 패턴은 객체 간의 결합 방법을 정의하고 복잡도를 낮춘다.
    • ( ㉢ ) 패턴은 Chain of Responsibility나 Command 또는 Observer 패턴이 있다.
  65. 2024-3 #10

    파이썬의 유연함을 꼬아서 문제로 만드는 전형적인 시험용 코드다.

    #10·코드 추적·난이도 어려움·쪼잔함 4 (화병)프로그래밍Python

    다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    def func(value):
        if type(value) == type(100): // (4)
            return 100
        elif type(value) == type(""): // (5)
            return len(value)
        else:
            return 20 // (6)
    
    a = '100.0'
    b = 100.0
    c = (100, 200)
    
    print(func(a) + func(b) + func(c)) // (7)
    
  66. 2024-3 #13

    이런 용어 암기보다는 실제 테스트 케이스를 어떻게 짤지 고민하는 게 훨씬 생산적이다.

    #13·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학테스트

    다음은 테스트 커버리지에 대한 문제이다. 아래 내용에 알맞은 말을 [보기]에서 골라 작성하시오.

    1. 테스트를 통해 프로그램의 모든 문장을 최소한 한 번씩 실행했는지를 측정
    2. 프로그램 내의 모든 분기(조건문)의 각 분기를 최소한 한 번씩 실행했는지를 측정
    3. 복합 조건 내의 각 개별 조건이 참과 거짓으로 평가되는 경우를 모두 테스트했는지를 측정

    [보기] ㄱ. 경로 ㄴ. 분기 ㄷ. 결정 ㄹ. 문기 ㅁ. 함수 ㅂ. 문장 ㅅ. 루프

  67. 2024-3 #14

    UML 기호 암기보다는 객체지향 설계 원칙을 이해하는 게 훨씬 중요하다.

    #14··난이도 보통·쪼잔함 4 (화병)소프트웨어공학아키텍처

    아래는 UML 클래스의 관계에 관한 문제이다. [보기]를 보고 알맞은 관계를 선택하여 작성하시오.

    (이미지 내 다이어그램 참조: 버스/트럭/택시 -> 차, 엔진 -> 차, TV -> 리모컨)

    [보기] ㄱ. 의존 ㄴ. 연관 ㄷ. 일반화

  68. 2024-3 #19

    컴파일러가 어떻게 동작하는지 묻는 건 좋지만, 실무에서 이런 코드를 짜면 동료들에게 지탄받기 딱 좋습니다.

    #19·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍Java

    다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    class Main {
        public static void main(String[] args) {
            new Collection<>(0).print(); // ①
        }
    }
    
    public static class Collection<T> {
        T value; // ②
        public Collection(T t) {
            value = t; // ③
        }
        public void print() {
            new Printer().print(value); // ④
        }
    }
    
    class Printer {
        void print(Integer a) { // ⑦
            System.out.print("A" + a);
        }
        void print(Number a) { // ⑥
            System.out.print("C" + a);
        }
        void print(Object a) { // ⑤
            System.out.print("B" + a);
        }
    }
    
  69. 2025-1 #11

    실무에서 이렇게 2차원 배열을 흉내 내는 코드를 짜면 동료들에게 비난받기 딱 좋습니다.

    #11·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음은 C언어에 대한 문제입니다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    #include <stdlib.h>
    
    void set(int** arr, int* data, int rows, int cols) {
        for (int i = 0; i < rows * cols; ++i) {
            arr[((i + 1) / rows) % rows][(i + 1) % cols] = data[i];
        }
    }
    
    int main() {
        int rows = 3, cols = 3, sum = 0;
        int data[] = {5, 2, 7, 4, 1, 8, 3, 6, 9};
    
        int** arr;
        arr = (int**) malloc(sizeof(int*) * rows);
    
        for (int i = 0; i < rows; i++) {
            arr[i] = (int*) malloc(sizeof(int) * cols);
        }
    
        set(arr, data, rows, cols);
    
        for (int i = 0; i < rows * cols; i++) {
            sum += arr[i / rows][i % cols] * (i % 2 == 0 ? 1 : -1);
        }
    
        printf("%d", sum);
    }
    
  70. 2025-1 #14

    이런 분류 암기 문제는 실무 역량과는 무관한 전형적인 자격증용 문제다.

    #14·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음은 디자인 패턴에 대한 설명이다. 알맞은 답을 보기에서 골라 작성하시오.

    • 서로 다른 인터페이스를 가진 클래스들을 연결하여 사용 가능하게 한다.
    • 기존 클래스(Adaptee)를 원하는 인터페이스(Target)에 맞게 변환하는 어댑터(Adapter)를 만든다.
    • 기존 클래스를 감싸서(wrapper) 인터페이스를 변환해 주는 역할을 한다.

    [보기]

    • Abstract Factory, Adapter, Command, Builder, Composite, State, Factory Method, Bridge, Observer, Prototype, Facade, Template, Singleton, Flyweight, Method, Proxy, Visitor
  71. 2025-2 #2

    기초 중의 기초를 묻는 문제. 이런 건 틀리면 안 된다.

    #2··난이도 쉬움·쪼잔함 4 (화병)데이터베이스

    다음은 데이터베이스 릴레이션의 구성 요소 중 하나에 대한 설명이다. 설명을 읽고 [보기]에서 알맞은 기호를 골라 작성하시오.

    • 릴레이션(Relation)에서 열(Column)을 의미한다.
    • 각 열은 고유한 이름을 가지며 특정 도메인(Domain)에서 정의된 값을 갖는다.
    • 예를 들어 "고객" 릴레이션에서 고객번호, 이름, 주소 등은 각각 하나의 열이며 이 열들은 고객의 고유한 속성을 나타낸다.
    • 이 개념은 파일 구조에서의 필드(Field)에 해당하며 릴레이션에서 행(Row, Tuple)과 함께 릴레이션을 구성하는 요소이다.

    [보기]

    ㄱ. Cardinality ㄴ. Domain ㄷ. Attribute ㄹ. Degree ㅁ. Schema ㅂ. Tuple

    보기 펼치기

    ㄱ. Cardinality ㄴ. Domain ㄷ. Attribute ㄹ. Degree ㅁ. Schema ㅂ. Tuple

  72. 2025-2 #7

    이런 표 암기 문제는 실무 능력과 상관없이 변별력만 높이려는 의도가 다분합니다.

    #7·단답형·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학디자인패턴

    다음은 디자인 패턴에 관한 문제이다. 아래 내용에 알맞은 단어를 작성하시오.

    • 이번 과제에 대한 접근을 제어하거나 추가적인 기능을 부여하기 위해 해당 객체의 대리 객체를 사용하는 방식의 디자인 패턴이다.
    • 실제 객체에 접근 전에 필요한 작업을 수행할 수 있으며 실제 객체의 생성을 지연시켜 메모리와 자원을 절약할 수 있다.
    • 또한, 실제 객체를 감추어 정보은닉을 강화할 수 있다는 장점이 있다.
  73. 2025-2 #11

    시험을 위한 그래프 그리기 놀이인가, 소프트웨어 공학인가.

    #11·단답형·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학테스트

    다음 제어 흐름 그래프가 분기 커버리지(Branch Coverage)를 만족하기 위한 테스트 순서를 쓰시오.

  74. 2025-2 #16

    포인터로 연결 리스트를 직접 구현하는 문제는 C언어 시험의 단골 손님이지만, 실무에서는 버그의 온상입니다.

    #16·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음은 C언어의 문제이다. 아래 코드를 보고 알맞은 출력을 작성하시오.

    #include <stdio.h>
    #include <stdlib.h>
    
    struct node {
        int p;
        struct node *n;
    };
    
    int main() {
        struct node a = {1, NULL};
        struct node b = {2, NULL};
        struct node c = {3, NULL};
    
        a.n = &b;
        b.n = &c;
        c.n = NULL;
    
        c.n = &a;
        a.n = &b;
        b.n = NULL;
    
        struct node *head = &c;
        printf("%d %d %d", head->p, head->n->p, head->n->n->p);
        return 0;
    }
    
  75. 2025-3 #2

    이런 용어 구분은 실무에서 코드 짤 때 아무런 도움이 안 된다.

    #2·단답형·난이도 어려움·쪼잔함 4 (화병)소프트웨어공학테스트

    다음은 소프트웨어 테스트 기법 중 하나에 대한 설명이다. 설명을 읽고 해당되는 테스트 커버리지를 쓰시오.

    • 소프트웨어 테스트의 화이트박스 구조 기반 기법 중 하나로, 결정(Decision Point) 안에 존재하는 모든 개별 조건식(Atomic Condition)을 대상으로 하는 커버리지 기준이다.
    • 하나의 결정문(if A && B 또는 if (x > 10 || y == 0)) 안에 여러 개의 조건이 포함될 수 있으며, 이 커버리지는 각 조건의 True / False 두 방향 모두 한 번 이상 되도록 테스트 케이스를 설계해야 한다.
  76. 2025-3 #4

    이론적인 오류 검출 방식 암기 문제. 실무에서는 라이브러리가 다 해준다.

    #4·빈칸 채우기·난이도 어려움·쪼잔함 4 (화병)네트워크보안

    다음은 오류 검출 방식에 대한 설명이다. 설명을 읽고, 빈칸 (①)~(⑤)에 들어갈 알맞은 용어를 [보기]에서 골라 작성하시오.

    • (①) 코드는 전송 데이터에 여러 개의 검사 비트를 추가하여 오류를 검출하고, 수정까지 가능한 방식이다. 이 코드는 재전송 없이 수신 측에서 자체 수정하는 (②) 방식에 속한다.
    • 반면, 오류 발생 시 송신 측에 재전송을 요구하는 방식은 (③)이라 하며, 여기에는 대표적인 검사 비트 법으로 (④) 검사와 (⑤) 검사가 있다.

    보기

    CRC, FEC, BEC, Parity, MD5, BCD, Hamming

    보기 펼치기

    CRC, FEC, BEC, Parity, MD5, BCD, Hamming

  77. 2025-3 #7

    실무에서 이런 식으로 비트 연산과 포인터를 섞어 짜면 코드 리뷰에서 바로 반려됩니다.

    #7·코드 추적·난이도 ·쪼잔함 4 (화병)프로그래밍C언어

    다음 C 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    struct Node {
        struct Node* next;
        unsigned int x;
    };
    
    int main() {
        struct Node t1 = {0, 5u};
        struct Node t2 = {0, 7u};
        struct Node t3 = {0, 11u};
    
        t3.next = &t2;
        t2.next = &t1;
    
        struct Node* curr = &t3;
        int sum = 0;
    
        while (curr) {
            sum = sum * 3 + curr->x;
            curr = curr->next;
        }
    
        sum = (sum ^ 42u) + 100u;
    
        printf("%u\n", sum);
    }
    
  78. 2025-3 #10

    CROSS JOIN 결과를 손으로 계산하게 시키는 건 데이터베이스 이론 시험의 전형적인 고문 방식이다.

    #10·코드 추적·난이도 어려움·쪼잔함 4 (화병)데이터베이스SQL

    다음은 테이블에서 조건값을 수행한 화면이다. 이에 대한 알맞은 결과를 작성하시오.

    T1

    CODENAME
    3258smith
    4324allen
    5432scott

    T2

    NORULE
    12s%
    32%t%
    SELECT COUNT(*) CUT FROM T1 A
    CROSS JOIN T2 B
    WHERE A.NAME LIKE B.RULE;
    
  79. 2025-3 #14

    이런 수동 연산 문제는 SQL 쿼리 한 줄 짜는 것보다 실무와 거리가 멀다.

    #14·단답형·난이도 어려움·쪼잔함 4 (화병)데이터베이스SQL

    아래의 테이블을 확인하여 R % S의 결과를 테이블 형태로 기재하시오.

    [R 테이블]

    AB
    a1b1
    a2b2
    a1b3

    [S 테이블]

    B
    b1
    b3
  80. 2025-3 #16

    데이터베이스 용어 사전 암기 테스트인가요?

    #16·빈칸 채우기·난이도 쉬움·쪼잔함 4 (화병)데이터베이스

    다음은 관계 데이터베이스 개념에 대한 설명입니다. 각 설명에 알맞은 용어를 [보기]에서 골라 순서대로 쓰시오.

    ㄱ. 테이블에서 한 행(Row)을 의미하며, 하나의 레코드를 구성하는 요소이다. ㄴ. 실제 데이터가 저장되어 있는 테이블의 내용 전체를 의미하며, 데이터의 상태를 나타낸다. ㄷ. 테이블에 저장된 행(Row)의 총 개수를 의미한다.

    [보기] 스키마(Schema), 속성(Attribute), 튜플(Tuple), 차수(Degree), 인스턴스(Instance), 카디널리티(Cardinality)

쪼잔함 3 (욕 나옴)102
  1. 2020-1 #1

    이론적인 용어 암기보다는 실제 테스트 자동화 환경을 구축하는 게 훨씬 생산적이다.

    #1··난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    소프트웨어 테스트 방법의 일반적인 원리 중 하나의 살충제 패러독스에 대한 개념을 설명하시오.

  2. 2020-1 #4

    XML의 정의를 묻는 문제인데, 요즘은 JSON에 밀려 입지가 좁아지고 있다.

    #4·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    다음 설명에 부합하는 마크업 언어는 무엇인지 영문 약어로 쓰시오.

    • HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 다목적 마크업 언어이다.
    • 웹상에서 구조화된 문서를 상호교환 가능하도록 설계된 표준 문서 포맷으로 메타데이터 정의가 명확하다.
    • 사용자가 새로운 태그와 속성을 정의할 수 있는 확장성을 가진다.
    • 유니코드를 사용하여 전 세계의 모든 문자를 처리 가능하며 장치와 시스템에 독립적이다.
  3. 2020-1 #10

    이미 보안성이 깨진 알고리즘을 묻는 것은 역사 공부를 하라는 것인가.

    #10·단답형·난이도 보통·쪼잔함 3 (욕 나옴)보안

    입력 데이터로부터 128비트의 축약 메시지인 해시 값을 생성하는 해시 함수로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 용도로 많이 쓰이고 있다. 1990년 R.Rivest가 MD4를 임명한 해시 함수로 개선한 알고리즘이 무엇인지 쓰시오.

  4. 2020-1 #14

    break를 일부러 빼서 흐름을 제어하는 코드는 가독성을 해치므로 실무에서는 지양해야 한다.

    #14·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음은 Java 소스코드이다. 출력 결과를 쓰시오.

    public class good {
        public static void main(String[] args) {
            int i = 3;
            int k = 1;
            switch (i) {
                case 0:
                case 1:
                case 2:
                case 3: k = 0;
                case 4: k += 3;
                case 5: k -= 10;
                default: k--;
            }
            System.out.print(k);
        }
    }
    
  5. 2020-1 #20

    요즘 세상에 이걸 손으로 세고 있다니, 린터나 정적 분석 도구는 장식인가요?

    #20·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    다음 그림에서 Fan-in 개수가 2 이상인 모듈은?

    graph TD
        A --> B
        A --> C
        A --> D
        B --> E
        B --> F
        C --> F
        D --> F
        E --> G
        F --> H
        G --> H
    
  6. 2020-2 #2

    집합의 순서가 보장되지 않는다는 점을 굳이 이렇게 테스트해야 하나 싶다.

    #2·코드 추적·난이도 보통·쪼잔함 3 (욕 나옴)프로그래밍Python

    다음 파이썬 코드의 출력 결과를 쓰시오.

    a = {'일본', '중국', '한국'}
    a.add('베트남')
    a.add('일본')
    a.update({'홍콩', '한국', '태국'})
    print(a)
    
  7. 2020-2 #9

    이런 표 암기 문제는 실무에서 '이게 정적 분석인가요?'라고 묻는 사람이 없다는 점에서 전형적인 시험용 문제다.

    #9·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용하는 도구는 무엇인지 쓰시오.

  8. 2020-2 #11

    안드로이드 정의를 묻는 건 정보처리기사 시험의 모바일 분야 단골 문제다.

    #11·단답형·난이도 보통·쪼잔함 3 (욕 나옴)운영체제

    리눅스 운영체제 위에서 구동하며 휴대폰 전화를 비롯한 응용 장치를 위한 운영체제의 미들웨어, 사용자 인터페이스, 그리고 표준 응용프로그램(웹 브라우저 등) 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제로 개발되었고, 컴파일된 바이트 코드를 구동할 수 있는 런타임 라이브러리를 제공하는 운영체제는 무엇인지 쓰시오.

  9. 2020-2 #18

    이런 순서 암기는 실무에서 아무런 의미가 없다.

    #18·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    다음은 데이터 모델링 절차이다. 순서에 맞도록 [보기]에서 고르시오.

    요구사항 분석 > ( ① ) > ( ② ) > ( ③ )

    [보기]

    • 물리적 데이터 모델링
    • 개념적 데이터 모델링
    • 논리적 데이터 모델링
  10. 2020-3 #2

    초기값을 0으로 설정해놓고 결과를 묻는 건 낚시 문제인가, 아니면 기초 확인인가?

    #2·코드 추적·난이도 보통·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

    #include <stdio.h>
    
    void main() {
        int i=0, c=0;   // ①
    
        while (i < 10) {  // ②
            i++;          // ③
            c *= i;       // ④
        }
    
        printf("%d", c);  // ⑤
    }
    
  11. 2020-3 #4

    서술형 문제의 정석, 키워드만 맞으면 점수를 주는 채점 기준이 뻔히 보이는 문제.

    #4··난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    형상 통제 개념을 설명하시오(약술형).

  12. 2020-3 #7

    손으로 경로를 따라가며 번호를 적는 것이 무슨 의미가 있는지 의문이다.

    #7·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)소프트웨어공학

    아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.

  13. 2020-3 #13

    코드 흐름을 억지로 꼬아놓은 전형적인 시험용 문제다.

    #13·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어 소스 코드의 출력 결과를 쓰시오.

    #include <stdio.h>
    int r10() {
        return 4;
    }
    int r100() {
        return (30 + r10());
    }
    int r1000() {
        return (200 + r100());
    }
    int main() {
        printf("%d", r1000());
        return 0;
    }
    
  14. 2020-4 #3

    그림만 보고 이름을 맞추라는 건 전형적인 암기식 평가다.

    #3·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학아키텍처

    다음 그림에 해당하는 다이어그램은 무엇인가?

  15. 2020-4 #5

    Java로 굳이 이런 로직을 직접 짜는 경우는 드물지만, 기초 알고리즘 연습으로는 나쁘지 않다.

    #5·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음은 n이 10일 때, 10을 2진수로 변환하는 Java 소스 코드이다. (1), (2)에 알맞은 값을 적으시오.

    class good {
        public static void main(String[] args) {
            int[] a = new int[8];
            int i = 0;
            int n = 10;
            while ( (1) ) {
                a[i++] = ( (2) ) ;
                n /= 2;
            }
            for (i = 7; i >= 0; i--) {
                System.out.print(a[i]);
            }
        }
    }
    
  16. 2020-4 #6

    가독성 떨어지는 코드를 해석하게 만드는 전형적인 시험용 문제.

    #6·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음은 Java 소스 코드이다. 출력 결과를 보고 (1), (2)에 알맞은 값을 적으시오.

    [출력 결과] 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15

    public class good {
        public static void main(String[] args) {
            int[][] a = new int[ (1) ][ (2) ];
    
            for (int i = 0; i < 3; i++) {
                for (int j = 0; j < 5; j++) {
                    a[i][j] = j * 3 + (i + 1);
                    System.out.print(a[i][j] + " ");;            
                }
                System.out.println();
            }
        }
    }
    
  17. 2020-4 #10

    블록체인 유행할 때 급하게 넣은 문제 같은 느낌이 강하게 듭니다.

    #10·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    온라인 금융 거래 정보를 블록으로 연결하여 피어투피어(P2P) 네트워크, 분산 환경에서 개인 디지털 장비에 분산 저장시켜 공동으로 관리하는 방식을 무엇이라고 하는가?

  18. 2020-4 #11

    프레임워크 이름 맞추기 문제는 실무 능력 평가와는 거리가 멀어 보입니다.

    #11·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    분산환경에서 비 정형 데이터를 저장하고, 처리할 수 있는 자바 기반의 오픈 소스 프레임워크이며, 구글 맵 리듀스를 대체하는 것은 무엇인지 쓰시오.

  19. 2020-4 #18

    C언어의 포인터 개념을 테스트하려는 의도는 알겠으나, 실무에서 이렇게 코딩하면 바로 코드 리뷰 탈락입니다.

    #18·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어 소스 코드이다. 출력 결과를 쓰시오.

    #include <stdio.h>
    
    int main() {
        char *p = "KOREA";
        printf("%s\n", p); // ①
        printf("%s\n", p+3); // ②
        printf("%c\n", *p); // ③
        printf("%c\n", *(p+3)); // ④
        printf("%c\n", *p+3); // ⑤
        printf("%s\n", p+2); // ⑥
    }
    
  20. 2021-1 #1

    요즘 누가 RARP를 쓰나요? DHCP가 다 알아서 하는데 박물관에서나 볼 법한 기술입니다.

    #1·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크TCP/IP

    물리 네트워크(MAC) 주소에 해당하는 IP 주소를 알려주는 프로토콜로, 역순 주소 결정 프로토콜을 무엇이라 하는지 쓰시오.

  21. 2021-1 #8

    정규화의 목적을 이해하는 게 중요하지, 이런 표를 외우는 게 무슨 의미가 있나?

    #8·단답형·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스정규화

    정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 무엇이라 하는지 쓰시오.

  22. 2021-1 #12

    이런 용어 정의를 묻는 건 전형적인 자격증 시험 스타일이다.

    #12·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)운영체제

    공유메모리, 소켓, 세마포어, 메시지 큐 등 프로세스 간 통신을 하는 기술을 무엇이라 하는지 쓰시오.

  23. 2021-1 #13

    용어 하나 외우게 하려고 문제를 길게도 썼다.

    #13·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학아키텍처

    시스템 통합에 사용되는 솔루션으로 구축 유형에는 Point to Point, Hub & Spoke, Message Bus가 있다. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션을 무엇이라고 하는지 쓰시오.

  24. 2021-1 #15

    포인터 연산으로 장난치는 전형적인 시험용 코드다.

    #15·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어 프로그램의 실행 결과를 쓰시오.

    #include <stdio.h>
    
    struct good {
        char name[10];
        int age;
    };
    
    void main() {
        struct good s[] = {"Kim", 28, "Lee", 38, "Seo", 50, "Park", 35};
        struct good *p;
        p = s;
        p++;
        printf("%s\n", p->name);
        printf("%d\n", p->age);
    }
    
  25. 2021-1 #18

    보안 이론은 실무에서 정책 수립 시에나 쓰이지, 개발자가 매일 고민하는 영역은 아니다.

    #18·단답형·난이도 보통·쪼잔함 3 (욕 나옴)보안

    시스템 자원의 접근을 개인 또는 그룹의 식별자에 기반을 둔 방법으로, 어떤 종류의 접근 권한을 가진 사용자가 다른 사용자에게 자신의 판단에 따라 권한을 허용하는 접근 제어 방식을 쓰시오.

  26. 2021-2 #2

    이런 용어 구분은 실무에서 10년 차도 가끔 헷갈리는데, 시험 문제로 내는 건 좀 너무하지 않나?

    #2·빈칸 채우기·난이도 쉬움·쪼잔함 3 (욕 나옴)소프트웨어공학

    다음 ①, ②에 알맞은 답안을 쓰시오.

    ① 사용자가 어떤 시스템, 제품, 서비스를 직·간접적으로 이용하면서 느끼고 생각하게 되는 지각과 반응, 행동 등의 총체적 경험을 뜻한다. ② 사용자와 컴퓨터 상호 간의 소통을 원활히 하게 도와주는 장치 또는 소프트웨어이다. 예로는 CLI가 있다.

  27. 2021-2 #8

    이런 스펙 암기는 구글링 한 번이면 해결되는데 왜 시험에 내는지 의문이다.

    #8·단답형·난이도 보통·쪼잔함 3 (욕 나옴)보안

    2001년 미국 국립기술연구소(NIST)에서 발표한 개인 키 암호화 알고리즘이다. DES를 대체하며, 128, 192, 256 비트의 암호화/복호화 키를 이용하여 128비트의 블록을 암호화, 복호화하는 대칭키 암호화 방식은?

  28. 2021-2 #12

    이론적인 구분은 명확하지만, 실제 패킷 스위칭 환경은 훨씬 복잡합니다.

    #12·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    패킷교환 방식 중에서 각 번호에 해당하는 방식을 쓰시오.

    ① 목적지 호스트와 미리 연결한 후, 통신하는 연결형 교환 방식 ② 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식

  29. 2021-2 #18

    C언어 시험 문제의 고질병인 '가독성 파괴 코드'의 전형이다.

    #18·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어 문제이다. 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        int ary[3];
        int s = 0;
        *(ary+0) = 1; // ①
        ary[1] = *(ary+0) + 2; // ②
        ary[2] = *ary+3; // ③
        for (int i=0; i<3; i++) { // ④
            s = s + ary[i]; // ⑤
        }
        printf("%d", s); // ⑥
        return 0;
    }
    
  30. 2021-3 #5

    결합도 종류 6가지를 달달 외우게 하는 전형적인 암기형 문제.

    #5·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)소프트웨어공학아키텍처

    다음은 Coupling에 대한 설명이다. 설명에 대한 Coupling 종류를 영문으로 작성하시오.

    어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위해 목적으로서 제어 신호를 이용하여 통신하는 경우의 결합도. 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생한다.

  31. 2021-3 #6

    이론 공부용으로는 좋지만, 실무에서 누가 '이거 6계층 기능이야'라고 말하며 일하나요?

    #6·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    OSI 7 Layer의 설명에 해당하는 답을 작성하시오.

    1. 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
    2. 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
    3. 수신측에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
  32. 2021-3 #8

    테스트 케이스를 이렇게 표로만 배우면 실제 QA 할 때 당황하기 십상입니다.

    #8·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    다음 테스트케이스의 구성요소에 대한 설명이다. 괄호 안에 들어갈 알맞은 답을 [보기]에서 고르시오.

    식별자 ID테스트 항목( ① )( ② )( ③ )
    DS-45S-21로그인 기능사용자 화면사용자 아이디(Test11)성공
    DS-45S-25로그인 기능사용자 화면사용자 아이디(Test11), 비밀번호(***)실패

    [보기] 테스트 조건, 테스트 데이터, 테스트 환경, 테스트 유형, 성공/실패 기준

  33. 2021-3 #12

    C언어의 포인터 개념을 테스트하기 위해 억지로 꼬아놓은 전형적인 시험용 코드입니다.

    #12·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어에 대한 문제이다. 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        int *arr[3];
        int a = 12, b = 24, c = 36;
    
        arr[0] = &a;
        arr[1] = &b;
        arr[2] = &c;
    
        printf("%d\n", *arr[1] + **arr + 1);
    }
    
  34. 2021-3 #15

    용어의 정의를 묻는 전형적인 암기형 문제입니다.

    #15·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    괄호 안에 들어갈 알맞은 답을 작성하시오.

    ( ) 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다. ( ) 다이어그램은 공통의 속성과 책임을 갖는 객체들의 집합으로 각 객체들이 가지는 속성과 메서드를 포함하는 다이어그램이다. 또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다.

  35. 2021-3 #16

    패턴의 이름과 목적을 매칭하는 암기 위주의 문제입니다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학디자인패턴

    괄호 안에 들어갈 알맞은 용어를 [보기]에서 고르시오.

    ( ) 패턴은 객체 생성과 관련된 패턴이다. ( ) 패턴은 부모(상위) 클래스에서 객체 생성 인터페이스를 정의하고, 자식(하위) 클래스에서 인스턴스를 생성하도록 하는 패턴이다.

    [보기] Abstract Factory, Factory Method, Composite, Proxy, Template Method, Observer

    보기 펼치기

    Abstract Factory, Factory Method, Composite, Proxy, Template Method, Observer

  36. 2021-3 #17

    포인터 연산으로 퀴즈를 내는 건 C언어의 본질을 흐리는 전형적인 시험용 문제다.

    #17·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어 코드의 출력 결과를 쓰시오.

    #include <stdio.h>
    
    struct jsu {
        char name[12];
        int os, db, hab, hhab;
    };
    
    int main() {
        struct jsu st[3] = {{"데이터1", 95, 88}, {"데이터2", 84, 91}, {"데이터3", 86, 75}};
        struct jsu *p;
    
        p = &st[0];
    
        (p + 1)->hab = (p + 1)->os + (p + 2)->db;
        (p + 1)->hhab = (p + 1)->hab + p->os + p->db;
    
        printf("%d\n", (p + 1)->hab + (p + 1)->hhab);
    }
    
  37. 2022-1 #1

    이런 표 암기 문제는 실무자가 RAID 컨트롤러 설정할 때 매뉴얼 한 번 보면 끝나는 일인데 굳이 외우게 하네요.

    #1·단답형·난이도 보통·쪼잔함 3 (욕 나옴)운영체제

    다음 설명에 맞는 RAID 단계를 숫자로 작성하시오.

    • Striping(스트라이핑) 구현 방식이다.
    • 데이터의 분산 저장으로 속도가 매우 빠르다.
    • 데이터를 블록으로 분할 저장하며, 각 블록은 다른 디스크로 나뉘어 저장된다. 하나의 디스크에 문제가 생기면 다른 디스크도 사용 불가능해진다.
  38. 2022-1 #7

    이런 메서드 이름 암기 문제는 실무 능력과는 거리가 멀다.

    #7··난이도 보통·쪼잔함 3 (욕 나옴)프로그래밍Python

    다음 설명과 관련된 답을 골라 작성하시오.

    1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
    2. 리스트 내부 요소를 꺼내주는 함수로서, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
    3. 리스트 내부의 요소의 순서를 뒤집는 역할
    보기 펼치기

    ① extend ② pop ③ reverse

  39. 2022-1 #9

    이런 용어 암기는 실무에서 '자연스러운 인터페이스'라고 말하면 다 통한다.

    #9·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    다음 설명에 대한 답을 영어 약자로 작성하시오.

    키보드나 마우스와 같은 하드웨어 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현을 인식하여 컴퓨터를 제어할 수 있는 환경

  40. 2022-1 #14

    재귀 함수를 이렇게 짜면 동료들에게 욕먹기 딱 좋다. 시험을 위한 코드일 뿐.

    #14·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 소스코드에서 입력값이 5가 들어왔을 때 출력되는 값을 작성하시오.

    #include <stdio.h>
    
    int func(int a) {
        if (a <= 1) return 1;
        return a * func(a - 1);
    }
    
    int main() {
        int a;
        scanf("%d", &a);
        printf("%d", func(a));
    }
    
  41. 2022-1 #17

    이론적인 정의를 묻는 문제라 실무적인 감각과는 거리가 멀다.

    #17·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    괄호 안에 들어가는 알맞은 답을 보기에서 선택하여 작성하시오.

    • 슈퍼키는 ( ① )의 속성을 갖는다.
    • 후보키는 ( ① )와/과 ( ② )의 속성을 갖는다.

    [보기] 참조성, 무결성, 유일성, 최소성

  42. 2022-1 #19

    13195의 소수를 구하는 코드를 직접 짜게 하는 건 좀 가혹하다.

    #19·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 소스코드가 실행될 때의 출력값을 작성하시오.

    #include <stdio.h>
    int isPrime(int number) {
        for (i = 2; i < number; i++) {
            if (number % i == 0) return 0;
        }
        return 1;
    }
    int main() {
        int number = 13195, max_div = 0, i;
        for (i = 2; i < number; i++) {
            if (isPrime(i) == 1 && number % i == 0)
                max_div = i;
        }
        printf("%d", max_div);
        return 0;
    }
    
  43. 2022-2 #1

    데이터베이스 이론의 고전적인 분류 문제인데, 실무자에게는 '그래서 이게 SQL 튜닝에 어떻게 도움 되는데?'라는 질문이 먼저 나온다.

    #1·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    다음은 관계 데이터 모델에 대한 설명이다. 괄호 안에 들어가는 용어를 작성하시오.

    • ( ㉠ )은/는 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다. 수학의 predicate calculus에 기반을 두고 있으며, 관계 데이터 모델의 제안자인 codd가 수학에 가까운 기반을 두고 특별히 관계 데이터베이스를 위해 제안하여 탄생하였다.
    • ( ㉡ )은/는 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 튜플 ( ㉢ )와/과 도메인 ( ㉣ )이/가 있다.
  44. 2022-2 #4

    NULL 처리를 묻는 건 좋지만, 이런 표를 일일이 손으로 추적하게 만드는 건 전형적인 시험용 문제다.

    #4·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)데이터베이스SQL

    다음 SQL 결과에 알맞은 답을 작성하시오.

    INDEXCOL1COL2
    12null
    236
    355
    463
    533
    SELECT count(col2)
    FROM TABLE
    WHERE col1 IN (2, 3) OR col2 IN (3, 5);
    
  45. 2022-2 #7

    실무에서는 절대 이렇게 짜지 말라고 가르치는 코드를 시험 문제로 내는 아이러니.

    #7·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음 Java 코드에 알맞은 출력값을 작성하시오.

    public static void main(String args[]) {
        int i = 3;
        int k = 1;
        switch(i) {
            case 1: k++;
            case 2: k++;
            case 3: k = 0;
            case 4: k += 3;
            case 5: k -= 1;
            default: k--;
        }
        System.out.print(k);
    }
    
  46. 2022-2 #14

    이론적인 라우팅 프로토콜 분류를 묻는 문제로, 실무에서는 설정값 확인이 중요하지 정의를 외우는 건 의미가 없다.

    #14·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    다음 설명에 대해 [보기]에서 주어진 답을 골라 각각 작성하시오.

    [보기]

    • BGP(Border Gateway Protocol)
    • OSPF(Open Shortest Path First)
    • EGP(Exterior Gateway Protocol)
    • IGP(Internal Gateway Protocol)
    • RIP(Routing Information Protocol)
    • EIGRP(Enhanced Interior Gateway Routing Protocol)

    ① 라우터 상호 접속이 되어 있는 여러 개의 네트워크 집합이다. 같은 도메인 내에 존재하는 라우터로 도메인 내부 경로 설정을 가리킨다. 하나의 AS(Autonomous System) 내에서의 라우팅에 사용되는 프로토콜이다. ② 자율 시스템(AS; Autonomous System) 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용되는 프로토콜이다. ③ IP 라우팅 프로토콜의 한 종류로서 링크상태 라우팅 프로토콜에 기초하여, 자시 시스템(AS) 내부의 라우터들끼리(IGP) 라우팅 정보를 교환하는 라우팅 프로토콜이다. RIP에 비해 자세한 제어가 가능하고, 관리 복잡도가 높을 수 있다. ④ 서로 다른 자율 시스템(AS)의 라우터 간에 라우팅 정보를 교환하는 데 사용되는 외부 게이트웨이 프로토콜(EGP)이다. 각 목적지에 대한 전체 경로가 포함되며, 다른 시스템과 교환하는 네트워크 도달 가능성 정보의 데이터베이스를 유지한다. 네트워크 도달 가능성 정보를 사용하여 AS 연결 그래프를 구성하며, 이를 통해 라우팅 루프를 제거하고 AS 수준에서 정책 결정을 실행할 수 있다.

  47. 2022-2 #20

    이런 수치 계산은 정적 분석 도구가 다 해주는데 왜 사람이 직접 세고 있어야 하는지 의문이다.

    #20·단답형·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학아키텍처

    다음 모듈에 대한 Fan-in과 Fan-out을 작성하시오.

  48. 2022-3 #2

    기호 암기 문제는 실무 능력과 큰 상관이 없는데 왜 자꾸 내는지 모르겠다.

    #2·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    다음 예시를 보고 관계 대수에 대한 기호를 쓰시오.

    항목기호
    합집합
    차집합-
    카티션 프로덕트×
    프로젝트π
    조인
  49. 2022-3 #5

    이런 계산은 IP 계산기를 쓰는 게 정신 건강에 이롭다.

    #5·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)네트워크

    첫 번째 네트워크 주소가 192.168.1.0/26일 때 FLSM 방식으로 분할했을 때 두 번째 네트워크 브로드캐스트 IP를 10진수로 변환한 값을 쓰시오.

  50. 2022-3 #8

    보안 용어 사전도 아니고, 이런 걸 일일이 외우게 하는 건 전형적인 시험용 공부다.

    #8·단답형·난이도 보통·쪼잔함 3 (욕 나옴)보안

    다음 설명에 알맞은 답을 작성하시오.

    ( ㉠ )은 기술적인 방법이 아닌 사람들의 심리와 행동 양식을 교묘하게 이용해 원하는 사람을 속여 정보를 얻는 기법이다.

  51. 2022-3 #13

    C언어의 기초적인 제어 흐름을 묻는 문제인데, 코드가 다소 지저분하다.

    #13·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

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

    #include <stdio.h>
    int main() {
        int n;
        int k;
        int s;
        int el = 0;
    
        for(n = 6; n < 30; n++) {
            s = 0;
            k = n / 2;
            for(int j = 1; j <= k; j++) {
                if(n % j == 0) {
                    s = s + j;
                }
            }
            if(s == n) {
                el++;
            }
        }
    
        printf("%d", el);
        return 0;
    }
    
  52. 2022-3 #16

    이론적인 스케줄링 분류를 묻는 전형적인 시험용 문제다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)운영체제

    다음은 스케줄링에 관한 내용이다. 괄호 안에 알맞은 답을 순서대로 작성하시오.

    설명스케줄링
    Ready Queue에 있는 프로세스 중 CPU 처리 시간이 짧은 순서대로 CPU를 할당하는 비선점 방식이며, 늦게 도착하더라도 CPU 처리 시간이 짧은 경우 프로세스보다 빨리 CPU를 할당받을 수 있다.( ㉠ ) 스케줄링
    프로세스가 도착한 순서대로 프로세스를 디스패치하지만, 시간 할당량을 매번 프로세스에 주고 할당된 시간 안에 완료하지 못하면 프로세스는 준비큐의 맨 뒤에 배치되도록 하여 CPU를 독점하지 못하게 공유할 수 있게 한다.( ㉡ ) 스케줄링
    선점 스케줄링 방식으로 변경한 기법이다. CPU를 점유 중인 프로세스보다 남은 CPU 처리 시간이 짧은 프로세스가 Ready Queue에 들어올 경우 새로 들어오는 프로세스가 vCPU를 점유할 수 있다.( ㉢ ) 스케줄링
  53. 2023-1 #2

    C언어 시험의 단골 손님인 포인터 장난질. 실무에서 이렇게 짜면 사수한테 혼난다.

    #2·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 언어의 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        char a[] = "Art"; // 1
        char *p = NULL; // 2
        p = a;
        printf("%s\n", a); // 3
        printf("%s\n", p); // 4
        printf("%s\n", a + 1); // 5
        printf("%s\n", p + 1); // 6
        printf("%c\n", a[1]); // 7
    }
    
  54. 2023-1 #3

    C언어의 포인터와 배열을 섞어놓은 전형적인 시험용 코드.

    #3·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 언어의 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        char *a = "qwer"; // 1
        char *b = "qwtety"; // 2
        for(int i = 0; a[i] != '\0'; i++) { // 3
            for(int j = 0; b[j] != '\0'; j++) { // 4
                if(a[i] == b[j]) printf("%c", a[i]); // 5
            }
        }
    }
    
  55. 2023-1 #6

    보안 프로토콜의 역사적 계보를 묻는 문제인데, 요즘은 IPsec이나 SSL VPN이 대세라 굳이 L2TP를 따로 외우는 게 의미가 있나 싶다.

    #6·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)네트워크보안

    아래 내용에 해당하는 프로토콜은 무엇인지 작성하시오.

    • 2계층(데이터링크 계층)에서 구현되는 VPN 터널링 프로토콜이다.
    • L2TP와 PPTP가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용한다.
    • IPsec과 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 암호화에 더 적합하다.
  56. 2023-1 #11

    디자인 패턴의 정의를 달달 외우게 하는 건 전형적인 자격증 시험 스타일이다.

    #11·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학디자인패턴

    다음은 디자인 패턴에 관한 설명이다. 설명에 알맞은 답은 무엇인가?

    • 다른 무언가와 이어지는 인터페이스 역할을 하는 클래스를 의미한다.
    • 객체의 대리자를 이용하여 원래 객체의 작업을 대신 처리하는 디자인 패턴을 의미한다.
  57. 2023-1 #18

    이론적 정의를 묻는 전형적인 암기형 문제로, 실무에서는 그냥 'DB 설계'라고 부른다.

    #18·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

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

    (1) ( ㉠ ) 스키마

    • 사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한다.
    • 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기 때문에 서브 스키마라고도 한다.
    • 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있다.
    • 하나의 외부 스키마를 여러 개의 응용 프로그램 혹은 사용자가 공유할 수 있다.

    (2) ( ㉡ ) 스키마

    • 데이터베이스의 전체적인 논리적 구조, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 전체의 데이터베이스로 하나만 존재한다.
    • 개체 간의 관계(Relationship)와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
    • 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것이다.
    • 가관나 조직체의 관점에서 데이터베이스를 정의한 것이다.

    (3) ( ㉢ ) 스키마

    • 물리적인 저장장치 입장에서 데이터가 저장되는 방법을 기술한 것이다.
    • 실제 데이터베이스에 저장될 레코드의 물리적인 순서, 인덱스 유무 등을 나타낸다.
    • 시스템 프로그래머나 시스템 설계자가 관리한다.
  58. 2023-2 #5

    break를 일부러 빼서 흐름을 제어하는 코드는 가독성을 해치므로 실무에서는 지양해야 합니다.

    #5·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 코드의 실행 결과를 쓰시오.

    #include <stdio.h>
    
    void main() {
        int n[] = {73, 95, 82};
        int sum = 0;
    
        for(int i=0; i<3; i++) {
            sum += n[i];
        }
    
        switch(sum / 30) {
            case 10:
            case 9:
                printf("A");
            case 8:
                printf("B");
            case 7:
            case 6:
                printf("C");
            default:
                printf("D");
        }
    }
    
  59. 2023-2 #8

    용어 자체를 묻는 문제라 실무자보다는 보안 자격증 준비생에게 더 익숙할 듯하다.

    #8·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)보안

    다음 내용에 알맞은 답을 작성하시오.

    • 소프트웨어에서 워터마크 삭제 등과 같이 소프트웨어가 불법으로 변경(unauthorized modifications)되었을 경우, 그 소프트웨어가 정상 수행되지 않게 하는 기법이다.
    • 소프트웨어 테스트 수행 시 소스 코드를 어느 수준까지 수행하였는지를 나타내는 기준을 나열한다.
    • 소프트웨어 변조 공격을 방지하기 위해 프로그램에 변조검증코드(tamper-proofing code)를 삽입하는 것도 한 방법으로 변조공격의 용도는 첫째 프로그램이 변경되었는지를 탐지하는 것이고, 둘째는 변조가 탐지되었다면 프로그램이 실행되지 않도록 하는 것이다.
    • 지적 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.
  60. 2023-2 #9

    이런 코드를 직접 짜는 시대는 지났지만, 포인터 연산 이해도를 측정하기엔 적절한 문제.

    #9·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어 문제이다. 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    #define MAX_SIZE 10
    
    int isWhat[MAX_SIZE];
    int point = -1;
    
    int isEmpty() {
        if (point == -1) return 1;
        return 0;
    }
    
    void into(int num) {
        if (point >= 10) printf("Full");
        else isWhat[++point] = num;
    }
    
    int take() {
        if (isEmpty() == 1) printf("Empty");
        else return isWhat[point--];
        return 0;
    }
    
    int main(int argc, const char *argv[]) {
        into(5);
        into(2);    
    
        while(!isEmpty()) {
            printf("%d", take());
    
            into(4); 
            into(1);
            printf("%d", take());
    
            into(3);
            printf("%d", take());
            printf("%d", take());
    
            into(6);
            printf("%d", take());
            printf("%d", take());
        }
        return 0;
    }
    
  61. 2023-2 #10

    요-개-논-물-구. 순서 외우기 문제지만 실제 설계를 해본 사람에게는 자연스러운 흐름이다.

    #10·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    데이터베이스 설계 순서에 관한 내용이다. [보기]를 이용하여 괄호 안에 알맞은 내용을 작성하시오.

    A ( ) -> B ( ) -> C ( ) -> D ( ) - E ( )

    [보기] 구현, 요구조건 분석, 개념적 설계, 물리적 설계, 논리적 설계

  62. 2023-2 #15

    이런 단순 분류 문제는 정보처리기사 단골 손님인데, 실무에서는 라이브러리가 알아서 해주니 이름만 알면 된다.

    #15·단답형·난이도 쉬움·쪼잔함 3 (욕 나옴)보안

    [보기]의 암호화 알고리즘을 대칭키와 비대칭키로 나누시오.

    [보기] DES, RSA, AES, ECC, ARIA, SEED

  63. 2023-2 #17

    SQL 문법 암기 문제. 실무에서는 GUI 툴로 삭제하는 경우가 많지만, DBA라면 알아야 한다.

    #17·단답형·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스SQL

    다음 [보기]의 SQL문에서 괄호 안에 알맞은 단어를 작성하시오.

    DROP VIEW 학생 ( )

  64. 2023-2 #20

    용어 정의를 묻는 전형적인 암기형 문제로, 실무에서는 그냥 'Mocking'이나 'Test Double'이라고 퉁쳐서 부르는 경우가 많다.

    #20·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    다음 설명에 대한 알맞은 답을 작성하시오.

    ① ( )

    • 하향식 테스트 시 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈이다.
    • 특별한 목적의 소프트웨어를 구현하는 것으로 컴포넌트를 개발하거나 테스트할 때 사용된다.
    • 서버-클라이언트 구조에서 서버 구현된 상태로 테스트를 해보고 싶을 때 단순히 값만 넘겨주는 가상의 클라이언트를 만들어서 테스트할 수 있다.

    ② ( )

    • 상향식 테스트 시 상위 모듈 없이 하위 모듈이 존재할 때 하위 모듈 구동 시 자료 입출력을 제어하기 위한 제어 모듈(소프트웨어)이다.
    • 서버-클라이언트 구조에서 클라이언트만 구현된 상태로 테스트를 해보고 싶을 때 접속 인증 등의 간단한 기능만 하는 가상의 서버를 만들어서 테스트할 수 있다.
  65. 2023-3 #5

    문법을 아는지 확인하는 용도 외에는 큰 의미가 없는 문제.

    #5·빈칸 채우기·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    C언어에서 구조체의 멤버에 접근하기 위해 괄호 안에 들어갈 기호를 작성하시오.

    // 구조체 변수 접근 시
    struct_var.member;
    
    // 구조체 포인터 접근 시
    struct_ptr( 1 )member;
    
  66. 2023-3 #7

    보안 기사 시험도 아닌데 용어 정의를 이렇게 빡빡하게 외우게 하는 건 좀 구시대적입니다.

    #7·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)보안

    다음 설명은 서버 접근 통제의 유형이다. 괄호 안에 들어갈 용어를 작성하시오. (영어 약자로 작성하시오)

    1. ( ㉠ )은 규칙 기반(Rule-Based) 접근통제 정책으로, 객체에 포함된 정보의 등급과 접근 정보에 대해 주체가 갖는 접근 허가 권한에 의해 제한하는 방법이다.
    2. ( ㉡ )은 중앙 관리자가 사용자와 시스템의 상호 관계를 통제하며 조직 내 많은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법이다.
    3. ( ㉢ )은 신분 기반(Identity-Based) 접근통제 정책으로, 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법이다.
  67. 2023-3 #10

    포인터 주소 연산으로 문자열을 쪼개는 건 실무에서 절대 하지 말아야 할 코드 스타일입니다.

    #10·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어의 포인터 문제이다. 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        char *p = "KOREA";
        printf("%s\n", p);
        printf("%s\n", p + 1);
        printf("%s\n", p + 3);
        printf("%c\n", *(p + 3));
        printf("%c\n", *(p + 4));
        return 0;
    }
    
  68. 2023-3 #11

    재귀와 상속을 한 번에 꼬아놓은 전형적인 '시험용' 코드다.

    #11·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Java

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

    class Parent {
        int compute(int num) {
            if(num <= 1)
                return num;
            return compute(num - 1) + compute(num - 2);
        }
    }
    
    class Child extends Parent {
        int compute(int num) {
            if(num <= 1)
                return num;
            return compute(num - 1) + compute(num - 3);
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Parent obj = new Child();
            System.out.print(obj.compute(7));
        }
    }
    
  69. 2023-3 #16

    이론적인 정의를 묻는 전형적인 자격증용 문제다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    다음 설명에 알맞은 답을 보기에서 골라 작성하시오.

    • 시스템이나 시스템 구성요소(component) 또는 소프트웨어 프로그램의 입력값과 출력값이 특정 그룹으로 분류되며, 분류된 그룹 내의 값들이 시스템에 의해 동일하게 취급된다는 특성을 이용하여 시험하는 기법
    • 최소한의 입력값으로 시스템을 시험하면서 유사한 답변이 나온다는 것을 가정하여 테스트하는 기법
    • 하나의 값은 그 분류 내 모든 값을 대표하는 것으로 간주하는 기법
    • 모든 입력값을 시험할 필요가 없게 하여 시험을 효율적으로 수행하도록 지원하는 기법
    • 일반적으로 경계값 분석기법(boundary value analysis)과 함께 테스트 케이스를 도출하는 데 사용하는 기법

    [보기] ㄱ. Equivalence Partitioning ㄴ. Statement Coverage ㄷ. Boundary Value Analysis ㄹ. Branch Coverage ㅁ. Error Guessing ㅂ. Condition Coverage ㅅ. Cause Effect Graph

  70. 2023-3 #18

    왜 아직도 RIP을 가르치는지 의문이다. OSPF나 BGP를 물어보는 게 낫지 않나?

    #18·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    다음은 프로토콜 종류에 관한 설명이다. 알맞은 답을 작성하시오.

    • 최소 Hop count를 파악하여 라우팅하는 프로토콜이다.
    • 거리와 방향으로 길을 찾아가는 Distance Vector 방식이다.
    • 최단거리를 Hop count가 적은 경로를 택하여 라우팅하는 프로토콜로 Routing Table에 인접 라우터 정보를 저장하여 경로를 결정한다.
    • 최대 Hop count는 15로 거리가 짧기 때문에 IGP로 많이 이용하는 프로토콜이다.
  71. 2024-1 #5

    IP 계산 문제를 손으로 풀게 하는 건 네트워크 기초를 다지라는 뜻이겠지만, 실무에선 계산기 두드리는 게 정신건강에 이롭다.

    #5·단답형·난이도 ·쪼잔함 3 (욕 나옴)네트워크TCP/IP

    다음 [보기]의 네트워크에서 라우터를 통해 할당 가능한 4번, 5번의 IP를 작성하시오.

    [보기]

    • 192.168.35.3/24
    • 192.168.36.0/24
    • 192.168.36.249/24
    • 129.200.16.22/24
    • 129.200.8.249/24
  72. 2024-1 #7

    용어 설명 문제는 정보처리기사의 단골 손님인데, 매번 똑같은 정의를 묻는 게 지겹지도 않은가.

    #7·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    다음에서 설명하는 네트워크 용어를 영문 약자로 쓰시오.

    • 대표적인 링크 상태 라우팅 프로토콜이다.
    • 이것은 인터넷에서 연결된 링크의 상태를 감시하여 최적의 경로를 선택한다.
    • 단일 자율 시스템 내에서 라우팅 정보를 배포하는 데 사용되는 내부 게이트웨이 프로토콜이다.
    • 모든 대상에 도달하기 위한 최단 경로를 구축하고 계산하며 최단 경로는 Dijkstra 알고리즘을 사용하여 계산한다.
  73. 2024-1 #10

    코드의 가독성을 해치는 전형적인 시험용 꼬아내기 문제입니다.

    #10·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Java

    아래 JAVA 언어 코드의 실행 순서를 중복 없이 작성하시오.

    실행순서: 5 > () > () > () > () > ()

    class Parent {
        int x, y;
    
        Parent(int x, int y) {  // ①
            this.x = x;
            this.y = y;
        }
    
        int getT() { // ②
            return x * y;
        }
    }
    
    class Child extends Parent {
        int x;
    
        Child(int x) { // ③
            super(x + 1, x);
            this.x = x;
        }
    
        int getT(int n) { // ④
            return super.getT() + n;
        }
    }
    
    class Main {
        public static void main(String[] args) { // ⑤
            Parent parent = new Child(3); // ⑥
            System.out.println(parent.getT()); // ⑦
        }
    }
    
  74. 2024-2 #6

    파이썬의 슬라이싱 문법을 테스트하려는 의도는 알겠으나, 코드가 너무 작위적이다.

    #6·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Python

    다음 Python에 대한 문제이다. 아래 코드를 읽고 알맞은 출력 값을 작성하시오.

    def fnCalculation(x,y):
        result = 0
        for i in range(len(x)):
            temp = x[i:i + len(y)]
            if temp == y:
                result += 1
        return result
    
    a = "abdcabcabca"
    p1 = "ab"
    p2 = "ca"
    
    out = f"ab{fnCalculation(a,p1)}ca{fnCalculation(a,p2)}"
    print(out)
    
  75. 2024-2 #7

    이런 암기형 문제는 정보처리기사 시험의 고질적인 특징이다.

    #7·단답형·난이도 보통·쪼잔함 3 (욕 나옴)보안

    다음은 설명하는 내용을 확인하여 알맞은 알고리즘을 작성하시오.

    • 대칭 알고리즘으로 1997년 NIST(미국 국립기술표준원)에서 DES를 대체하기 위해 제정되었다.
    • 128비트, 192비트 또는 256비트의 가변 키 크기와 128비트의 고정 블록 크기를 사용한다.
    • 높은 안정성과 효율성, 속도 등으로 인해 DES 대신 전 세계적으로 많이 사용되고 있다.
  76. 2024-2 #13

    이런 식의 포인터 연산 문제는 실무에서 가독성을 해치는 주범이다. 시험을 위한 문제일 뿐.

    #13·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        int *parr = arr[1];
        printf("%d", *(parr + 1) + *(parr + 2));
        return 0;
    }
    
  77. 2024-2 #16

    이론적인 용어 정의를 묻는 전형적인 시험 문제로, 실무에서는 '의존성 관리'라는 말로 퉁친다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학

    다음은 소프트웨어 설계에 대한 내용이다. 내용을 읽고 괄호 안에 알맞은 답을 작성하시오.

    • 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다.
    • 한 모듈이 다른 모듈의 상세 처리 절차를 알고 있어야 이들을 통제하는 경우나 처리 기능이 두 모듈에 분리되어 실현된 경우에 발생한다.

    ( ) Coupling

  78. 2024-2 #19

    포인터 화살표 연산자(`->`)를 제대로 이해하고 있는지 묻는 전형적인 문제.

    #19·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어 구조체에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    
    struct node {
        int ni;
        struct node *n2;
    };
    
    int main() {
        struct node a = {10, NULL};
        struct node b = {20, NULL};
        struct node c = {30, NULL};
        struct node *head = &a;
        a.n2 = &b;
        b.n2 = &c;
        printf("%d", head->n2->ni);
        return 0;
    }
    
  79. 2024-3 #7

    코드 가독성을 해치는 이런 문제는 실무에서 코드 리뷰 시 즉시 수정 대상이다.

    #7·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어에 대한 문제이다. 아래 코드를 확인하여 출력값을 작성하시오.

    #include <stdio.h>
    
    int func() {
        static int x = 0;
        x += 2;
        return x;
    }
    
    int main() {
        int x = 1;
        int sum = 0;
        sum += func(); // ①
        sum += func(); // ②
        printf("%d", sum);
        return 0;
    }
    
  80. 2024-3 #9

    이런 걸 굳이 번호로 쪼개서 외우게 하는 게 무슨 의미가 있나 싶다.

    #9·단답형·난이도 보통·쪼잔함 3 (욕 나옴)네트워크

    다음은 URL 구조에 관한 문제이다. 아래 [보기]의 순서대로 URL에 해당하는 번호를 작성하시오.

    hks://localhost:8080/learning/english?courses-toeic#grammar

    (1) hks: (2) localhost:8080 (3) learning/english (4) ?courses-toeic (5) #grammar

    [보기]

    • query: 서버에 전달할 추가 데이터
    • path: 서버 내의 특정 자원을 가리키는 경로
    • scheme: 리소스에 접근하는 방법이나 프로토콜
    • authority: 사용자 정보, 호스트명, 포트 번호
    • fragment: 특정 문서 내의 위치
  81. 2024-3 #11

    이런 코드를 짜는 사람이 있다면 즉시 코드 리뷰에서 반려하고 면담을 요청해야 한다.

    #11·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class Main {
        public static void main(String[] args) {
            Base a = new Derivate(); 
            Derivate b = new Derivate(); 
            
            System.out.print(
                a.getX() 
                + a.x 
                + b.getX() 
                + b.x
            );
        }
    }
    
    class Base {
        int x = 3;
    
        int getX() { 
            return x * 2; 
        }
    }
    
    class Derivate extends Base {
        int x = 7;
    
        int getX() { 
            return x * 3; 
        }
    }
    
  82. 2024-3 #12

    포인터로 노드 값을 바꾸는 로직을 직접 짜는 건 교육용 예제일 뿐, 실제로는 가독성 좋은 코드를 짜는 게 우선이다.

    #12·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    struct Node {
        int value;
        struct Node* next;
    };
    
    void func(struct Node* node) {
        while(node != NULL && node->next != NULL) {
            int t = node->value;
            node->value = node->next->value;
            node->next->value = t;
            node = node->next->next;
        }
    }
    
    int main() {
        struct Node n1 = {1, NULL};
        struct Node n2 = {2, NULL};
        struct Node n3 = {3, NULL};
    
        n1.next = &n3;
        n3.next = &n2;
    
        func(&n1);
    
        struct Node* current = &n1;
    
        while(current != NULL) {
            printf("%d", current->value);
            current = current->next;
        }
        return 0;
    }
    
  83. 2024-3 #16

    C언어의 포인터 장난질은 이제 그만 보고 싶네요. 실무에서 이렇게 짜면 바로 코드 리뷰 반려입니다.

    #16·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    void func(int** arr, int size) {
        for(int i = 0; i < size; i++){
            *(*arr + i) = (*(*arr + i) + i) % size;
        }
    }
    
    int main() {
        int arr[] = {3, 1, 4, 1, 5};
        int *p = arr;
        int **pp = &p;
    
        func(pp, 5);
        num = arr[2];
    
        printf("%d", num);
    
        return 0;
    }
    
  84. 2025-1 #3

    손으로 CRC 계산을 시키는 건 수학 시험인지 정보처리기사 시험인지 헷갈리게 한다.

    #3·빈칸 채우기·난이도 어려움·쪼잔함 3 (욕 나옴)네트워크

    아래 괄호 안의 용어를 영문 약어로 작성하시오.

    • ( )는 오류 검출을 위해 사용되는 3글자의 약어로, 전송 또는 저장된 데이터에 오류가 있는지를 검사하는 방식이다.
    • ( )는 데이터에 체크섬을 추가하여 데이터를 전송하거나 저장한 후, 수신하는 읽을 때 체크섬을 다시 계산하여 데이터가 변경되었는지 확인하는 기법이다.
    • ( )는 데이터 안정성을 높이는 데 사용된다.
    • 데이터는 이진수로 표현되며, 정해진 다항식(예: x^4+x+1)을 기준으로 나눗셈하여 그 나머지 값을 검사 코드로 사용하는 방식을 ( )이라 한다.
  85. 2025-1 #8

    용어의 정의를 묻는 전형적인 암기형 문제입니다.

    #8·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    다음은 데이터베이스와 관련된 설명이다. 알맞은 용어를 [보기]에서 골라 괄호를 작성하시오.

    • 릴레이션에서 속성의 개수 : ( ① )
    • 릴레이션에서 튜플의 개수 : ( ② )
    • 한 릴레이션의 속성이 다른 릴레이션의 기본 키를 참조 할 때 참조하는 속성 : ( ③ )
    • 특정 속성에 대해 입력될 수 있는 값의 유형이나 범위를 의미하고 무결성을 보장하는 기준 : ( ④ )

    [보기] ㄱ. domain ㄴ. primary ㄷ. degree ㄹ. candidate ㅁ. cardinality ㅂ. attribute

  86. 2025-1 #10

    C언어의 포인터 개념을 테스트하는 건 좋지만, 이런 식의 코드 트레이싱은 실무 코드 리뷰에서 당장 수정 대상입니다.

    #10·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어에 대한 문제입니다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    char Data[5] = {'B', 'A', 'D', 'E'};
    char c;
    
    int main() {
        int i, temp, temp2;
    
        c = 'C';
        printf("%d\n", Data[3] - Data[1]);
    
        for(i = 0; i < 5; ++i) {
            if(Data[i] > c) {
                break;
            }
        }
    
        temp = Data[i];
        Data[i] = c;
        i++;
    
        for(; i < 5; ++i) {
            temp2 = Data[i];
            Data[i] = temp;
            temp = temp2;
        }
    
        for(i = 0; i < 5; i++) {
            printf("%c", Data[i]);
        }
    }
    
  87. 2025-1 #13

    상속과 정적 변수를 이렇게 섞어 쓰는 코드는 실무에서 당장 리팩토링 대상이다.

    #13·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class Main {
        public static void main(String[] args) {
            new Child();
            System.out.println(Parent.total);
        }
    }
    
    class Parent {
        static int total = 0;
        int v = 1;
    
        public Parent() {
            total += (++v);
            show();
        }
    
        public void show() {
            total += total;
        }
    }
    
    class Child extends Parent {
        int v = 10;
    
        public Child() {
            v += 2;
            total += v++;
            show();
        }
    
        @Override
        public void show() {
            total += total * 2;
        }
    }
    
  88. 2025-1 #15

    테스트 커버리지 개념을 묻는 건 좋으나, 손으로 순서를 적게 하는 건 좀 구식이다.

    #15·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    문장(Statement) 커버리지 테스트를 수행하려고 한다. 코드 아래의 제어 흐름도 빈칸에 연결되도록 작성하고, 문장 커버리지 순서대로 작성하시오.

    int func(int arr[], int len, int init) {
        int i = 0;
        while (i < len && arr[i] < init) {
            if (arr[i] < 0) {
                arr[i] = -arr[i];
            }
            i++;
        }
        return i;
    }
    

    [제어 흐름도] 1: int i=0 2: while (i < len && arr[i] < init) 3: if (arr[i] < 0) 4: arr[i] = -arr[i] 5: i++ 6: return i

  89. 2025-1 #17

    파이썬의 리스트와 클래스를 이용해 굳이 어렵게 꼬아놓은 트리 탐색 문제다.

    #17·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Python

    다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    class Node:
        def __init__(self, value):
            self.value = value
            self.children = []
    
    def tree(li):
        nodes = [Node(i) for i in li]
        for i in range(1, len(li)):
            nodes[(i - 1) // 2].children.append(nodes[i])
        return nodes[0]
    
    def calc(node, level=0):
        if node is None:
            return 0
        return node.value if level % 2 == 1 else 0 + sum([calc(n, level + 1) for n in node.children])
    
    li = [3, 5, 8, 12, 15, 18, 21]
    root = tree(li)
    print(calc(root))
    
  90. 2025-1 #18

    포인터로 장난치는 전형적인 시험용 코드, 실무에서는 STL이나 라이브러리 쓰세요.

    #18·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Data {
        int value;
        struct Data *next;
    } Data;
    
    Data* insert(Data* head, int value) {
        Data* new_node = (Data*)malloc(sizeof(Data));
        new_node->value = value;
        new_node->next = head;
        return new_node;
    }
    
    Data* reconnect(Data* head, int value) {
        Data *prev = NULL, *curr = head;
        while (curr != NULL && curr->value != value) {
            prev = curr;
            curr = curr->next;
        }
        if (curr == NULL || prev == NULL) return head;
        prev->next = curr->next;
        curr->next = head;
        head = curr;
        return head;
    }
    
    int main() {
        Data *head = NULL, *curr;
        for (int i = 1; i <= 5; i++)
            head = insert(head, i);
        head = reconnect(head, 3);
        for (curr = head; curr != NULL; curr = curr->next)
            printf("%d", curr->value);
        return 0;
    }
    
  91. 2025-2 #1

    파일 구조론은 고전적인 이론이라 시험 문제로 내기 딱 좋지만, 실무에서는 DB 엔진이 알아서 다 해준다.

    #1·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    다음은 파일 구조와 관련된 설명이다. 설명을 읽고, 괄호 안에 들어갈 가장 적절한 용어를 쓰시오.

    • 데이터베이스의 물리적 설계 시, 레코드에 접근하는 방법으로는 순차 접근 방식, ( ) 방식, 해싱 방식 등이 있다.
    • 이 중 ( ) 방식은 레코드의 키 값과 해당 레코드의 위치(포인터)를 쌍으로 묶어 저장하며, 검색 시 키 값을 기준으로 빠르게 탐색할 수 있도록 설계된다.
    • 이 방식은 검색 속도가 빠르며 <키 값, 포인터> 쌍으로 구성된 자료 구조를 사용하여 해당 키가 가리키는 주소를 통해 원하는 레코드를 직접 찾을 수 있다.
  92. 2025-2 #5

    코드 트레이싱 문제의 전형적인 함정 파기입니다.

    #5·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음은 Java의 문제이다. 아래 코드를 보고 알맞은 출력값을 작성하시오.

    public class Main {
        public static void change(String[] data, String s) {
            data[0] = s; // ④
            s = "Z";     // ⑤
        }
        public static void main(String[] args) {
            String data[] = {"A"}; // ①
            String s = "B";        // ②
            change(data, s);       // ③
            System.out.print(data[0] + s); // ⑥
        }
    }
    
  93. 2025-2 #9

    코드 가독성을 해치는 이런 예외 처리 방식은 실무 코드 리뷰에서 바로 반려 대상이다.

    #9·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음 Java 언어의 문제이다. 아래 코드를 보고 알맞은 출력값을 작성하시오.

    public class Main {
        static interface F {
            int apply(int x) throws Exception;
        }
    
        public static int run(F f) {
            try {
                return f.apply(3);
            } catch (Exception e) {
                return 7;
            }
        }
    
        public static void main(String[] args) {
            F f = (x) -> {
                if (x > 2) {
                    throw new Exception();
                }
                return x * 2;
            };
    
            System.out.print(run(f) + run((int n) -> n + 9));
        }
    }
    
  94. 2025-2 #10

    이런 문제는 언어의 동작 원리를 이해하는 데는 도움이 되지만, 실제 현업에서 이렇게 코드를 짜면 동료들에게 욕먹기 딱 좋다.

    #10·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍Java

    다음 Java 언어의 문제이다. 아래 코드를 보고 알맞은 출력값을 작성하시오.

    public class Main {
        public static class Parent {
            public int x(int i) { return i + 2; }
            public static String id() { return "P"; }
        }
    
        public static class Child extends Parent {
            public int x(int i) { return i + 3; }
            public String x(String s) { return s + "R"; }
            public static String id() { return "C"; }
        }
    
        public static void main(String[] args) {
            Parent ref = new Child();
            System.out.println(ref.x(2) + ref.id());
        }
    }
    
  95. 2025-2 #12

    C언어 포인터와 나머지 연산자를 이용한 인덱스 계산은 언제 봐도 피로하다.

    #12·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C언어의 문제이다. 아래 코드를 보고 알맞은 출력 값을 작성하시오.

    #include <stdio.h>
    #define SIZE 3
    
    typedef struct {
        int a[SIZE];
        int front;
        int rear;
    } Queue;
    
    void enq(Queue* q, int val) {
        q->a[q->rear] = val;
        q->rear = (q->rear + 1) % SIZE;
    }
    
    int deq(Queue* q) {
        int val = q->a[q->front];
        q->front = (q->front + 1) % SIZE;
        return val;
    }
    
    int main() {
        Queue q = {{0, 0, 0}, 0, 0};
        enq(&q, 1); enq(&q, 2); deq(&q); enq(&q, 3);
        int first = deq(&q);
        int second = deq(&q);
        printf("%d 그리고 %d", first, second);
        return 0;
    }
    
  96. 2025-2 #14

    C언어의 포인터 문법을 꼬아놓은 전형적인 시험용 문제입니다. 실무에서 이렇게 짜면 사수에게 혼납니다.

    #14·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어의 문제이다. 아래 코드를 보고 알맞은 출력을 작성하시오.

    #include <stdio.h>
    
    struct dat {
        int x;
        int y;
    };
    
    int main() {
        struct dat a[] = {{1, 2}, {3, 4}, {5, 6}};
        struct dat *pptr = a;
        printf("%d 그리고 %d", a[1].x, a[1].y);
        return 0;
    }
    
  97. 2025-2 #18

    C언어 포인터 문제의 전형적인 '꼬아내기' 스타일입니다. 실무에서는 이런 코드보다 안전한 메모리 관리가 훨씬 중요합니다.

    #18·코드 추적·난이도 ·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음은 C언어의 문제이다. 아래 코드를 보고 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    #include <stdlib.h>
    
    struct node {
        char c;
        struct node* p;
    };
    
    struct node* func(char* s) {
        struct node* h = NULL, *n;
        while(*s) {
            n = malloc(sizeof(struct node));
            n->c = *s++;
            n->p = h;
            h = n;
        }
        return h;
    }
    
    int main() {
        struct node* n = func("BEST");
        while (n) {
            putchar(n->c);
            struct node* t = n;
            n = n->p;
            free(t);
        }
    }
    
  98. 2025-3 #1

    UML 다이어그램 종류별로 정의를 외우게 하는 전형적인 자격증용 암기 문제.

    #1·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학아키텍처

    다음은 ( ) 다이어그램에 관한 설명이다. 아래 내용을 읽고 괄호 안에 들어갈 알맞은 명칭을 작성하시오.

    • 다이어그램은 시스템을 물리 형태의 패키지(package) 단위로 구분하여, 구성 요소 간의 관계를 표현하는 UML 구조 다이어그램이다.
    • 하나의 패키지가 포함될 수 있으며, 패키지 간에는 'import', 'access', 'merge' 등의 관계를 통해 의존성(Dependency)을 나타낸다.
    • 이 다이어그램은 실제 코드의 디렉터리 구조와 유사하게 표현되므로, 소프트웨어의 모듈화, 재사용성 향상, 시스템 관련 분석 등을 시각적으로 설계할 때 유용하게 사용된다.
  99. 2025-3 #5

    포인터 연산으로 퀴즈 내는 건 C언어의 악습을 장려하는 꼴입니다.

    #5·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    struct Test {
        int i;
        const char *g;
    };
    
    int main() {
        struct Test test[] = {{1, "ab"}, {2, "DC"}, {3, "EB"}};
        struct Test *p = &test[1];
        printf("%s", p->g + (p->i - 1));
        return 0;
    }
    
  100. 2025-3 #9

    파이썬의 enumerate 기능을 이해하고 있는지 묻는 문제지만, 코드 자체가 다소 작위적이다.

    #9·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍Python

    다음 파이썬 코드의 실행 결과로 알맞은 것을 고르시오.

    data = [
        [3, 5, 2, 4, 1],
        [4, 5, 1],
        [4, 4, 1, 5, 4],
        [4, 5]
    ]
    
    result = {}
    
    for index, lis in enumerate(data):
        list_sum = sum(lis)
        list_len = len(lis)
        result[index] = (list_sum, list_len)
    
    print(result)
    

    ① {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ② {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ③ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ④ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑤ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑥ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑦ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑧ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)}

    보기 펼치기

    ① {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ② {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ③ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ④ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑤ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑥ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑦ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)} ⑧ {0: (15, 5), 1: (10, 3), 2: (18, 5), 3: (9, 2)}

  101. 2025-3 #18

    보안 모델의 정의를 묻는 전형적인 암기 문제네요.

    #18··난이도 어려움·쪼잔함 3 (욕 나옴)보안

    다음은 정보보안에서 사용되는 접근통제(Access Control) 방식에 대한 설명입니다. 설명을 읽고 [보기]에서 알맞은 접근통제 모델을 고르시오.

    ㄱ. 중앙에서 보안 정책을 일괄적으로 설정하며, 사용자가 임의로 수정하거나 변경할 수 없다. 주로 군사 기밀, 국가 보안과 같은 높은 등급의 보안 환경에서 사용되며, 보안 등급(Top Secret/Secret/Confidential 등)에 따라 접근 여부가 결정된다. ㄴ. 조직에서 부여된 직무나 역할(Role)에 따라 접근 권한을 부여하는 방식이다. 개별 사용자에게 직접 권한을 주지 않고 역할에만 권한만 부여하기 때문에 관리가 용이하며 직무 변경 시 역할만 바꾸면 된다. ㄷ. 자원의 소유자(Owner)가 해당 자원에 대한 접근 권한을 자유롭게 설정·부여·회수할 수 있는 방식인데(예: 얼마나 소유자가 읽기/쓰기/실행 권한을 지정하는 방식).

    [보기] DAC, MAC, RBAC

  102. 2025-3 #19

    테스트케이스 구성요소 이름 맞추기라니, 실무에서는 그냥 '입력값', '기대결과'라고 부르지 누가 이렇게 딱딱하게 부르나.

    #19·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학테스트

    다음은 테스트케이스의 구성요소에 대한 설명이다. 괄호 안에 들어갈 알맞은 용어를 [보기]에서 골라 쓰시오.

    식별자 ID테스트 항목(①)(②)(③)
    DS-45S-21로그인 기능사용자 초기 화면사용자 아이디(Test11) 비밀번호(test@#@!#)로그인 성공
    DS-45S-25로그인 기능사용자 초기 화면사용자 아이디(Test11) 비밀번호("")로그인 실패

    [보기] ㄱ. 테스트 조건 ㄴ. 테스트 환경 ㄷ. 테스트 유형 ㄹ. 테스트 데이터 ㅁ. 예상 결과 ㅂ. 수행 단계 ㅅ. 성공/실패 기준

쪼잔함 2 (짜증)158
  1. 2020-1 #2

    용어 정의를 묻는 전형적인 암기형 문제다.

    #2·단답형·난이도 쉬움·쪼잔함 2 (짜증)데이터베이스

    데이터 마이닝(Data Mining)에 대한 개념을 쓰시오.

  2. 2020-1 #3

    이런 기본 개념은 실무에서 당연하게 받아들여지므로 굳이 외우지 않아도 된다.

    #3·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크

    통신 프로토콜(Communication Protocol)은 컴퓨터나 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다. 통신 프로토콜을 구성하는 기본 요소 3가지를 쓰시오.

  3. 2020-1 #5

    JSON을 모르는 개발자는 없겠지만, 괄호 채우기 문제로 내는 건 좀 식상하다.

    #5·빈칸 채우기·난이도 쉬움·쪼잔함 2 (짜증)프로그래밍네트워크

    괄호 안에 알맞은 용어를 쓰시오.

    ( )은 데이터를 저장하거나 전송할 때 많이 사용하는 경량의 DATA 교환 형식이다. ( )은 사람과 기계 모두 이해하기 쉬우며 소용량으로, 최근에는 XML을 대체해서 데이터 전송 등에 많이 사용한다. Ajax에서 서버와 통신하며 데이터 교환을 쉽게 하기 위해 ( )을 데이터 전송 형식으로 많이 사용한다. ( )의 문법은 key와 value가 쌍으로 존재하며 태그로 표현하기 보다는 중괄호({}) 하고, 쉼표 ,로 나열하며 그 표현이 간단하다.

  4. 2020-1 #8

    면접 단골 질문이다. 암기해두면 나쁠 건 없다.

    #8·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스트랜잭션

    트랜잭션의 특징 중 일관성, 지속성의 2개의 특성을 쓰시오.

  5. 2020-1 #9

    네트워크 보안의 고전적인 공격 기법을 묻는 문제로, 실무자라면 당연히 알아야 할 기본기다.

    #9·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음에서 공통으로 설명하는 네트워크 공격 유형에 해당하는 용어를 쓰시오.

    • ( ㉠ )은 공격 대상의 자원을 소모시키는 공격 유형이다. 주로 3-Way-Handshaking의 연결지향적 특징을 가지는 서비스에서 발생한다.
    • ( ㉠ )은 출발지의 도착지 IP 주소가 동일한 특징이 있는 네트워크 모니터링 도구의 와이어샤크의 간편세션(Conversations) 기능을 통해 동일 IP 주소 간에 통신 중인 패킷을 확인하는 방법으로 공격 여부를 확인할 수 있다. 해당 패킷의 출발지와 도착지의 IP 주소가 동일한 패킷을 기본적으로 차단하여 ( ㉠ )을 막을 수 있다.
  6. 2020-1 #12

    전형적인 정렬 알고리즘 추적 문제로, 코딩 테스트에서 흔히 볼 수 있는 유형이다.

    #12·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

    #include <stdio.h>
    
    void main() {
        int i, j;
        int a[5] = {75, 95, 85, 100, 50};
        for (i = 0; i < 4; i++) {
            for (j = 0; j < 4 - i; j++) {
                if (a[j] > a[j + 1]) {
                    temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
        for (i = 0; i < 5; i++)
            printf("%d", a[i]);
    }
    
  7. 2020-1 #13

    너무 기초적인 문제라 변별력이 있는지 의문이다.

    #13·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java 소스코드이다. 출력 결과를 쓰시오.

    public class good {
        public static void main(String[] args) {
            int i;
            int[] a = {10, 1, 2, 3};
            for (i = 0; i < 4; i++) {
                System.out.print(a[i] + " ");
            }
        }
    }
    
  8. 2020-1 #19

    처리량, 응답 시간, 경과 시간. 이 세 가지를 모르면 당신의 서비스는 이미 망한 겁니다.

    #19·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학

    다음 설명 중 빈칸에 가장 부합하는 애플리케이션 성능 측정 지표 3가지를 쓰시오.

    • 애플리케이션 성능이란 사용자의 요구 기능을 해당 애플리케이션이 최소의 자원을 사용하면서 얼마나 빨리, 많은 기능을 수행하는가를 육안 또는 도구를 통하여 점검하는 것을 말한다. • 이를 측정하기 위한 지표는 애플리케이션이 주어진 시간 내에 처리할 수 있는 트랜잭션의 수( ( ㉠ ) ), 사용자 입력이 끝난 후 응답 출력이 개시될 때까지의 시간( ( ㉡ ) ), 사용자가 요구를 입력한 시점으로부터 트랜잭션 처리 후 그 결과의 출력이 완료될 때까지의 시간( ( ㉢ ) )을 사용한다.

  9. 2020-2 #1

    용어 정의를 묻는 전형적인 암기형 문제지만, 실무적 가치는 인정한다.

    #1·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스보안

    데이터 백업(보호) 솔루션의 사례에 대비하여 서비스의 연속성을 보장하는 목적을 가지고 어떤 상황에서도 계획된 ( ㉠ )과 ( ㉡ )은 시스템 장애와 같은 상황에서의 '비상사태 또는 업무중단 상황부터 업무가 복구되어 다시 정상가동 될 때까지의 시간'을 의미하는 용어이다. RPO는 조직이 사태가 발생한 어떤 시점까지 재난으로부터 복구되어야 하는지를 의미하는 기준을 의미한다.

  10. 2020-2 #4

    방법론의 정의를 괄호 채우기로 묻는 것은 전형적인 시험용 문제다.

    #4·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학

    다음 괄호 안에 공통으로 들어갈 소프트웨어 개발 프로젝트 방법론을 의미하는 용어를 쓰시오.

    • ( ㉠ )은 짧은 개발 주기를 가지고 프로젝트 계획 수립과 진행에 있어서 최초의 프로젝트 일정 계획에 의지하지 않고 고객 중심으로 계획을 유연하게 변경한다.
    • ( ㉠ )은 프로젝트 진행 도중에 일부 결과물인 시제품을 고객에게 지속하며 반복적으로 제공한다. 고객의 요구사항이 정확하게 반영되고 있는지 수시로 점검하게 된다.
  11. 2020-2 #5

    코드 트레이싱은 실무 능력을 확인하는 좋은 방법이지만, 너무 뻔한 상속 구조다.

    #5·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드이다. 다음 밑줄에 들어갈 키워드를 쓰시오.

    class Parent {
        public void show() {
            System.out.println("Parent");
        }
    }
    class Child extends Parent {
        public void show() {
            System.out.println("Child");
        }
    }
    public class good {
        public static void main(String[] args) {
            Parent pa = ________ Child();
            pa.show();
        }
    }
    
  12. 2020-2 #7

    이론적인 정의를 묻는 문제라 실무자라면 당연히 알아야 하지만, 서술형으로 외우게 하는 건 좀 고리타분하다.

    #7··난이도 보통·쪼잔함 2 (짜증)데이터베이스트랜잭션

    트랜잭션 Rollback에 대해 설명하시오.

  13. 2020-2 #15

    이런 명령어는 외우는 게 아니라 필요할 때 찾아보는 건데, 굳이 시험으로 내야 하나 싶다.

    #15·단답형·난이도 보통·쪼잔함 2 (짜증)운영체제

    사용자에게 읽기 / 쓰기 / 실행 권한을 부여하고, 그룹에게는 읽기 / 실행을 부여하고, 그 이외에는 실행 권한을 a.txt에 부여하는 명령을 한 줄로 작성하시오. (8진법을 사용하시오)

  14. 2020-2 #19

    코드 트레이싱 문제는 언제나처럼 꼬아놓았지만, Java의 기본 원리를 묻는 좋은 문제다.

    #19·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드의 출력 결과를 쓰시오.

    class A {
        private int a;
        public A(int a) { 
          this.a = a; 
        }
        public void display() { 
          System.out.println("a=" +a); 
        }
    }
    class B extends A {
        public B(int a) { 
            super(a);
            super.display();
        }
    }
    public class good {
        public static void main(String[] args) {
            B obj = new B(10);
        }
    }
    
  15. 2020-3 #1

    이런 교과서적인 정의를 묻는 건 실무 역량보다는 암기력을 테스트하겠다는 의도로 보인다.

    #1··난이도 쉬움·쪼잔함 2 (짜증)소프트웨어공학

    리팩토링(Refactoring)을 하는 목적을 쓰시오.

  16. 2020-3 #3

    이론적인 정의를 묻는 전형적인 암기형 문제다.

    #3·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크

    대표적인 내부 라우팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜을 쓰시오.

  17. 2020-3 #5

    용어 하나를 맞히기 위해 문장을 통째로 읽어야 하는 피로감이 있다.

    #5·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크

    실시간 통신 모델은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 기술한 용어를 ( )이라는 용어로 정의하였다. 괄호 안에 들어갈 용어를 쓰시오.

  18. 2020-3 #6

    네트워크 기초 지식을 묻는 무난한 문제.

    #6·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크

    TCP/IP에서 오류가 발생하면 ( ) 메시지를 보내 오류가 발생했음을 알린다. 괄호 안에 들어갈 용어를 쓰시오.

  19. 2020-3 #8

    실무에서 가장 많이 쓰이는 쿼리 패턴 중 하나라 깔 수가 없다.

    #8·단답형·난이도 어려움·쪼잔함 2 (짜증)데이터베이스SQL

    다음 조건을 만족하면서 과목별 점수의 평균이 90 이상인 과목 이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오.

    • 대소문자를 구분하지 않는다.
    • GROUP BY, HAVING 구문을 반드시 사용한다.
    • 세미콜론(;)은 생략 가능하다.
    • 별칭(AS)을 사용해야 한다.
    보기 펼치기
    과목이름최소점수최대점수
    컴퓨터과학8595
  20. 2020-3 #9

    WHERE 절을 빼먹으면 대참사가 일어난다는 것을 경고하는 좋은 문제.

    #9·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    학생 테이블에서 이름이 '민수'인 튜플을 삭제하는 SQL문을 작성하시오.

  21. 2020-3 #12

    이런 용어 암기는 실무에서 테스트 계획서 쓸 때나 가끔 생각나지, 코딩할 땐 아무 상관 없다.

    #12·단답형·난이도 쉬움·쪼잔함 2 (짜증)소프트웨어공학

    내부 구조를 보지 않고 주로 구현된 기능을 테스트하는 테스트 기법으로, 동치 분할 테스트, 경계값 분석 테스트 등이 이용하는 테스트 기법은?

  22. 2020-3 #14

    정의를 묻는 문제는 실무 지식 확인용으로는 적절하다.

    #14··난이도 보통·쪼잔함 2 (짜증)데이터베이스

    DB 스키마에 대해서 서술하시오.

  23. 2020-3 #15

    상속 구조를 파악하는 것은 실무에서도 자주 접하는 패턴이라 나쁘지 않다.

    #15·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드의 출력 결과를 쓰시오.

    abstract class Vehicle {
        private String name;
        abstract public String getName(String val);
        public String getName(byte val) {
            return "Car name: " + val;
        }
    }
    class Car extends Vehicle {
        public Car(String val) {
            setName(val);
        }
        public void setName(String val) {
            name = val;
        }
        public String getName(String val) {
            return "Car name: " + val;
        }
    }
    public class good {
        public static void main(String[] args) {
            Vehicle obj = new Car("Spark");
            System.out.print(obj.getName("Spark"));
        }
    }
    
  24. 2020-3 #16

    이런 정의를 외우는 것보다 실제 사용성 테스트를 한 번 더 하는 게 낫다.

    #16··난이도 쉬움·쪼잔함 2 (짜증)소프트웨어공학

    UI 설계 원칙 중 '직관성' 개념을 설명하시오.

  25. 2020-3 #17

    기초적인 코드 트레이싱 문제로, 실무에서 이런 코드를 짤 일은 드물지만 로직 이해도는 확인 가능하다.

    #17·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드의 출력 결과를 쓰시오.

    public class Good {
        public static void main(String[] args) {
            int i = 0;
            int sum = 0;
            while (i < 10) {
                i++;
                if (i % 2 == 1) {
                    continue;
                }
                sum += i;
            }
            System.out.println(sum);
        }
    }
    
  26. 2020-3 #19

    기본 중의 기본을 묻는 문제라 비판할 거리가 없다.

    #19·단답형·난이도 보통·쪼잔함 2 (짜증)프로그래밍

    C++에서 생성자란 무엇인지 쓰시오.

  27. 2020-3 #20

    실무적인 SQL 문법을 묻는 좋은 문제다.

    #20·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    다음의 학생 테이블에 주소 속성을 추가하는 SQL문을 작성하시오.

    ( ① ) TABLE 학생 ( ② ) 주소 VARCHAR(20);

  28. 2020-4 #1

    기본적인 상식 수준의 문제라 딱히 할 말이 없다.

    #1·단답형·난이도 쉬움·쪼잔함 2 (짜증)네트워크TCP/IP

    현재 IPv4의 확장형으로 IPv4가 가지고 있는 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해서 개발된 128비트 주소체계를 갖는 차세대 인터넷 프로토콜은 무엇인가?

  29. 2020-4 #4

    이론적으로는 중요하지만, 실제 DB 엔진 내부 동작을 이해하는 것과는 또 다른 문제다.

    #4·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스트랜잭션

    트랜잭션 수행 도중에 데이터에 변경이 생기면 즉시 데이터베이스에 해당 사항을 반영하는 기법으로 회복 시 로그 파일을 참조하는 기법은 무엇인가?

  30. 2020-4 #7

    보안 기사도 아니고 정보처리기사에서 이런 용어 정의를 묻는 건 너무 기초적인 암기 위주 아닌가요?

    #7··난이도 쉬움·쪼잔함 2 (짜증)보안

    스니핑(Sniffing)에 대하여 서술하시오.

  31. 2020-4 #9

    파이썬 기초 문법을 묻는 문제인데, 굳이 이런 식으로 2차원 배열처럼 꼬아서 낼 필요가 있었나 싶네요.

    #9·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 소스 코드이다. 출력 결과를 쓰시오.

    lol = [[1,2,3],[4,5],[6,7,8,9]]
    for sub in lol:
        for item in sub:
            print(item, end="")
    
  32. 2020-4 #12

    이론적인 내용이지만 DB 설계의 근간이 되는 내용이라 비판하기 어렵네요.

    #12··난이도 보통·쪼잔함 2 (짜증)데이터베이스정규화

    이상 현상의 종류 3가지를 쓰시오.

  33. 2020-4 #13

    전형적인 운영체제 교과서 문제네요. 실무에서 이 다이어그램을 직접 그릴 일은 없지만 개념은 알아야 합니다.

    #13·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)운영체제

    다음은 프로세스 상태 전이도이다. ①, ②, ③에 알맞은 상태를 쓰시오.

    (이미지 내 상태 전이도 참조)

  34. 2020-4 #15

    이론은 쉽지만, 실무에서 이 표를 다 작성하고 앉아있으면 프로젝트 일정이 밀립니다.

    #15·단답형·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학

    영석 기반 테스트 중 하나로 아래의 표처럼 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법을 무엇이라고 하는가?

    구간등급데이터
    90<점수<=100A95
    80<점수<=90B80
    70<점수<=80C72
    60<점수<=70D69
    0<점수<60F30
  35. 2020-4 #19

    재귀 호출의 스택 흐름을 손으로 따라가게 하는 건 고전적인 방식이지만, 실무에선 디버거를 쓰는 게 정신 건강에 이롭다.

    #19·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 소스 코드의 출력 결과를 쓰시오.

    class parent {
        public int compute(int num) {
            if (num <= 1) return num;
            return compute(num - 1) + compute(num - 2);
        }
    }
    
    class Child extends parent {
        public int compute(int num) {
            if (num <= 1) return num;
            return compute(num - 1) + compute(num - 3);
        }
    }
    
    class good {
        public static void main(String[] args) {
            parent obj = new Child();
            System.out.print(obj.compute(4));
        }
    }
    
  36. 2021-1 #2

    이론적인 단계 구분은 중요하지만, 실무에서는 그냥 'ERD 그린다'라고 하지 이렇게 딱딱하게 구분하지 않습니다.

    #2·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음은 데이터 모델링에 대한 설명이다. 빈칸에 들어갈 알맞은 용어를 쓰시오.

    • ( ㉠ ) 데이터 모델링: 결과물로는 테이블 정의서, 제약조건 기술서, 인덱스 명세서 등이 있다.
    • ( ㉡ ) 데이터 모델링: 결과물로는 E-R 다이어그램 등이 있다.
    • ( ㉢ ) 데이터 모델링: 함수 종속성 파악, 논리적 스키마 등의 결과를 얻을 수 있고 정규화 과정을 수행한다.
  37. 2021-1 #5

    파이썬의 리스트 컴프리헨션이나 슬라이싱을 쓰면 훨씬 깔끔할 텐데, 굳이 이렇게 루프를 돌리는 코드를 내다니요.

    #5·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드이다. 출력 결과를 쓰시오.

    class good:
        li = ["seoul", "kyeonggi", "inchon", "daejeon", "daegu", "pusan"]
        g = good()
        str01 = ""
        for i in li:
            str01 = str01 + i[0]
        print(str01)
    
  38. 2021-1 #6

    AND와 OR 우선순위 문제는 SQL 시험의 단골 손님이죠. 괄호 안 치는 습관은 버려야 합니다.

    #6·코드 추적·난이도 어려움·쪼잔함 2 (짜증)데이터베이스SQL

    다음 SQL 실행 결과의 숫자만 쓰시오.

    SELECT COUNT(*) FROM 급여
    WHERE EMPNO > 100 AND SAL > 3000 OR EMPNO = 200;
    

    (데이터 테이블 생략)

  39. 2021-1 #7

    배열 인덱스 가지고 장난치는 문제는 이제 그만 좀 봤으면 좋겠다.

    #7·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 프로그램 결과를 쓰시오.

    public class Good {
        public static void main(String[] args) {
            int[][] arr = new int[][]{{45, 50, 75}, {89}};
            System.out.println(arr[0].length);
            System.out.println(arr[1].length);
            System.out.println(arr[0][0]);
            System.out.println(arr[0][1]);
            System.out.println(arr[1][0]);
        }
    }
    
  40. 2021-1 #9

    이런 기초적인 테스트 기법은 실무에서 당연히 알아야 하는 상식이다.

    #9·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학테스트

    다음은 블랙박스 기법에 대한 예제이다. 빈칸에 알맞은 블랙박스 기법 두 가지를 쓰시오.

    • ( ㉠ )은 입력 값의 유효범위 0 <= x <= 10을 갖는 3, 0, 10, 11을 테스트 케이스의 입력값으로 테스트를 진행한다.
    • ( ㉡ )은 입력 데이터의 영역을 유사한 도메인별로 타당한 값과 그렇지 못한 값으로 그룹핑하여 나누어서 검사한다.
  41. 2021-1 #11

    IPv4와 IPv6의 차이는 네트워크의 기본 중의 기본이다.

    #11·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크TCP/IP

    다음 빈칸에 들어갈 알맞은 용어를 쓰시오.

    • IPv6는 ( ① ) 비트 길이를 가진다.
    • IPv4는 길이가 32bit이며, ( ② ) 비트씩 네 부분으로 나눈다.
  42. 2021-1 #14

    이걸 틀리면 데이터베이스의 기본 용어조차 모르는 것이다.

    #14·단답형·난이도 쉬움·쪼잔함 2 (짜증)데이터베이스

    주어진 테이블의 Cardinality와 Degree를 구하시오.

    학번이름학년학과
    20202020김재원3무역과
    20202021하달력4영어과
    20202022이소라1영어과
    20202023정가와3중국어과
  43. 2021-1 #17

    이 정도 코드는 개발자라면 눈 감고도 읽어야 한다.

    #17·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 프로그램의 실행 결과를 쓰시오.

    public class good {
        public static void main(String[] args) {
            int i, j;
    
            for (j = 0, i = 0; i <= 5; i++) {
                j += i;
                System.out.print(i);
    
                if (i == 5) {
                    System.out.print("=");
                    System.out.print(j);
                } else {
                    System.out.print("+");
                }
            }
        }
    }
    
  44. 2021-1 #20

    보안 문제는 실무와 직결되는 경우가 많아 그나마 덜 억울하네요.

    #20·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)보안네트워크

    괄호 안에 공통으로 들어갈 공격 기법을 적으시오.

    • ( )은/는 '세션을 가로채다'라는 의미로 정상적 연결을 RST 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결한다.
    • ( )은/는 세션 관리 취약점을 이용한 공격 기법이다.
  45. 2021-2 #1

    이론적으로는 완벽하지만, 실제 현장에서 이 속도와 안정성을 보장하기란 매우 어렵다.

    #1·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크

    네트워크 장치를 필요로 하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크는 무엇인지 쓰시오.

  46. 2021-2 #4

    정규화 문제는 항상 나오는데, 실무에서는 성능 때문에 일부러 반정규화를 하는 게 아이러니하다.

    #4·단답형·난이도 어려움·쪼잔함 2 (짜증)데이터베이스정규화

    다음은 그림처럼 부분 함수적 종속을 제거하여, 완전 함수적 종속을 만족하는 정규형은 무엇인지 작성하시오.

  47. 2021-2 #14

    Locking은 DB 성능의 핵심입니다. 이건 실무에서도 중요합니다.

    #14·단답형·난이도 보통·쪼잔함 2 (짜증)운영체제데이터베이스

    병행제어 기법 중 데이터에 대한 연산을 모두 마칠 때까지 상호배제하는 기법을 무엇이라 하는지 작성하시오.

  48. 2021-2 #16

    재귀 함수를 이렇게 짜면 스택 오버플로우 나기 딱 좋습니다.

    #16·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C언어에 관한 소스코드다. 실행 결과를 작성하시오.

    int main() {
        int res;
        res = mp(2, 10);
        printf("%d", res);
        return 0;
    }
    
    int mp(int base, int exp) {
        int res = 1;
        for (int i = 0; i < exp; i++) {
            res = res * base;
        }
        return res;
    }
    
  49. 2021-2 #17

    클래스 생성 없이 호출하려면 static을 써야 한다는 건 Java 입문 1일 차 내용인데, 이걸 굳이 괄호 채우기로 내야 했나 싶다.

    #17·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    클래스 내에서 객체 생성 없이 사용할 수 있는 메서드로, 출력 결과가 다음과 같을 때 괄호 안에 알맞은 키워드를 작성하시오.

    public class Test {
        public static void main(String[] args) {
            System.out.print(Test.check(1)); // ①
        }
        ( ) String check(int num) { // ②
            return (num > 0 ? "positive" : "negative"); // ③
        }
    }
    

    [출력결과] positive

  50. 2021-2 #19

    코드 흐름을 쫓아가게 만드는 전형적인 Java 상속 문제로, 실무에서는 이렇게 복잡한 상속 구조를 지양한다.

    #19·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음은 JAVA에 관한 문제이다. 알맞은 출력값을 작성하시오.

    class ovr1 {
        public static void main(String[] args) {
            ovr1 a1 = new ovr1(); 
            ovr2 a2 = new ovr2(); 
    
            System.out.print(
                a1.sun(3, 2) + 
                a2.sun(3, 2)
            ); 
        }
    
        int sun(int x, int y) {
            return x + y;
        }
    }
    
    class ovr2 extends ovr1 {
        @Override
        int sun(int x, int y) { // ⑤
            return x - y + 
                super.sun(x, y); // ⑥
        }
    }
    
  51. 2021-3 #1

    싱글톤 구현 방식 중 가장 기본적인 형태를 묻는 문제로, 멀티스레드 환경에서의 안전성(Thread-safety)까지 고려해야 실무 수준이다.

    #1·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에 대한 알맞은 출력값을 쓰시오.

    class Connection {
        private static Connection _inst = null;
        private int count = 0;
    
        static public Connection get() {
            if (_inst == null)
                _inst = new Connection();
            return _inst;
        }
    
        public void count() { count++; }
        public int getCount() { return count; }
    }
    
    public class testcon {
        public static void main(String[] args) {
            Connection conn1 = Connection.get();
            conn1.count();
            Connection conn2 = Connection.get();
            conn2.count();
            Connection conn3 = Connection.get();
            conn3.count();
            System.out.print(conn1.getCount());
        }
    }
    
  52. 2021-3 #2

    이론적인 정의를 묻는 문제라 실무자라면 1초 만에 풀고 넘어가야 한다.

    #2··난이도 쉬움·쪼잔함 2 (짜증)보안

    다음은 정보보호 기술인 AAA(3A)에 대한 설명이다. 적합한 용어를 [보기]에서 고르시오.

    ① 시스템을 접근하기 전에 접근을 시도하는 사용자의 신원을 검증하는 것 ② 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용할지 결정하는 것 ③ 사용자의 자원(시간, 정보, 위치 등)에 대한 사용 정보를 수집하는 것

    [보기]

    Architecture, Authentication, Access, Avoidance, Authorization, Application, Accounting

  53. 2021-3 #4

    보안 기사 시험 단골 문제. 공격 원리를 이해하는 것은 중요하지만, 용어 암기 위주인 점은 아쉽다.

    #4·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크

    다음 괄호 안에 알맞은 용어를 쓰시오.

    ( )은 근거리 통신망 하에서 상대방의 데이터를 중간에서 가로채는 중간자 공격 기법이다. 이것은 자신의 MAC 주소를 다른 컴퓨터의 MAC 주소인 것처럼 속여 패킷을 가로채는 기법이다.

  54. 2021-3 #11

    코드 트레이싱 문제는 실무에서 버그 찾을 때 필요한 능력이니 봐줍니다.

    #11·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에 대한 알맞은 출력값을 쓰시오.

    public class test {
        public static void main(String[] args) {
            int a=3, b=4, c=3, d=5;
    
            if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
                a = b + c;
                if(7 == b ^ c != a) {
                    System.out.println(a);
                } else {
                    System.out.println(b);
                }
            } else {
                a = c + d;
                if(7 == b ^ c != a) {
                    System.out.println(a);
                } else {
                    System.out.println(d);
                }
            }
        }
    }
    
  55. 2021-3 #13

    CROSS JOIN의 결과를 계산하라는 문제는 실무적인 SQL 활용 능력보다는 단순 연산 능력을 묻는 느낌이 강합니다.

    #13·코드 추적·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    다음은, 테이블에서 조건값을 실행한 화면이다. 이에 대한 알맞은 결과값을 작성하시오.

    실행값

    SELECT COUNT(*) CUT FROM T1 A
    CROSS JOIN T2 B
    WHERE A.NAME LIKE B.RULE;
    

    T1

    CODENAME
    3258smith
    4324allen
    5432scott

    T2

    NORULE
    12s%
    32%t%
  56. 2021-3 #18

    이런 용어 암기는 실무에서 인덱스 설계할 때 기본 소양이라 욕하기 어렵다.

    #18·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음은 파일 구조(File Structures)에 대한 설명이다. 괄호 안에 알맞은 답을 작성하시오.

    • 접근 방법 중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 ( ㉠ )을 구성하여 편향하는 방식이 있으며, 레코드를 참조할 때는 ( ㉠ )이(가) 가리키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, ( ㉡ ) 접근, 해싱 접근이 있다.
  57. 2021-3 #20

    개념은 중요하지만, 표를 채우는 방식의 암기 문제는 다소 지루하다.

    #20·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학테스트

    다음은 소프트웨어 통합 테스트에 대한 설명이다. 괄호 안에 알맞은 답을 작성하시오.

    • ( ㉠ ) 방식은 이름에서도 알 수 있듯이, 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며, 이 방식을 사용하기 위해서는 ( ㉡ ) 이(가) 필요하다. ( ㉡ )은(는) 이미 존재하는 하위 모듈과 존재하지 않는 상위 모듈에 대한 인터페이스 역할을 한다.
  58. 2022-1 #2

    용어 정의를 묻는 전형적인 문제지만, 실무에서는 툴이 다 해주니 개념만 확실히 잡고 넘어가자.

    #2··난이도 보통·쪼잔함 2 (짜증)데이터베이스트랜잭션

    다음 DB 회복 기법에 대한 설명에 알맞은 답을 [보기]에서 찾아 작성하시오.

    1. 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후, 실패가 발생하기 전까지 과정을 그대로 따라가는 현상
    2. 작업을 취소하여 트랜잭션을 이전 상태로 되되돌리는 것
    보기 펼치기

    ㄱ. commit ㄴ. active ㄷ. Partially Committed ㄹ. Rollback ㅁ. Abort ㅂ. Committed ㅅ. Failed ㅇ. redo ㅈ. undo

  59. 2022-1 #5

    이론적인 정의를 묻는 전형적인 시험 문제로, 실무에서는 '데이터가 꼬였다'는 말로 통용된다.

    #5·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    데이터베이스의 이상현상 중, 삭제 이상에 대해 서술하시오.

  60. 2022-1 #6

    기본적인 문법 이해도를 묻는 문제로, 파이썬을 조금이라도 써봤다면 틀릴 수가 없다.

    #6·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.

    def exam(num1, num2=2):
        print('a=', num1, 'b=', num2)
    
    exam(20)
    
  61. 2022-1 #10

    실무적인 개념을 묻는 좋은 문제지만, 표를 채우는 방식은 다소 고전적이다.

    #10··난이도 보통·쪼잔함 2 (짜증)소프트웨어공학테스트

    다음은 소스 코드 분석 도구에 대한 설명이다. 각각에 알맞은 답을 [보기]에서 고르시오.

    구분정적 분석(Static)동적 분석(Dynamic)
    실행 여부실행하지 않음실행(런타임 환경)
    분석 시점개발 초기, 컴파일 전테스트 및 실행 시점
    검출 대상코딩 표준, 문법 오류 등메모리 누수, 성능 문제, 실제 발생한 런타임 오류
    보기 펼치기

    static, dynamic

  62. 2022-1 #11

    스레드 생성 방식을 묻는 전형적인 암기형 문제로, 실무에서는 보통 ExecutorService를 쓰지 이렇게 직접 Thread를 생성하는 경우는 드물다.

    #11·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드 중에서 밑줄에 들어갈 알맞은 코드를 작성하시오.

    class Car implements Runnable {
        public void run() {
            System.out.println("message");
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Thread t1 = new Thread(new ____);
            t1.start();
        }
    }
    
  63. 2022-1 #15

    이런 기초적인 자릿수 분리 로직을 굳이 빈칸 문제로 내는 건 너무 고전적이다.

    #15·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

    다음 중 괄호 안에 들어갈 연산자를 써서 정수를 역순으로 출력하는 알맞은 답을 작성하시오.

    #include <stdio.h>
    int main() {
        int number = 1234;
        int div = 10;
        int result = 0;
    
        while (number ( ① ) 0) {
            result = result * div;
            result = result + number ( ② ) div;
            number = number ( ③ ) div;
        }
        printf("%d", result);
        return 0;
    }
    // 결과: 4321
    
  64. 2022-1 #18

    공격 기법의 이름을 묻는 문제는 보안 분야에서 단골이다.

    #18·단답형·난이도 어려움·쪼잔함 2 (짜증)보안

    다음 설명과 관련된 공격 유형을 쓰시오.

    이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 감염된 코드를 다운로드 받게 하고, 다운로드된 악성 코드를 통해 공격을 하는 방식이다.

  65. 2022-1 #20

    이론적인 V모델은 예쁘지만, 실제 애자일 환경에서는 이렇게 딱딱 떨어지게 테스트를 수행하기가 매우 어렵다.

    #20·빈칸 채우기·난이도 쉬움·쪼잔함 2 (짜증)소프트웨어공학

    다음은 V모델에서의 테스트 단계이다. ①~④ 안에 들어갈 답을 작성하시오.

    <!-- FIGURE TODO: V모델 테스트 단계 다이어그램 -->
  66. 2022-2 #3

    SQL의 논리 연산자를 묻는 전형적인 문제로, 실무에서는 가독성을 위해 서브쿼리보다 JOIN을 선호한다.

    #3·단답형·난이도 어려움·쪼잔함 2 (짜증)데이터베이스SQL

    '막강' 회사의 전체 제품 단가보다 큰 제품 출력을 하고자 한다. 괄호 안에 들어갈 알맞은 용어를 작성하시오.

    제조사제품명단가
    최고메리제인슈즈1,000
    제일스텔레토힐6,000
    막강플랫슈즈2,000
    젤존스니커즈5,000
    막강앵글부츠3,000
    SELECT 제조사, 제품명, 단가
    FROM 제품
    WHERE 단가 > (  )(SELECT 단가 FROM 제품 WHERE 제조사='막강');
    
  67. 2022-2 #5

    네트워크 보안의 기초적인 개념을 묻는 문제로, 실무자라면 당연히 알아야 할 수준이다.

    #5·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크

    다음은 네트워크에 관한 내용이다. 괄호 안에 들어갈 알맞은 답을 작성하시오.

    ( )은/는 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성하며, 퍼블릭 네트워크를 통해 데이터를 안전하게 암호화하여 전송하는 데 사용된다. 또한 사용자 IP 주소를 마스킹하고 데이터를 암호화하여 수신 권한이 없는 사람이 읽을 수 없도록 한다.

  68. 2022-2 #8

    코드 자체는 깔끔하지만, 시험 문제로 내기 위해 억지로 꼬아놓은 느낌이 강하다.

    #8·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

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

    #include <stdio.h>
    
    struct A {
        int n;
        int g;
    };
    
    int main() {
        struct A a[2];
        for (int i = 0; i < 2; i++) {
            a[i].n = i;
            a[i].g = i + 1;
        }
        printf("%d", a[0].n + a[1].g);
        return 0;
    }
    
  69. 2022-2 #9

    이런 계산은 실무에선 계산기나 툴을 쓰지, 손으로 직접 하진 않는다.

    #9·단답형·난이도 어려움·쪼잔함 2 (짜증)네트워크TCP/IP

    IP 주소가 139.127.19.132이고 서브넷마스크가 255.255.255.192일 때 아래의 답을 작성하시오. (10진수로 표기)

    1. 네트워크 주소
    2. 브로드캐스트 주소를 제외한 호스트 개수
  70. 2022-2 #11

    용어 자체는 중요하지만, 보기를 주고 고르는 문제는 너무 쉽다.

    #11·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학테스트

    다음 설명에 알맞은 테스트 용어를 보기에서 골라 작성하시오.

    [보기] Unit (단위), Integration (통합), Regression (회귀), System (시스템)

    이전의 실행 테스트를 재실행하며 이전에 고쳤던 오류가 재발되는지 검사하고 오류가 수정된 외에 새롭게 유입된 오류가 없는지 확인하는 방법으로 많이 사용된다. 이것은 수정·변경된 시스템 컴포넌트 또는 프로그램이 명시된 요구 사항을 충족시키는지를 확인하는 시험의 한 형태이다.

  71. 2022-2 #12

    테이블을 보고 결과를 추론하는 문제는 실무적 감각을 기르기에 나쁘지 않다.

    #12·코드 추적·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    다음 테이블에서 π job(employee)에 대한 연산 결과을 작성하시오.

    emproagejob
    133차장
    222사원
    345부장
    428대리
  72. 2022-2 #13

    C언어의 문자열 포인터 연산을 테스트하는 전형적인 문제로, 실무에서는 strncpy나 strndup을 쓰지 이렇게 짜면 욕먹는다.

    #13·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

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

    a = 'REMEMBER NOVEMBER'
    b = a[:3] + a[12:16]
    c = 'R AND %s' % 'STR'
    print(b+c)
    
  73. 2022-2 #17

    코드 자체는 깔끔하지만, 이런 식의 트레이싱 문제는 실무보다는 면접용 퀴즈에 가깝다.

    #17·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에서 알맞은 출력값을 작성하시오.

    public class Conv {
        int a;
    
        public Conv(int a) {
            this.a = a;
        }
    
        int func() {
            int b = 1;
            for (int i = 1; i < a; i++) {
                b = a * i + b;
            }
            return a + b;
        }
    
        public static void main(String[] args) {
            Conv obj = new Conv(3);
            obj.a = 5;
            int b = obj.func();
            System.out.print(obj.a + b);
        }
    }
    
  74. 2022-2 #19

    너무 기초적인 내용이라 문제로 내기 민망할 정도.

    #19·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크

    다음 설명에 알맞은 각각의 답을 작성하시오.

    1. 인터넷에서 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위한 통신 규약으로 인터넷에서 하이퍼텍스트(hypertext) 문서를 교환할 수 있다.
    2. 문자, 그래픽, 음성 및 영상을 서로 연결하는 정보를 클릭함으로써 원하는 정보에 쉽게 접근할 수 있다.
    3. 웹 페이지 표시를 위해 개발된 마크업 언어로, 글자, 목록 등과 같은 문을 위한 구조적 의미를 나타내고 있으며, 링크와 외부 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다.
  75. 2022-3 #1

    C언어의 포인터와 배열 인덱스 계산을 꼬아놓은 전형적인 시험용 코드다.

    #1·코드 추적·난이도 ·쪼잔함 2 (짜증)프로그래밍C언어

    아래는 C언어의 2차원 배열 형태이다. field의 경우 2차원 배열 형태는 예시처럼 출력되므로, 이를 참고하여 mines의 2차원 배열 형태를 작성하시오.

    #include <stdio.h>
    
    int calculate(int w, int h, int i, int j) {
        if (i >= 0 && i < h && j >= 0 && j < w) // ①
            return 1;
        return 0; // ②
    }
    
    int main() {
        int mines[4][4] = {0};
        int w = 4, h = 4;
        int i, j;
    
        int field[4][4] = {
            {0, 1, 0, 1},
            {1, 1, 1, 0},
            {0, 0, 0, 1},
            {0, 1, 1, 1}
        }; // ④
    
        for (y = 0; y < h; y++) {
            for (x = 0; x < w; x++) {
                if (field[x][y] == 0) continue; // ⑥
    
                for (i = y - 1; i <= y + 1; i++) {
                    for (j = x - 1; j <= x + 1; j++) {
                        if (calculate(w, h, i, j)) // ⑦
                            mines[j][i] += 1; // ⑧
                    }
                }
            }
        }
    
        for (y = 0; y < h; y++) {
            for (x = 0; x < w; x++) {
                printf("%d", mines[y][x]); // ⑨
            }
            printf("\n");
        }
        return 0;
    }
    
  76. 2022-3 #4

    순위 계산 알고리즘을 직접 구현하는 건 코딩 테스트용이지, 실무에서 이렇게 짜면 유지보수 담당자가 화낸다.

    #4·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드의 출력 결과를 쓰시오.

    public class RankExample {
        public static void main(String[] args) {
            int[] arr = {77, 32, 10, 99, 50};
            int[] result = new int[arr.length];
            for (int i = 0; i < arr.length; i++) {
                result[i] = 1;
                for (int j = 0; j < arr.length; j++) {
                    if (arr[i] < arr[j]) {
                        result[i]++;
                    }
                }
            }
            for (int k = 0; k < result.length; k++) {
                System.out.print(result[k]);
            }
        }
    }
    
  77. 2022-3 #6

    이론적인 용어 암기보다는 실제 테스트 케이스를 짜는 능력이 더 중요하다.

    #6·단답형·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학테스트

    다음 표에 해당하는 테스트 기법을 쓰시오.

    평가 점수상여금
    90-100점600만원
    80-89점400만원
    70-79점200만원
    0-69점0만원
  78. 2022-3 #7

    CASCADE 옵션이 걸려있을 때의 데이터 삭제 흐름을 묻는 좋은 문제다.

    #7·코드 추적·난이도 ·쪼잔함 2 (짜증)데이터베이스SQL

    아래 데이터 명령을 적용할 경우 명령은 출력값을 작성하시오.

    CREATE TABLE 부서 (
        부서코드 int,
        PRIMARY KEY(부서코드)
    );
    
    CREATE TABLE 직원 (
        직원코드 int, 부서코드 int,
        PRIMARY KEY(직원코드),
        FOREIGN KEY(부서코드)
        REFERENCES 부서(부서코드)
        ON DELETE CASCADE
    );
    
    -- 데이터 삽입 생략 --
    
    DELETE FROM 부서 WHERE 부서코드 = 20;
    SELECT COUNT(직원코드) FROM 직원;
    
  79. 2022-3 #9

    이 정도 코드는 파이썬 기초 중의 기초라 틀리면 곤란하다.

    #9·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드에 대한 출력값을 작성하시오.

    TestList = [1, 2, 3, 4, 5]
    TestList = list(map(lambda num: num + 100, TestList))
    print(TestList)
    
  80. 2022-3 #10

    솔루션 이름 풀네임을 묻는 건 전형적인 자격증 시험 스타일이다.

    #10·단답형·난이도 어려움·쪼잔함 2 (짜증)보안운영체제

    다음 설명에 해당하는 용어는 무엇인가?

    • 머신러닝 기술을 이용하여 IT 시스템에서 발생하는 대량의 로그를 통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션으로, 서로 다른 기종의 보안 솔루션으로부터 발생하는 네트워크 상태의 monitoring 및 이상 징후를 미리 감지할 수 있다.
    • 모든 IT 구성 요소(게이트웨이, 서버, 방화벽 등)로부터 수집한 다양한 로그와 보안 이벤트 데이터를 빅데이터 기반으로 분석한다.
    • 보안 위협 징후를 판단할 수 있는 데이터(통계정보)를 생성하고 이 데이터로 보안 사고를 분석하고 예방·대응한다.
  81. 2022-3 #12

    기초적인 SQL 문법을 묻는 문제로, 실무자라면 당연히 알아야 한다.

    #12·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    STUDENT 테이블에서 컴퓨터학과 학생 50명, 전기과 학생 50명, 데이터학과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문의 실행 결과에 따른 튜플의 수는? (단, DEPT 컬럼은 학과명이다.)

    SELECT DISTINCT DEPT FROM STUDENT;
    
  82. 2022-3 #14

    보안 용어 암기 문제인데, 실무에서는 이런 용어 정의보다 실제 방어 설정이 훨씬 중요하다.

    #14·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)보안

    다음 설명에 알맞은 용어를 각각 작성하시오.

    (1) 프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술 (2) 암(ARM: Advanced RISC Machine)사에서 개발하였다. (3) 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빼먹는 실수를 이용하기 위해 유사한 유명 도메인을 미리 등록하는 일 (4) 하이재킹(hijacking)이라고도 한다.

  83. 2022-3 #18

    ERD 기호 해석은 실무 DB 설계자라면 당연히 알아야 할 기본기다.

    #18·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음은 E-R 다이어그램에 관한 설명이다. 괄호 안에 알맞은 답을 작성하시오.

    erDiagram
        STUDENT ||--o{ ENROLL : " "
        COURSE ||--o{ ENROLL : " "
        STUDENT { 
            string 학번
            string 이름
        }
        COURSE { 
            string 과목코드
            string 과목명
            string 담당교수
        }
        ENROLL { 
            string 학번
            string 과목코드
            date date
        }
    
    1. 개체집합-관계집합 연결 ( 1 )
    2. 개체 집합의 연결 ( 2 )
    3. 두 개체 집합-관계 집합의 속성 연결 ( 3 )
    4. 다대다(관계) 속성 ( 4 )
    5. 같은 속성을 공유하는 개체들의 모음 ( 5 )
  84. 2022-3 #19

    코드 자체는 단순하지만, 메모리 구조를 시각화해서 보여주는 친절함이 오히려 시험 문제답지 않게 느껴진다.

    #19·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

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

    public class Main {
        static int[] MakeArray() {
            int[] tempArr = new int[4];
            for (int i = 0; i < tempArr.length; i++) {
                tempArr[i] = i;
            }
            return tempArr;
        }
    
        public static void main(String[] args) {
            int[] intArr;
            intArr = MakeArray();
            for (int i = 0; i < intArr.length; i++) {
                System.out.print(intArr[i]);
            }
        }
    }
    
  85. 2022-3 #20

    단순한 반복문 문제인데, 굳이 999까지 돌려서 993을 답으로 내게 하는 건 좀 귀찮은 수준의 문제다.

    #20·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

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

    public class Exam {
        public static void main(String[] args) {
            int a = 0;
            for(int i = 1; i < 999; i++) {
                if(i % 3 == 0 && i % 2 != 0) {
                    a = i;
                }
            }
            System.out.print(a);
        }
    }
    
  86. 2023-1 #1

    메모리 구조를 묻는 건 좋지만, 이런 식의 억지스러운 static 호출은 실무에서 절대 하지 말아야 할 코드다.

    #1·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    아래 Java 코드에서 출력되는 값을 작성하시오.

    class Static {
        public int a = 20;
        static int b = 0;
    }
    
    public class Main {
        public static void main(String[] args) {
            int a = 10; // 1
            Static.b = a; // 2
            Static st = new Static(); // 3
            System.out.println(Static.b++); // 4
            System.out.println(st.b); // 5
            System.out.println(a); // 6
            System.out.println(st.a); // 7
        }
    }
    
  87. 2023-1 #5

    이론적인 내용이라 실무에서 직접 용어를 읊지는 않지만, 네트워크 아키텍처를 이해하려면 필수적인 기초 지식이다.

    #5·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크

    괄호 안에 들어갈 적절한 네트워크 용어를 [보기]에서 고르시오.

    ① ( ) :

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

    [보기] 데이터그램, 패킷, 프레임, 가상회선, 메시지, Sliding Window, ICMP

  88. 2023-1 #9

    C언어 기초를 묻는 무난한 문제지만, 실무에서 직접 10진수 변환 로직을 짤 일은 거의 없다.

    #9·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    아래 코드에서 이진수를 십진수로 변환하는 코드에 대해 괄호 (a), (b)에 적합한 답을 작성하시오.

    #include <stdio.h>
    
    int main() {
        int input = 101110; // ①
        int sum = 0;        // ②
        int di = 1;         // ③
    
        while (1) {
            if (input == 0) break; // ④
            else {
                sum = sum + (input % 10) * di; // ⑤
                di = di * 2;                   // ⑥
                input = input / 10;            // ⑦
            }
        }
        printf("%d", sum); // ⑧
        return 0;
    }
    
  89. 2023-1 #10

    보안 공격 기법을 빈칸 채우기로 내는 건 좀 고전적이지만, 기본기 확인용으로는 나쁘지 않다.

    #10·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음은 보안 관련 설명으로, 괄호 안에 알맞은 용어를 작성하시오.

    • ( ㉠ )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜이다.
    • ( ㉡ ) 프로토콜은 ping을 사용하여 메시지, 오류 등을 담아 보내고 실패할 경우 이에 대한 정보를 가지고 송신단으로 돌아오는 방식이다.
    • ( ㉢ )을/를 이용한 공격에는 ( ㉣ ) Flooding이 있는데 ping 명령어를 통한 ( ㉣ ) 패킷을 연속적으로 계속 보내어 서버의 응답으로 인한 다른 작업을 하지 못하도록 하는 공격이다.
  90. 2023-1 #14

    버블 정렬을 직접 구현하는 건 학습용이지, 실무에서는 라이브러리 정렬 함수를 쓴다.

    #14·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 코드에서 괄호 안에 알맞은 변수명으로 작성하시오.

    public class Sort {
        public static void swap(int[] arr, int idx1, int idx2) {
            int temp = arr[idx1];
            arr[idx1] = arr[idx2];
            arr[idx2] = temp;
        }
    
        public static void Usort(int[] array, int length) {
            for (int i = 0; i < length; i++) {
                for (int j = 0; j < length - 1 - i; j++) {
                    if (array[j] > array[j + 1]) {
                        swap(array, j, j + 1);
                    }
                }
            }
        }
    
        public static void main(String[] args) {
            int[] item = {5, 3, 8, 1, 2, 7};
            int nx = 6;
            Usort(item, nx);
            for (int data : item) {
                System.out.print(data + " ");
            }
        }
    }
    
  91. 2023-1 #15

    집합의 순서가 보장되지 않는다는 기초적인 특성을 묻는 문제로, 파이썬을 조금이라도 써봤다면 틀릴 수가 없다.

    #15·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

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

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

    코드의 흐름을 쫓아가는 전형적인 시험 문제지만, 실무에서는 이렇게 복잡한 상속 구조를 굳이 만들지 않는 게 좋다.

    #17·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 JAVA 코드에서 알맞은 출력 값을 작성하시오.

    abstract class Vehicle {
        String name;
        abstract public String getName(String val);
    
        public String getName() {
            return "Vehicle name:" + name;
        }
    }
    
    class Car extends Vehicle {
        public Car(String val) {
            name = super.name = val;
        }
    
        public String getName(String val) {
            return "Car name:" + val;
        }
    
        public String getName(byte val[]) {
            return "Car name:" + val;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Vehicle obj = new Car("Spark");
            System.out.println(obj.getName());
        }
    }
    
  93. 2023-1 #19

    그래프를 보고 경로를 찾는 문제는 실무에서 자동화 도구가 다 해주는데, 굳이 손으로 풀게 하는 이유를 모르겠다.

    #19·단답형·난이도 어려움·쪼잔함 2 (짜증)소프트웨어공학테스트

    다음 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스트 순서를 쓰시오.

  94. 2023-1 #20

    필드 오버라이딩을 유도하는 코드는 실무에서 절대 짜지 말아야 할 나쁜 코드의 예시다.

    #20·코드 추적·난이도 ·쪼잔함 2 (짜증)프로그래밍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 = 400;
        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());
        }
    }
    
  95. 2023-2 #1

    배열 인덱스 계산 문제인데, 실무에서는 이런 거 직접 짜다가 인덱스 에러 내지 말고 표준 라이브러리 쓰세요.

    #1·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

    다음은 C언어 코드의 문제이다. 보기의 조건에 맞도록 괄호 안에 알맞은 코드를 작성하시오.

    입력값이 54321인 경우 출력값이 43215로 출력되어야 한다.

    #include <stdio.h>
    
    int main(void) {
        int n[5];
        int i;
        for (i = 0; i < 5; i++) {
            scanf("%d", &n[i]); // ① 입력
        }
        for (i = 0; i < 5; i++) {
            printf("%d", n[(i + 1) % 5]); // ② 출력
        }
        return 0;
    }
    
  96. 2023-2 #7

    기초적인 루프 문제지만, 2023년까지의 4의 배수를 묻는 방식이 꽤나 고전적이다.

    #7·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

    다음은 소스코드의 알맞은 출력을 작성하시오.

    #include <stdio.h>
    int main() {
        int c = 0;
        for(int i = 1; i <= 2023; i++) {
            if(i % 4 == 0) c++;
        }
        printf("%d", c);
    }
    
  97. 2023-2 #12

    이론적인 오류 제어 방식은 네트워크 엔지니어라면 당연히 알아야 할 기본기다.

    #12·빈칸 채우기·난이도 어려움·쪼잔함 2 (짜증)네트워크

    데이터 전송 시 오류를 검출하고 수정하는 방법 중 ( ① )은 데이터 전송 과정에서 발생한 오류를 검출해 재전송 요구 없이 송신 측에서 스스로 수정하는 방식이고, ( ② ) 방식은 오류 발생 시 송신 측에 재전송을 요구하는 방식이다. ( ③ )의 종류에는 ( ④ ) 검사, ( ⑤ ) 검사가 있다.

    보기 펼치기

    ① hamming, ② FEC, ③ BEC, ④ parity, ⑤ CRC

  98. 2023-2 #14

    String Pool 개념을 묻는 건 좋지만, 실무에서 new String()을 직접 쓸 일은 거의 없다는 게 함정.

    #14·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java에 대한 문제이다. 알맞은 출력값을 작성하시오.

    public class Main {
        public static void main(String[] args) {
            String str1 = "Programming";
            String str2 = "Programming";
            String str3 = new String("Programming");
    
            System.out.println(str1 == str2); // ①
            System.out.println(str1 == str3); // ②
            System.out.println(str1.equals(str3)); // ③
            System.out.println(str2.equals(str3)); // ④
        }
    }
    
  99. 2023-2 #16

    괄호 채우기 문제치고는 개념이 아주 실무적이라 깔 수가 없다.

    #16·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음 괄호 안에 알맞은 답을 작성하시오.

    • ( ㉠ )은 데이터의 크기를 가진 데이터(Key)를 고정된 크기의 데이터(Value)로 변환시켜 저장하는 것이다.
    • 키에 대한 ( ㉡ ) 값을 사용하여 데이터를 저장하고, 키 값의 개수에 따라 크기가 증가한다.
    • ( ㉢ ) 값을 index로 사용하기 때문에 평균 시간 복잡도가 O(1)로 매우 빠르다.
    • ( ㉣ )은 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다.
  100. 2023-2 #19

    파이썬 기초 문법을 묻는 문제라 실무자 입장에서는 너무 쉬워서 하품이 나온다.

    #19·코드 추적·난이도 쉬움·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드에서 알맞은 출력값을 작성하시오.

    a = "engineer information processing"
    b = a[:3]
    c = a[4:6]
    d = a[28:]
    e = b + c + d
    print(e)
    
  101. 2023-3 #1

    코드의 가독성을 해치는 전형적인 '시험용' 꼬아놓기 문제로, 실무에서는 이런 코드를 작성하면 즉시 코드 리뷰에서 반려당합니다.

    #1·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java 코드이다. 올바른 출력 결과를 작성하시오.

    public class Main{
        public static void main(String[] args) {
            A b = new B(); // ①
            b.paint();     // ②
            b.draw();      // ⑦
        }
    }
    
    class A {
        public void paint() {
            System.out.print("A");
            draw();
        }
        public void draw() {
            System.out.print("B"); // ③
            draw();               // ④
        }
    }
    
    class B extends A {
        public void paint() {
            super.draw();         // ③
            System.out.print("C"); // ⑤
            this.draw();          // ⑥
        }
        public void draw() {
            System.out.print("D"); // 실행 시마다 D
        }
    }
    
  102. 2023-3 #2

    용어의 정의를 묻는 전형적인 암기형 문제지만, 실무 필수 지식이라 뭐라 하기도 애매하다.

    #2·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)보안

    다음에서 설명하는 용어를 [보기]에서 골라 기호를 작성하시오.

    • 사용자가 사용자 이름 및 암호와 같은 자격 증명을 공유하지 않고도 애플리케이션이 데이터 또는 리소스에 액세스할 수 있도록 권한을 부여할 수 있는 표준 프로토콜이다.
    • 사용자가 데이터에 대한 제어를 유지하면서 리소스에 대한 액세스 권한을 부여할 수 있는 안전하고 표준화된 방법을 제공하며, 액세스 토큰을 사용하여 타사 애플리케이션에 리소스에 대한 액세스 권한을 부여하는 매커니즘을 사용자에게 제공하는 방식으로 작동한다.
    • 사용자가 응용 프로그램에 대한 액세스 권한을 부여하면 응용 프로그램은 사용자를 대신하여 사용자의 리소스 또는 데이터에 액세스할 수 있는 액세스 토큰을 받는다.
    • 암호와 같은 사용자의 자격 증명은 타사 응용 프로그램과 공유되지 않으며, 클라우드 스토리지 서비스, 온라인 마켓플레이스 및 금융 서비스를 포함한 다른 많은 응용 프로그램 및 서비스에서도 사용된다.
    • Facebook, Twitter 및 LinkedIn과 같은 소셜 미디어 플랫폼에서 널리 사용되어 사용자가 소셜 미디어 데이터에 대한 액세스 권한을 타사 애플리케이션에 부여할 수 있도록 한다.
    • 타사 애플리케이션에 대한 사용자 자격 증명의 노출을 최소화하여 향상된 보안, 간소화된 애플리케이션 개발, 사용자가 리소스에 대한 액세스 권한을 쉽게 부여하거나 최소화할 수 있도록 하여 사용자 환경 등 여러 이점을 제공한다.
    보기 펼치기

    | 보기 | |---|---| | ㄱ. NFT | ㄴ. JWT | ㄷ. SAML | | ㄹ. accessToken | ㅁ. SSO | ㅂ. OIDC | | ㅅ. Authentication | ㅇ. OAuth | ㅈ. Cookie | | ㅊ. Refresh Token | | |

  103. 2023-3 #6

    UNION 연산의 결과 집합에 대한 이해를 묻는 전형적인 기초 문제네요.

    #6·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    다음 빈칸에 들어갈 UNION 연산의 결과값을 작성하시오.

    NUMNUM
    13
    13
    24
    SELECT NUM FROM T1
    UNION
    SELECT NUM FROM T2
    ORDER BY A DESC;
    
  104. 2023-3 #8

    재귀 호출의 스택 구조를 이해하는지 묻는 아주 정석적인 문제네요.

    #8·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C 언어 코드에 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    int f(int n) {
        if(n == 1) return 1;
        else return n * f(n - 1);
    }
    
    int main() {
        printf("%d", f(7));
        return 0;
    }
    
  105. 2023-3 #13

    컴파일 에러가 나는 코드를 보여주고 이유를 묻는 건 실무 감각을 확인하기엔 좋다.

    #13·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 자바 코드를 실행할 경우 에러가 발생한다. 에러가 발생하는 라인을 작성하시오.

    class Person {
        private String name;
        public Person(String val) {
            name = val;
        }
        public static String get() {
            return name; // 오류 발생 지점
        }
        public void print() {
            System.out.println(name);
        }
    }
    
  106. 2023-3 #14

    파이썬의 기초적인 문자열 처리 능력을 묻는 무난한 문제.

    #14·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드에 대한 출력값을 작성하시오.

    print("파이썬 입출력에 대한 문제입니다.")
    # 입력값은 2와 3이다.
    num1, num2 = input().split() # 입력: 2 3
    num1 = int(num1)
    num2 = int(num2)
    num3 = num1 + num2
    print(str(num1) + "+" + str(num2) + "=" + str(num3))
    
  107. 2023-3 #15

    다이어그램 이름 맞추기 문제는 실무 능력보다는 암기력 테스트에 가깝다.

    #15·단답형·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학아키텍처

    다음은 패키지와 관련된 다이어그램이다. 해당 다이어그램의 명칭을 쓰시오.

    graph TD
        ordering -->|import| products
        pricing -->|import| products
    
  108. 2023-3 #17

    이런 표를 채우는 문제는 실무에서 클라우드 아키텍처를 설계할 때의 기본 소양이다.

    #17·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크os

    다음은 클라우드에 대한 유형 문제이다. 괄호 안에 알맞은 답을 [보기]에서 골라 작성하시오.

    구분애플리케이션데이터런타임미들웨어운영체제가상화서버스토리지네트워크
    OOOOOOOOO
    OOOOOXXXX
    OOXXXXXXX

    [보기]

    • IaaS
    • PaaS
    • SaaS
  109. 2023-3 #20

    이론적인 내용이지만 실무에서도 데이터 설계 시 항상 고민해야 하는 부분이라 유익하다.

    #20·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음은 데이터베이스에 관련된 문제이다. 괄호 안에 알맞은 답을 쓰시오.

    ( ) 무결성은 관계 데이터베이스 관계 모델에서 2개의 관련 관계 변수(테이블) 간의 일관성(데이터)을 적용한다.

    • 종속 기본 키 또는 기본 키가 아닌 후보 키와 외래 키의 조합(열)의 값은 관계 변수의 부모가 되는 관계 변수의 기본 키 값 또는 기본 키가 아닌 후보 키 값으로 존재해야 한다.
  110. 2024-1 #1

    싱글톤 구현 방식이 멀티스레드 환경에서 안전하지 않다는 점을 지적하지 않는 것은 아쉽다.

    #1·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에서 알맞은 출력 값을 작성하시오.

    class Connection {
        private static Connection _inst = null;
        private int count = 0;
        static public Connection get() {
            if (_inst == null) {
                _inst = new Connection();
            }
            return _inst;
        }
        public void count() { count++; }
        public int getCount() { return count; }
    }
    
    public class Main {
        public static void main(String[] args) {
            Connection conn1 = Connection.get();
            conn1.count();
            Connection conn2 = Connection.get();
            conn2.count();
            Connection conn3 = Connection.get();
            conn3.count();
            conn1.count();
            System.out.print(conn1.getCount());
        }
    }
    
  111. 2024-1 #4

    포인터 연산으로 문자열 뒤집기라니, 80년대 C언어 시험 문제에서 타임머신 타고 온 줄 알았다.

    #4·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C언어 코드의 출력 결과를 쓰시오.

    #include <stdio.h>
    #include <string.h>
    
    void reverse(char *str) {
        int len = strlen(str);
        char *p1 = str;
        char *p2 = str + len - 1;
        char temp;
        while(p1 < p2) {
            temp = *p1;
            *p1 = *p2;
            *p2 = temp;
            p1++;
            p2--;
        }
    }
    
    int main(int argc, char* argv[]) {
        char str[100] = "ABCDEFGH";
        reverse(str);
        printf("%s", str);
        return 0;
    }
    
  112. 2024-1 #9

    손으로 직접 페이지 교체 과정을 추적하게 하는 것은 고전적이지만 확실한 검증 방식입니다.

    #9·단답형·난이도 어려움·쪼잔함 2 (짜증)운영체제

    다음 운영체제 페이지 순서를 참고하여 할당된 프레임의 수가 3개일 때 LRU와 LFU 알고리즘의 페이지 부재 횟수를 작성하시오.

    페이지 참조 순서: 1, 2, 3, 1, 2, 4, 1, 2, 5, 7

  113. 2024-1 #11

    실무에서 이런 코드를 짜면 가독성 때문에 욕먹기 딱 좋습니다.

    #11·코드 추적·난이도 ·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C 언어의 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    typedef struct {
        int accNum;
        double bal;
    } BankAcc;
    
    double sim_pow(double base, int year) {
        int i;
        double r = 1.0;
        
        for(int i = 0; i < year; i++) { 
            r *= base;
        }
    
        return r;
    }
    
    void initAcc(BankAcc *acc, int x, double y) {
        acc->accNum = x;
        acc->bal = y;
    }
    
    void xxx(BankAcc *acc, double *en) {
        if(*en > 0 && *en < acc->bal) {
            acc->bal = acc->bal - *en;
        } else { 
            acc->bal = acc->bal + *en;
        }
    }
    
    void yyy(BankAcc *acc) {
        acc->bal = acc->bal * sim_pow((1+0.1),3);
    }
    
    int main() {
        BankAcc myAcc;
        initAcc(&myAcc, 9981, 2200.0);
        double amount = 100.0;
        xxx(&myAcc, &amount);
        yyy(&myAcc);
        printf("%d and %.2f", myAcc.accNum, myAcc.bal);
        return 0;
    }
    
  114. 2024-1 #12

    파이썬의 간결함을 보여주는 좋은 예제지만, 이런 기초적인 루프를 직접 짜는 일은 실무에서 거의 없다.

    #12·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드에 대한 알맞은 출력 값을 작성하시오.

    a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Dae-gu", "Pusan"]
    str = "S"
    
    for i in a:
        str = str + i[1]
    
    print(str)
    
  115. 2024-1 #15

    보안 기사 수준의 기초적인 용어 정의 문제다.

    #15·단답형·난이도 보통·쪼잔함 2 (짜증)보안

    다음 내용을 보고 보기에서 알맞은 용어를 골라 작성하시오.

    • 공격자의 존재를 숨기면서 이 공격자에게 시스템에 대한 무제한 접근 권한을 부여하는 악성 프로그램이다.
    • 해커가 자신의 존재를 숨기면서 허가되지 않은 소프트웨어에 접근할 수 있도록 설계된 도구이다.
    • 일반적으로 펌웨어, 가상화 계층 등의 다양한 시스템 영역에서 작동하며, 운영체제의 시스템콜을 해킹하여 악성코드의 실행 여부를 숨겨 안티바이러스 탐지를 우회할 수 있다.

    보기

    ㄱ. Worm ㄴ. Trojan horse ㄷ. Backdoor ㄹ. Virus ㅁ. Ransomware ㅂ. Spyware ㅅ. Rootkit

  116. 2024-1 #16

    상속 관계에서 생성자 호출 순서와 오버라이딩을 묻는 전형적인 '시험용' 코드다.

    #16·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드를 보고 출력 값을 작성하시오.

    class classOne {
        int a, b;
        public classOne(int a, int b) { // ③
            this.a = b;
            this.b = a;
        }
        public void print() { // ⑥
            System.out.println(a + b);
        }
    }
    
    class classTwo extends classOne {
        int po = 3;
        public classTwo(int i) { // ④
            super(i, i + 1);
        }
        public void print() { // ⑦
            System.out.println(po * po);
        }
    }
    
    public class main {
        public static void main(String[] args) { // ①
            classOne one = new classTwo(10); // ②
            one.print(); // ⑤
        }
    }
    
  117. 2024-1 #17

    보안 용어 정의를 묻는 문제로, 실무보다는 자격증 시험에서 자주 보이는 유형이다.

    #17·단답형·난이도 보통·쪼잔함 2 (짜증)보안

    다음 내용을 보고 알맞은 용어를 쓰시오.

    • 불특정 다수가 아닌 명확한 표적을 정하여 지속적인 정보를 수집 후 공격 감행할 수 있다.
    • 시스템에 직접 침투하는 것뿐 아니라 표적 내부직원들이 이용하는 다양한 단말을 대상으로 한다.
    • 한가지 기술만이 아닌 Zero-day 취약점, 악성코드 등을 이용하는 다양한 보안 기술을 사용한다.
    • 일반적으로 공격은 침투, 검색, 수집 및 유출의 4단계로 실행되며, 각 단계별로 다양한 공격 기술을 사용한다.
  118. 2024-1 #20

    이론적인 정의를 달달 외우는 것보다, 실제 코드에서 인터페이스를 어떻게 분리하는지 이해하는 것이 훨씬 중요하다.

    #20·단답형·난이도 보통·쪼잔함 2 (짜증)소프트웨어공학디자인패턴

    다음 내용을 보고 알맞은 용어를 쓰시오.

    • 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴이다.
    • 연관성이 있는 객체군이 여러개 있을 경우 이들을 묶어 추상화하고, 어떤 구체적인 상황이 주어지면 팩토리 객체에서 집합으로 묶은 객체 군을 구현하는 생성 패턴이다.
    • 관련성 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용하다. kit라고도 불린다.
  119. 2024-2 #1

    메모리 주소와 참조 개념을 묻는 전형적인 문제로, 실무에서는 equals()를 써야 한다는 점만 기억하면 된다.

    #1·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    class Main {
      public static void main(String[] args) {
        int[] a = new int[]{1, 2, 3, 4}; // ①
        int[] b = new int[]{1, 2, 3, 4}; // ②
        int[] c = new int[]{1, 2, 3};    // ③
    
        check(a, b); // ④
        check(a, c); // ⑤
        check(b, c); // ⑥
      }
    
      public static void check(int[] a, int[] b) { // ⑦
        if (a == b) { // ⑧
          System.out.print("O");
        } else { // ⑨
          System.out.print("N");
        }
      }
    }
    
  120. 2024-2 #2

    이론적인 용어 정의 문제지만, 실무에서 비정규화를 남발하면 나중에 유지보수 지옥을 맛보게 된다.

    #2·단답형·난이도 쉬움·쪼잔함 2 (짜증)데이터베이스정규화

    다음 문제에서 설명하는 용어를 작성하시오.

    데이터를 중복시켜 성능을 향상시키기 위한 기법으로 데이터를 중복 저장하거나 테이블을 합치는 등으로 성능을 향상시키지만 데이터 무결성이 저하될 수 있는 기법

  121. 2024-2 #3

    SQL 기본 문법을 묻는 문제라 딱히 깔 건 없지만, 실무에서는 이런 단순 쿼리보다 복잡한 조인과 튜닝이 더 중요하다.

    #3·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스SQL

    다음은 SQL에 관한 문제이다. 아래 SQL 구문의 빈칸을 채우시오.

    테이블: 사원(사원번호(PK), 이름, 나이, 부서)

    1. 신입 사원이 들어와서 사원 테이블에 추가
    • INSERT INTO 사원(사원번호, 이름, 나이, 부서)
    • [ (㉠) (25105, '헤키스한', 30, '영업') ];
    1. 위에 신입사원을 검색해서 부서 테이블에 추가
    • INSERT INTO 부서(사원번호, 이름, 나이, 주소)
    • [ (㉡) 사원번호, 이름, 나이, '서울' FROM 사원
    • WHERE 이름 = '헤키스한'; ]
    1. 전체 사원 테이블을 조회하시오.
    • SELECT * [ (㉢) ] 사원;
  122. 2024-2 #5

    보안 프로토콜의 핵심을 묻는 좋은 문제지만, 암기 위주로 공부하면 금방 까먹는다.

    #5·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음은 프로토콜에 대한 내용이다. 아래 내용을 읽고 알맞은 답을 작성하시오.

    • Network layer에서 IP 패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다.
    • 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는 데 사용되는 프로토콜이다.
    • AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.
  123. 2024-2 #8

    이론적인 분류 문제지만, 네트워크 기초를 다지기에는 나쁘지 않다.

    #8·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크

    패킷 교환 방식 중에 연결형과 비연결형에 해당하는 방식을 작성하시오.

    1. 연결형 교환 방식
    2. 비연결형 교환 방식
  124. 2024-2 #11

    RIP 알고리즘을 손으로 계산하게 시키는 건 고전적인 방식이지만, 네트워크 기초를 다지기엔 나쁘지 않다.

    #11·단답형·난이도 어려움·쪼잔함 2 (짜증)네트워크

    아래 그림을 바탕으로 RIP을 구성하여 A -> F까지의 최단 경로 비용을 계산한 후, 흐름에 맞게 경로를 작성하시오.

    B -> 2 -> A B -> 2 -> D A -> 1 -> D D -> 2 -> C C -> 1 -> E C -> 5 -> F E -> 2 -> F

  125. 2024-2 #12

    손으로 표를 그려가며 스케줄링을 계산하는 건 고통스럽지만, 알고리즘의 동작 원리를 이해하는 데는 확실하다.

    #12·단답형·난이도 어려움·쪼잔함 2 (짜증)운영체제

    아래의 표를 확인하여 SRT 스케줄링의 평균 대기시간을 계산하여 작성하시오.

    프로세스도착시간서비스시간
    A08
    B14
    C29
    D35
  126. 2024-2 #14

    코드 자체는 깔끔하지만, 굳이 인터페이스까지 써가며 복잡하게 꼬아놓은 예제라 실무에선 이렇게 짜면 욕먹는다.

    #14·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 언어에 대한 문제이다. 아래 코드를 확인하여 출력 결과를 작성하시오.

    class Main {
        public static void main(String[] args) {
            int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9};
            ODDNumber OE = new ODDNumber();
            System.out.print(OE.sum(a, true) + "," + OE.sum(a, false));
        }
    }
    
    interface Number {
        int sum(int[] a, boolean odd);
    }
    
    class ODDNumber implements Number {
        public int sum(int[] a, boolean odd) {
            int result = 0;
            for(int i = 0; i < a.length; i++) {
                if(odd && a[i] % 2 != 0 || !odd && a[i] % 2 == 0) {
                    result += a[i];
                }
            }
            return result;
        }
    }
    
    
  127. 2024-2 #20

    기초적인 API 사용법을 묻는 문제라 변별력은 없지만, 실무에서 실수하기 딱 좋은 포인트이긴 하다.

    #20·단답형·난이도 쉬움·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력 값을 작성하시오.

    class Main {
        public static void main(String[] args) {
            String str = "ITITESTSTRING";
            String[] result = str.split("T");
            System.out.print(result[3]);
        }
    }
    
  128. 2024-3 #1

    이론적으로는 중요하지만, 실무에서 new String("A")를 직접 쓰는 사람은 거의 없으니 안심해도 된다.

    #1·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class Main{
        static String[] s = new String[3];
    
        static void func(String[] s, int size){
            for(int i=1; i<size; i++){
                if(s[i-1].equals(s[i])){
                    System.out.print("O");
                }else{
                    System.out.print("N");
                }
            }
            for (String m: s){
                System.out.print(m);
            }
        }
    
        public static void main(String[] args){
            s[0] = "A";
            s[1] = "A";
            s[2] = new String("A");
            func(s, 3);
        }
    }
    
  129. 2024-3 #2

    파이썬의 기초적인 리스트 연산을 묻는 문제로, 실무자라면 고민할 가치도 없는 수준이다.

    #2·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    def func(lst):
        for i in range(len(lst) // 2):
            lst[i], lst[-1 - i] = lst[-1 - i], lst[i]
        
    lst = [1, 2, 3, 4, 5, 6]
    func(lst)
    print(sum(lst[::2]) - sum(lst[1::2]))
    
  130. 2024-3 #3

    실무에서 JOIN과 HAVING을 섞어 쓰는 것은 흔하지만, 시험 문제처럼 억지로 꼬아놓은 쿼리는 가독성 최악이다.

    #3·단답형·난이도 어려움·쪼잔함 2 (짜증)데이터베이스SQL

    아래의 [employee] 테이블과 [project] 테이블을 참고하여 [보기]의 SQL문에 알맞은 출력 값을 작성하시오.

    [employee]

    NOfirst_namelast_nameproject_id
    1JohnDoe10
    2JimCarry20
    3RachelRedmond10

    [project]

    project_idname
    10Alpha
    20Beta

    [보기]

    SELECT project_id FROM employee GROUP BY project_id HAVING count(*) < 2
    
  131. 2024-3 #5

    보안의 기본기 문제로, 실무에서도 공격 패턴을 이해하는 것은 매우 중요하다.

    #5·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음 네트워크 취약점에 대한 문제이다. 아래 내용을 보고 알맞은 용어를 작성하시오.

    • IP/ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크의 일부를 불능 상태로 만드는 공격이다.
    • 여러 호스트가 특정 대상에게 다량의 ICMP Echo Reply를 보내게 하여 서버 서비스(DoS)를 유발시키는 공격이다.
    • 공격 대상 호스트는 다량으로 유입되는 패킷으로 인해 서비스 불능 상태에 빠진다.
  132. 2024-3 #8

    기본적인 개념 확인 문제라 딱히 깔 건 없지만, 실무에서는 이런 표를 직접 볼 일보다 제약 조건 설정 실수를 더 많이 한다.

    #8·단답형·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음은 무결성 제약조건에 대한 문제이다. 아래 표에서 이 ( ㉠ ) 무결성을 위반했는지 작성하시오.

    S_ID이름나이전공
    10홍길동25컴퓨터공학
    20금강산22영문학
    10해커스20종교학
    NULL김둘리29기계공학
  133. 2024-3 #15

    데이터베이스 기초 이론을 묻는 전형적인 문제로, 실무에서는 툴이 다 해주니 개념만 알면 됩니다.

    #15··난이도 쉬움·쪼잔함 2 (짜증)데이터베이스

    다음은 데이터베이스에 관한 문제이다. 아래 내용을 읽고 알맞은 답을 보기에서 찾아 골라 작성하시오.

    1. 다른 테이블, 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
    2. 테이블에서 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합
    3. 후보키 중에서 선정된 기본키를 제외한 나머지 후보키
    4. 테이블에서 각 행을 유일하게 식별할 수 있는 속성들의 집합

    [보기] ㄱ. 슈퍼키 ㄴ. 외래키 ㄷ. 대체키 ㄹ. 후보키

    보기 펼치기

    ① 외래키 ② 후보키 ③ 대체키 ④ 슈퍼키

  134. 2024-3 #18

    예외 처리를 이렇게 복잡하게 꼬아놓는 것은 유지보수를 포기하겠다는 뜻입니다.

    #18·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class ExceptionHandling {
        public static void main(String[] args) {
            int sum = 0;
            try {
                func();
            } catch (NullPointerException e) {
                sum = sum + 1;
            } finally {
                sum = sum + 100;
            }
            System.out.print(sum);
        }
    
        static void func() throws Exception {
            throw new NullPointerException();
        }
    }
    
  135. 2024-3 #20

    네트워크 기초 지식을 묻는 무난한 문제지만, 보기의 용어들이 다소 섞이기 쉽습니다.

    #20··난이도 보통·쪼잔함 2 (짜증)네트워크

    다음은 네트워크에 대한 문제이다. 아래 내용을 보고 알맞은 용어를 [보기]에서 골라 작성하시오.

    • 중앙 관리나 고정된 인프라 없이 임시로 구성되는 네트워크이다.
    • 일반적으로 무선 통신을 통해 노드들이 직접 연결되어 데이터를 주고받는다.
    • 긴급 구조, 긴급 회의, 군사적인 상황 등에서 유용하게 활용될 수 있다.

    [보기] ㄱ. Infrastructure Network ㄴ. Firmware Network ㄷ. Peer-to-Peer Network ㄹ. Ad-hoc Network ㅁ. Mesh Network ㅂ. Sensor Network ㅅ. Virtual Private Network

    보기 펼치기

    ㄱ. Infrastructure Network ㄴ. Firmware Network ㄷ. Peer-to-Peer Network ㄹ. Ad-hoc Network ㅁ. Mesh Network ㅂ. Sensor Network ㅅ. Virtual Private Network

  136. 2025-1 #1

    세션 하이재킹은 고전적인 공격 기법이지만, 여전히 보안의 기초를 묻는 단골 문제다.

    #1·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음 네트워크 보안과 관련된 문제이다. 괄호 안에 알맞은 용어를 작성하시오.

    ( )는 다른 사용자의 세션 정보를 몰래 탈취하여 시스템에 접근하는 공격 방식이다.

  137. 2025-1 #2

    무결성 제약조건의 정의를 묻는 문제는 데이터베이스 과목의 정석 같은 문제다.

    #2·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)데이터베이스

    다음은 제약조건과 관련된 문제이다. 괄호 안에 알맞은 용어를 [보기]에서 골라 작성하시오.

    [보기] 도메인 무결성, 개체 무결성, 참조 무결성

    • ( ① )은 속성 수준에서 적용되며, 기본키 속성에는 NULL 값을 허용하지 않는다. 이 제약조건은 속성의 개수와 동일한 수만큼 존재하며, 튜플 삽입/수정 시 제약사항을 우선 확인한다.
    • ( ② )은 튜플 단위에서 적용되며, NULL 값은 외래키에 허용된다. 튜플 삽입/수정 시 제약사항을 우선 확인한다. 또한 부모 릴레이션의 튜플이 수정/삭제될 경우에도 제약사항 확인이 필요하다.
    • ( ③ )은 속성 단위에서 정의되며, NULL 값 여부와는 기본기 여부에 따라 다르다. 릴레이션 내 제약조건 개수는 기본적으로 1개이며, 튜플 삽입/수정 시 제약사항을 우선 확인한다.
  138. 2025-1 #4

    용어 정의를 묻는 전형적인 암기 문제다.

    #4··난이도 보통·쪼잔함 2 (짜증)보안

    다음은 악성코드 관련된 문제이다. 설명에 해당하는 것을 [보기]에서 골라 작성하시오.

    사용자가 원하지 않는 소프트웨어를 구매하도록 유도하기 위해 사회공학 기법을 활용하여 충격, 불안, 위협 등의 감정을 자극하는 악성코드 유형이다. 주로 가짜 바이러스 경고나 시스템 오류 메시지를 통해 사용자를 속여 금전적 이득이나 특정 행동을 유도한다. '겁을 주다'라는 영어 단어에서 유래되었다.

    보기 펼치기

    ㄱ. 스케어웨어 ㄴ. 스팸웨어 ㄷ. 애드웨어 ㄹ. 안티 스파이웨어 ㅁ. 유즈웨어 ㅂ. 그룹웨어

  139. 2025-1 #5

    예외 처리의 기본을 묻는 건 좋지만, 코드 자체가 너무 작위적이라 실무 감각과는 거리가 멉니다.

    #5·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class Main {
        public static void main(String[] args) {
            int a = 5, b = 0;
            try {
                System.out.print(a / b); // ①
            } catch (ArithmeticException e) { // ③
                System.out.print("출력1"); // ④
            } catch (NumberFormatException e) {
                System.out.print("출력3");
            } catch (ArrayIndexOutOfBoundsException e) {
                System.out.print("출력2");
            } finally {
                System.out.print("출력5"); // ⑤
            }
        }
    }
    
  140. 2025-1 #6

    네트워크의 아주 기본적인 개념을 묻는 문제로, 정보처리기사 단골 암기 문제입니다.

    #6·단답형·난이도 쉬움·쪼잔함 2 (짜증)네트워크TCP/IP

    다음 내용은 ARP/RARP에 대한 설명이다. 각 설명에 해당하는 것을 작성하시오.

    ( ① )은 네트워크상에서 IP 주소를 MAC 주소로 변환하는 프로토콜이고, ( ② )은 MAC 주소를 IP 주소로 변환하는 프로토콜이다.

    프로토콜설명
    ARPIP 주소를 MAC 주소로 변환하는 프로토콜이다.
    RARPMAC 주소를 IP 주소로 변환하는 프로토콜이다.
  141. 2025-1 #9

    계산 실수를 유도하기 딱 좋은 문제로, 네트워크 기초를 탄탄히 다져야 풀 수 있습니다.

    #9·단답형·난이도 어려움·쪼잔함 2 (짜증)네트워크TCP/IP

    IP 주소가 192.168.35.10, 서브넷마스크가 255.255.252.0인 PC에서 브로드캐스트로 다른 IP로 정보를 전달한다 할 때 수신할 수 있는 알맞은 IP를 [보기]에서 모두 골라 작성하시오.

    [보기] ㄱ. 192.168.34.1 ㄴ. 192.168.32.19 ㄷ. 192.168.35.20 ㄹ. 192.168.33.138

  142. 2025-1 #16

    재귀 호출의 흐름을 손으로 따라가게 만드는 전형적인 시험용 문제다.

    #16·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class Main {
        public static void main(String[] args) {
            int[] data = {3, 5, 8, 12, 17};
            System.out.println(fun(data, 0, data.length - 1));
        }
    
        static int fun(int[] a, int st, int end) {
            if (st >= end) return 0;
            int mid = (st + end) / 2;
            return a[mid] + Math.max(fun(a, st, mid), fun(a, mid + 1, end));
        }
    }
    
  143. 2025-1 #19

    비트 연산과 구조체를 섞어 문제를 내는 건 전형적인 '알고리즘 퀴즈' 스타일이다.

    #19·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    typedef struct {
        char* name;
        int score[3];
    } Student;
    
    int dec(int enc) {
        return enc & 0xA5;
    }
    
    int sum(Student* p) {
        return dec(p->score[0]) + dec(p->score[1]) + dec(p->score[2]);
    }
    
    int main() {
        Student s[2] = {
            {"Kim", {0xA0, 0xA5, 0xDB}},
            {"Lee", {0xA0, 0xED, 0x81}}
        };
        Student* p = s;
        int result = 0;
        for (int i = 0; i < 2; i++) {
            result += sum(&s[i]);
        }
        printf("%d", result);
        return 0;
    }
    
  144. 2025-1 #20

    재귀 호출을 굳이 오버로딩까지 섞어서 꼬아놓은 전형적인 시험용 코드입니다.

    #20·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    public class Main {
        public static void main(String[] args) {
            System.out.println(calc("5"));
        }
    
        static int calc(int value) {
            if (value <= 1) return value;
            return calc(value - 1) + calc(value - 2);
        }
    
        static int calc(String str) {
            int value = Integer.valueOf(str);
            if (value <= 1) return value;
            return calc(value - 1) + calc(value - 3);
        }
    }
    
  145. 2025-2 #4

    이론적인 스케줄링 알고리즘 비교는 시험용으로 딱 좋습니다.

    #4·단답형·난이도 보통·쪼잔함 2 (짜증)운영체제

    스케줄링 알고리즘에 관한 다음 설명을 읽고 ①과 ②에 알맞은 스케줄링 알고리즘의 명칭을 각각 쓰시오.

    ① CPU burst 시간이 짧은 프로세스를 우선적으로 처리하는 스케줄링 방식이다. ② 위의 스케줄링 방식을 선점형으로 구현한 형태로 실행 중인 프로세스보다 더 짧은 burst 시간을 가진 프로세스가 도착하면 CPU를 선점한다.

  146. 2025-2 #6

    계산 문제인데 실수 유도형이라 꼼꼼함이 생명입니다.

    #6·단답형·난이도 어려움·쪼잔함 2 (짜증)네트워크

    다음은 IP 주소와 서브넷마스크에 관한 문제이다. 호스트의 IP 주소가 223.13.234.132이고 서브넷 마스크가 255.255.255.192일 때 주어진 정보를 참고하여 괄호 안에 들어갈 알맞은 값을 쓰시오.

    • 이 호스트가 속한 네트워크 주소는 223.13.234. ( ① )이다.
    • 이 네트워크에서 사용할 수 있는 호스트 수는 ( ② )개이다. (단, 네트워크 주소와 브로드캐스트 주소는 제외한다.)
  147. 2025-2 #8

    AJAX가 나온 지가 언젠데 아직도 이런 정의를 묻는 건지 모르겠지만, 기본기 확인용으로는 적절하다.

    #8·단답형·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음은 웹 데이터 방식에 관한 문제이다. 아래 설명을 읽고 괄호 안에 들어갈 용어를 쓰시오.

    ( ㉠ )은 웹 페이지 전체를 다시 불러오지 않고 JavaScript와 XML(또는 JSON)을 이용하여 일부 콘텐츠만 비동기적으로 갱신할 수 있는 기술이다. ( ㉠ )은 HTML만으로는 구현하기 어려운 동적인 기능들을 가능하게 하여 사용자가 웹 페이지와 보다 자유롭게 상호작용할 수 있도록 해주는 웹 개발 기법이다.

  148. 2025-2 #13

    손으로 간트 차트 그리는 게 무슨 의미가 있나 싶지만, OS 원리를 이해하는 데는 도움이 된다.

    #13·단답형·난이도 ·쪼잔함 2 (짜증)운영체제

    라운드로빈(RR) 방식을 이용하고 아래 내용을 참고하여 평균 대기 시간을 구하시오.

    • 4개의 프로세스가 다른 시간에 도착하며, 할당량은 4ms이다.
    • 스위칭 시간은 무시한다.
    프로세스도착시간실행시간
    P108
    P214
    P329
    P435
  149. 2025-2 #15

    Java의 참조 개념을 묻는 무난한 문제입니다. 실무에서도 객체 참조 관리는 매우 중요합니다.

    #15·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java 언어의 문제이다. 아래 코드를 보고 알맞은 출력을 작성하시오.

    public class Main {
        public static class BO {
            public int v;
            public BO(int v) {
                this.v = v;
            }
        }
    
        public static void main(String[] args) {
            BO a = new BO(1);
            BO b = new BO(2);
            BO c = new BO(3);
    
            BO[] arr = {a, b, c};
    
            BO t = arr[0];
            arr[0] = arr[2];
            arr[2] = t;
    
            arr[1].v = arr[0].v;
    
            System.out.println(a.v + "A" + b.v + "B" + c.v);
        }
    }
    
  150. 2025-2 #17

    파이썬의 유연함을 테스트하려는 의도는 알겠으나, 실무에서 이렇게 짜면 동료들이 코드 리뷰 때 화낼 겁니다.

    #17·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음은 Python 언어의 문제이다. 아래 코드를 보고 알맞은 출력값을 작성하시오.

    lst = [1, 2, 3]
    dst = {i: i * 2 for i in lst}
    s = set(dst.values())
    
    lst[0] = 99
    dst[2] = 7
    s.add(99)
    
    print(len(s & set(dst.values())))
    
  151. 2025-3 #6

    C언어의 문자열 처리를 이렇게 꼬아놓으면 유지보수 담당자가 퇴사합니다.

    #6·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        char str[] = "REPUBLICOFKOREA";
        int a = 0;
        while (str[a] != '\0') {
            a++;
        }
        putchar(str[a - 2]);
        return 0;
    }
    
  152. 2025-3 #8

    인터페이스 문법을 모르면 Java를 할 수 없으니 이건 기본 소양 테스트다.

    #8·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Machine이라는 인터페이스를 정의하고 WashingMachine 클래스에서 해당 인터페이스를 사용하고자 한다. 빈칸에 들어갈 올바른 키워드를 작성하시오.

    interface Machine {
        void run();
    }
    
    class WashingMachine (      ) Machine {
        private String name;
    
        public WashingMachine() {
            this.name = "LG Washer";
        }
    
        public void run() {
            System.out.println("Washing machine running");
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            WashingMachine wm = new WashingMachine();
            wm.run();
        }
    }
    
  153. 2025-3 #11

    보안의 기초 중의 기초라 틀리면 곤란하다.

    #11·단답형·난이도 쉬움·쪼잔함 2 (짜증)보안

    다음 설명에 해당하는 인증 기술을 쓰시오.

    • 한 번 사용하면 즉시 폐기되어 재사용이 불가능한 인증 방식이다.
    • 서버와 토큰(앱)은 시간 동기화 또는 카운터 기반 방식으로 매번 새로운 값을 생성한다.
    • 내부 검증은 해시 함수를 사용하여 이루어지므로, 서버가 이전 비밀번호를 저장하지 않아도 유효성을 확인할 수 있다.
    • 재전송 공격을 방지할 수 있으며, 은행 인증 등 높은 보안이 요구되는 환경에서 널리 사용된다.
  154. 2025-3 #12

    이걸 틀리면 Java로 객체 지향 코드를 짤 자격이 없다.

    #12·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

    다음은 Java의 상속과 생성자 호출에 관한 코드이다. 밑줄에 알맞은 단어를 작성하시오.

    class Rectangle {
        int width, height;
    
        Rectangle(int width, int height) {
            this.width = width;
            this.height = height;
        }
    }
    
    class Square extends Rectangle {
        Square(int a) {
            ________(a, a);
        }
    
        int getSquareArea() {
            return width * height;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Square sq = new Square(10);
            System.out.println(sq.getSquareArea());
        }
    }
    
  155. 2025-3 #13

    이걸 모르면 요즘 웹 개발은 불가능하다.

    #13·단답형·난이도 보통·쪼잔함 2 (짜증)보안

    다음은 인증 및 자원 접근 방식에 대한 설명이다. 알맞은 용어를 쓰시오.

    • 사용자가 새로 가입하지 않아도 기존에 이용 중인 서비스 계정으로 다른 서비스에 로그인할 수 있게 해주는 기술이다.
    • 서버와 토큰(앱)은 시간 동기화 또는 카운터 기반 방식으로 매번 새로운 값을 생성한다.
    • 직접 인증(Authentication)을 수행하는 것이 아니라, 인가(Authorization) 절차를 통해 제3자에게 접근 권한을 부여하는 방식이다.
    • 인증이 완료되면 서비스 제공자는 Access Token을 발급하고, 애플리케이션은 이 토큰을 사용하여 API 호출 시 해당 자원에 접근한다.
    • 대표적인 예는 소셜 로그인이며, SSO와 달리 동일 시스템 내의 인증이 아니라 서로 다른 서비스 간 권한 위임에 사용된다.
  156. 2025-3 #15

    코드 가독성을 해치는 전형적인 시험용 꼬아내기 문제네요.

    #15·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍C언어

    다음 C 코드에 대한 문제입니다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.

    #include <stdio.h>
    int main() {
        int x=7, y=4, z;
        z = y % 3 < 3 ? 2 : 1;
        z = z & z >> 1;
        z = x > 5 && z <= 3 ? z * x : z / x;
        printf("%d", z);
        return 0;
    }
    
  157. 2025-3 #17

    Enum의 기본 동작을 이해하고 있는지 묻는 무난한 문제입니다.

    #17·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Java

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

    enum Tri {
        A("A"), B("ab"), C("ABC");
        private String code;
        Tri(String code) {
            this.code = code;
        }
        public String code() {
            return code;
        }
    }
    public class Main {
        public static void main(String[] args) {
            Tri t = Tri.values()[1];
            System.out.print(t.code());
        }
    }
    
  158. 2025-3 #20

    SQL 쿼리 결과 맞추기는 실무에서도 디버깅할 때 자주 겪는 일이라 꽤 실용적이다.

    #20·코드 추적·난이도 어려움·쪼잔함 2 (짜증)데이터베이스SQL

    다음은 SQL에 관한 문제이다. 아래 A테이블을 참고하여 쿼리의 결과를 작성하시오.

    [A테이블]

    col1col2
    2null
    36
    23
    null3
    45
    SELECT count(col2) FROM A WHERE col1 IN (2, 3) OR col2 IN (3, 5)