포스트

2020 2회

Q. 정보시스템 운영 중 서버가 다운되거나 자연재해나 시스템 장애 등의 이유로 고객에게 서비스가 불가능한 경우가 종종 발생한다. 이와 같은 상황에서 비상사태 또는 업무중단 시점부터 업무가 복구되어 다시 정상 가동될때까지의 시간을 의미하는 용어가 무엇인지 쓰시오.

재해 복구 시간 or RTO(Recovery Time Objective)

  • 재해 복구 시간(RTO)는 비지니스 연속성 계획(BCP)의 주요 용어로, 정보시스템 운영 중 서버가 다운되거나 재해나 시스템 장애 등 비상사태 또는 업무중단 시점부터 업무가 복구되어 다시 정상 가동될 때까지의 시간을 의미한다.
  • 비지니스 연속성 계획(BCP)의 주요 용어는 다음과 같다.
    • BIA(Business Impact Analysis)
      • 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비지니스 영향 분석
    • RTO(Recovery Time Objective)
      • 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
      • 재해 시 복구 목표 시간의 선정
    • RPO(Recovery Point Objective)
      • 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터 손실 허용 시점
      • 재해 시 복구 목표 지점의 선정
    • DRP(Disaster Recovery Plan)
      • 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
    • DRS(Disaster Recovery System)
      • 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터

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

{‘중국’, ‘한국’, ‘베트남’, ‘홍콩’, ‘태국’}

1
2
3
4
5
6
a={'일본','중국','한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩','한국','태국'})
print(a)
  • 세트는 집합이므로 출력 순서와 무관하며 중복된 값은 무시된다.

Q. 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법이며, 하이퍼텍스트 표기 언어(HTML)만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호작용할 수 있도록 하는 기술명을 쓰시오.

비동기 통신 기법 or AJAX(Asynchronous JavaScript and XML)

  • AJAX는 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법이다.
  • 하이퍼텍스트 표기 언어(HTML)만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호작용할 수 있도록 하는 기술이다.

Q. 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론으로, 개발 기간이 짧고 신속하며, 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론은 무엇인가?

애자일(방법론) 또는 Agile

  • 애자일 방법론은 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론이다.
  • 소프트웨어 개발방법론의 종류는 다음과 같다.
    • 구조적 방법론(Structured Development)
      • 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
      • 프로세스 중심의 하향식 방법론
      • 구조적 프로그래밍 표현을 위해 나씨-슈나이더만(Nassi-shneiderman) 차트 사용
        • 나씨-슈나이더만 차트 특징
          • 논리의 기술에 중점을 둔 도형식 표현 방법
          • 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현
          • 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합
    • 정보공학 방법론(Information Engineering Development)
      • 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
      • 개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론
      • 기업의 주요 부분을 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합, 적용하는 데이터 중심 방법론
      • 빠른 결과물 확인이 가능하며 단순 SW 개발이 아닌 기업의 경영전략에 초점을 둔다.
    • 객체지향 방법론(Object-Oriented Development)
      • ‘객체’라는 기본 단위로 시스템을 분석 및 설계하는 방법론
      • 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론
      • 객체, 클래스, 메시지를 사용
    • 컴포넌트 기반 방법론(CBD; Component Based Development)
      • 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
      • 개발 기간 단축으로 인한 생산성 향상
      • 새로운 기능 추가 쉬움(확장성)
      • 소프트웨어 재사용이 가능
    • 애자일 방법론(Agile Development)
      • 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
      • 애자일은 개발 과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론
    • 제품 계열 방법론(Product Line Development)
      • 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
      • 임베디드 소프트웨어를 작성하는 데 유용한 방법론
      • 영역 공학과 응용 공학으로 구분
        • 영역 공학: 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역
        • 응용 공학: 제품요구분석, 제품 설계, 제품을 구현하는 영역

Q. 다음은 자바 코드이다. 다음 밑줄에 들어갈 키워드를 쓰시오.

new

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Parent
	public void show() {
		System.out.println("Parent");
	}
}
class Child extends Parent {
	public void show(){
		System.out.println("Child");
	}
}
public class Soojebi {
	public static void main(String[] args) {
	Parent pa = ____ Child();
	pa.show();
	}
}
  • 자바는 new 연산자를 이용해 객체를 선언하고 생성자를 호출한다.
  • 자바 객체 생성 문법은 다음과 같다.

    1
    
      클래스 객체변수명 = new 생성자(매개변수);
    

Q. 학생 테이블은 학번(VARCHAR), 이름(VARCHAR), 학년(NUMBER), 수강과목(VARCHAR), 점수(NUMBER), 연락처(VARCHAR)를 속성으로 가진다. 아래 조건을 만족하는 SQL문을 작성하시오.

1
2
3
SELECT 학번, 이름
FROM 학생
WHERE 학년 IN (3, 4);

1) 학생 테이블에서 3, 4학년인 학번, 이름을 조회한다.

2) IN 연산자 사용해야 한다.

