정보처리기사

[정보처리기사 실기] 소프트웨어 구축 정리하기

JJcoding 2023. 7. 13. 01:41

1. 소프트웨어 공학의 정의에 대해 쓰시오

소프트웨어의 위기를 극복하고 효율적으로 품질 높은 소프트웨어를 개발하기 위한 학문이다.

 

2. 소프트웨어 개발 방법론 5가지

  • 구조적 방법론
  • 정보공학 방법론
  • 객체지향 개발 방법론
  • CBD 분석 방법론
  • 애자일 방법론

 

3. 소프트웨어 개발 모델 6가지

  • 폭포수 모델
  • 나선형 모델
  • 프로토타이핑 모델
  • RAD 모델
  • V 모형
  • 4세대 모델

 

4. 애자일 방법론 종류 6가지

  • XP
  • SCRUM
  • Crystal
  • FDD
  • ASD
  • Lean

 

5. IT 서비스 관리 개념 4가지

  • SLM : 서비스 수준을 정략적으로 측정, 서비스의 품질을 높이는 활동
  • SLA : 서비스 수준을 명시적으로 정의한 문서
  • ITSM : 정책과 관행
  • ITIL : ITSM을 실현하는 도구(프레임워크)

 

6. 프로젝트 핵심 관리 대상 3p

  • 사람(people), 문제(problem), 프로세스(process)

 

7. 개발 비용 산정 3가지와 하위 7가지

  • 하향식 산정 기법
    전문가 판단 기법, 델파이 기법
  • 상향식 산정 기법
    LOC, M/M
  • 수학적 산정 기법
    COCOMO, Putnam, FP(기능점수)

 

8. Rayleigh-Norden 곡선 하면? 그에 맞는 자동화 추정 도구는?

  • Putnam
  • SLIM

 

9. FP(기능점수)의 자동화 추정 도구, 기능 점수 분류

  • ESTIMACS
  • 데이터 기능 : 내부 논리 파일, 외부 연계 파일
  • 트랜잭션 기능 : 외부 입력, 외부 출력, 외부 조회

 

10. 제휴 관계를 통해 소비자와 공급자를 연결하는 형태의 플랫폼의 유형은?

  • 싱글 사이드 플랫폼

 

11. '콘텐츠를 플랫폼에 맞게 가공하고 네트워크를 통해 사용자의 단말기로 서비스가 이루어짐을 표현하는 무선 인터넷 서비스의 가치사슬'은 무엇의 대한 개념인가?

  • CPND

 

12. 미들웨어 종류 7가지

  • 원격 프로시저 호출
  • 메세지 지향 미들웨어
  • ORB
  • DB 접속 미들웨어
  • TP 모니터
  • WAS
  • ESB

 

13. 요구사항 개발 프로세스

  • 도출 -> 분석 -> 명세 -> 확인

 

14. 구조적 분석 도구 5가지

  • DFD 자료 흐름도
  • DD 자료사전
  • ERD 개체 관계도
  • STD 상태 전이도
  • Mini-spec 소단위 명세서

 

15. 요구사항 분석 도구 2가지와 하위 각 3가지

  • CASE
    상위 케이스, 하위 케이스, 통합 케이스
  • HIPO
    가시적 도표, 총체적 도표, 세부적 도표

 

16. 요구사항 분석 모델링의 구분 3가지

  • 기능적 모델링
  • 정적 모델링
  • 동적 모델링

 

17. 요구사항 분석 모델의 종류중 '객체지향 분석 모델'의 종류 5가지와 특징

  • Rumbaugh(럼바우) 
    객체, 동적, 기능
  • Booch(부치)
    미시적, 거시적
  • jacobson
    유스케이스 강조
  • Coad와 Yourdon
    ER다이어그램 사용
  • Wirfs-Brock
    분석과 설계 간 구분 없음

 

18. 소프트웨어 설계의 원리 5가지

  • 분할과 정복
  • 추상화
    과정 추상화, 자료(데이터) 추상화, 제어 추상화
  • 단계적 분해
  • 모듈화
  • 정보은닉

 

19. 설계 모델링의 유형 2가지

  • 구조 모델링, 행위 모델링

 

20. 소프트웨어 설계 절차 및 유형 중 '협약에 의한 설계'의 3가지 조건

  • 선행, 결과, 불변

 

21. 소프트웨어 아키텍처의 특징 5가지

  • 간략성
  • 추상화
  • 가시성
  • 관점 모형
  • 의사소통수단

 

22. 소프트웨어 아키텍처 4+1 뷰

  • 논리뷰
  • 구현뷰
  • 배치뷰
  • 프로세스뷰
  • 유스케이스뷰

 

