본문 바로가기
NOTE/정보처리기사

[정보처리기사] 2020년 1회차 리뷰

by KIMECK 2021. 4. 15.
728x90
반응형

1. S/W 테스트 관련하여 살충제 패러독스 

 

원리1 - 테스팅은 결함이 존재함을 밝히는 활동

 SW 테스팅에 대해 결함을 찾아 위험을 감소하는데 의미를 두고 있는데..

만약 결함을 못찾는경우라도 SW 결함이 없다고 100% 증명할 수는 없다고 봐야한다.

버그는 반드시 있는법

 

원리2 - 완벽한 테스팅은 불가능

 매우 간단한 SW를 제외하고는 모든 가능성에 대해 테스팅은 불가능에 가깝기 떄문에,

완벽한 테스팅보다는 리스크분석과 우선순위를 토대로 테스팅하는데 집중해야 한다.

 

원리3 - 테스팅을 개발 초기에 시작

 개발 수명주기 중 초기단계에서 테스트 활동을 하면 초기에 결함이 발견하여 위험에 방지 할수 있다.

 

원리4 - 결함집중

 테스팅에 대한 리소스는 SW의 각 모듈별로 추정되는 기능과 차후 관찰된 결함 밀도에 따라 분배해야하는데,

보통 대다수의 결함은 소수 특정 모듈에 집중되어 결함이 발생되는 경우가 많다고 한다.

 

원리5 - 살충제 패러독스(Pesticide paradox)

살충제 패러독스란 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을수 없다 라는 걸 의미한다.

말 그대로 A와 B중 A에 대한 모듈을 100번 반복해서 테스팅을 모두 완료하였다라고 볼수 없으며,

A와 B를 혼합하여..그리고 B에 대한 모듈도 동일하게 테스팅을 해야 잠재적인 결함을 발견 할 수 있다.

따라서 테스트 케이스를 작성한데 이 부분에 대해 고려를 해야한다.

 

원리6 - 테스팅은 정확(Context)에 의존적

 테스팅은 정황에 따라 진행되는데 예를 들어 안전-최우선 SW를 테스트하는 경우 전자상거래 사이트를 테스트할때와 다른 방식으로 진행해야 한다. SW 종류에 따라 테스팅도 영향을 받는다.

 

원리7 - 오류 부재의 궤변

개발이 완료된 시스템이 사용자의 필요와 기대에 부응하지 못하고 사용성이 현저히 낮다 결함을 찾고 수정하는 과정은 아무 소용이 없다. 말 그대로 사용하는 사람이 없는데 테스팅을 해보았자 무슨소용이 있는가? 라는 원리


2. 데이터 마이닝 

  - 데이터에서 의미있는 정보를 추출 하는 작업

3. 프로토콜 3요소

 - 구문(Syntax), 의미(Semantic), 타이밍(timing)

4. HTML 문법의 다목적 언어

  - XML

5. 속성-값 쌍으로 이뤄졌고, XML을 대체한다

  - JSON 

6. SQL 튜플 갯수 

  - Select count(*) from table ;

   ( SELECT, DISTINCT, COUNT ) 공부 

   DISTINCT - https://epdl-studio.tistory.com/32

7. HRRN 우선 순위 계산식 (운영체제) 

  - 비선점 스케줄링 : 짧은 작업에 유리한 SJF의 단점을 개선 한 기법, 각 작업의 우선순위로 서비스 해주는 스케줄링

                           이미 할당된 CPU 를 다른프로그램이 강제로 빼앗아 사용할 수 없는 방법

  - 우선순위 : (대기시간+서비스시간)/서비스시간 (혹은 처리시간)

       B의 우선순위 : (40+20)/20=3

       C의 우선순위 : (15+45)/45=1.3333

       D의 우선순위 : (20+20)/20=2


8. 트랜잭션 4가지 특징(AICD) 

  - 원자성 , 일관성, 고립성, 지속성 


