본문 바로가기

정보처리기사_실기

정보처리기사 실기 _ 2

 

  • 행위 다이어그램
    • 시퀀스 다이어그램 : 상호작용하는 시스템이나 객체들이 주고받는 메세지를 표현
    • 커뮤니케이션 다이어그램 : 동작에 참여하는 객체들이 주고받는 메세지와 객체들 간의 연관관계 표현
    • 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
  • 인덱스
    • 도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용하는 것
  • 디자인패턴 _ 구조 패턴
    • 브리지(Bridge) : 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한 패턴, 기능과 구현을 두개의 별도 클래스로 구현
    • 프록시(Proxy) : 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴, 네트워크 연결, 메모리의 대용량 객체로의 접근 등에 주로 이용
  • 디자인패턴 _ 행위 패턴
    • 커맨드(Command) : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴, 요청에 사용되는 각종 명령어들을 추상 클래스와 구체 클래스로 분리하여 단순화
    • 반복자(Iterator) : 자료구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴, 내부 표현 방법의 노출 없이 순차적인 접근이 가능
    • 중재자(Mediator) : 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴, 객체 사이의 의존성을 줄여 결합도를 감소시킬 수 있음
    • 템플릿 메소드(Template Method) : 상위 클래스에서 골격을 정의하고 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴, 유사한 서브클래스를 묶어 공통된 내용을 상위 클래스에 정의함으로써 코드의 양을 줄이고 유지보수를 용이하게 해줌
    • 방문자(Visitor) : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴, 분리된 처리 기능은 각 클래스를 방문하여 수행
  • 배치 프로그램의 필수 요소
    • 대용량 데이터 : 대량의 데이터를 가져오거나, 전달, 계산하는 등의 처리가 가능해야 함
    • 자동화 : 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 함
    • 견고성 : 잘못된 데이터나 중복 등의 상황으로 중단되는 일 없이 수행되어야 함
    • 안정성/신뢰성 : 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함
    • 성능 : 다른 응용 프로그램의 수행을 방해하지 않아야 함, 지정된 시간 내에 처리가 완료되어야 함
  • 배치 스케줄러
    • Quartz : 스프링 프레임워크로 개발되는 응용 프로그램들의 일관 처리를 위한 다양한 기능을 제공하는 오픈소스 라이브러리
  • 시스템 연계 기술
    • API/Open API : 송신 시스템의 데이터베이스에서 데이터를 읽어와 제공하는 애플리케이션 프로그래밍 인터페이스 프로그램, 라이브러리를 응용 프로그램 개발 시 이용할 수 있도록 규칙 등에 대해 정의해 놓은 인터페이스
  • 인터페이스 통신 유형
    • 단방향 : 거래를 요청만하고 응답이 없는 방식
    • 동기 : 거래를 요청하고 응답이 올 때 까지 대기하는 방식
    • 비동기 : 거래를 요청하고 다른 작업을 수행하다가 응답이 오면 처리하는 방식
  • 인터페이스 처리 유형
    • 실시간 방식 : 요청한 내용을 바로 처리해야 할 때 사용
    • 지연처리 방식 : 데이터를 매 건 단위로 처리할 경우 비용이 많이 발생할 때 사용하는 방식
    • 배치 방식 : 대량의 데이터를 처리할 때 사용하는 방식
  • 파싱(Parsing) : 주어진 문장이 정의된 문법 구조에 따라 완전한 문장으로 사용될 수 있는가를 확인하는 작업

 

  • 품질 요구사항 관련 표준
    • ISO 25010 : ISO 9126에 호환성과 보안성을 강화하여 개정한 소프트웨어 제품에 대한 국제 표준
    • ISO 12119 : 패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준
    • ISO 14598 : 소프트웨어 품질의 측정과 평가에 필요한 절차를 규정한 표준
  • 애플리케이션 테스트 _ 목적에 따른 테스트
    • 구조 테스트 : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평하가는 테스트
    • 병행 테스트 : 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트
  • 화이트박스 테스트의 종류
    • 제어 구조 검사
      • 조건 검사 : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 설계 기법
      • 루프 검사 : 프로그램의 반복 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
      • 데이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용 위치에 초점을 맞춰 실시하는 테스트 설계 기법
  • 블랙박스 테스트의 종류
    • 오류 예측 검사 : 과거의 경험이나 확인자의 감각으로 테스트하는 기법
    • 비교 검사 : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법
  • 테스트 하네스 도구 : 테스트가 실행될 환경을 시뮬레이션하여 컴포넌트 및 모듈이 정상적으로 테스트 되도록 하는 도구
    • 테스트 하네스 : 컴포넌트 및 모듈들을 테스트하는 환경의 일부분 
    • 구성 요소
      • 테스트 슈트 : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합 (단순한 묶음)
      • 테스트 스크립트 : 자동화된 테스트 실행 절차에 대한 명세서
      • 목 오브젝트 : 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체
  • 결함 관리 측정 지표
    • 결함 분포 : 결함 수 측정
    • 결함 추세 : 결함 수의 추이 분석
    • 결함 에이징 : 결함이 지속되는 시간 측정
  • 결함 관리 도구
    • Mantis : 결함 및 이슈 관리 도구, 소프트웨어 설계 시 단위별 작업 내용을 기록할 수 있어 결함 추적도 가능
    • Trac : 결함 추적은 물론 결함을 통합하여 관리할 수 있는 도구
    • Redmine : 프로젝트 관리 및 결함 추적이 가능한 도구
    • Bugzilla : 결함을 지속적으로 관리할 수 있는 도구, 결함의 심각도와 우선순위 지정 가능
  • 성능 테스트 도구
    • JMeter : HTTP, FTP 등 다양한 프로토콜을 지원하는 부하 테스트 도구
    • LoadUI : 서버 모니터링, Drag&Drop 등 사용자의 편리성이 강화된 부하 테스트 도구, HTTP, JDBC 등 다양한 프로토콜 지원
    • OpenSTA : HTTP, HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링 도구
  • 클린코드 작성 원칙
    • 가독성 : 누구든지 쉽게 읽을 수 있도록 작성
    • 단순성 : 코드를 간단하게 작성
    • 의존성 배제 : 코드가 다른 모듈에 미치는 영향을 최소화
    • 중복성 최소화 : 코드의 중복 최소화
    • 추상화 : 상위 클래스/메소드/함수에서는 간략하게 애플리케이션의 특성을 나타내고, 상세 내용은 하위 클래스/메소드/함수에서 구현
  • 소스코드 품질 분석 도구 종류
    • pmd : 소스코드에 대한 미사용 변수, 최적화되지 않은 코드 등 결함을 유발할 수 있는 코드를 검사
    • cppcheck : C/C++ 코드에 대한 메모리 누수, 오버플로우 등 분석
    • SonarQube : 중복 코드, 복잡도, 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼
    • checkstyle : 자바 코드에 대해 소스 코드 표준을 따르고 있는지 검사
    • ccm : 다양한 언어의 코드 복잡도를 분석
    • cobertura : 자바 언어의 소스 코드 복잡도 분석 및 테스트 커버리지 측정
  • 해시 함수 종류
    • N-NASH : 일본의 전신전화주식회사에서 발표한 암호화 해시 함수, 블록 크기와 키 길이가 모두 128비트
    • SNEFRU : R.C.Merkle가 발표한 해시 함수, 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발
  • 네트워크 침해 공격
    • APT(지능형 지속 위협) : 다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
    • 스니핑(Sniffing) : 네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당
  • 정보 보안 침해 공격
    • C&C 서버 : 해커가 원격지에서 감연된 좀비 PC에게 명령을 내리고 악성 코드를 제어하기 위한 용도로 사용하는 서버
    • 봇넷(Botnet) : 악성프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
    • 트로이 목마(Trojan Horse) : 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것으로, 자기 복제 능력은 없음
    • 슬래머(Slammer) : SQL의 허점을 이용하여 SQL 서버를 공격하는 웜 바이러스의 형태
  • 지식 기반 인증 유형
    • 패스 프레이즈(Passphrase) : 일반 패스워드보다 길이가 길고 기억하기 쉬운 문장을 활용하여 비밀번호를 구성하는 방법
    • 아이핀(i-PIN) : 인터넷에서 주민등록번호 대신 쓸 수 있도록 만든 사이버 주민등록번호
  • 소유 기반 인증 종류
    • 메모리 카드(토큰) : 마그네틱 선에 보안 코드를 저장해서 사용하는 것으로, 카드 리더기를 통해서만 읽을 수 있음
    • 스마트 카드 : 마이크로프로세서, 카드 운영체제, 메모리 등으로 구성되어 사용자의 정보뿐만 아니라 특정 업무를 처리할 수 있는 기능이 내장
    • OTP(One Time Password) : 사용자가 패스워드를 요청할 때마다 암호 알고리즘을 통해 새롭게 생성된 패스워드를 사용하는 것, 한번 사용된 패스워드는 폐기됨
  • 보안 솔루션 종류
    • ESM : 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션, 비용 및 자원 절약, 보안 솔루션 간의 상호 연동을 통해 종합적인 보안 관리 체계를 수립할 수 있음
  • 절차적 프로그래밍 언어 종류
    • ALGOL : 수치 계산이나 논리 연산을 위한 과학 기술 계산용 언어, PASCAL과 C언어의 모체가 됨
    • FORTRAN : 과학 기술 계산용 언어, 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능
  • 스크립트 언어 종류
    • ASP : 서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어, 마이크로소프트 사에서 제작
    • JSP : JAVA로 만들어진 서버사이드 스크립트 언어, 다양한 운영체제에서 사용 가능
    • 쉘 스크립트 : 유닉스/리눅스 계열의 쉘에서 사용하는 명령어들의 조합으로 구성된 스크립트 언어
    • Basic : 절차지향 기능을 지원하는 대화형 인터프리터 언어
  • 선언형 언어 종류
    • PROLOG : 논리학을 기초로 한 고급 언어, 인공 지능 분야에서 논리적인 추론이나 리스트 처리 등에 주로 사용
    • Haskell : 함수형 프로그래밍 언어로 부작용이 없음, 코드가 간결하고 에러 발생 가능성이 낮음
  • Windows의 특징
    • 선점형 멀티 태스킹 : 프로그래 실행중 문제가 발생하면 해당 프로그램을 강제 종료 시키고 모든 시스템 자원을 반환하는 방식
  • UNIX 구성
    • 유틸리티 프로그램 : 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용
  • 주기억장치 할당 기법 _ 단일 분할 할당 기법 종류
    • 오버레이 기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
  • 페이지 교체 알고리즘 종류
    • SCR : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기위한 기법
  • TCP/IP 응용 계층의 주요 프로토콜
    • SNMP : TCP/IP의 네트워크를 관리하는 프로토콜, 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용되는 표준 통신 규약
  • TCP/IP 전송 계층의 주요 프로토콜
    • RTCP : RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜, 항상 32비트의 경계로 끝남
  • TCP/IP 네트워크 액세스 계층의 주요 프로토콜
    • HDLC : 비트 위주의 데이터 링크 제어 프로토콜
  • 네트워크 관련 신기술
    • M2M : 무선 통신을 이용한 기계와 기계 사이의 통신, 무선으로 통합하여 상호작용하는 통신
    • 그리드 컴퓨팅 : 지리적으로 분산되어 있는 컴퓨터를 초고속 인터넷망으로 연결하여 공유함으로써 하나의 고성능 컴퓨터처럼 활용하는 기술
    • 스마트 그리드 : 전기의 생산부터 소비까지의 전 과정에 정보통신기술을 접목하여 에너지 효율성을 높이는 지능형 전력망 시스템
    • 메시 네트워크 : 차세대 이동통신, 홈네트워킹 등 특수목적을 위한 새로운 방식의 네트워크 기술, 대규모 디바이스의 네트워크 생성에 최적화
    • 와이선(Wi-SUN) : 스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 IoT 서비스를 위한 저전력 장거리 통신 기술
    • NDN : 콘텐츠 자체의 정보와 라우터 기능만으로 데이터 전송을 수행하는 기술
    • UWB : 짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술로 무선 디지털 펄스 라고도 함
    • WBAN : 웨어러블 또는 몸에 심는 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술
    • USN : 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성하는 네트워크
    • SON : 주변 상황에 맞추어 스스로 망을 구성하는 네트워크
    • 네트워크 슬라이싱 : 네트워크에서 하나의 물리적인 코어 네트워크 인프라를 독립된 다수의 가상 네트워크로 분리하여 각각의 네트워크를 통해 다양한 고객 맞춤형 서비스를 제공하는 것을 목적으로 하는 네트워크 기술, 3GBP가 선정한 5G 핵심 기술
    • 지능형 초연결망 : 4차 산업혁명 시대를 맞아 급격하게 증가하는 데이터 트래픽을 효과적으로 수용하기 위해 시행되는 과학기술정보통신부 주관 사업
  • 소프트웨어 관련 신기술
    • 프라이버시 강화 기술(PET) : 개인정보 침해 위험을 관리하기 위한 핵심 기술
    • 개인정보 영향평가 제도(PIA) : 개인정보를 활용하는 새로운 정보시스템의 도입 및 기존 정보시스템의 중요한 변경 시 시스템의 구축 운영이 기업의 고객은 물론 국민의 사생활에 미칠 영향에 대해 미리 조사, 분석, 평가하는 제도
    • 시멘틱 웹 : 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹
    • 오픈 그리드 서비스 아키텍처 : 애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표줌
    • SOA(서비스 지향 아키텍처) : 정보시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처
    • 공통 평가 기준(CC) : ISO 15408 표준으로 채택된 정보 보호 제품 평가 기준
    • 디지털 트윈 : 현실속의 사물을 소프트웨어로 가상화한 모델, 자동차.항공.에너지 등 여러 분야에서 주목받음
  • 하드웨어 관련 신기술
    • 컴패니언 스크린(Companion Screen) : TV 방송 시청 시 방송 내용을 공유하며 추가적인 기능을 수행할 수 있는 스마트폰, 태플릿 등을 의미, 앤 스크린의 한 종류로, 세커드 스크린이라고도 불림
    • 신 클라이언트 PC(Thin Client PC) : 하드디스크나 주변장치 없이 기본적인 메모리만 갖추고 서버와 네트워크로 운용되는 개인용 컴퓨터, 서버 기반 컴퓨팅과 관계가 깊음
    • 엠디스크 : 한 번의 기록만으로 자료를 영구보관할 수 있는 광 저장장치
  • 데이터베이스 관련 신기술
    • 디지털 아카이빙 : 디지털 정보 자원을 장기적으로 보존하기 위한 작업, 아날로그 콘텐츠는 디지털로 변환한 후 압축해서 저장하고, 디지털 콘텐츠도 체계적으로 분류하고 메타 데이터를 만들어 DB화 하는 작업
    • 맵 리듀스 : 대용량 데이터를 분산처리하기 위한 목적으로 개발된 프로그래밍 모델, 흩어져 있는 데이터를 연관성 있는 데이터 분류로 묶는 Map 작업을 수행한 후 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce 작업을 수행, 구글에 의해 고안
    • 데이터 다이어트 : 데이터를 삭제하는 것이 아니라 압축하고, 중복된 정보는 중복을 배제하고 새로운 기준에 따라 나누어 저장하는 작업
  • 회복 기법
    • 검사점 기법 : 트랜잭션 실행 중 특정 단계에서 재실행할 수 있도록 갱신 내용이나 시스템에 대한 상황 등에 관한 정보와 함께 검사점을 로그에 보관해두고 장애 발생 시 트랜잭션 전체를 철회하지않고 검사점부터 회복 작업을 수행하여 회복시간을 절약
  • 병행 제어 기법
    • 최적 병행 수행 : 병행 수행하고자 하는 대부분의 트랜잭션이 판독전용 트랜잭션일 경우, 트랜잭션 간의 충돌률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용