23. 소프트웨어 아키텍처 패턴 10가지

  • 계층화 패턴
  • 클라이언트-서버 패턴
  • 마스터-슬레이브 패턴
  • 파이프 필터 패턴
  • 브로커 패턴
  • 피어 투 피어 패턴
  • 이벤트 버스 패턴
  • 모델 뷰 컨트롤러 패턴
  • 블랙보드 패턴
  • 인터프리터 패턴

 

24. UML의 특징 4가지

  • 가시화
  • 명세화
  • 구축
  • 문서화

 

25. UML의 구성요소 3가지

  • 사물
  • 관계
  • 다이어그램

 

26. UML의 '관계' 종류 6가지

  • 일반화 관계
  • 연관 관계
  • 의존 관계
  • 실체화 관계
  • 집합 관계 - 집약 관계
  • 집합 관계 - 합성 관계(=포함 관계)

 

27. 다이어그램 종류 2가지와 하위 6가지, 7가지

구조

  • 클래스 다이어그램
  • 객체 다이어그램
  • 컴포넌트 다이어그램
  • 배치 다이어그램
  • 복합체 다이어그램
  • 패키지 다이어그램

 

행위

  • 유스케이스 다이어그램
  • 시퀀스 다이어그램
  • 커뮤니케이션 다이어그램
  • 상태 다이어그램
  • 상호작용 다이어그램
  • 활동 다이어그램
  • 타이밍 다이어그램

 

28. 유스케이스 다이어그램의 관계 4가지

  • 연관 관계
  • 포함 관계
  • 확장 관계
  • 일반화 관계

 

29. UI 유형 5가지

  • CLI
  • GUI
  • NUI
  • OUI
  • AUI

 

30. UI 설계원칙 4가지

  • 직관성
  • 유효성
  • 학습성
  • 유연성

 

31. UI 설계 도구 5가지

  • 와이어프레임
  • 스토리보드
  • 프로토타입
  • 목업
  • 유스케이스

 

32. 서버환경구축의 종류 6가지

  • Web 서버
  • WAS
  • 데이터베이스 서버
  • 파일서버
  • Load Balancer
  • CDN

 

33. WAS의 종류 4가지

  • WebLogic, WebSpere, Jeus, Tomcat

 

34. 시스템 소프트웨어 5가지

  • Web서버
  • WAS
  • 운영체제
  • DBMS
  • JVM

 

35. 형상 관리 도구의 정의에 대해 쓰시오(p37)

  • 소프트웨어의 변경사항을 체계적으로 관리하는 도구

 

36. 형상 관리 절차를 쓰고, 형상 통제에 대해 설명하시오

  • 형상 식별 > 형상 통제 > 형상 감사 > 형상 기록/보고
  • 형상 통제란 형상 변경 요청을 검토하고 승인하여 현재 베이스라인에 반영 되도록 통제하는 것이다.

 

37. 버전관리 도구 6가지

  • CVS
  • SVN
  • GIT
  • Clear Case
  • Bitkeeper
  • RCS

 

38. 빌드 자동화 도구 5가지

  • Make
  • Ant
  • Maven
  • Jenkins
  • Gradle

 

39. 프레임워크 특징 4가지

  • 모듈화
  • 재사용성
  • 확장성
  • 제어의 역흐름

 

40. 단위 모듈 설계의 원리 5가지 (18번 소프트웨어 설계의 원리와 같음)

  • 분할과 정복
  • 단계적 분해
  • 추상화
  • 모듈화
  • 정보은닉

 

41. 단위 모듈 작성 원칙 5가지

  • 정확성
  • 명확성
  • 완전성
  • 일관성
  • 추적성

 

42. DBMS 접속기술 종류 4가지

  • 소켓통신
  • Vender API
  • JDBC
  • ODBC

 

43. 배치 프로그램의 필수 요소 5가지

  • 대용량 데이터
  • 안정성
  • 성능
  • 자동화
  • 견고함

 

44. EAI의 구축유형 4가지

  • point-to-point
  • hub&spoke
  • Message Bus
  • Hybrid

 

45. 인터페이스 연계기술 7가지

  • Link
  • 소켓
  • API/Open API
  • DB connection
  • JDBC
  • Web Service : SOAP, UDDI, WSDL
  • Hyper Link

 

46. rest의 구성요소 3가지

  • 자원
  • 행위
  • 표현

 

47. 인터페이스 보안 중 네트워크 영역의 보안 방법 3가지

  • IPsec
  • SSL
  • S-HTTP

 

