본문 바로가기
728x90

13/9/11/11/10 54

1과목  소프트웨어 설계

02 메시지 지향 미들웨어 (Message-Oriented Middleware, MOM)

  • 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어
  • 온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용
  • 즉각적인 응답을 원하는 경우가 아니라 다소 느리고 안정적인 응답을 필요로하는 경우에 많이 사용
  • 독립적인 애플리케이션을 하나의 시스템으로 묶기 위한 역할
  • 송신측과 수신측의 연결 시 메시지 큐를 활용하는 방법이 있다
  • 상이한 애플리케이션 간 통신을 비동기 방식으로 지원

03 익스트림 프로그래밍

  • 소규모 개발 조직이 불확실하고 변경이 많은 요구를 접하였을 때 적절한 방법
  • 익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어올리는 것
  • 구체적인 실천 방법을 정의하고 있으며, 개발 문서보다는 소스코드에 중점

07 미들웨어

  • 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어
  • 이기종 하드웨어, 소프트웨어, 네트워크, 프로토콜, PC 환경, 운영체제환경 등에서 시스템 간의 표준화된 연결을 도와주는 소프트웨어
  • 표준화된 인터페이스를 통하여 시스템간의 데이터 교환에 있어 일관성 제공
  • 운영체제와 애플리케이션 사이에서 중간 매개 역할을 하는 다목적 소프트웨어
  • 소프트웨어 컴포넌트를 연결하기 위해 준비된 인프라 구조 제공
  • 여러 컴포넌트를 1대1, ,1대다, 다대다 등 여러가지 형태로 연결 가능

09 객체지향 - 다형성(Polymorphism)

  • 현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있게 함
  • 여러 가지 형태를 가지고 있다는 의미로, 여러 형태를 받아들일 수 있는 특징
  • 메소드 오버라이딩: 상위 클래스에서 정의한 일반 메소드의 구현을 하위 클래스에서 무시하고 재정의
  • 메소드 오버로딩: 한 클래스 내에서 메서드 이름은 동일하지만 매개변수의 수나 타입을 다르게 하여 재정의

11 객체

  • 상태, 동작, 고유 식별자를 가진 모든 것
  • 필요한 자료구조와 이에 수행되는 함수들을 가진 하나의 독립된 존재
  • 상태는 속성값에 의해 정의됨

15 GoF(Gang of Four)

  • 구조 패턴: 구조를 통해 확장성을 꾀하는 패턴
  • 어댑터, 브릿지, 컴포지트, 데코레이터, 퍼싸트, 플라이웨이트, 프록시
  • 생성 패턴: 객체를 생성하는 것에 대한 패턴
  • 추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤
  • 행위 패턴: 행위의 변경, 수정 등을 위한 패턴
  • 역할 사슬 패턴(chain of responsibility), 커맨드, 인터프리터, 이터레이터, 미디에이터, 메멘토, 옵저버, 상태, 전략, 템플릿 메소드, 비지터

17 사용자 인터페이스 (UI, User Interface)

  • CLI(Command Line Interface): 텍스트 형태 인터페이스
  • GUI(Graphical User Interface): 마우스로 선택하여 작업하는 그래픽 환경 인터페이스
  • NUI(Natural User Interface): 사용자의 말이나 행동으로 기기를 조작하는 인터페이스
  • VUI(Voice User Interface): 사람의 음성으로 기기를 조작하는 인터페이스
  • OUI(Organic User Interface): 모든 사물과 사용자 간의 상호작용을 위한 인터페이스

2과목 소프트웨어 개발

21 통합 테스트

  • 상향식 통합 테스트 (Bottom Up Integration Test)
    • 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합
    • 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹의 클러스터 필요
  • 하향식 통합 테스트 (Top Down Integration Test)
    • 상위 모듈에서 하위 모듈 방향으로 통합
    • 깊이 우선 통합법, 넓이 우선 통합법 사용
    • 초기부터 사용자에게 시스템 구조 보여줌

23 워크스루(Walkthrough)

  • 워크스루 요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함 발견
  • 인스펙션 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견

