2. 데이터 입출력 구현
Q. 테이블의 제약조건 설계에서 참조 무결성 제약조건의 3가지를 적으시오
정답: 제한, 연쇄, 널값
Q. 반정규화란 무엇인가요?
정답: 조인이 많은 경우 성능향상을 위해서 행하는 정규화의 반대 개념이다.
Q. 테이블 생성시 일부 단어들 중 시스템에서 사전 예약이 되어 있어 사용할 수 없는 단어를 의미하는 말
정답: 예약어
Q. DBMS에서 가로방향, 세로방향을 어떻게 부르나요?
정답: 가로(행): 튜플, 세로(열): 애트리뷰트
Q. 3차 정규화 중 A -> B 이고, B -> C 이면서 A -> C인 관계를 ( ) 관계라고 한다.
정답: 이행함수 종속
Q. 전체 데이터의 검색 없이 필요한 정보를 신속히 조회할 수 있도록 도와주는 기능은?
정답: 인덱스
Q. SQL을 이용해 생성된 데이터를 조작하는 프로그램은 무엇인가?
정답: 프로시저
Q. 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다.
정답: PL/SQL
Q. 논리 및 물리 모델링 과정에서 작성하는 설계 산출물로 테이블을 구성하는 칼럼들의 특성, 인덱스(Index), 업무 규칙을 문서화한 것이다.
정답: 테이블 정의서
3. 통합 구현
Q. HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜이다.
정답: SOAP
Q. 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보를 기술한 파일이다.
정답: WSDL
Q. 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이다.
정답: UDDI
Q. ( ) 방식은 네트워크에 분산된 서비스 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술이다.
정답: 웹 서비스
Q. 객체지향 프로그래밍에서 해당 클래스의 구조로 컴퓨터 저장 공간에서 할당된 실체이다.
정답: 인스턴스
Q. 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성
정답: 하이퍼링크(Hyper Link)
Q. 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생 시 DBMS에서 자동적으로 실행되도록 구현된 프로그램이다.
정답: 트리거(Trigger)
Q. 특정 서비스를 변경하더라도 연결된 다른 서비스에는 영향을 주지 않는 유연한 구조이다.
정답: 느슨한 결합
Q. HTTP URI를 통해 자원을 명시하고, HTTP 메소드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용하는 것을 의미한다.
정답: REST(Representational State Transfer)
Q. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션이다.
정답: EAI(Enterprise Application Integration)
Q. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중의 통합을 지향하는 아키텍처 또는 기술이다.
정답: ESB(Enterprise Service Bus)
Q. 송신 시스템과 수신 시스템을 연계하였을 경우 데이터의 정합성과 데이터 전송 여부에 대한 테스트이다.
정답: 연계 테스트
Q. 송신 시스템과 수신 시스템 간의 인터페이스 방식, 주기 등을 기록한 현황을 작성하는 문서
정답: 인터페이스 정의서
Q. 송신 시스템과 수신 시스템에서 처리되는 일련의 과정에 대한 결과를 기록 및 관리할 때 사용하는 것은?
정답: 로그 테이블
Q. 연결을 생성하여 포트를 할당하고, 클라이언트(Clinet)의 요청을 연결하여 통신하는 기법이다.
정답: 소켓(Socket)
4. 서버 프로그램 구현
Q. 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법이다.
정답: 공통 모듈 구현
Q. 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다. 정보은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.
정답: 응집도
Q. 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성이다. 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도이다.
정답: 결합도
Q. 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법이다.
정답: 배치 프로그램(Batch Program)
Q. 사용자 요청 스레드를 처리하고 데이터베이스에 접속하여 SQL 쿼리문에 대한 결과 값을 반환하는 역할을 수행하는 서버이다.
정답: WAS(Web Application Server)
Q. 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공하는 소프트웨어이다.
정답: JVM(Java Virtual Machine)
Q. JSP와 서블릿을 실행시킬 수 있는 소프트웨어는?
정답: 컨테이너
Q. 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동이다.
정답: 형상 관리
Q. 소프트웨어 개발환경의 3가지는 무엇인가?
정답: 운영체제, 미들웨어, DBMS
Q. 형상 관리의 절차
정답: 형상 식별 - 형상 통제 - 형상 감사 - 형상 기록 (식통감기 로 외우기)
Q. 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점의 기준이다.
정답: 베이스라인(Baseline)
Q. 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드이다. 자체적으로 컴파일이 가능하고, 다른 프로그램에서 재사용이 가능하다.
정답: 공통 모듈
Q. 응집도의 유형 3가지 이상 작성하시오
정답: 우연적 응집도, 논리적 응집도, 시간적 응집도, 절차적 응집도, 통신적 응집도, 순차적 응집도, 기능적 응집도(우논시절통순기 로 암기)
Q. 결합도의 유형 3가지 이상 작성하시오
정답: 내용 결합도, 공통 결합도, 외부 결합도, 제어 결합도, 스탬프 결합도, 자료 결합도(내공 외제 스자 - 내부 공사는 외제를 쓰자 로 암기)
Q. 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터를 조작하는 객체이다.
정답: DAO(Date Access Object)
Q. 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체이다.
정답: VO(Value Object)
Q. 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장. 회수 외에 다른 기능이 없는 객체이다.
정답: DTO(Data Transfer Object)
Q. 사용자의 요청을 처리하는 기능을 제공하기 위한 로직을 구현하고 DAO 클래스를 통해서 DB 연동을 처리하는 기능을 수행하는 클래스이다.
정답: 서비스(Service)
Q. MVC 패턴의 역할 구분 3가지는 무엇인가요?
정답: 모델(Model), 뷰(View), 컨트롤러(Controller)
Q. 팬인, 팬아웃 문제(계산형)
Q. 자바 프로그래밍 언어용 단위 테스트 도구는 무엇인가요?
정답: JUnit
Q. JUnit 주요 어노테이션(찾아보기)
정답:
@Test
@Before
@After
@BeforeClass
@AfterClass
@Ignore
Q. Assert 메서드
정답:
assertEquals(a,b);
assertEquals(a,b,c); <- c는 오차범위
assertSame(a,b);
assertTrue(a);
assertNotNull(a);
assertArrayEquals(a,b);
Q. 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
정답: 배치 프로그램
Q. 배치 프로그램의 유형 문제
정답:
이벤트 배치: 사전에 정의해 둔 조건 충족 시 자동으로 실행
온디맨드 배치: 사용자의 명시적 요구가 있을 대마다 실행
정기 배치: 정해진 시점(주로 야간)에 정기적으로 실행
Q. 일괄 처리(Batch Processing)를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구
정답: 배치 스케줄러
Q. 배치 스케줄러의 종류
정답:
스프링 배치: 스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러
쿼츠 스케줄러: 스프링 프레임워크에 플러그인되어 수행하는 작업(Job)과 실행 스케줄을 정의하는 트리거를 분ㄹ리하여 유연성을 제공하는 오픈 소스 기반 스케줄러
Q. Cron 표현식
정답: 초 분 시 일 월 요(일) 연(도)
Q. Cron 표현식 특수문자
정답:
* : 모든 수
?: 해당 항목을 미사용
-: 기간 설정
,: 특정 기간 설정
/: 시작시간과 반복간격 설정
L:마지막 기간에 동작
W: 가장 가까운 평일에 동작
#: 몇 번째 주, 요일 설정
예시:
0 0 12 * * * : 매일 12시에 실행
0 15 10 * * * : 매일 10시 15분에 실행
0 * 14 * * *: 매일 14시에 0~25분까지 매 분 실행
0 0/5 14 * * *: 매일 14시에 시작해서 5분 간격으로 실행
0 0 20 ? * MON-FRI: 월~금 20시 0분 0초에 실행
* /1 * * * *: 매 1분마다 실행
* /10 * * * *: 매 10분마다 실행
5. 인터페이스 구현
Q. 이기종 시스템 및 컴포넌트 각 데이터 교환 및 처리를 위해 각 시스템의 교환되는 데이터, 업무, 송수신 주체 등이 정의된 문서
정답: 인터페이스 설계서(정의서)
Q. 한 시스템의 인터페이스 현황을 확하기 위하여 시스템이 갖는 인터페이스 목록과 인터페이스 명세를 보여주는 설계문서
정답: 시스템 인터페이스 정의서
Q. 인터페이스 목록에 이쓴 각 인터페이스의 상세 정보를 보여주고, 각 인터페이스 번호 당 인터페이스 되는 데이터, 데이터 형식, 송수신 시스템의 정보 등을 구체화하는 문서
정답: 인터페이스 명세
Q. TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
정답: FTP(File Transfer Protocol)
Q. 수신 시스템에서 DB 링크를 생성하고 송신 시스템에서 해당 DB 링크를 직접 참조하는 연결 방식
정답: DB 링크
Q. EAI 방식 - 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션
정답: 포허메하
포인트 투 포인트: 가장 기초적인 애플리케이션 통합 방법으로 1:1 단순 통합방법, 장점으로는 솔루션을 구매하지 않고 개발자간의 커뮤니케이션을 통해 통합 가능
허브 앤 스포크: 단일한 접점의 허브 시스템을 토하여 데이터를 전송하는 중앙 집중식 방식, 허브 장애 시 전체 장애 발생
메시지 버스: 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식, 뛰어나 확장성과 대용량 데이터 처리 가능
하이브리드: 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식, 그룹 내 환경에 맞는 작업 가능
Q. ESB 방식 - 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처
정답:
ESB는 버스를 중심으로 각각 프로토콜이 호환할 수 있도록 애플리케이션의 통합을 느슨한 결합 방식으로 지원하는 방식이다.
Q. 다양한 패키지 애플리케이션 및 기업에서 자체적으로 개발한 애플리케이션을 연결하는 EAI의 핵심 장치이다.
정답: 어댑터(Adaptor)
Q. 시스템 상호 간 데이터가 전송될 때, 데이터 포맷과 코드를 변환하는 솔루션
정답: 브로커(Broker)
Q. 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터를 송수신하는 기술
정답: 메시지 큐(Message Queue)
Q. 컴포넌트란?
정답: 특정한 기능을 수행하기 위해 독집적으로 개발되어 보급되는, 잘 정의된 인터페이스를 가지며 다른 부품과 조립되어 응용시스템을 구축하기 위해 사용되는 소프트웨어 프로그램이다.
Q. 404 오류란?
정답: 웹에서 서버를 찾지 못할 때 발생하는 오류 메시지이다.
Q. 스니핑이란?
정답: 공격 대상에게 집적 공격을 하지 않고 데이터만 몰래 들여다보느 수동적 공격기법이다.
Q. 직렬화란?
정답: 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경으로 저장하고 재구성할 수 있는 포맷으로 변환하는 과정이다.
Q. 데이터베이스 암호화 알고리즘 유형
정답:
대칭 키 암호화 알고리즘: 암호화 알고리즘의 한 종류로, 암.복호화에 같은 암호 키를 쓰는 알고리즘을 의미(ARIA, 128/192/256, SEED)
비대칭 키 암호화 알고리즘: 공개키는 누구난 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도록, 공개키와 비밀키를 사용하는 알고리즘(RSA, ECC, ECDSA)
해시 암호화 알고리즘: 해시값으로 원래 입력값을 찾아낸 수 없는 일방향성의 특성을 가진 알고리즘(SHA-256/384/512, HAS-160)
Q. 데이터베이스 암호화 기법 유형
정답: 애플하
API 방식: 애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식(애플리케이션 서버에서 암복호화, 키 관리하여 부하 발생)
Plug-In 방식: DB레벨의 확장성 프로시저 기능을 이용, DBMS에 Plug-In 모듈로 동작하는 방식(DB서버에서 암복호화, 키 관리로 인해 부하 발생)
Hybrid 방식: API 방식과 Plug-In 방식을 결합하는 방식(부하 부산)
Q. IPSec이란?
정답: IP계층에서 무결성과 인증을 보장하느 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜이다.
Q. SSL/TLS 란?
정답: 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안 프로토콜이다.
Q. AH(Authetication Header) 란?
정답: 메시지 Checksum을 활용한 데이터 인증과 비연결형 무결성을 보장해 주는 프로토콜이다.
Q. ESP(Encapsulating Security Payload) 란?
정답: 암호화 알고리즘을 활용한 캡슐화 기반 페이로드 기밀성을 제공하는 프로토콜이다.
Q. 인터넷 키 교환 알고리즘
정답: IKE(Internet Key Exchange)
6. UI 요구사항 확인
Q. 컴퓨터 시스템이나 소프트웨어의 설계 또는 성능, 구현 가능성, 운용 가능성을 평가하거나 요구사항을 좀 더 잘 이해하고 결정하기 위하여 전체적인 기능을 간략한 형태로 구현한 시제품
정답: 프로토타입
Q. UI 유형
정답:
CLI(Command Line Interface)
GUI(Graphical User Interface)
NUI(Natural User Interface) - 키보드나 마우스 없이 신체 부위를 이용하는 사용자 인터페이스(터치, 음성 포함)
OUI(Organic User Interface) - 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스
Q. UI 설계 원칙
정답: 직유학유
직관성 - 누구나 쉽게 이해하고, 사용할 수 있어야 함
유효성 - 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
학습성 - 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
유연성 - 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작
Q. UX(User Experience)란?
정답: 제품과 시스템, 서비스 등을 사용자가 직/간접적으로 경험하면서 느끼고 생각하는 총체적 경험을 의미한다.
Q. CRUD 방식
정답: 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능(생성, 읽기, 갱신, 삭제를 묶어서 일컫는 말)
Q. 리치 클라이언트(Rich Client) 란?
정답: SW의 실행을 클라이언트에서 책임지는 기술로 서버는 클라이언트에서요청한 SW의 실행 코드를 스트림 형태로 제공한다. 클라이언트에서 PC 자원으로 실행하는 기술
Q. 씬 클라이언트(Thin Client) 란?
정답: 소프트웨어의 실행을 전적으로 서버에서 책임지는 기술이다. 서버에서 가상 머신을 통해 클라이언트의 데이터와 소프트웨어를 실행함.
Q. SSO(Single Sign On) 란?
정답: 한번의 로그인을 통해 여러 다른 사이트들을 자동적으로 접속하여 이용하는 방법
Q. UI 개발을 위한 주요 기법
정답:
3C 분석: 고객(Customer), 자사(Company), 경쟁사(Competitor)를 비교하여 경쟁에서 이기는 방법을 분석
SWOT 분석: 기업의 내부와 외부 환경을 분석하여 Strength(강점), Weakness(약점), Opportunity(기회), Threat(위협) 요인을 규정하여 전략을 수집하는 방법
시나리오 플래닝: 불확실성이 높은 상황 변화를 사전에 예측하여 다양한 시나리오를 설계하는 방법
사용성 테스트: 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행하고 질문에 답하는 테스트
워크숍(Workshop): 소집단 정보의 인원으로 특정 문제나 과제에 대한 새로운 지식, 기술, 아이디어, 방법들을 서로 교환하고 검토하는 세미나
Q. 프로파일(Profile)이란?
정답: 어떤 시스템을 일정 범위 내에서 한정적으로 특징 지우는 그룹화된 값이다.
Q. 리서치(Research)란?
정답: 지식에 대한 탐구를 기반으로 한 인간 활동이다.
Q. 브레인스토밍이란?
정답: 집단적 창의적 발상 기법이다. 자발적으로 자연스럽게 제시된 아이디어 목록을 통해서 해답을 찾는다.
Q. 요구사항 매트릭스(Requirement Matrix)란?
정답: 다양한 경로를 통해 수집된 직접적인 요구사항을 검토하여 페르소나의 목적을 통해 데이터, 기능, 제품 품질 등을 명시한 요구사항 표
Q. 정황 시나리오란?
정답: 요구사항 정의에 사용되는 초기 시나리오를 말하며, 높은 수준, 낙관적이면서도 발생 상황에서 이상적인 시스템 동작에 초점을 맞추는 시나리오이다.
Q. CSS(Cascading Style Sheet) 란?
정답: HTML 문서를 스타일링하는 언어이다.
Q. 스토리보드란?
정답: UI 화면 설계를 위해서 정책이나 프로세스 및 콘텐츠의 구성, 와이어 프레임, 기능에 대한 정의 등 서비스를 위한 대부분 정보가 수록된 문서이다.
Q. UI 화면 설계 구분
정답:
와이어 프레임: 이해관계자들과 화면구성을 협의할 때 화면 단위의 레이아웃을 설계하는 작업
스토리보드: 정책, 프로세스, 콘텐츠 구성, 와이어 프레임 등 모든 정보가 담겨 있는 설계 산출물
프로토타입: 정적인 화면으로 설계된 와이어 프레임 또는 스토리 보드에 동적 효과를 적용하여 실제 구현된 것처럼 시뮬레이션 할 수 있는 모형
Q. 시스템 외부에 있고 시스템과 상호작용하는 사람 또는 시스템을 의미하는 말
정답: 액터(Actor)
Q. 유스케이스(Usecase) 란?
정답: 시스템이 액터에게 제공해야 하느 기능으로 시스템 요구사항이자, 사용자 입장에서 기능이다.
Q. ( )는 자바(JUnit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크이다.
정답: xUnit
Q. STAF 란?
정답: 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크이다.
Q. 인터페이스 구현 검증도구 중 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크이다.
정답: FitNesse
Q. 인터페이스 구현 검증도구 중 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크이다.
정답: Selenium
Q. 실제 제품이 나오기 전 만드는 모형(비용 절감의 목적)
정답: 목업
Q. watir란?
정답: 루비 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅이 가능한 프레임워크다.
Q. 스카우터(SCOUTER) 란?
정답: 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능을 제공하는 인터페이스 도구이다.
7. 애플리케이션 테스트 관리
Q. 테스트 커버리지(Test Coverage)란?
정답: 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준이다.
Q. 소프트웨어 테스트 원리
정답:
1. 테스팅은 결함이 존재함을 밝히는 것
2. 완벽한 테스팅은 불가능
3. 개발 초기에 테스팅 시작
4. 결함 집중: 20%의 모듈에서 80%의 결함이 발견됨 - 파레토 법칙
5. 살충제 패러독스: 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함.
6. 테스팅은 정황에 의존적
7. 오류-부재의 궤변: 요구사항을 충족시켜주지 못하면, 결함이 없어도 품질이 낮은 것이다.
Q. 동료검토란?
정답: 2~3명이 진행하는 리뷰의 형태로 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태의 검토 기법이다.
Q. 워크스루(Walk Through)란
정답: 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 오류를 검출하고 문서화하는 기법이다.
Q. 인스펙션(Inspection) 이란?
정답: 스프트웨어 요구, 설계, 우너시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 기법이다.
Q. 동적 테스트 유형
정답: 동적 테스트, 화이트박스 테스트, 블랙박스 테스트
Q. 정적 테스트 유형
정답: 동료검토, 워크스루, 인스펙션
Q. 블랙박스 테스트란?
정답: 프로그램 외부사용자의 요구사항 명세를 보면서 수행하는 테스트
Q. 화이트박스 테스트란?
정답: 프로그램 내부 로직을 보면서 수행하는 테스트이다.
Q. 테스트 종류에 따른 분류
정답: 명구경
명세 기반 테스트: 프로그램의 요구사항 명세서를 기반으로 테스트하는 기법
구조 기반 테스트: 소프트웨어 내부 논리 흐름에 따라 테스트하는 기법
경험 기반 테스트: 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 수행하는 기법
Q. 테스트오라클이란?
정답: 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법
Q. 테스트 오라클 종류
정답:
참 오라클: 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출할 수 있는 오라클
샘플링 오라클: 특정한 몇 개의 입력값에 대해서만 기대하는 결과를제공해 주는 오라클
휴리스틱 오라클: 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클
일관성 검사 오라클: 애플리케이션 변경이 있을 때, 수행 전과 후의 결괏값이 동일한 지 확인하는 오라클
Q. V모델이란?
정답: SW 생명주기 각 단계별로 개발자 관점에서의 공정 과정상 검증과 사용자 관점에서의 최종 산출물에 대한 확인을 지원하기 위한 테스트 모델이다.
Q. 애뮬레이션(emulation)이란?
정답: 한 컴퓨터가 다른 컴퓨터처럼 똑같이 작동하도록 소프트웨어나 마이크로 프로그래밍을 사용하는 기법이다.
Q. VLAN이란?
정답: 논리적으로 분할된 스위치 네트워크나 가상 기능을 가진 LAN 스위치 또는 ATM 스위치를 사용해서 물리적인 배선에구애받지 않고 브로드캐스트 패킷이 전달되는 범위를 임의로 나누는 네트워크 기술이다.
Q. 하향식 통합이란?
정답: 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하면서 테스트를 진행하는 방법. 깊이 우선, 너비 우선 방식으로 통합된다.
Q. 모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈은?
정답: 스텁(stub)
Q. 상향식 통합이란?
정답: 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행한다.
Q. 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈이다.
정답: 드라이버(Driver)
상향식 및 하향식 통합 수행 방식
하스 상드(하향식/스텁 - 상향식/드라이버)
Q. 모든 모듈을 동시에 통합 후 테스트 수행하는 방법
정답: 빅뱅 테스트(드라이버. 스텁 없이 실제 모듈로 테스트)
Q. 테스트 커버리지란?
정답: 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준
Q. 테스트 커버리지 유형
정답:
기능 기반 커버리지 - 애플리케이션 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정
라인 커버리지 - 애플리케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 라인 수를 측정하는 방법
코드 커버리지 - 소스 코드의 구문, 조건, 결정 등 구조 코드 자체가 얼마나 테스트 되었는지 측정하는 방법
코드 커버리지에서
구문 커버리지
결정 커버리지(전체 조건식이 참/거짓을 만족하면 됨)
조건 커버리지(적어도 한 번은 참, 겂의 결과가 있어야 함)
조건/결정 커버리지(전체 조선식 뿐만 아니라, 개별 조건식도 최소한으로 참 한번, 거짓 한번 결과가 되도록 수행하는 커버리지이다.)
Q. 결함 심각도별 분류
정답: 치명적 - 주요 - 보통 - 경미한 - 단순 결함
치명적(기능 방해)이랑 단순(외관상 보기 좋지 않음) 위주로 암기
Q. 결함 우선순위
정답: 결정적 - 높음 - 보통 - 낮음
Q. 애플리케이션 성능 지표
정답:
처리량: 주어진 시간에 처리하는 양
응답 시간: 사용자 입력 끝난 후부터 출력되는 시간
경과 시간: 사용자 입력 시점부터 출력되는 시간
자원 사용률: 트랜잭션을 처리하는 동안 사용하는 CPU, 메모리, 네트워크 사용량
Q. LDAP 이란?
정답: TCP/IP 위에엇 조직화되고 비슷한 특성을 가진 객체들의 모임인 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이다.
Q. 스크립트(Script)란?
정답: 컴파일(Compile)하지 않고도 실행할 수 있는 프로그램이다.
Q. Ramp-up load란?
정답: 한계점의 측정을 목적으로 낮은 수준의 부하부터 높은 수준의 부하까지 예상 트래픽을 꾸준히 증가시키며 진행하는 부하 테스트
Q. 클린코드 유형
정답: 의미 있는 이름, 간결하고 명확한 주석, 보기 좋은 배치, 작은 함수(함수는 가급적 작게)
Q. 나쁜 코드 유형
정답: 오염, 문서 부족, 의미 없는 이름, 높은 결합도
8. SQL 응용
Q. 절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어이다.
정답: 프로시저
Q. 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어로서, SELECT, INSERT, UPDATE, DELETE 명령이 존재한다.
정답: 데이터 조작어(DML: Data Manipulate Language)
Q. 프로시저의 구성요소를 작성하시오
정답: Declare - Begin/End - Control - SQL - Exception - Transaction(디비컨 SET)
Q. 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다는 소프트웨어 테스트 원리
정답: 살충제 패러독스
Q. 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없다는 소프트웨어 테스트 원리
정답: 오류-부재의 궤변
Q. 정적 테스트의 유형으로 검토 요청 발생 시 요구사항, 소스 코드, 테스트 유형으로 진행하는 비정형적 테스트
정답: 워크스루
Q. 정적 테스트의 유형으로 개발단계별 산출물을 검토하기 위한 공식적인 검토 기법
정답: 인스펙션
Q. DBMS에서 제공되는 공통적 함수 이외에 사용자가 직접 정의하고 작성하는 함수
정답: 사용자 정의 함수
Q. 사용자 정의 함수의 구성 요소
정답: 디비컨 SER (프로시저와 다르게 마지막 Transaction 대신 Return)
Q. 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생하면 DBMS에서 자동적으로 실행되도록 구현된 프로그램이다
정답: 트리거
Q. 트리거의 구성
정답: 디이(Event)비컨 SE
Q. ( )은 블랙박스 테스트 유형에 속하며, 등가분할 후 경계 값 부분에서 오류 발생 확률이 높기에 경계 값을 포함하여 테스트 케이스를 설계하는 기법
정답: 경계 값 분석 테스트
Q. ( )은 변경 또는 수정된 코드에 대하여 새로운 결함 발견 여부를 평가하는 테스트로 유지보수 시 많이 사용되는 테스트이다.
정답: 회귀 테스트
Q. ( )은 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트 기법이다.
정답: 구조 기반 테스트
Q. ( )은 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
정답: 테스트 오라클
Q. ( )은 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해 주는 오라클이다.
정답: 샘플링 오라클
데이터 분석 함수에 대해서
Q. 여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
정답: 집계 함수
Q. 소그룹 간의 소계 및 중계 등의 중간 합계 분석 데이터를 산출하는 함수
정답: 그룹 함수
Q. 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능
정답: 윈도 함수
Q. 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계
정답: 인수 테스트
Q. 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 치계적인 테스트 기법
정답: 통합 테스트
Q. 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈로 상향식 통합에 사용된다.
정답: 드라이버(Driver)
Q. 모든 모듈을 동시에 통합 후 테스트를 수행하는 방식으로 드라이버/스텁 없이 실제 모듈로 테스트하는 방식
정답: 빅뱅 테스트
Q. 테스트 장치 구성요소 중 하나로 사용자의 행위를 조건부로 사전에 입력해 주면, 그 상황에 예정된 행위를 수행하는 객체
정답: 목 오브젝트(Mock Object)
Q. 의사결정 지원 시스템으로, 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와주는 기술
정답: OLAP(Online Analytical Processing)
Q. 결함 우선순위를 작성하시오
정답: 결정적(Critical) > 높음(High) > 보통(Medium) > 낮음(Low)
Q. 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
정답: 처리량(Throughtput)
Q. 애플리케이션 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간
정답: 응답 시간(Response Time)
Q. 초당 처리 건수를 의미하는 서비스 성능 지표
정답: TPS(Transaction Per Second)
Q. 다른 개발자가 로직(Logic)을 이해하기 어렵게 작성된 코드
정답: 나쁜 코드(Bad Code)
Q. JDBC를 fullname으로 서술하시오
정답: Java DataBase Connectivity
Q. MyBatis의 장점은 무엇인가요?
정답: 복잡합 JDBC 코드를 단순화할 수 있다. SQL을 거의 그대로 사용가능하다. 성능이 우수하다
Q. 잘 작성되어 가독성이 높고, 단순하며, 의존성을 줄이고, 중복을 최소화하여 깔끔하게 잘 정리된 코드를 말한다.
정답: 클린 코드(Clean Code)
Q. DCL의 유형
정답: GRANT: 사용 권한 부여 / REVOKE: 사용 권한 취소
9. 소프트웨어 개발 보안 구축
Q. 설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법이다.
정답: 시큐어 코딩
Q. 해킹 등 외부 공격으로 시스템의 보안정책을 침해하는 보안사고의 실제 원인이 되는 시스템상의 보안 허점
정답: 보안 취약점
Q. 보안 취약점의 근본적인 원인이 되는 SW의 결함, 실수, 버그 등의 오류를 뜻하는 말은?
정답: 보안 약점(Weakness)
Q. DoS와 DDoS의 차이점
정답: DoS는 직접 공격하고, 한 사람에 의해 공격을 감행하는 한편, DDoS는 공격하도록 지시하는 역할이고 수많은 감염 호스트를 통해 공격을 감행한다.
Q. 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법
정답: 랜드어택(Land Attack)
Q. 프로토콜의 오류 제어를 이용한 공격기법으로서 시스템의 패킷 재전송과 재조립 과부하를 유발
정답: 봉크/ 보잉크(Bonk / Boink)
Q. IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 DoS 공격
정답: 티어 드롭(Tear Drop)
Q. 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 암호화 알고리즘
정답: AES(Advanced Encryption Standard)
Q. 56bit의 키를 이용, 64bit의 평문 블록을 64bit의 암호문 블록으로 만드는 블록 암호 방식의 미국표준 암호화 알고리즘이다.
정답: DES(Data Encryption Standard)
Q. 128bit 대칭 키 암호화 알고리즘
정답: SEED
Q. 암호키를 교환하는 방법으로서 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방식
정답: 디피-헬만(Dffie-Hellman)
Q. 소인수 분해의 어려움을 이용한 비대칭 키 암호 알고리즘
정답: RSA(Rivest Shamir Adleman)
Q. 미국 국가 표준으로 지정된 해시 암호화 알고리즘이다.
정답: SHA(Secure Hash Algorithm)
Q. MD4를 대체하기 위해 고안한 128bit 해시 암호화 알고리즘
정답: MD5
Q. 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘
정답: 일방향 암호화
Q. 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기빌성을 보장하는 공개키 기반의 보안 프로토콜
정답: SSL(Secure Socket Layer)
Q. 사용자 정보를 유지를 위한 질의 및 디렉터리 서비스를 수정하기 위한 인터넷 프로토콜
정답: LDAP(Lightweight Directory Access Protocol)
Q. 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열
정답: 솔트(Salt)
Q. TCP 신뢰성 기반의 연결을 이용한 공격 방법으로, 통신 내용을 엿보거나, 세션을 가로채어 정상적인 인증 과정을 무시하고, 불법으로 시스템에 접근할 수 있는 공격이다.
정답: 세션 하이재킹(Session Hijacking)
Q. 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경으로 저장하고 재구성할 수 있는 포맷으로 변환하는 과정
정답: 직렬화(serialization)
Q. JSP 표준 태그 라이브러리의 약어로, JSP에서 제공하는 태그 등을 지원한다.
정답: JSTL(JSP Standard Tag Library)
Q. 특정 패스워드를 풀기 위해 임의의 무자 조합을 하나씩 대입해보는 공격기법이다. 반복된 인증 시도 제한이 없을 때 취약하다.
정답: 무차별 공격
Q. 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법
정답: 스니핑(Sniffing)
Q. 임계영역(프로그램상에서 동시에 실행될 경우 문제를 일으킬 수 있는 부분)을 가진 스레드들의 실행 시간이 서로 겹치지 않게 각각 단독으로 실행되게 하는기술
정답: Mutex(Mutual exclusion)
Q. 도메인 이름과 IP 주소를 서로 변환하는 역할을 수행하는 서비스
정답: DNS
Q. 프로그램을 작성하기 위한 일련의 서브 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양
정답: API(Application Programming Interface)
Q. 웹페이지의 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도할 수 있는 공격기법
정답: XSS(크로스사이트 스크립트)
Q. 패드워드의 변경주기는 최소 ( ) 개월마다 변경한다.
정답: 6
Q. SW를 실행하지 않고 보안 약점을 분석하는 방법
정답: 정적 분석
11. 응용 SW 기초 기술 활용
Q. 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간 구조
정답: 자료구조
Q. 자료들 사이의 선후 관계가 계층 또는 그물 형태를 가지는 구조
정답: 비선형구조
Q. CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품을 가상 메모리 주소를 실제 메모리 주소로 변환하는 장치
정답: MMU(Memory Management Unit)
Q. 메모리 관리 기법
정답: 반입 기법, 배치 기법, 할당 기법, 교체 기법(반배할교)
Q. 프로세스 상태
정답: 생성 - 준비 - 실행 - 대기 - 완료
Q. CPU가 현재 실행하고 있느 프로세스의 문맥 상태를 PCB에 저장하고 다음 프로세스를 가져오는 작업
정답: Context Switching
Q. 선점형 프로세스 스케쥴링(계산식)
정답: 라운드 로빈, SRT, 다단계 큐, 다단계 피드백
Q. 비선점형 프로세스 스케쥴링(계산식)
정답: 우선순위, 기한부, FCFS, SJF
Q. 시스템 부하가 많아서 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상
정답: 기아 상태(Starvation)
Q. 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
정답: 가상화(Virtualization)
Q. 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
정답: 하이브리드 클라우드
Q. 클라우드 컴퓨팅 유형
정답: IaaS, PaaS, SaaS
Q. ERD는 업무 분석 결과로 도출된 실체와 엔티티 간의 관계를 도식화한 다이어그램
정답: ERD(E-R Diagram)
Q. 트랜잭션 제어
커밋(Commit): 트개잭션 확정 - 트랜잭션을 메모리에 영구적으로 저장
롤백(Rollback): 트랜잭션 취소 - 트랜잭션 내역을 저장 무효화시킴
체크포인트(CheckPoint) - 저장 시기 설정 - 롤백을 위한 시점을 지정
Q. 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스
정답: 온톨로지(Ontology)
Q. 온톨로지를 활용하여 서비스를 기술하고, 온톨로지의 의미적 상호운용성을 이용해서 서비스 검색, 조합, 중재 기능을 자동화하는 웹
정답: 시맨틱 웹(Semantic Web)
Q. 대량의 텍스트 데이터로부터 패턴 또는 관계를 추출하여 의미 있는 정보를 찾아내는 기법
정답: 텍스트 마이닝
Q. 웹으로부터 얻어지는 방대한 양의 정보로부터 유용한 정보를 찾아내기 위하여 분석하는 기법
정답: 웹 마이닝
Q. 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
정답: 데이터 마이닝
Q. 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신 규약
정답: 프로토콜
Q. 프로토콜의 기본요소
정답: 구문, 의미, 타이밍
Q. 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식
정답: 멀티캐스트
Q. 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 트래픽 또는 메시지를 전송하는 전송 기술
정답: 유니캐스트
Q. 하나의 송신자가 같은 서브 네트워크 상의 모든 수신자에게 데이터를 전송하는 전송 기술
정답: 브로드캐스트
Q. 단일 송신자로부터의 데이터그램들을 토폴로지 상의 잠재적인 수신자 그룹 안에서 가장 가까운 노드로 연결시키는 전송 기술
정답: 애니캐스트
Q. IPv4 와 IPv6의 전송방식
IPv4: 유멀브
IPv6: 유멀애
Q. 컴퓨터 네트워크와 통신의 방식 중 하나로 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식
정답: 패킷 스위칭
Q. 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
정답: X.25
Q. 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식
정답: 서킷 스위칭
Q. 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 구축하는 방식
정답: 온프레미스 방식
Q. 수학 표기법을 나타내기 위한 목적으로 생성되었고, 트리 자료구조, 가비지 컬렉션과 같은 개념을 제시한 함수형 언어
정답: 리스프(LISP)
Q. 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템
정답: CDN(Contents Delivery Network)
'IT' 카테고리의 다른 글
STS4 기본 웹페이지 설정 (0) | 2020.10.21 |
---|---|
내가 보려고 만든 코딩테스트 필살기 리스트 - Henry's Algorithm (0) | 2020.10.14 |
모두에게 도움 되는 코딩테스트 출제 유형 모음 (0) | 2020.10.07 |
랜섬웨어(Ransomware)와 디도스(DDOS) - Henry's Security (0) | 2020.09.11 |
논리 테이블과 물리 테이블 차이 (0) | 2020.09.10 |