정처기 22년 3월 5일 기출 오답정리_02
2025. 2. 4. 10:25

[2과목 : 소프트웨어 개발]

 

*클린코드Clean Code 작성원칙

- 가독성 : 이해하기 쉬운 용어

- 단순성 : 한번에 한가지 처리만 수행

- 의존성 : 코드의 변경이 다른 부분에 영향이 없도록

- 중복성 : 중복된 코드 제거. 공통된 코드 사용

- 추상화 : 상세 내용은 하위 클래스에서 구현

 

* 스텁과 드라이버

- 테스트 드라이버 Test Driver

  : 단위 테스트에 테스트 대상이 되는 하위 모듈을 호출하고, 파라미터를 전달하는 가상의 모듈. 상향식 테스트에서 필요 
- 테스트 스텁 Test Stub

  : 하향식 테스트에서 필요

 

* 자료 구조의 분류

- 스택 : LIFO / 인터럽트 처리, 서브루틴 호출 작업

- 큐 : FIFO / 순서 리스트의 뒤에서 노드가 삽입되고 앞에서 노드가 제거됨

- 데크 : 선형 리스트의 양쪽 끝에서 삽입과 삭제가 모두 가능

>> Q. 자료 구조 분류 중 선형 구조가 아닌 것은?

 

* 소스코드 품질 분석 방법 ( >> 리팩토링 하기 위함)

- 동료검토

 : 2~3명이 진행하는 리뷰 형태.

  작성자가 코드를 설명하고 이해 관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행 

- 워크스루 (팀회의 가튼고)

 : 검토 자료를 회의 전에 배포해서 사전검토를 한 후, 짧은 시간동안 회의를 진행

- 인스펙션

: 공식적인 검사 회의. 작업자 외 다른 전문가가 검사. 정적 테스트(프로그램 실행X)

 

*소프트웨어 재공학 (3R)

- 역공학 Reverse Engineering : 기존 소프트웨어를 분석하여 문서화하는 과정

- 이식 Migration : 기존 소프트웨어를 다른 운영체제나 하드웨어에서 사용할 수 있도록 변환하는 고자ㅓㅇ

- 재사용

(재개발 Restructuring 나오면 오답!!)

 

* SW 패키징 도구 활용시 고려사항

- 사용자 중심으로 진행

- 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려

- 반드시 암호화/보안 고려

- 추가로 다양한 이기종 연동 고려 (범용 환경)

- 애플리케이션 종류에 적합한 암호화 알고리즘 적용

- 지속적인 배포 고려

 

* Alien Code 외계인코드

: 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 아주 어려운 프로그램

 

* 레거시 시스템

: 예전에 만든 시스템

 

*인터페이스 데이터 포맷

- JSON(JavaScript Object Notation) : Javascript 객체 문법. 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷

- XML(eXtensible Markup Language) : 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어

- CSV(Comma Separated Values) : 몇가지 필드를 쉼표(,)로 구분한텍스트 데이터 및 텍스트 파일

- YAML : XML, C, 파이썬, 펄, RFC2822에서 정의된 이메일 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식

>> Q. 인터페이스 간의 통신을 위해 이용되는 데이터 통신이 아닌 것은?

 

* NS Chart

- 논리 기술에 중점을 두고 도형을 이용한 표현방법

- 이해하기 쉽고 코드 변환이 용이

- 연속, 선택, 반복 등의 제어 논리 구조를 표현

- 오답) 화살표나 GOTO 사용

 

* 퀵정렬 Quick Sort

: 분할정복에 기반한 알고리즘. 피벗을 사용.

 

* 화이트 박스 검사 기법

 : 프로그램 내부 구조, 동작을 디테일하게 검사.

   내부 소스코드를 테스트.

   개발자 관점의 테스트 방법

 - 문장 검증 / 선택 검증 / 경로 검증 / 조건 검증

 - 예) 데이터 흐름 검사, 루프 검사

* 블랙 박스 검사 기법

 : 소프트웨어 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사.

   내가 원하는 기능이 예측한 대로 정상 동작하는지 확인

   사용자 관점의 테스트 방법

 - 동등 분할 검사(입력값을 토대로 출력값 확인)

 - 경계값 분석(89~91과 같이 경계에 있는 값을 넣어서 출력값 확인)

 - 오류 예측 기법

 - 원인 결과 그래프 기법

 - 의사결정 테이블 테스팅

 - 상태 전이 테스트

 

* 소프트웨어 품질 관련 국제 표준 ISO/IEC 25000

- 소프트웨어 품질 평가를 위한 소프트웨어 품질평가 통합모델 표준

- System and Software Quality Requirements and Evaluation을 줄여서 SQuaRE

- 기존 소프트웨어 품질 평가 모델과 소프트웨어 평가 절차 모델인 ISO/IEC 9126과 ISO/IEC 14598을 통합함

  - ISO/IEC 9126 : 기신사효유이(기능성 신뢰성 사용성 효율성 유지보수성 이식성)