24 소프트웨어

  • 복호화 디코딩, 즉 부호화된 데이터를 되기 전 형태로 바꾸어, 사람이 읽을 수 있는 형태로 되돌려 놓는 것
  • 저작권 창작물을 만든이가 자기 저작물에 대해 가지는 법적 권리
  • 크랙 소프트웨어를 수정하여 소프트웨어를 크랙하는 사람이 원하지 않는 기능들, 보통은 수정 방식(복사 보호, 소프트웨어 조작 보호)을 비활성화하거나 제거하는 일

25 테스트 케이스와 관련한 설명

  • 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서를 의미
  • 테스트의 목표 및 테스트 방법을 결정하고 테스트 케이스를 작성해야 한다
  • 프로그램에 결함이 있더라도 입력에 대해 정상적인 결과를 낼 수 있기 때문에 결함을 검사할 수 있는 테스트 케이스를 찾는 것이 중요
  • 개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력값과 실행 조건, 예상 결과의 집합으로 볼 수 있음
  • 테스트 오라클(Test Oracle): 테스트 케이스 실행외 통과되었는지 실패하였는지 판단하기 위한 기준

29 RCS

  • CVS와의 차이점은 소스 파일의 수정을 한 사람으로만 제한
  • 다수의 사용자가 동시에 파일 수정을 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구
  • 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있음

→ RPC (Remote Procedure call)

별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행할 수 있게 해주는 프로세스간 통신

30 화이트박스 테스트

  • 화이트박스 테스트의 이해를 위해 논리흐름도(Logic-Flow Diagram)를 이용할 수 있음
  • 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당
  • 테스트 데이터를 선택하기 위하여 검증 기준(Test Coverage) 정함
  • → 프로그램 구조를 고려하지 않는 것은 블랙박스 테스트

32 버블 정렬

→ PASS 1 의 의미: 한 번 비교하는 것이 아니라 한 바퀴 도는 것

33 인스펙션(Inspection)

가: 사전교육 나: 준비 다: 인스펙션 회의 라: 수정 마: 후속조치

34 소프트웨어 용어

  • Refactoring: 코드의 구조 재조정
  • Architecting: 설계 관련
  • Specification: 명세서
  • Renewal: 유지보수

36 IDE(Integrated Development Environment) 도구

  • Coding: 프로그래밍 언어를 가지고 컴퓨터 프로그램을 작성할 수 있는 환경 제공
  • Compile: 고급언어(사람이 인식하는 언어)의 프로그램을 저급언어(기계어) 프로그램으로 변환하는 기능, 주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 기능
  • Debugging: 프로그램에서 발견되는 버그를 찾아 수정할 수 있는 기능
  • Deployment: 소프트웨어를 최종 사용자에게 전달하기 위한 기능

37 Tree 구조 순회 순서

  • 전위 운행 (PreOrder) Root, Left, Right
  • 중위 운행 (InOrder) Left ,Root, Right
  • 후위 운행 (PostOrder) Left, Right, Root

3과목 데이터베이스 구축

41 정규형

  • 1NF: 모든 도메인이 원자 값으로만 구성
  • 2NF: 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, 부분적 함수 종속을 제거한 정규형
  • 3NF: 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수 종속 관계를 만족하지 않는 정규형
  • BCNF: 모든 결정자가 후보키인 정규형, 종속성 보존 X→ 테이블 R에서 키가 아닌 모든 필드가 키에 대해 함수적으로 종속되며, 키의 부분집합이 결정자가 되는 부분 종속이 존재하지 않음
  • → 테이블 R에 존재하는 모든 함수적 종속에서 결정자가 후보키
  • → 테이블 R에 속한 모든 도메인이 원자값만으로 구성되어 있다
  • 4NF: 다치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
  • 5NF: 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형

42 트랜잭션의 특성

  • 원자성(Atomicity) 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
  • 일관성(Consistency) 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
  • 격리성(Isolation, 고립성) 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
  • 영속성(Durability, 지속성) 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

43 분산 데이터베이스 시스템의 목표

  • 위치 투명성(Location Transparency) 하드웨어와 소프트웨어의 물리적 위치를 사용자가 알 필요 없다
  • 중복(복제) 투명성(Replication Transparency) 사용자에게 통지할 필요 없이 시스템 안에 파일들과 부가적인 복사를 자유롭게 할 수 있음
  • 병행 투명성(Concurrency Transparency) 다중 사용자들이 자원들을 자동으로 공유할 수 있음
  • 장애 투명성(Failure Transparency) 사용자들은 어느 위치의 시스템에 장애가 발생했는지 알 필요 없음
  • 물리적으로 분산된 데이터베이스 시스템을 논리적으로 하나의 데이터베이스 시스템처럼 사용할 수 있도록 한 것
  • 물리적으로 분산되어 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터(Local Computer)를 분산 처리기(Distributed Processor)라고 함
  • 분산 데이터베이스 시스템을 위한 통신 네트워크 구조가 데이터 통신에 영향을 주므로 효율적으로 설계해야 함