이미지

  • WHERE절에서 IN은 다음과 같이 작성한다.

    1
    
      컬럼 IN (1, 2, ...)
    
  • WHERE절 조건은 다음과 같다.

    • 비교
      • =: 값이 같은 경우 조회
      • <>, !=: 값이 다른 경우 조회
      • <, <=, >, >= : 비교 연산에 해당하는 데이터 조회
    • 범위
      • BETWEEN
        • 값1보다 크거나 같고, 값2보다 작거나 같은 데이터 조회
        1
        
          컬럼 BETWEEN 1 AND 2
        
        • 다음과 동일한 결과
        1
        
          컬럼 >= 1 AND 컬럼 <= 2
        
    • 집합
      • IN
        • 컬럼이 IN 안에 포함된 경우의 데이터 조회
        1
        
          컬럼 IN ( 1, 2, ...)
        

        이미지

      • NOT IN
        • 컬럼이 IN 안에 포함되어 있지 않은 경우의 데이터 조회
        1
        
          컬럼 NOT IN (1, 2, ...)
        
    • 패턴
      • LIKE
        • 컬럼이 패턴에 포함된 경우의 데이터 조회
        1
        
          컬럼 LIKE 패턴
        
        %0개 이상의 문자열과 일치
        []1개의 문자와 일치
        [^]1개의 문자와 불일치
        _특정 위치의 1개의 문자와 일치
    • NULL
      • IS NULL
        • 컬럼이 NULL인 데이터 조회
        1
        
          컬럼 IS NULL
        
      • IN NOT NULL
        • 컬럼이 NULL이 아닌 데이터 조회
        1
        
          컬럼 IS NOT NULL
        
    • 복합조건
      • AND
        • 조건1과 조건2를 모두 만족하는 데이터 조회
        1
        
          조건1 AND 조건2
        
      • OR
        • 조건1과 조건2 둘 중 하나를 만족하는 데이터 조회
        1
        
          조건1 OR 조건2
        
      • NOT, !
        • 조건에 해당하지 않는 데이터 조회
        1
        
          NOT 조건
        

Q. 트랜잭션 Rollback에 대해 설명하시오.

트랜잭션 Rollback은 트랜잭션 처리 중 오류 발생 시, 오류 이전의 특정 시점(SAVEPOINT, CHECKPOINT) 상태로 되돌려주는 제어어(명령문)이다.

  • TCL(Transaction Control Language)은 트랜잭션 제어언어이며 명령어는 다음과 같다. [커롤체]

    명령어설명
    커밋(COMMIT)트랜잭션 확정. 트랜잭션을 메모리에 영구적으로 저장하는 명령어
    롤백(ROLLBACK)트랜잭션 취소. 트랜잭션 내역을 저장 무효화시키는 명령어
    체크 포인트(CHECKPOINT)저장 시기 설정. ROLLBACK을 위한 시점을 지정하기 위한 명령어

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

IPSec(Internet Protocol Security)

  • IPSec는 IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜이다.
  • IPSec의 주요 프로토콜은 다음과 같다.
    • 인증(AH) 프로토콜(Authentication Header)
      • 메시지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해주는 프로토콜로 기밀성(암호화)은 제공하지 않는 프로토콜
      • 무결성, 인증 제공
    • 암호화(ESP) 프로토콜(Encapsulation Security Payload)
      • 메시지 인증 코드(MAC)와 암호화를 이용하여 인증과 송신처 인증과 기밀성을 제공하는 프로토콜
      • 기밀성, 무결성, 인증 제공
    • 키 관리(IKE) 프로토콜(Internet Key Exchange)
      • Key를 주고받는 알고리즘
      • 공개된 네트워크를 통하여 Key를 어떻게 할 것인가를 정의, IKE 교환을 위한 메시지를 전달하는 프로토콜

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

정적 분석 도구

  • 테스트 자동화 도구 중 정적 분석 도구는 만들어진 애플리케이션을 실행하지 않고 분석하는 도구이다.
  • 대부분의 경우 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용한다.
  • 테스트를 수행하는 사람이 작성된 소스 코드에 대한 이해를 바탕으로 도구를 이용해 분석하는 것을 말한다.

Q. 다음 보기가 설명하는 패턴을 쓰시오. (영문 Full-Name으로 작성하시오)

Observer Pattern

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대 다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인


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

안드로이드(Android)

  • 안드로이드의 특징은 다음과 같다.
    • 리눅스 기반
      • 안드로이드는 리눅스 커널 위에서 동작
    • 자바와 코틀린 언어
      • 고수준 언어를 사용해 응용 프로그램을 작성
      • 생산성이 높으며 전문 지식이 없어도 개발 가능
    • 런타임 라이브러리
      • 컴파일된 바이트 코드 구동 가능
    • 안드로이드 소프트웨어 개발키트(SDK)
      • 응용 프로그램으 개발하는 데 필요한 각종 도구와 API를 제공

Q. STUDENT 테이블의 NAME 속성에 IDX_NAME 이름으로 인덱스 생성하는 SQL문을 작성하시오.

1
CREATE INDEX IDX_NAME ON STUDENT(NAME);