9. LAND 공격 

  - IP 스푸핑을 이용한 SYN 공격으로 공격자는 피공격자의 IP주소로 출발주소를 변경한 TCP SYN 패킷을 보낸다

    그리고 패킷을 받은 시스템은 TCP SYN-ACK 를 자신에게 보내고 유휴시간제한까지 빈 연결을 만든다.

    이런 과정을 반복하면 빈 연결이 누적되어 시스템이 범람하고 이로인해 해당 시스템이 서비스 거부상태가 되는 기법이다.

    ( 패킷의 출발지와 목적지의 IP 주소를 피공격자와 동일하게 변조한다는 것이 핵심 > 자원을 스스로 소모시키는 공격 ) 

 

10. MD4를 대체하는 128비트 암호화 해시 함수

  - MD5 

     // SHA ( 안전한 해시 알고리즘 ) : SHA-1 은 SHA 함수들 중 가장 많이 쓰이며 MD5를 대신해 쓰이기도 했다.

     // SHA-256 : 현재 가장 많은 분야에서 채택하여 사용되고 있는 암호방식.

                      출력속도가 빠르다는 장점을 갖고있고 단방향성의 성질을 띄고있는 암호화 방법으로 복호화가 불가능하다 .

                      속도가 빨라 인증서, 블록체인 등으로 많이 사용되고 상용화 되어있다.


11. 모듈 설계시 (결합도)를 낮추고 (응집도)를 높인다. 

   - 모듈간 결함도 최소화 요소간 응집도 최대화


12. C언어로 작성된 버블 정렬 
13. JAVA 언어로 작성된 배열 결과 (0 1 2 3)
14. C언어 switch ~ case 결과 입력

  - Switch (변수) { case 값1 : 실행문 break; case 값2 ~~ } 


15. 제품 패키지 관련 문제 > 문서이름, 제품이름,버전번호, 릴리즈 날짜 등이 있는 항목

  - 헤더 

   // 개요 : 제품 및 변경에 대한 간략한 전반적 개요

      목적 : 릴리즈 버전의 새로운 기능목록과 릴리즈에 목적에 간략한 개요. 버그 수정 및 새로은 기능 기술 

      이슈요약 : 버그의 간단한 설명 or 릴리즈 추가항목 요약

      재현항목 : 버그 발견에 따른 재현단계 기술

      노트 : SW 및 HW install 항목, 제품, 문서를 포함한 업그레이드 항목 메모

      면책조항 : 회사 및 표준제품과 관련된 메시지. 프리웨어, 불법 복제 방지 등 참조에 대한 고지사항


16. LoC 기법 관련 문제 (비용 산정 기법)

  - 하향식(전문가 감정/델파이 기법) / 상향식 ( LO / LOC )

    LOC : 예측치를 구하고 이를 이용해 비용을 산정하는 기법 

    예측치 = ( a + 4m +b ) / 6 

         ( a:낙관치, b:비관치, m:기대치)

     https://yoonwould.tistory.com/5

 ex> - 개발비용 = 노력(인월) * 단위비용(1인당평균인건비)

       - 생산성 = LOC / 노력(인월) 

       - 노력(인월) =개발기간 * 투입인원

                       =  LOC / 1인당 월 생산코드 라인수 = 30,000/ 300 = 100명

       - 개발 기간 = 노력(인월) / 5 = 100 / 5 = 20개월 

         생산성 = 30,000 / 100 = 300 라인 

        
17. OSI 7계층 중 비트 전송 계층

  - 물리 계층


18. 어플리케이션 성능 측정 지표

  - 처리량/응답시간/경과시간


19. 비정규화 개념

  -  조회 성능을 향상시키기 위해 데이터를 중복하거나 그룹핑하는 과정을 의미한다.

     정규화된 데이터모델이 시스템의 성능 향상, 개발과정의 편의성, 운영의 단순화를 목적으로 수행되는 의도적인 정규화 원칙 위배 행위.

     반정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가하는 장점이 있으나, 데이터의 일관성 및 정합성 저하와

     유지를 위한 비용이 별도로 발생하여 과도할 경우 오히려 성능에도 나쁜 영향을 미칠 수 있음 .

  <-> 정규화 : 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다

   https://gist.github.com/singun/bdceaa99ad61ee1296204454f797d579

 

20. 주어진 그래프에서 Fan-in 개수가 2인 모듈 : V

 

 

 

 

출처 :

https://cafe.naver.com/mskit/183 

https://cafe.naver.com/mskit/302

 

 

 

 

 

 

728x90
반응형

댓글