46 물리적 데이터베이스 구조의 기본 데이터 단위인 저장 레코드 양식을 설계할 때 고려사항

  • 데이터 타입, 데이터 값의 분포, 접근 빈도

오답!! 트랜잭션 모델링: 개념적 설계 단계에서 하는 것

  • 트랜잭션을 개념적 시스템 독립적으로 정의한다
  • 트랜잭션의 입출력 기능, 형태만 정의한다
  • 검색, 갱신, 혼합(검색+갱신)

51 데이터베이스 상태

  • Partially Committed: 마지막 연산이 실행된 직후의 상태로 아직 Commit 연산 실행 전
  • Committed: 트랜잭션이 실행을 성공적으로 완료하여 Commit 연산을 수행한 상태

53 키의 종류

  • Super key: 속성들의 집합으로 구성된 키, 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
  • Candidate key: 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
  • Atomic key, Test key…

54 데이터베이스에서 개념적 설계 단계

  • 개념설계
  • 트랜잭션 모델링, 독립적인 개념 스키마 모델링, 개념스키마 설계, E-R 다이어그램
  • 논리설계
  • 트랜잭션 인터페이스 설계, DBMS에 맞는 논리스키마 설계, 테이블 설계, 논리적 매핑, 스키마 평가 및 정제
  • 물리설계
  • 트랜잭션 세부설계, 레코드 집중의 분석/설계, 저장레코드 양식 설계, 저장 구조 및 액세스 경로 설정

59 관계 데이터 모델에서 릴레이션(Relation)에 포함되어 있는 튜플의 수

  • Cardinality: 튜플의 수(기수)
  • Degree: 속성의 수(차수)

60 SQL 언어

PARK 에게 테이블을 생성할 수 있는 권한을 부여하기 위한 SQL문

GRANT CREATE TABLE TO PARK;

4과목 프로그래밍 언어 활용

64 IP 프로토콜 필드

  • Header Length
  • IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시
  • Packet Length (16 bits)
  • IP 헤더 및 데이터를 포함한 IP 패킷 전체 길이를 나타내며 최대 크기는 2^16 - 1 비트
  • Time To Live
  • 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것
  • Version Number
  • IP 프로토콜의 버전 번호

66 RIP 라우팅 프로토콜 (Routing Information Protocol)

  • 최단 경로 탐색에는 Bellman-Ford 알고리즘을 사용하는 거리 벡터 라우팅 프로토콜
  • 라우팅 프로토콜을 IGP와 EGP로 분류했을 때 IGP에 해당
  • 최적의 경로를 산출하기 위한 정보로서 홉(거리값)만을 고려하므로, RIP을 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생할 수 있다
  • 소규모 네트워크 환경에 적합
  • 경로 선택 메트릭은 홉 카운트, 최대 홉 카운트를 15홉 이하로 한정
  • 각 라우터는 이웃 라우터들로부터 수신한 정보를 이용하여 라우팅 표를 갱신

→ 자율 시스템 (AS: Autonomous System)

  • 하나의 기관 내부를 나타내는 것으로 라우터들과 통신기기들의 집합 ex) 하나의 학내망

→ IGP(Interior Gateway Protocol, 내부 게이트웨이 프로토콜)

  • 학내말 내부에서 라우팅하는 것. 즉 하나의 AS 내에서의 라우팅에 사용되는 프로토콜

→ EGP(Exterior Gateway Protocol, 외부 게이트웨이 프로토콜)

  • 학내망과 다른 학내망의 라우팅에 사용. 즉 AS 간의 라우팅에 사용되는 프로토콜

RIP는 OSPF와 함께 IGP(내부 게이트웨이 프로토콜)에 해당한다

