① 메시지는 이해하기 쉬워야 한다.
② 오류로부터 회복을 위한 구체적인 설명이 제공되어야 한다.
③ 오류로 인해 발생 될 수 있는 부정적인 내용을 적극적으로 사용자들에게 알려야 한다.
④ 소리나 색의 사용을 줄이고 텍스트로만 전달하도록 한다.
정답:4번.
① 공정과 도구보다 개인과의 상호작용을 더 가치 있게 여긴다.
② 동작하는 소프트웨어보다는 포괄적인 문서를 가치 있게 여긴다.
③ 계약 협상보다는 고객과의 협력을 가치 있게 여긴다.
④ 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다.
정답:2번.
애자일 선언문(Agile Manifesto)
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
요구사항이 바뀌기 쉬운 중소형의 비즈니스 시스템이나 전자 상거래 응용에 적합하다.
애자일 방법론의 종류
① 소프트웨어가 무엇을 해야하는가를 추적하여 요구사항 명세를 작성하는 작업이다.
② 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계이다.
③ 소프트웨어 시스템이 사용되는 동안 발견되는 오류를 정리하는 단계이다.
④ 소프트웨어 개발의 출발점이면서 실질적인 첫 번째 단계이다.
정답:3번.
설명:요구사항 분석(Requirement Analysis)
소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
도메인(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 한다.
분석결과의 문서화를 통해 향후 유지보수에 유용하게 활용 할 수 있다.
자료흐름도, 자료 사전 등이 효과적으로 이용될수 있다.
보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 활용될 수 있다.
비용과 일정에 대한 제약설정.
타당성 조사.
요구사항 정의 문서화.
전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시키는 것
Polymorphism(다형성)
상속 받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.
Encapsulation(캡슐화)
연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러낸다.
객체지향에서 정보 은닉과 가장 밀접한 관계가 있는 것
인터페이스가 단순화 된다.
소프트웨어 재사용이 높아진다.
변경 발생 시 오류의 파급효과가 적다.
데이터와 데이터를 처리하는 함수를 하나로 묶는 것이다.
캡슐화된 객체의 세부 내용이 외부에 은폐되어 변경이 발생하게되 오류의 파급 효과가 적다.
인터페이스가 단순해지고 객체 간의 결합도가 낮아진다.
캡슐화된 객체들은 재사용이 용이해진다.
Inheritance(상속)
상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것을 의미한다.
① 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.
② 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계초기 단계에서 필요하다.
③ 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.
④ 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능 추가가 쉽니다.
정답:4번.
설명:하향식 설계
하향식 통합 테스트(Top Down Integration Test)
*스텁(Stub)
-하향식 통합 테스트를 위해 일시적으로 필요한 조건만을 가지고 제공되는 시험용 임시 모듈
상향식 설계
상향식 통합 테스트(Bottom Up Integration Test)
*모듈(modul)
-시스템의 기본단위로 실행코드, 자료구조 및 다른 모듈들과의 인터페이스로 구성.
=하향식, 상향식 설계 모두가 모듈을 사용하여 설계하는 기법이기 때문에 4번은 성립이 되지않는다.
견본(시제)품을 만들어 최종 결과물을 예측하는 모형
① JAVA ② C
③ UML ④ Python
정답:3번.
설명: UML(Unified Modeling Language)
-가시화/구축/명세화/문서화 언어
UML의 구성
-사물(Things), 관계(Relationship), 다이어그램(Diagram)
① 스토리보드(Storyboard) ② 목업(Mockup)
③ 프로토타입(Prototype) ④ 유스케이스(Usecase)
정답:2번.
설명:
와이어 프레임(wire frame)
레이아웃 협의 및 진행상황 공유시 사용
목업(mockup)
실제적인 화면
과 더 유사한 정적인 화면스토리보드(storyboard)
최종적으로 참고하는 작업 지침서
프로토 타입(prototype)
동적인 형태
유스 케이스(usecase)
자연어로 작성
, 요구사항 구조적, 다이어그램 형식정답:3번.
설명:스프린트(sprint)-계획,개발,리뷰 작업 등 최소 단위의 cycle이다. 보통 1~4주 단위에서 선택.
애자일스크럼
동적 다이어그램(Behavioral Diagram) => 행위 (Behavioral)
● 유스케이스 다이어그램(Use Case Diagram)
● 시퀀스(순차) 다이어그램(Sequence Diagram)
● 액티비티(활동) 다이어그램 (Activity Diagram)
① 5개월 ② 10개월 ③ 15개월 ④ 20개월
정답:4번.
설명:노력(M/M)= 원시 라인 수(총 라인 수) / 1인당 월 평균 생산 코드 라인 수 (평균 생산성)
M/M = 36000 / 300
M/M = 120
개발기간= M/M / 참여 인원
개발기간= 120 / 6
개발기간=20개월
① 단일 책임원칙 : 하나의 클래스만 변경 가능 해야한다.
② 개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.
③ 리스코프 교체의 원칙 : 여러 개의 책임을 가진 클래스는 하나의 책임을 가진 클래스로 대체되어야 한다.
④ 의존관계 역전의 원칙 : 클라이언트는 자신이 사용하는 메소드와 의존관계를 갖지 않도록 해야 한다.
정답:2번.
설명:객체지향 설계 원칙 #SOLID
● SRP, 단일 책임 원칙(Single Responsibility Principle)
● OCP, 개방-폐쇄 원칙(Open-Closed Principle)
● LSP, 리스코프 치환 원칙(Liskov Substitution Principle)
● ISP, 인터페이스 분리 원칙(Interface Segregation Principle)
● DIP, 의존 역전 원칙(Dependency Inversion Principle)
의존 관계를 맺을 때, 변화하기 쉬운 것보다 변화하기 어려운 것에 의존해야 한다.
① 컴퍼지트(Composite) ② 어댑터(Adapter)
③ 추상 팩토리(Abstract Factory) ④ 옵서버(Observer)
정답:3번.
설명:
생성 패턴(Creational Pattern) #추빌팩프싱
● 추상 팩토리 패턴(Abstract Factory)
● 빌더 패턴(Builder)
● 팩토리 메소드 패턴(Factory Method)
= Virtual-Constructor 패턴 (가상 생성자)
● 프로토타입 패턴(Prototype)
● 싱글톤 패턴(Singleton)
구조 패턴(Structural Pattern) # 어브컴데퍼플프
● 어댑터 패턴(Adapter)
● 브리지 패턴(Bridge)
● 컴포지트 패턴(Composite)
● 데코레이터 패턴(Decorator)
● 퍼싸드 패턴(Façade)
● 플라이웨이트 패턴(Flyweight)
● 프록시 패턴(Proxy)
행위 패턴(Behavioral Pattern) : 행위의 변경, 수정 등을 위한 패턴
● 책임 연쇄 패턴(Chain of Responsibility)
● 커맨드 패턴(Command)
● 인터프리터 패턴(Interpreter)
● 반복자 패턴(Iterator)
● 중재자 패턴(Mediator)
● 메멘토 패턴(Memento)
● 옵저버 패턴(Observer)
● 상태 패턴(State)
● 전략 패턴(Strategy)
● 템플릿 메소드 패턴(Template Method)
● 방문자 패턴(Visitor)
정답:1번.
① 심미성을 사용성보다 우선하여 설계해야 한다.
② 효율성을 높이게 설계해야 한다.
③ 발생하는 오류를 쉽게 수정할 수 있어야 한다.
④ 사용자에게 피드백을 제공해야 한다.
정답:1번
설명:
*심미성: 아름다움을 살펴 찾을 수 있는 성질.
정답:2번.
설명:
디자인 패턴이란
-소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 할 수있는 훌륭한 해결책
객체 모델링(Object Modeling): 객체 다이어그램, 정보 모델링이라고도 하며 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의, 가장 중요하며 선행되어야 함
동적 모델링(Dynamic Modeling): 상태 다이어그램, 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현
기능 모델링(Functional Modeling): 자료 흐름도(DFD), 프로세스들의 자료 흐름을 중심으로 처리 과정 표현
==> 럼바우 - 객동기
정답:2번.
설명:
EAI (Enterprice Application Integeration)
-영어를 해석하면 기업 애플리케이션 통합. 쉽게 말하자면 기업 내 여러 애플리케이션을 통합하기 위한 솔루션.
FEP (Front End Processor)
-통신 제어 및 처리를 위한 시스템을 말하는데, 보통 금융 관련 대외적 거래 또는 B2B 연계에 사용되는 통신 방식.
-한 기업 내에 각기 다른 서버 간 통신이 아니라 외부 기업 또는 외부 서버와 내부 기업 서버를 연동하고자 할 때 사용. (ex. KG이니시스 등 외부 PG결제, 세틀뱅크 등 외부 뱅킹 API)
-VPN 또는 전용선을 사용하여 기관을 연결.
GPL(GNU - General Public License)
-자유소프트웨어재단(FSS)에서 만든 라이센스로 자유소프트웨어재단 설립자인 리처드 스톨만에 의해서 만들어졌습니다. 가장 많이 알려진 카피레프트에 속한 라이센스이며, GPL 라이센스를 따르는 프로그램은 목적이나 형태의 제한없이 사용이 가능하며 카피레프트가 추구하는 방향성처럼 프로그램을 이후 수정하고 배포하는 모든 경우에 무조건 GPL로 공개를 해야 합니다.(GPL을 따른 프로그램을 사용해서 2차 저작물을 만들면 2차 저작물도 반드시 GPL 라이센스를 명시해야 함.)
GPL 라이센스 적용 예: 리눅스 커널, Git, 마리아 DB, 워드프레스, 파이어폭스(v2.0) 등
이중화(Duplexing/Diplexing)
-단일 매체, 장치, 포트에서 동시 양방향 통신을 가능케하는 이중화
-양방향 통신 시스템에서 송수신 시 한 개의 안테나를 공유하여 통신하기 위해 적용하는 기술 방식
정답:2번.
설명:
클래스(Class)
인스턴스(Instance)
메서드(Method)
메시지(Message)
❶ 추상화 : 하위 클래스/메소드/함수를 통해 애플리케이션의 특성을 간략하게 나타내고, 상세 내용은 상위 클래스/메소드/함수에서 구현한다.
② 의존성 : 다른 모듈에 미치는 영향을 최소화하도록 작성한다.
③ 가독성 : 누구든지 읽기 쉽게 코드를 작성한다.
④ 중복성 : 중복을 최소화 할 수 있는 코드를 작성한다.
정답:1번.
설명:
추상화
-클래스/메소드/함수에 대해 동일한 수준의 추상화 구현, 상세 내용은 하위 클래스/메소드/함수에 구현.
의존성
-영향도를 최소화, 코드의 변경이 다른 부분에 영향이 없게 작성.
가독성
-이해하기 쉬운 용어를 사용, 코드 작성 시 들여쓰기 기능을 사용.
중복성
-중복된 코드를 제거, 공통된 코드를 사용.
단위성
-한번에 한 가지 처리만 수행, 클래스/메소드/함수를 최소 단위로 분리.
소스 코드 최적화 기법
1. 변수나 클래스, 매서드 명을 의도가 분명한 이름(사용용도, 작업명)으로 사용한다.
2. 클래스는 행위의 주체로 명사나 명사구로 표현하고 함수 이름은 클래스가 행하는 행위로 동사 또는 동사구로 사용한다.
3. 클래스는 하나의 역할, 책임만 수행할 수 있도록 응집도를 높이고, 크기를 작게 작성한다.
4. 클래스의 자료 구조, 메소드를 추상화 할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 의존성을 최소화해야 한다.
① 테스트 스텁(Test Stub)
❷ 테스트 드라이버(Test Driver)
③ 테스트 슈트(Test Suites)
④ 테스트 케이스(Test Case)
정답:2번
설명:테스트 스텁(Test Stub)
테스트 대상 모듈이 호출
하는 하위 모듈의 역할을 한다.하향식 통합 테스트
에서 사용된다.테스트 드라이버(Test Driver)
시험대상 모듈을 호출
하는 간이 소프트웨어이다.상향식 통합 테스트
에서 사용된다.테스트 슈트(Test Suites)
컴포넌트나 모듈
등 시스템에 사용되는 테스트 케이스의 집합테스트 스크립트(Test Script)
자동화
된 테스트 실행 절차에 대한 명세서테스트 케이스(Test Case)
명세 기반 테스트(블랙박스 테스트)
의 설계 산출물에 해당 ① ㉠, ㉡ ② ㉡, ㉢
❸ ㉣ ④ ㉠, ㉡, ㉢, ㉣
㉠ FIFO방식으로 처리된다. -> 큐(queue)에 대한 설명.
㉡ 순서 리스트의 뒤(Rear)에서 노드가 삽입되며, 앞(Front)에서 노드가 제거된다 -> 큐(queue)에 대한 설명.
㉢ 선형 리스트의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조이다. -> 데크(Deque)에 대한 설명.
정답:3번
설명:
선형 구조 종류 -> 리스트, 스택, 큐, 데크
비선형 구조 종류 -> 트리, 그래프
스택(Stack)
-더 이상 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 언더플로(Underflow)가 발생한다.
-스택(Stack)은 한 방향으로만 자료를 넣고 꺼낼 수 있는 LIFO(Last-In First-Out) 형식의 자료 구조이다.
-한 방향으로만 PUSH와 POP을 이용하여 자료를 넣고 꺼낸다.
-TOP은 스택에서 가장 위에 있는 데이터로, 스택 포인터(Stack Pointer)라고도 불린다.
스택 연산
PUSH: 데이터를 차례대로 스택에 넣는 연산
POP: 스택에서 가장 위에 있는 데이터를 하나씩 꺼내는 연산
큐(Queue)
-큐(Queue)는 한쪽 끝에서는 삽입 작업이 이뤄지고, 반대쪽 끝에서는 삭제 작업이 이루어지는 FIFO(First-In First-Out) 형식의 자료 구조이다.
-한쪽에서는 ENQUEUE 연산을 이용하여 데이터를 넣고, 한쪽에서는 DEQUEUE 연산을 이용하여 데이터를 꺼낸다.
-데이터가 꺼내는 쪽에서 가장 가까운 데이터를 Front라고 하고, 데이터를 넣는 쪽에서 가장 가까운 데이터를 Rear라고 한다.
큐 연산
ENQUEUE: 데이터를 차례대로 넣는 연산
DEQUEUE: 처음 저장된 데이터부터 하나씩 꺼내는 연산
데크(Deque)
-데크(Deque; Double Ended Queue)는 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조이다.
-두 개의 포인터를 사용하여, 양쪽의 삭제/삽입이 가능하다.
-데크를 이용한 스택과 큐의 구현이 가능하다.
데크연산
PUSH: 데이터를 차례대로 데크에 넣는 연산
POP: 데크에서 Front와 Rear에 있는 데이터를 하나씩 꺼내는 연산
트리(Tree)
-트리(Tree)는 데이터들을 계층화시킨 자료 구조이다.
-인덱스를 조작하는 방법으로 가장 많이 사용하는 구조이다.
-트리는 노드(Node)와 노드를 연결하는(Link)로 구성된다.
-배열과 달리 노드들이 포인터로 연결되어 노드의 상한선이 없다.
① 오류의 파급 효과를 최소화한다.
❷ 기능의 분리가 가능하여 인터페이스가 복잡하다. ->복잡도 문제를 해결하는 데 도움을 준다.
③ 모듈의 재사용 가능으로 개발과 유지보수가 용이하다.
④ 프로그램의 효율적인 관리가 가능하다.
정답:2번.
설명:
① 개발에 따른 산출물 관리
② 소요인력은 최대화하되 정책 결정은 신속하게 처리
③ 주어진 기간은 연장하되 최소의 비용으로 시스템을 개발
❹ 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발
정답:4번
설명:
① 의제를 제한한다.
② 논쟁과 반박을 제한한다.
③ 문제 영역을 명확히 표현한다.
❹ 참가자의 수를 제한하지 않는다. ->제한한다.
정답:4번
설명:FTR 정형 기술 검토 란?
① Analysis ❷ Migration
③ Restructuring ④ Reverse Engineering
정답:2번
설명:재공학의 주요 활동
-분석(Analysis)
-개조(재구조, 재구성 Restructuring)
-역공학(Reverse Engineering)
-이식(Migration)
분석(Analysis)소프트웨어 재공학
-기존 소프트웨어 명세를 확인하여 동작을 이해하고 재공학 대상을 선정
-재공학 가치판단 및 재공학 여부 판단
재구성(Restructuring)
-소프트웨어 구조를 향상시키기 위해 코드를 재구성
-소프트웨어의 기능과 외적인 동작은 변경되지 않음
역공학(Reverse Engineering)
-소프트웨어 동작 과정 및 설계 정보를 재발견 혹은 재생성
-소프트웨어를 구성하는 원시 코드를 복구하는 작업
-원시 코드
로부터 설계정보 추출 및 절차 설계표현, 프로그램과 데이터 구조 정보 추출
-역공학의 가장 오래된 형태는 재문서화
이관(Migration)
-기존 소프트웨어를 다른 운영체제, 하드웨어, 프레임워크 등에서 사용할 수 있도록 변환
-재구성 또는 재개발
을 통한 새로운 소프트웨어에 기존 데이터를 옮겨 담는 작업
① 개발 정보시스템의 특성 ② 사용자의 요구사항
③ 컴파일러의 가용성 ❹ 컴파일러의 독창성
정답:4번
설명:독창성이면 자신밖에 알아보지 못 할 수 있다는건데 프로그래밍 언어는 자신만 사용하는것이 아니라 다른 사람들도 사용할 수 있기 때문에 독창적이면 안됩니다.
❶ 패키징은 개발자 중심으로 진행한다. ->사용자
② 신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징한다.
③ 고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.
④ 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.
정답:1번
설명:패키징은 사용자 중심으로 진행한다.
❶ 트리 ② 리스트
③ 스택 ④ 데크
정답:1번
설명:트리(TREE)는 비선형 구조이다.
① Title Code ② Source Code
③ Object Code ❹ Alien Code
정답:4번
설명:외계인코드(Alien Code)
① 생산성 증가
② 프로젝트 문서 공유
③ 소프트웨어 품질 향상
❹ 새로운 개발 방법론 도입 용이
정답:4번
설명:
❶ AJTML ② JSON
③ XML ④ YAML
정답:1번
설명: JSON/ XML/ YAML 은 인터페이스 간의 통신을 위해 이용되는 데이터 포맷입니다
JSON(JavaScript Object Notation)
-Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷
입니다. -웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다(서버에서 클라이언트로 데이터를 전송하여 표현하려거나 반대의 경우).
-여기저기서 자주 보았을테니 여기선 JSON을 파싱, 데이터에 접근하고 JSON을 생성하는 등
-JSON 또한 XML과 비슷하게 데이터를 처리하기 위한 형식입니다. 일반적으로 서버와의 통신 규약인 REST API를 사용할 때 가장 많이 사용되어, 최근에는 XML보다는 JSON 형식이 채택되고 있습니다. 사실상 모든 프로그래밍 언어에서 JSON을 지원한다는 점에서 XML과 YAML에 비해서 채택률이 높아지고 있습니다. JSON은 주석을 사용할 수 없다는 특징이 있습니다.
XML(Extensible Markup Language)
-W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어
를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다. XML은 SGML의 단순화된 부분집합으로, 다른 많은 종류의 데이터를 기술하는 데 사용할 수 있다.
-데이터를 표현하기 위하여 많이 사용되어 온 방식으로 HTML과 흡사한 구조를 가지고 있습니다. XML이 가지는 고유한 문법이 있다는 점에서 소프트웨어 및 하드웨어에 대하여 독립적으로 데이터를 처리할 수 있습니다. XML의 특징은 꺽쇠(<>)입니다. XML은 트리(Tree) 계층 구조를 가지고 있습니다. 루트(Root) 요소부터 시작해 여러 개의 자식을 계층적으로 포함하게 됩니다.
YAML(Yaml Ain't Markup Language)
-YAML 또한 JSON과 비슷하게 사람이 읽기 쉬운 형태의 데이터 표현 형식입니다. YAML은 XML과 문법적으로 유사한 점이 많습니다. YAML에서도 주석을 사용 가능하며 개행, 공백으로 블록을 인식합니다. 다만, 태그를 사용하지 않고 공백 위주로 데이터를 구분하므로 한 줄로 작성할 수 없다는 특징이 있습니다.
출처: https://ndb796.tistory.com/251 [안경잡이개발자]
① 논리의 기술에 중점을 두고 도형을 이용한 표현 방법이다.
② 이해하기 쉽고 코드 변환이 용이하다.
❸ 화살표나 GOTO를 사용하여 이해하기 쉽다. -> 사용하지 않는다.
④ 연속, 선택, 반복 등의 쩨어 논리 구조를 표현한다.
정답:3번
설명:NS Chart(Nassi-Schneiderman Chart)
-논리의 기술에 중점을 둔 도형을 이용한 표현 방법(박스다이어그램, chapin chart)
-순차구조, 반복구조, 선택구조, 다중 선택 구조 등을 표현
-GOTO나 화살표를 사용하지 않으며 선택과 반복 구조를 시각적으로 표현
-이해하기 쉽고 코드 변환이 용이
-읽기는 쉽지만 작성하기가 어려우며, 임의로 제어를 전이하는 것이 불가능
❶ B D C A ② A B C D
③ B A C D ④ A B D C
정답:1번
설명:
A B D C -> C A B D -> D C A B -> B D C A
① Selection Sort ② Bubble Sort
③ Insert Sort ❹ Quick Sort
정답:4번
설명:
❶ ㉠, ㉡ ② ㉠, ㉣
③ ㉡, ㉤ ④ ㉢, ㉥
정답:1번
설명:
① 소프트웨어 품질 평가를 위한 소프트웨어 품질평가 통합모델 표준이다.
② System and Software Quality Requirements and Evaluation으로 줄여서 SQuaRE라고도 한다.
❸ ISO/IEC 2501n에서는 소프트웨어의 내부 측정, 외부측정, 사용품질 측정, 품질 측정 요소 등을 다룬다.
④ 기존 소프트웨어 품질 평가 모델과 소프트웨어 평가 절차 모델인 ISO/IEC 9126과 ISO/IEC 14598을 통합하였다.
① Critical Path Method ❷ Risk Analysis
③ Work Breakdown Structure ④ Waterfall Model
① 테이블의 행을 삭제할 때 사용한다.
❷ WHERE 조건절이 없는 DELETE 명령을 수행하면 DROP TABLE 명령을 수행했을 때와 동일한 효과를 얻을 수 있다.
③ SQL을 사용 용도에 따라 분류할 경우 DML에 해당한다.
④ 기본 사용 형식은 “DELETE FROM 테이블 [WHERE 조건];” 이다.
어떤 릴레이션 R의 모든 조인 종속성의 만족이 R의 후보 키를 통해서만 만족될 때, 이 릴레이션 R이 해당하는 정규형은?
❶ 제5정규형 ② 제4정규형
③ 제3정규형 ④ 제1정규형
E-R 모델에서 다중값 속성의 표기법은?
다른 릴레이션의 기본키를 참조하는 키를 의미하는 것은?
① 필드키 ② 슈퍼키
❸ 외래키 ④ 후보키
관계해석에서 '모든 것에 대하여'의 의미를 나타내는 논리 기호는?
① ∃ ② ∈
❸ ∀ ④ ⊂
다음 릴레이션의 Degree와 Cardinality는?
❶ Degree : 4, Cardinality : 3
② Degree : 3, Cardinality : 4
③ Degree : 3, Cardinality : 12
④ Degree : 12, Cardinality : 3
① SELECT 학생 FROM 이름 WHERE 학과='교육';
❷ SELECT 이름 FROM 학생 WHERE 학과='교육;
③ SELECT 교육 FROM 학과 WHERE 이름='학생';
④ SELECT 학과 FROM 학생 WHERE 이름='교육';
① 1 ② 3
③ 4 ❹ 5
54. 다음 SQL문에서 사용된 BETWEEN 연산의 의미와 동일한 것은?
❶ 점수 >= 90 AND 점수 <= 95
② 점수 > 90 AND 점수 < 95
③ 점수 > 90 AND 점수 <= 95
④ 점수 >= 90 AND 점수 < 95
❶ 철회(Aborted) ② 부분 완료(Partially Committed)
③ 완료(Commit) ④ 실패(Fail)
***
***
① V_1만 삭제된다.
② V_2만 삭제된다.
❸ V_1과 V_2 모두 삭제된다.
④ V_1과 V_2 모두 삭제되지 않는다.
① 7, 5 ② 8, 5
❸ 8, 9 ④ 7, 9
① Dekker Algorithm ② Lamport Algorithm
③ Peterson Algorithm ❹ Semaphore
***
① i = 0 ② i = 1
③ i = 3 ❹ i = 4
① BCDABCA ❷ BCDABCC
③ CDDACCC ④ CDDACCA
① E ② V
❸ R ④ O
① 0 ❷ 1
③ 3 ④ 5
다음 Python 프로그램이 실행되었을 때, 실행 결과는?
UNIX 시스템의 쉘(shell)의 주요 기능에 대한 설명이 아닌 것은?
① 사용자 명령을 해석하고 커널로 전달하는 기능을 제공한다.
② 반복적인 명령 프로그램을 만드는 프로그래밍 기능을 제공한다.
❸ 쉘 프로그램 실행을 위해 프로세스와 메모리를 관리한다.
④ 초기화 파일을 이용해 사용자 환경을 설정하는 기능을 제공한다.
① 소프트웨어 개발 프로세스를 위험 관리(Risk Management) 측면에서 본 모델이다.
❷ 위험 분석(Risk Analysis)은 반복적인 개발 진행 후 주기의 마지막 단계에서 최종적으로 한 번 수행해야 한다.
③ 시스템을 여러 부분으로 나누어 여러 번의 개발 주기를 거치면서 시스템이 완성된다.
④ 요구사항이나 아키텍처를 이해하기 어렵다거나 중심이 되는 기술에 문제가 있는 경우 적합한 모델이다.
❶ 고가용성 솔루션(HACMP)
② 점대점 연결 방식(Point-to-Point Mode)
③ 스턱스넷(Stuxnet)
④ 루팅(Rooting)
❶ DAS ② NAS
③ BSA ④ NFC
① 무결성 검사
② 응용 프로그램의 보안 설정 및 패치(Patch) 적용
❸ 중단 프로세스 및 닫힌 포트 위주로 확인
④ 불필요한 서비스 및 악성 프로그램의 확인과 제거
❶ 요구 분석 및 설계단계를 거치지 않으며 항상 통합 테스트를 중심으로 V 형태를 이룬다.
② Perry에 의해 제안되었으며 세부적인 테스트 과정으로 구성되어 신뢰도 높은 시스템을 개발하는데 효과적이다.
③ 개발 작업과 검증 작업 사이의 관계를 명확히 들어내 놓은 폭포수 모델의 변형이라고 볼 수 있다.
④ 폭포수 모델이 산출물 중심이라면 V 모델은 작업과 결과의 검증에 초점을 둔다.
① 블루버그(BlueBug) - 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격으로 OPP를 사용하여 정보를 열람
② 블루스나프(BlueSnarf) - 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
❸ 블루프린팅(BluePrinting) - 블루투스 공격 장치의 검색 활동을 의미
④ 블루재킹(BlueJacking) - 블루투스 장비사이의 취약한 연결 관리를 악용한 공격
① Ping of Death 공격은 정상 크기보다 큰 ICMP 패킷을 작은 조각(Fragment)으로 쪼개어 공격 대상이 조각화 된 패킷을 처리하게 만드는 공격 방법이다.
❷ Smurf 공격은 멀티캐스트(Multicast)를 활용하여 공격 대상이 네트워크의 임의의 시스템에 패킷을 보내게 만드는 공격이다.
③ SYN Flooding은 존재하지 않는 클라이언트가 서버별로 한정된 접속 가능 공간에 접속한 것처럼 속여 다른 사용자가 서비스를 이용하지 못하게 하는 것이다.
④ Land 공격은 패킷 전송 시 출발지 IP주소와 목적지 IP주소 값을 똑같이 만들어서 공격 대상에게 보내는 공격 방법이다.
① Apache ② Hadoop
❸ Honeypot ④ MapReduce
① StackGuard ❷ Docker
③ Cipher Container ④ Scytale
① 프로젝트를 이루는 소작업 별로 언제 시작되고 언제 끝나야 하는지를 한 눈에 볼 수 있도록 도와준다.
② 자원 배치 계획에 유용하게 사용된다.
③ CPM 네트워크로부터 만드는 것이 가능하다.
❹ 수평 막대의 길이는 각 작업(Task)에 필요한 인원수를 나타낸다.
① SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
② 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
③ 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력 값이 적절한 사전검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
❹ 자원 삽입 : 사용자가 내부 입력 값을 통해 시스템 내에 사용이 불가능한 자원을 지속적으로 입력함으로써 시스템에 과부하 발생
① tapping ② xtslog
③ linuxer ❹ wtmp
① PLCP(Packet Level Control Processor)
② Traffic Distributor
③ Packet Tree
❹ DPI(Deep Packet Inspection)
❶ 프로젝트 수행 시 예상되는 변화를 배제하고 신속히 진행하여야 한다.
② 프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동이다.
③ 관리 측면에서의 목적 중 하나는 최단기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것이다.
④ 기술적 측면에서의 목적 중 하나는 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 사용하는 것이다.