48. 인터페이스 구현 검증 도구 6가지

  • xUnit : 다양한 언어 지원
  • STAF : 서비스 호출 및 컴포넌트 재사용
  • FitNesse : 웹 기반 
  • NTAF : STAF와 FitNesse의 장점을 합침 naver
  • selenium : 웹 애플리케이션 테스트
  • watir : 루비

 

49. 인터페이스 구현 감시 도구 종류 2가지

  • Scouter
  • Jennifer

 

50. 객체지향 구성 요소 5가지

  • 클래스
  • 객체
  • 속성
  • 메서드
  • 메세지

 

51. 객체 지향 언어의 특징 5가지

  • 추상화
  • 상속
  • 다형성
  • 정보은닉
  • 캡슐화

 

52. 객체 지향 설계원칙 5가지

  • 단일 책임 원칙(SRP)
  • 개방 폐쇄 원칙(OCP)
  • 리스코프 치환의 원칙(LSP)
  • 인터페이스 분리의 원칙(ISP)
  • 의존성 역전의 원칙(DIP)

 

53. 디자인 패턴 23가지

  • 추상 팩토리 : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공
  • 빌더 : 복합 객체의 생성과 표현을 분리
  • 팩토리 메서드 : 객체 생성을 서브 클래스로 위임
  • 프로토타입 : 원복 객체를 복사함
  • 싱글톤 : 인스턴스는 하나임을 보장함

  • 어댑터 : 인터페이스를 다른 인터페이스로 변환
  • 브리지 : 구현부에서 추상층을 분리하여 각자 독립적으로 확장
  • 컴포지트 : 객체들의 관계를 트리 구조로 구성, 복합 객체와 단일 객체를 구분없이 다룸
  • 데코레이터 : 어떤 객체에 다른 객체를 덧붙이는 방식
  • 퍼사드 : Wrapper제공, 서브클래스의 가장 앞쪽에 위치
  • 플라이웨이트 : 작은 여러 개의 객체를 매번 생성하지 않고 가능한 한 공유
  • 프록시 : 객체의 대리나 대체글을 제공

  • 책임 연쇄 : 객체를 연쇄적으로 묶어 객체 chain을 따라 요청을 전달함
  • 커맨드 : 요청을 객체의 형태로 캡슐화하여 저장함
  • 인터프리터 : 특정 언어의 문법 표현을 정의함
  • 반복자 : 내부를 노출하지 않고 어떤 객체의 원소를 순차적으로 접근
  • 중재자 : 객체들의 상호작용을 캡슐화
  • 메멘토 : 객체가 특정 상태로 되돌아올 수 있도록 내부 상태를 실체화
  • 옵저버 : 객체 상태가 변할 때 관련 객체들이 그 변화를 통지받고 자동으로 갱신
  • 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리
  • 전략 : 동일 계열의 알고리즘군을 정의하고 캡슐화
  • 템플릿 메서드 : 구체적인 처리는 서브클래스로 위임
  • 방문자 : 수행할 연산을 분리하여 별도의 클래스로 구성함, 개방-폐쇄 원칙 적용

 

54. 소프트웨어 테스트의 필요성 3가지

  • 오류 발견
  • 오류 예방
  • 품질 향상

 

55. 테스트 오라클의 개념에 대해 쓰시오

  • 테스트의 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력하여 비교하는 기법

 

56. 테스트 오라클의 유형 4가지

  • 참 오라클
  • 샘플링 오라클
  • 휴리스틱 오라클
  • 일관성 검사 오라클

 

57. 블랙박스 테스트 기법 5가지

  • 동등 분할 기법
  • 경계값 분석
  • 원인-효과 그래프 검사
  • 오류 예측 검사
  • 비교 검사

 

58. 테스트 목적 9가지

  • 회복 : 정상적으로 복귀 하는지
  • 안전 : 보안적인 결함 없는지
  • 강도 : 부하에 견디는지
  • 성능 : 처리량, 반응속도 괜찮은지
  • 구조 : 소스코드 복잡도가 어떤지
  • 회귀 : 수정된 코드에 결함 없는지
  • 병행 : 변경 전후 결과를 비교
  • A/B 테스트 : B가 A보다 효과가 좋은지
  • 스모크 테스트 : 테스트 환경이 괜찮은지

 

59. 테스트 종류 3가지

  • 명세 기반 테스트 : 주어진 명세로
  • 구조 기반 테스트 : 내부 논리 흐름으로
  • 경험 기반 테스트 : 경험자의 기술로

 

60. 테스트 커버리지의 개념을 쓰시오

  • 테스트를 얼마나 수행했는지 측정하는 기준이다.

 

61. 테스트 커버리지 유형에는 기능기반, 라인, 코드 커버리지가 있다. 코드 커버리지의 종류 6가지

  • 구문 커버리지
  • 조건 커버리지
  • 결정 커버리지
  • 조건/결정 커버리지
  • 변경 조건/결정 커버리지
  • 다중조건 커버리지

 