********67 HRN 스케줄링

  • 비선점 스케줄링긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다(대기시간 + 서비스시간) / 서비스시간 = 우선순위값 … 이 클수록 우선순위가 높다
  • 우선순위를 계산 숫자가 높은 것부터 낮은 순으로 순위 부여
  • 실행시간이 긴 프로세스에 불리한 SJF를 보완하기 위해 대기시간 및 서비스 시간을 이용

68 UNIX 운영체제

  • 주로 서버용 컴퓨터에서 사용
  • time sharing system을 위해 설계된 대화식 운영체제
  • C언어로 작성되어 이식성 높고, 장치간 호환성 높다
  • Multi user, Multi tasking 모두 지원
  • 하나 이상의 작업에 대해 백그라운드에서 수행 가능
  • 트리 구조의 파일 시스템

69 UDP 프로토콜

  • 비연결형 및 비신뢰성 전송 서비스 제공
  • 흐름 제어나 순서 제어가 없어 전송 속도 빠르다
  • 수신된 데이터의 순서 재조정 기능을 지원하지 않는다
  • 복구 기능을 제공하지 않는다
  • TCP와 같이 트랜스포트 계층에 존재한다
  • 단순한 헤더 구조로 오버헤드가 적다

75 IP 프로토콜 특징

  • 체크성 기능으로 헤더 체크섬만 제공한다
  • 패킷을 분할, 병합하는 기능을 수행하기도 한다
  • 비연결형 서비스 제공
  • Best Effort 원칙에 따른 전송 기능을 제공

76 LRU(Least Recently Used) 페이지 교체 알고리즘

가장 오랫동안 사용하지 않은 페이지를 교체

  • 결함: 주기억장치의 페이지가 변동되는 것

******77 사용자 수준 thread vs 커널 thread

  • 커널 모드로 전환 없이 스레드 교환이 가능, 오버헤드 줄어듦
  • 각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링 가능

커널 thread

  • 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다
  • 동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다
  • 각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링 가능

80 모듈화(Modularity)

  • 응집도: 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성 척도
  • 결합도: 모듈과 모듈 사이의 상호의존 또는 연관 정도결합도는 약해야 한다
  • 독립적인 모듈이 되기 위해서는 응집도가 강해야 한다.

5과목 정보시스템 구축관리

82 tcp wrapper

어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고, 반대의 경우에는 접속을 거부할 수 있는 접근제어 유틸

→ 3-way handshake를 통해 통신이 원활히 이뤄질 수 있는지 확인

****83 NFC 기술: Zing

85 소프트웨어 개발 프레임워크

  • 반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장받을 수 있게 하는 개발 소프트웨어
  • 이미 정해진 코드를 호출해 사용하고 자체적인 흐름을 가지고 있음
  • 설계 관점에 개발 방식을 패턴화시키기 위한 노력의 결과물인 소프트웨어 디자인 패턴을 반제품 소프트웨어 상태로 집적화시킨 것으로 볼 수 있음
  • 프레임워크의 동작 원리를 그 제어 흐름의 일반적인 프로그램 흐름과 반대로 동작한다고 해서 IoC(Inversion of Control)이라고 설명하기도 함

!!오답 라이브러리 사용자 코드에서 호출해서 사용하고 그에 대한 제어를 함

86 클라우드 기반 HSM(Cloud-based Hardware Security Module)

  • 클라우드(데이터센터) 기반 암호화 키 생성, 처리, 저장 등을 하는 보안기기
  • 국내에서는 공이인증제의 폐지와 전자서명법 개정을 추진하면서 클라우드 HSM 용어가 자주 등장하였다
  • 클라우드에 인증서를 저장하므로 기존 HSM 기기나 휴대폰에 인증서를 저장해 다닐 필요가 없다
  • 하드웨어적으로 구현되므로 소프트웨어식 암호 기술에 내재된 보안 취약점을 해결할 수 있다

