정보처리기사 필기 오답노트 - 2장. 소프트웨어 개발

갓김치·2020년 8월 20일
0

정보처리기사

목록 보기
2/5

모르겠는건 여기 참고

https://1d1cblog.tistory.com/87
https://velog.io/@yuhyeonp

데이터 입출력 구현

연습문제

34-7. 연결 리스트 (Linked List)

  1. 노드의 삽입이나 삭제가 쉽다.
  2. 노드들이 포인터로 연결되어 있어 포인터를 찾아가는 시간이 필요하므로 선형 리스트에 비해 접근 속도가 느리다.
  3. 연결을 해주는 포인터를 위한 추가공간이 필요하다.
  4. 연결리스트 중에서 중간 노드 연결이 끊어지면 그 다음 노드를 찾기가 어렵다.

34-8. 포인터를 사용하여 리스트를 나타냈을 때

  1. 새로운 노드의 삽입이 쉽다.
  2. 기억 공간이 많이 소요된다.
  3. 한 리스트를 여러 개의 리스트로 분리하기 쉽다.
  4. 리스트에서 특정 노드를 삭제할 때는 그 노드와 연결된 링크(포인터)를 끊으면(지우면) 간단하게 삭제된다.

37-1. 절차형 SQL

  1. 절차형 SQL의 종류에는 프로시저, 트리거, 사용자 정의 함수가 있다.
  2. 프로시저는 특정 기능을 수행하는 트랜잭션 언어로, 처리 결과를 반환하지 않거나 한 개 이상의 값을 반환한다.
  3. 트리거는 데이터베이스에 이벤트가 발생할 때 수행되는 작업이다.
  4. 사용자 정의 함수는 프로시저와 유사하며, 예약어 RETURN을 사용하는 것이 특징이다.

예상문제

4. 큐(Queue)

  1. 입력은 리스트의 한끝에서, 출력은 그 상대편 끝에서 일어난다.
  2. 운영체제의 작업 스케줄링에 사용된다.
  3. 오버플로와 언더플로 모두 발생할 수 있다.
  4. 가장 먼저 삽입된 자료가 가장 먼저 삭제되는 FIFO 방식으로 처리된다.

14. 소프트웨어 개발에서 데이터 입출력에 대한 설명

  1. 소프트웨어의 기능 구현을 위해 데이터베이스로부터 데이터를 입출력하는 것
  2. 데이터베이스의 데이터를 입출력하는데 사용되는 언어는 SQL이다
  3. SQL을 통해 데이터베이스에서 처리되는 하나의 논리적 작업 단위를 트랜잭션이라고 한다.
  4. 소프트웨어가 데이터베이스에 있는 데이터를 조작하기위해서는 SQL 매핑 또는 ORM 기술을 사용해야 한다.

통합 구현

연습문제

38-2. 단위 모듈에 대한 설명

  1. 처리문, 명령문, 데이터 구조등이 포함되어 있다
  2. 사용자나 다른 모듈로부터 값을 제공받아 시작되는 작은 프로그램
  3. 하나의 기능을 구현하므로, 두개의 모듈을 통합하는 경우 두 개의 기능을 구현할 수 있다.
  4. 독립적인 컴파일이 가능하고, 다른모듈에 호출되거나 삽입될 수 있다.

38-4. 단위 모듈의 구현과정 중 입출력기능구현에 관한 설명

  1. 각 장치와의 입출력은 오픈 소스 API를 통해 간편히 구현할 수 있다.
  2. 단위 모듈 간의 연동 또는 외부와의 통신을 위한 입출력 데이터를 구현하는 단계
  3. 사용자 인터페이스가 CLI? GUI? 고려

38-5. 단위 모듈의 구현과정에서 각 모듈과 모듈에 대한 설명

  1. 디바이스 드라이버 모듈: 하드웨어 주변 장치의 동작을 구현
  2. 파일 모듈: 파일을 사용하는 방법을 구현
  3. 메모리 모듈: 메모리를 사용하는 방법을 구현
  4. 프로세스 모듈: 하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현
  5. 네트워크 모듈: 네트워크 장비 미 데이터 통신을 위한 기능을 구현

39-1. 단위 모듈 테스트

  1. 블랙박스 테스트 기법 이나 화이트 박스 테스트
  2. 모듈 통합 이후에는 찾기 어려운 에러들을 간단히 찾을 수 있도록 해줌
  3. 단위 모듈에 대한 코드이므로 시스템 수준의 오류들을 찾아내기는 어렵다
  4. 테스트 케이스를 활용하여 수행할 수 있다.

39-4. ISO/IEC/IEEE 29119-3 표준에 따른 테스트 케이스의 구성요소

  1. Test Item
  2. Input Specification
  3. Output Specification (예상결과값)

예상문제

2. 모듈 간 통합 방식의 구현을 위한 인터페이스 집합인 IPC에 속한 메소드

  1. Shared Memory: 공유 가능한 메모리를 구성하여 다수의 프로세스 간 통신을 지원
  2. Semaphores: 자원에 대한 접근 제어(access control)를 통해 프로세스 간 통신을 지원
  3. Socket: 네트워크 소켓을 이용한 프로세스 간 통신 지원
  4. Message Queueing: 메시지 전달 방식을 사용하여 프로세스 간 통신을 지원