이미지

  • CREATE INDEX는 인덱스를 생성하는 명령어이다.
  • UNIQUE는 생략 가능하고, 인덱스 걸린 컬럼에 중복 값을 허용하지 않는다.
  • 복수 컬럼을 인덱스로 걸 수 있다.
  • CREATE INDEX 문법은 다음과 같다.

    1
    
      CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, 컬럼명2, ...);
    

Q. 다음 설명 중 빈칸에 들어갈 알맞는 용어를 작성하시오.

SOAP(Simple Object Access Protocol)

HTTP, HTTPS SMTP를 통해서 XML 기반의 데이터를 주고받는 프로토콜로 웹 서비스 방식에 HTTP 기반의 ( ) 을/를 사용하여 송수신한다. ( ) 대신 RESTful 프로토콜로 대체할 수 있다.

  • SOAP는 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜이다.
  • HTTP 프로토콜상에 SOAP, Envelope, 헤더(Header), 바디(Body) 등이 추가된 XML 문서로 기본적인 송수신은 HTTP로 수행한다.
  • SOAP은 보통의 경우 원격 프로시저 호출(RPC; Remote Procedure Call)을 하는 메시지 패턴을 사용한다.
  • RPC는 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 미들웨어이다.

Q. SQL Injection이 무엇인지 서술하시오.

SQL Injection은 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법이다.

  • 입력 데이터 검증 및 표현에 대한 취약점은 아래와 같다.

    취약점설명
    XSS(Cross Site Scripting)검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격
    사이트 간 요청 위조(CSRF)사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
    SQL 삽입(SQL Injection)응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법

Q. 사용자에게 읽기/쓰기/실행 권한을 부여하고 그룹에게는 읽기/실행을 부여하고 그 이외에는 실행 권한을  a.txt에 부여하는 명령어를 한줄로 작성하시오.(8진법을 사용하시오)

chmod 751 a.txt

  • chmod 명령은 기존 파일 또는 디렉토리에 대한 접근 권한을 변경할 때 사용한다.

Q. UI 설계 원칙에서 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작할 수 있어야 한다. 다음 빈칸에 들어갈 특징은 무엇인가?

유효성

직관성(Intuitiveness) - 누구나 쉽게 이해하고 사용할 수 있어야 함

(      )(Efficiency)  - 사용자의 목적을 정확하게 달성하여야 함

학습성(Learnability) - 누구나 쉽게 배우고 익힐 수 있어야 함

유연성(Flexibility) - 사용자의 요구사항을 최대한 수용하며 오류를 최소화해야 함


Q. 전 세계 오픈된 정보를 하나로 묶는 방식으로 link data와 open data의 합성어가 무엇인지 쓰시오.

LOD (Linked Open Data)

  • Linked Open Data는 웹상에 존재하는 데이터를 개별 URI(Uniform Resource Identifier)로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 데이터이다.
  • HTTP, RDF, URI 등 웹 표준을 활용해서 데이터를 누구나 자유롭게 활용하고 재생산할 수 있도록 개방한 데이터이다.

Q. 다음은 데이터 모델링 절차이다. 절차에 맞도록 보기에서 찾아 채우시오.

개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링

㉠ 물리적 데이터 모델링

㉡ 개념적 데이터 모델링

㉢ 논리적 데이터 모델링

  • 요구사항 분석 → (  ①  ) → ( ② )  → (  ③  )

  • 데이터 모델링의 절차는 다음과 같다.

    이미지

    이미지


Q. 다음은 자바 코드이다. 출력 결과를 쓰시오.

a=10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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 Soojebi {
	public static void main(String[] args){
		B obj = new B(10);
	}
}

Q. 소프트웨어 개발 과정에서 변경 사항을 관리하는 기법은 (     ) 기법이라고 하며, (      ) 기법을 활용한 도구로는 CVS, SVN, Git 등이 있다. 빈칸에 알맞은 용어를 쓰시오.

형상관리

  • 형상 관리는 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동이다.
  • SW 생명 주기 동안 형상 관리를 통해 산출물을 체계적으로 관리하여 SW의 가시성, 추적성, 무결성 등의 품질 보증을 보장할 수 있다.
  • 형상 관리의 절차는 다음과 같다.
    • 형상 식별
      • 형상 관리 대상을 정의 및 식별하는 활동
      • 추적성 부여를 위해 ID와 관리번호를 부여
      • 변경 관련 이슈 발생 시 ID와 관리번호를 이용하여 추적
    • 형상 통제
      • 형상 항복의 버전 관리를 위한 형상통제위원회 운영
      • 변경 요구 관리, 변경제어, 형상 관리 등 통제 지원
      • 베이스라인에 대한 관리 및 형상 통제 수행 가능
    • 형상 감사
      • 소프트웨어 베이스라인의 무결성 평가
      • 베이스라인 변경 시 요구사항과 일치 여부 검토
    • 형상 기록
      • 소프트웨어 형상 및 변경관리에 대한 각종 수행결과를 기록
      • 형상결과 보고서 작성
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.