티스토리 뷰

1. Agile 방법론

1) 스크럼에서 해당 스프린트가 계획대로 가는지 정해진 목표를 달성하기 위해 팀 차원 조정이 필요한지 알 수 있게 하고, 백로그 대비 남아있는 시간을 확인할 수 있는 도구

=> 번 다운 차트

2) Toyota에서 처음 사용한 시각화 도구로 전체 워크플로를 카드 형태로 나타내고 수행된 활동, 진행 중인 작업 및 보류 중인 활동을 구별할 수 있는 도구

=> 칸반보드

 

2. UML

1) 시스템이 제공하고 있는 기능 및 그 외부 요소를 사용자 관점에서 표현하는 다이어그램

=> 유스케이스 다이어그램

2) 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현하는 다이어그램

=> 활동 다이어그램

 

3. 키

1) 식별자에 의해 엔터티 타입 내 모든 엔터티들이 유일하게 구분하는 키의 특성

=> 유일성

2) 키의 종류 중 릴레이션을 구성하는 모든 튜플에 대해 유일성을 만족하지만 최소성을 만족하지 못하는 키이다.

=> 슈퍼키

 

4. 인터페이스 기술 관련 용어

1) 자바스크립트를 사용하여 웹서버와 클라이언트 간 비동기적으로 2)데이터를 교환하고 조작하기 위한 웹 기술

=> AJAX

2) HTML 단점을 보완한 인터넷 언어로 SGML의 복잡한 단점을 개선한 특수 목적 마크업 언어

=> XML

 

5. 인터페이스 동작 상태를 검증하고 모니터링 할 수 있는 도구

1) 다양한 환경을 지원하는 테스트 프레임워크로 데몬을 사용하여 테스트를 수행하고 통합하며 자동화하는 검증 도구

=> STAF

2) 루비 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능한 도구

=>  watir

 

6. 주요 연계 기술

1) 네트워크를 경유하는 프로세스 간 통신의 접속점으로 클-서 사이에 데이터를 송수신할 수 있다.

=> Socket

2) 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API

=> JDBC

 

7. C언어

#include <stdio.h>
void main( ){
  int low, high;
  int mid;
  int data[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
  int key = 7;
  int count = 0;

  low = 0;
  high = 8;

  while(low <= high){ //0<=배열요소8로 true
	  count++; //1로 증가
	  mid = (low + high) 
	  if(key == data[mid]){ 
		  printf("%d", count);
		  low = high + 1;
	  }
	  else if(key < data[mid]){
		  high = mid - 1;
	  }
	  else{
		  low = mid + 1;
	  }
  }
}

이진 탐색 알고리즘 코드

mid=5(배열요소값)일 때 조건식은 모두 거짓이고 else로 넘어간다. 7==5, 7<5

low=4+1=5

 

mid = 5+8=13/2=6.5=6

key==data[mid] //7=7 true이므로 count++ 2 출력, low=high+1, low=9로 false가 되면서 종료

low high mid.  count

0.     8.      4.       1

5.     8.      6.       2

 

8. C언어

#include <stdio.h>

void main( ){
  int i;
  int sum = 0;
  int arr[5] = {2, 3, 5, 7, 11};
  int *p = arr+2;
  
  for(i=-1; i<2; i++){
  	sum += p[i];
  }

  printf("%d", sum);
}

-1, 0, 1

p[-1] = arr[1] = 3

p[0] = arr[2] = 5

p[1] = arr[3] = 7

p[-1]번지는 p[0]가 가리키는 arr[2]의 앞 데이터인 arr[1]이 된다.

따라서 반복문 돌고 sum에 합한 값을 출력하면 3+5+7=15

 

9. c언어

#include <stdio.h>

void fn(int n){
	if(n > 1)
		fn(n-1);

	printf("%d", n);
}

void main( ){
	fn(4);
}

* main()에서 함수를 호출하고 재귀함수로 자신을 계속 호출할 때 조건식만 타고 대기했다가 조건식을 타지 않는 거짓이 되는 시점부터 printf()가 이루어진다.

 

fn(4) 호출할 때 조건식에 따라 자신을 계속 호출하게 되어 fn(3), fn(2), fn(1) 까지 재귀함수가 끝난 후 순차적으로 실행

fn(4) 호출 printf는 찍지 않고 대기

fn(3) 호출, printf는 찍지 않고 대기

fn(2) 호출, printf는 찍지 않고 대기

fn(1)에서 조건식이 거짓이므로 조건식을 타지 않고 바로 printf로 1을 출력한다.

대기했던 fn(2),fn(3),fn(4)가 순차적으로 실행되면서 2,3,4의 값을 순차적으로 출력한다.

따라서 1234

 

10. JAVA

public class Soojebi{
	public static void main(String[] args){
		System.out.print(("1"+2)+(3+4));
	}
}

"1"+2=12(문자)

3+4=7(숫자)

"12"(문자)+7(숫자)="127"

* 문자열+숫자 = 문자열, 숫자끼리는 숫자로 변환되지만 문자열과 숫자로 연산 시 문자열로 변환되므로 최초 문자열로 변환된 식과 숫자식을 더하면 문자열인 127이 나오게 된다.

 

11. JAVA

public class Soojebi{
	public static void main(String[] args){
		int arr[][][] = new int[2][3][2];
		 
		for (int i = 1; i < 2; i++) {
		    for (int j = i; j < 3; j++) {
		        for (int k = j; k < 2; k++) {
		        	arr[i][j][k] = i * j * k;
		        }
		    }
		}

		for (int i = 0; i < 2; i++) {
		    for (int j = 0; j < 3; j++) {
		        for (int k = 0; k < 2; k++) {
		            System.out.print(arr[i][j][k]);
		        }
		    }
		}
	}
}

* 3중 for문

[첫 번째 for문]

i=1

j=1

k=1

a[1][1][1] = 1

a[1][2][1] = 2 (x) => 0

a[1][1][2] = 배열의 크기만 지정하고 값은 할당하지 않은 0의 상태 (k<2이므로 성립하지 않음)

=> 0

 

[두 번째 for문]

12가지 경우의 수

i=0,1

j=0,1,2

k=0,1 

a[0][0][0] = 0

a[0][0][1] = 0

a[0][1][0] = 0

a[0][1][1] = 0

a[0][2][0] = 0

a[0][2][1] = 0

a[1][0][0] = 0

a[1][0][1] = 0

a[1][1][0] = 0

a[1][1][1] = 1

a[1][2][0] = 0

a[1][2][1] = 0

=> 0(9개)100

 

12. JAVA

class Parent{
  public Parent( ){
    System.out.print("A");
  }
  public Parent(int a){
	System.out.print("B");
  }
  public void fn( ){
    System.out.print("C");
  }
}

class Child extends Parent{
  public Child( ){
	super();
    System.out.print("D");
  }
  public Child(int a){
	super(a);
	System.out.print("E");
  }
  public void fn( ){
    System.out.print("F");
  }
}

public class Soojebi{
  public static void main(String args[]){
    Parent c = new Child(5);
    Parent d = new Child();
    c.fn();
    System.out.print("G");
  }
}

* c객체는 Child 클래스에서 인자 5를 받아 호출하고 있다. super()를 통해 인자값을 가지는 Parent 클래스를 먼저 호출하고 B, 그 다음 Child 클래스의 E를 호출. 그 다음은 기본 생성자의 부모-자식 순의 출력 AD. 마지막으로 호출한 함수는 super 키워드가 없으므로 Child 클래스에서만 출력 FG.

 

P c = new Child(5);

P d = new Child();

c.fn();

//ADBECFG

//BEADFG

 

* 1) 인자가 있는 생성자 2) 기본 생성자 3) 호출한 함수

 

