2과목 - 소프트웨어 개발(2022 정보처리기사 필기 정리)

백지연·2022년 2월 23일
2

정보처리기사

목록 보기
2/5
post-thumbnail

2022년 3월 5일에 치루는 정보처리기사 필기를 공부하면서 오답 및 중요 내용에 대한 정리를 해보겠다. 구체적인 설명은 빼고, 헷갈리는 것 위주로 간단하게 정리해보았다.

책은 시나공 2022 정보처리기사 필기로 공부했다.

정보처리기사 필기 문항 및 합격기준

  • 문항 : 객관식 4지 택일형, 과목당 20문항(과목당 30분)
  • 합격기준 : 100점을 만점으로 하여 과목당 40점(8개) 이상, 전과목 평균 60점(12개씩) 이상

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

자료구조

선형 구조: 배열, 선형 리스트, 스택, 큐, 데크
비선형 구조: 트리, 그래프

삽입 정렬
index가 1번째 자료부터 시작. index 0자료 비교

소스 코드 품질 분석 도구

정적 분석 도구
소스 코드 실행x, 잠재적 오류 찾기, 흐름 분석해 비정상적 패턴 찾기

  • 종류: pmd, cppcheck, checkstyle, ccm 등

동적 분석 도구: 작성한 소스 코드를 실행, 메모리 누수 스레드의 결함 등 분석

  • 종류: Avalanche, Valgrind 등

소프트웨어 개발 활동 수행

  • 결함(Fault): 오류 발생, 작동 실패 등 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것
  • 점검(Inspection):

소프트웨어 품질 특성

  • 기능성(Functionality): 사용자 요구사항 만족
  • 신뢰성(Realiability): 오류 없이 수행
  • 사용성(Usability): 사용자가 정확히 이해 후 사용
  • 효율성(Efficiency): 한정된 자원 -> 얼마나 빨리 처리?
  • 유지 보수성(Maintainability): 개선, 확장 가능성
  • 이식성(Portability): 다른 환경

인터페이스 구현 검증 도구

  • xUnit: Java(Junit), C++(CppUnit) 등
  • STAF: 서비스 호출 및 컴포넌트 재사용 등
  • FitNeese: 웹 기반
  • NTAF: NHN(Naver), FitNeese+STAF
  • Selenium: 다양한 브라우저 및 개발언어 지원
  • watir: Ruby

인터페이스 보안

네트워크 영역
인터페이스 송, 수신간 스니핑(Sniffing - 킁킁) 방지

  • 종류: IPSec, SSL, S-HTTP 등

그 외, 애플리케이션 영역, 데이터베이스 영역 존재

트리 순회

  • 전위(preorder) 순회: root - left - right
  • 중위 순회(inorder): left - root - right
  • 후위 순회(postorder): left - right - root

그래프의 간선 수

  • n개의 정점으로 구성된 무방향 그래프의 최대 간선 수: n(n-1)/2
  • n개의 정점으로 구성된 양방향 그래프의 최대 간선 수: n(n-1)

형상 관리(SWC; Software Configuration Management)

  • 개발 과정에서 변경 사항을 관리하기 위해 개발된 활동

기능 종류
형상 식별, 버전 제어, 형상 통제(변경 관리), 형상 감사, 형상 기록(상태 보고)

테스트

화이트 박스

  • 원시 코드의 논리적인 모든 경로를 테스트
  • 종류: 기초 경로 검사, 제어 구조 검사

블랙 박스

  • 기능 테스트
  • 종류: 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사

인수

  • 사용자 인수: 사용자가 적절성 확인
  • 알파: 개발자
  • 베타: 선정된 사용자

테스트 오라클(Test Oracle)
테스트 결과 판단을 위한 사전에 정의된 참 값 대입 후 비교

  • 종류: 참, 샘플링, 휴리스틱, 일관성 검사

테스트 케이스 생성 도구(Test Case Generation Tools)
자료 흐름도, 기능 테스트, 입력 도메인 분석, 랜덤 테스트

빌드 자동화 도구

  • 종류: Ant, Make, Maven, Gradle, Jenkins 등

Jenkins

  • JAVA기반 오픈 소스 형태
  • Git, SVN 등 형상 관리 도구와 연동 가능

Gradle

  • Groovy기반 오픈 소스 형태
  • 안드로이드 앱 개발

해싱 함수

  • 제산법: 그냥 나눔
  • 제곱법: 제곱 후 그 중간 부분 홈 주소로
  • 폴딩(Folding): 나눈 후 더하거나 XOR
  • 기수(Radix) 변환법: 초과 자리 버림
  • 대수적 코딩법: 다항식의 계수를 홈 주소로
  • 계수 분석법(숫자 분석법): 숫자 분포 분석 -> 고른자리 택
  • 무작위법: 난수

공부하면서, 2022 3/5 시험 전날까지 수정/추가 할 예정이다!
잘못된 정보 수정 및 피드백 환영합니다!!

profile
TISTORY로 이사중! https://delay100.tistory.com

0개의 댓글