90 시스템 공격 기법

  • Ping of Death
  • 허용범위 이상의 ICMP 패킷을 전송하여 대상 시스템의 네트워크를 마비
  • Session Hijacking(세션 가로채기)
  • 컴퓨터 시스템의 정보나 서비스에 무단으로 접근하기 위해 유효한 컴퓨터 세션(세션 키라고도 함)을 이용하는 것. 일반적인 예로 두 컴퓨터 간에 활성화된 상태(즉, 로그인된 상태)에 공격자가 피공격자의 로그인 정보를 활용하여 자신에게 필요한 행위를 하는 것
  • Piggyback Attack(피그백 공격): 공격자가 다른 사용자의 연결에서 계정을 사용하지 않는 비활성 기간(비활성 간격)을 이용하여 시스템에 액세스(접근)한다. 이는 간선(회선 간) 공격이라고도 불림
  • → 시스템에 대한 합법적인 권한을 가진 사용자가 시스템에 접근할 때, 활성화된 기간(직접 로그인 인증을 받아야 하는 상황)에는 접근 권한이 없는 공격자가 비활성화된 기간(합법적 사용자가 시스템에 접근 인증을 받은 상황)에 마치 사용자와 관련 있는 사람인 듯이 태그를 붙여 몰래 뒤따라 들어가는 것
  • XSS(크로스 사이트 스크립팅)
  • 웹사이트에 악성 스크립트를 주입하는 행위. 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나 웹사이트를 변조하거나 악의적 콘텐츠를 삽입하거나 피싱 공격을 진행하는 것

91 소프트웨어 개발 프레임워크

  • 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있음
  • 기반이 되는 이미 존재하는 부분을 확장 및 이용하는 것으로 볼 수 있음
  • JAVA 기반의 대표적인 소프트웨어로는 스프링(Spring)이 있음

94 비용 산정 계산법

  • 노력 측정 = 개발기간 * 투입인원
  • 개발비용 측정 = 개발기간 * 투입인원 * 단위비용
  • 개발기간 측정 = 예측된 LOC(라인) / (투입인원 * 1인당 월평균 LOC)
  • 생산성 측정 = 개발된 LOC / (투입인원 * 개발기간)

96 COCOMO(Constructive Cost Model) 모형

  • 보엠이 고안한 소프트웨어 개발비용 산정 방법, 원시코드 라인 수에 의한 비용 산정 기법
  • 개발 유형에 따라 조직형(Organic), 반분리형(Semi-Detached), 내장형(Embedded)로 구분
  • 프로젝트를 완성하는 데 필요한 man-month로 산정 결과를 나타낼 수 있다
  • man-month = 투입 노력
  • 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델이며 중소 규모 소프트웨어 프로젝트 비용 추정에 적합

유형에 따른 분류

  • 조직형사무 처리용, 업무용, 과학용 소프트웨어 개발에 적합
  • 5만 라인 이하
  • 반분리형컴파일러, 인터프리터 개발에 적합
  • 30만 라인 이하
  • 내장형미사일 유도 시스템, 실시간 처리 시스템 개발에 적합
  • 30만 라인 이상

98 Authentication

  • 자신의 신원(Identity)을 시스템에 증명하는 과정
  • 아이디와 패스워드를 입력하는 과정이 일반적인 예시

!!오답 Authorization 권한 부여

99 SDN(Software Defined Networking)

  • 네트워크를 제어부, 데이터 전달부로 분리하여 네트워크 관리자가 보다 효율적으로 네트워크를 제어, 관리할 수 있는 기술
  • 기존의 라우터, 스위치 등과 같이 하드웨어에 의존하는 네트워크 체계에서 안정성, 속도, 보안 등을 소프트웨어로 제어, 관리하기 위해 개발됨
  • 네트워크 장비의 펌웨어 업그레이드를 통해 사용자의 직접적인 데이터 전송 경로 관리가 가능하고, 기존 네트워크에는 영향을 주지 않으면서 특정 서비스의 전송 경로 수정을 통하여 인터넷상에서 발생하는 문제를 처리할 수 있음

NFS(Network File System)

네트워크 상에서 공유되는 파일시스템. 다른 원격 호스트의 파일 시스템을 로컬 디스크에 접근하듯 간단하게 접근하여 자신의 디렉토리처럼 사용할 수 있음

Network Mapper

네트워크 보안을 위한 유틸리티. 네트워크의 보안을 위해 물리적 연결과 어떤 서버와 운영 체제가 작동 중인지 따위를 조사하는 응용 프로그램

AOE Network(Activity On Edge Network)

어떤 프로젝트를 마치기까지 수행되는 작업의 각 단계(상태)를 그래프의 정점(Vertex)으로 표현하고, 작업 하나가 완료되어 다음 단계로 넘어가는 시간을 그래프의 간선(Edge)으로 나타낸 방향 그래프

728x90

개발자 연습생