13. Python

for i in range(1, 5):
    for j in range(0, i):
        print('*', end='')
    print()

i=1234 (1부터 5미만)

range(0,1): 0*

range(0,2): 0,1**

range(0,3): 0,1,2***

range(0,4): 0,1,2,3,4****

가로로 찍어주기 위해서 end=''로 개행을 막아주고 다 찍힌 뒤 개행할 수 있도록 print() 마지막 라인에 추가

 

14. C언어

#include <stdio.h>
void main(){
  int a = 0x78;
  int b = 78;

  printf("%d %d", a & b, a || b);
}

비트연산자: 0x78 & 78 = 대응되는 비트가 모두 1이면 1을 반환

16*7+1*8=120(10진수): 16의 1승과 일을 곱해준 값

256 128 64  32 8421 (2의 8승): 10진수를 2진수로 표현

0 0 1 0 0 1 1 1 0

 

논리연산자: 0x78 || 78 = 참과 거짓을 1과 0으로 나타내고 둘 중 하나만 참이어도 참이다.

 

15. C언어

#include <stdio.h>
void main() {
  int a=10;
  switch(++a){
  case 11: printf("B"); case 10: printf("A");  }
}

switch(++10=11)

case11: B //그리고 break가 없기 때문에 다음 순서인 case 10까지 출력해준다.

따라서 BA. break문이 없으면 모든 case문들은 실행되어버린다.

 

16. C언어

#include <stdio.h>
void main() {
  int a[30];
  int i, j, count=0;

  for(i=0; i<30; i++) a[i] = i+1;

  a[0] = 0;

  for(i=2; i<=30; i++){
	  if(a[i-1] == 0)
		  continue;

	  for(j=i+1; j<=30; j++){
		  if(j % i == 0)
			a[j-1] = 0;
	  }
  }

  for(i=0; i<30; i++){
	  if(a[i] != 0)
		  count++;
  }

  printf("%d", count);
}

a[0] = 0 

a[1] = 2

a[29] = 30

 

a[2] = 

a[1] == 0 이 아니므로 continue

돌고돌아 0인 것을 찾으면 a[0]

a[30] =

 

1~30 소수를 찾는 문제: 1이 아닌 다른 수로는 나누어지는 않는 수

 

17. 프로젝트를 성공시키기 위하여 위험 요소를 사전에 예측, 대비하는 모든 기술과 활동을 포함하는 것

- Risk Analysis(Management)

 