7. 테스트 관련

  1. Test Case: 테스트에 필요한 입력 데이터, 테스크 조건, 예상 결가 등을 기입한 문서. 테스트 수행에 필요환경이나 테스트 케이스간의 의존성을 기입.
  2. Test Procedure: 테스트 스크립트라고도 불리며, 테스트 케이스의 실행 순서
  3. Test Scenario: 여러개의 테스트 케이스를 묶은것. 테스트 케이스 수행에 대한 절차를 명세한 문서

8. 테스트 프로세스 5단계

  1. 계획 및 제어: 목표 달성위한 계획 수립 및 진행되도록 잘 제어
  2. 분석 및 설계: 목표를 구체화 테스트 시나리오,케이스 작성
  3. 구현 및 실현: 케이스를 조합해 테스트 프로시저에 명세
    4, 평가: 잘됐나 평가하고 기록
  4. 완료

제품 소프트웨어 패키징

연습문제

41-1 패키징 작업 순서

  1. 기능 식별
  2. 모듈화
  3. 빌드 진행
  4. 사용자 환경 분석
  5. 패키징 및 적용 시험
  6. 패키징 변경 개선

46-2 형상관리의 관리 항목

  1. 정의 단계의 문서
  2. 개발 단계의 문서와 프로그램
  3. 유지보수 단계의 변경사항

47-2. 버전관리도구 Subversion

  1. 클라이언트/서버 구조, 서버에는 최신 버전과 버전의 변화를 저장
  2. 클라이언트에서는 서버의 자료를 복사해와 작업한 후 변경된 내용을 서버에 반영(commit)
  3. 모든 개발 작업은 trunk 디렉터리에서 수행되며, 부가적인 추가작업은 branches 디렉터리 안에 별도의 디렉터리를 만들어 작업을 완료한 후 trunk 디렉터리의 작업과 병합한다
  4. 커밋완료시 번호를 달리하여 표시한다. (Git 영,숫자 혼합 40자리)

47-4. 버전관리도구 Subversion 명령어

  1. add: commit을 수행할 버전 관리 대상 등록
  2. update: 최신 commit 이력을 소스 파일에 적용
  3. import: 아무것도 없는 서버의 저장소에 맨 처음 소스파일을 저장
  4. export: 서버에서 버전 관리를 위한 내용을 제외한 순수한 소스파일만 받아옴
  5. checkout: 서버에서 클라이언트로 버전관리를 위한 내용과 소스파일을 받아옴

47-5. 버전관리도구 Git 명령어

  1. branch: 새로운 브랜치를 생성하거나 삭제
  2. push: 로컬 저장소의 변경 내역을 원격 저장소에 반영
  3. clone: 원격 저장소의 전체 내용을 지역 저장소로 복제
  4. merge: 지정한 브랜치의 변경 내역을 현재 HEAD 포인터가 가리키는 브랜치에 반영한다.
  5. fork: 지정한 원격저장소의 내용을 자신의 원격 저장소로 복제한다.

47-6. Jenkins와 Gradle

  1. 빌드, 테스트, 배포 과정을 자동화하는 도구
  2. Jenkins는 GUI, Gradle: CLI
  3. Gradle: Groovy를 사용해서 만든 DSL을 스크립트 언어로 사용
  4. Gradle: 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행
  5. Jenkins: 태스크의 재사용이나 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능이 지원됨

예상문제

2. 패키징 과정에서 수행하는 작업

  1. 모듈화: 확인된 기능 단위로 코드를 분류하는 것
  2. 빌드: 모듈 단위별로 실행파일을 만듬
  3. 기능 식별: 작성된 코드의 기능을 확인
  4. 적용 시험: 정의된 환경과 동일한 환경에서 패키징 결과를 테스팅
  5. 배포: 배포 수행시 오류가 발생하면 해당 개발자에게 전달하여 수정을 요청

4. 릴리즈 노트 작성 과정

  1. 모듈 식별
  2. 릴리즈 정보 확인
  3. 릴리즈 노트 개요 작성
  4. 영향도 체크
  5. 정식 릴리즈 노트 작성
  6. 추가 개선 항목 식별

8. 소프트웨어 사용자 매뉴얼 작성 과정에서 수행하는 작업

  1. 기능 식별: 소프트웨어의 개발 목적과 사용자 활용 기능을 흐름 순으로 정리하여 기록
  2. 사용자 환경 파일 확인: 폴더 위치, 사용자 로그 파일, 백업 파일 등의 개별적인 기능을 확인하여 기록
  3. 이상 Case 확인인: 소프트웨어 사용 과정에서 발생할 수 있는 다양한 이상 Case 를 만들어 확인하고 해당 Case 에 대한 대처법을 자세하게 기록
  4. 초기화 절차 확인 과정: 프로그램에 사용하기 위한 초기화 절차를 확인하고 그 단계를 순서대로 기록
  5. 최종 매뉴얼 적용: faq, 고객 지원

10. 소프트웨어의 일반적인 버전 등록 과정

  1. 가져오기 Import
  2. 인출 Check-Out
  3. 예치 Commit
  4. 동기화 Update
  5. 차이 Diff
profile
갈 길이 멀다

0개의 댓글