62. 테스트 장치(Test Harness)의 구성요소 6가지

  • 테스트 드라이브
  • 테스트 스텁
  • 테스트 슈트
  • 테스트 케이스
  • 테스트 스크립트
  • 목 오브젝트

 

63. 애플리케이션 성능 분석 지표 4가지

  • 처리량
  • 응답시간
  • 경과시간(반환시간)
  • 자원 사용률

 

64. 성능 분석 도구 3가지

  • JMeter : 다양한 프로토콜 지원
  • LoadUI : 웹 서비스의 로드 테스트
  • openSTA : HTTP, HTTPS 프로토콜에 대한

 

65. 모니터링 도구 4가지

  • Scouter : 단일 뷰 통합/실시간 모니터링
  • NMon : 리눅스 서버 자원에 대한 모니터링
  • Zabbix : 웹 기반 모니터링 
  • Jennifer : 애플리케이션에서 서버로 유입되는 처리시간, 응답시간 등을 모니터링

 

66. 소스코드 품질 분석 3가지 방법

  • 동료 검토
  • 워크 스루
  • 인스펙션

 

67. 소스코드 품질 분석 도구 종류 정적-6가지/동적-2가지

  • PMD : 주로 java
  • checkstyle : java
  • cobertura : java
  • cppcheck : c,c++
  • SonarQube : 중복코드, 복잡도
  • ccm : 다양한 언어

  • Avalanche : 프로그램 결함 및 취약점 분석
  • Valgrind : 메모리 및 스레드 결함 분석

 

68. 클린코드 작성원칙 5가지

  • 가독성
  • 단순성
  • 의존성 배제
  • 중복성 최소화
  • 추상화

 

69. 소프트웨어 유지보수 4가지

  • 수정 보수
  • 적응 보수
  • 향상 보수
  • 예방 보수

 

70. 제품 품질 국제 표준 4가지

  • ISO/IEC 9126
  • ISO/IEC 14598
  • ISO/IEC 12119
  • ISO/IEC 25000

 

71. 9126 소프트웨어의 품질 특성 6가지

  • 기능성
  • 신뢰성
  • 사용성
  • 효율성
  • 유지보수성
  • 이식성

 

72. 14598 소프트웨어의 평가 특성 4가지

  • 반복성
  • 재현성
  • 공정성
  • 객관성

 

73. 프로세스 품질 국제 표준 종류 4가지

  • ISO/IEC 12207
  • ISO/IEC 15504(SPICE)
  • CMM
  • CMMI

 

74. 12207의 생명주기 프로세스 3가지

  • 기본 생명주기 프로세스
  • 지원 생명주기 프로세스
  • 조직 생명주기 프로세스

 

75. SPICE의 프로세스 능력 수준 단계 6가지

  • 불안정
  • 수행
  • 관리
  • 확립
  • 예측
  • 최적화

 

76. CMM의 성숙도 5단계

  • 초기
  • 반복
  • 정의
  • 관리
  • 최적화

 

77. CMMI의 성숙도 5단계

  • 초기
  • 관리
  • 정의
  • 정량적 관리
  • 최적화

 

78. 서비스 국제 표준 종류 1가지

  • ISO/IEC 20000

 

79. DRM 저작권 보호 기술 3가지

  • 암호화 기술
  • 위변조 방지
  • 워터마킹/핑거프린팅

 

80. DRM 구성 6가지

  • 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
  • 콘텐츠 분배자 : 쇼핑몰 등으로서 암호화된 콘텐츠 제공
  • 패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능
  • 보안 컨테이너 : 원본을 안전하게 유통하기 위한 전자전 보안 장치
  • DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제
  • 클리어링 하우스 : 키 관리 및 라이선스 발급 관리 

 

81. DRM 사용 규칙 제어 기술 4가지

  • 콘텐츠 식별 체계 : DOI, URI
  • 메타 데이터
  • 권리 표현 기술 : XrML
  • 권리 표현 종류 : Render(이용), Transport(권리교환), Derivative(추출변형)

 

82. DRM 구성요소 8가지

  • 암호화
  • 암호화 파일 생성
  • 키 관리
  • 식별 기술
  • 저작권 표현
  • 크랙 방지
  • 정책 관리
  • 인증

 

83. 결합도(Coupling), 응집도(Cohesion) 영어로 쓰기

  • Content
  • Common
  • External
  • Control
  • Stamp
  • Data

  • Coincidental
  • Logical
  • Temporal
  • Procedural
  • Communication
  • Sequential
  • Functional