18. 보안 시스템을 대상으로 다음 사항을 준수하는 보안 모델

- no read up, no write down

=> 벨라파듈라 모델

 

19. 사물에 센서와 통신 기능을 내장하여 무선 통신으로 각종 사물을 인터넷에 연결하는 기술, 사물인터넷

1) MQTT : 브로커를 사용한 발행/구독 방식의 경량 메시징을 전송하는 프로토콜로 인터넷을 통해 기기를 연결하는 확장성이 뛰어남

2) CoAP : 이벤트에 대한 송수신을 비동기적으로 전송하는 REST 기반의 프로토콜, 제약이 있는 장치들을 특수한 인터넷 애플리케이션 프로토콜로 다양한 범위에서 사용

 

20. 

1) Verification 검증: 개발자 혹은 시험자 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정

2) Validation 확인: 사용자 시각으로 올바른 소프트웨어가 개발되었는지를 입증하는 과정

=> 개발자가 검증(Verification)하고 사용자가 확인(Validation)한다.

 

21.

1) 소프트웨어 아키텍처 : 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템 구조나 구조체

2) 디자인 패턴 : 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 것, 이름, 문제 및 배경, 솔루션, 사례

 

22. 파일을 소유하고 있는 사용자에게 읽기/실행 권한을 부여

chmod 534 b.txt

 

23. 디자인 패턴

1) Visitor: 각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스를 만들어놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴

2) Command : 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

3) Memento : 클래스 설계 관점에서 객체 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴, Undo 기능을 개발할 때 사용

 

24. 구문 커버리지를 만족하는 테스트 케이스

 

25. 시간-주-달

1) RPO: 업무 중단 시점부터 데이터가 복구되어 정상이 될 때까지 데이터의 손실을 허용하는 시점(Recovery Point Objective)

2) Warm Site: 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해복구센터에 보유하고 있는 방식, 수일~수주

- Hot Site: 수시간

- Warm Site: 수일~수주 

- Cold Site: 수주~수개월

 

26.

1) AI: 인간의 지적능력을 컴퓨터가 모방할 수 있도록 하는 소프트웨어

2) 딥러닝 : 능동적인 비지도학습이 결합되어 컴퓨터가 마치 사람처럼 스스로 학습할 수 있는 기술인 ()기반

 

27. 사용자 인터페이스

1) 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스로 유기적 상호 작용 기반 인터페이스

=> OUI

2) UI 품질 요구사항 중 하나, 사용자와 컴퓨터 사이의 행위를 정확하게 인지하기

=> 사용성

 

28. 암호화 알고리즘

1) 타원곡선 군에서 이산대수 문제에 기초한 공개키 암호화 알고리즘: ECC

2) 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법으로 키 분배 방식에 관한 연구의 기본이 되는 알고리즘: 디피-헬만

 

29. 보안 공격

1) ROP(Return Oriented Programming): 메모리에 적재되어 있는 코드 조각들에 return 명령을 사용하여 공격자가 원하는 흐름대로 명령을 실행하도록 하는 공격 기법. 버퍼 오버플로우 같이 취약점을 이용해 프로그램의 실행 흐름을 조작할 때 가장 빈번하게 사용된다.

2) 파밍: 악성 사이트로 연결되어 개인의 금융정보를 훔치는 공격 기법

 

30. 용어

- 각 시스템 간 공유 디스크를 중심으로 클러스터링으로 엮어 다수의 시스템을 동시에 연결

- 조직, 기업의 기간 업무 서버 등의 안정성을 높이기 위해 사용된다.

=> HACMP(High Availability Cluster Multiprocessing)

 

31. 용어

1) 데이터 마이닝: 대량 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법

2) 베이퍼웨어: 실제로 존재하지 않거나 출시되지 않은 제품, 소프트웨어, 하드웨어 등을 말한다.

 

32. 소프트웨어 아키텍처

1) 배포 뷰: 물리적인 시스템을 구성하는 각 부분들의 분산 형태와 설치에 초점을 두는 것(물리적인 배치와 설치)

2) 마스터-슬레이브

-  연산, 통신, 조정을 책임지는 부분과 제어되고 동기화되는 대상인 부분으로 구성되는 패턴

-  슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴

 

33. 보안

1) 제로데이 공격: 보안 취약점이 공표되기 전에 해당 취약점을 악용하여 이루어진 보안 공격 기법으로 이전에 알려지지 않은 취약성을 이용한 사이버 공격

2) 트러스트존: 사이버 공격을 하드웨어적으로 대응하기 위한 기능

 

34. 결함 관리

Defect Deferred

- 결함 보고서에 포함된 결함을 수정하지 않고 나중에 처리하도록 연기된 상태

- 결함의 우선순위를 낮추고 결함을 수정할 수 있도록 계획

 

'정처기 실기' 카테고리의 다른 글

2권 요약  (1) 2024.04.05
수제비 마지막 모의고사  (3) 2023.07.22
정처기 수제비 예상문제1  (0) 2023.07.20
정처기 실기 약술형 정리  (0) 2023.07.18
정처기 실기 단답식 정리 (커서 잡으면 답 나옴)  (0) 2023.07.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함