자료 구조의 분류
[ 선형구조 ]
배열 ( array ) |
- 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고있는 집합 - 정적인 자료구조 ( 반복적인 데이터 처리 작업에 적합 ) |
선형 리스트 ( Linear List ) |
- 일정한 순서에 의해 나열된 자료 구조 - 연속리스트 : 연속되는 기억장소에 저장되는 자료구조 - 연결리스트 : 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용해 연결. |
스택 ( Stack ) |
- 리스트의 한 쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조. - 후입선출( LIFO ) |
큐 ( Queue ) |
- 리스트의 한 쪽에서는 삽입이 한 쪽에서는 삭제 작업이 이루어지는 자료 구조. - 선입선출 ( FIFO ) |
[ 비선형구조 ]
트리 ( Tree ) |
노드*와 브랜치를 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태 노드 : 하나의 기억 공간 / 링크 : 노드와 노드를 연결하는 선 |
차수( degree ) : 각 노드에서 뻗어 나온 가지의 수 단말 노드 ( terminal node ) : 자식이 하나도 없는 노드, 디그리가 0인 노드 트리의 디그리 : 노드들의 디그리 중에서 가장 많은 수 |
트랜잭션 ( Transaction )
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
또는 한꺼번에 모두 수행되어야 할 일련의 연산.
- COMMIT : 트랜잭션 처리가 정상 종료되어 수행한 변경 내용을 데이터베이스에 반영하는 명령어
- ROLLBACK : 변경 작업을 취소하고 이전 상태로 되돌리는 연산
- SAVEPOINT : ROLLBACK 할 위치인 저장점을 저장하는 명령어로 여러 개 지정 가능.
절자형 SQL
종류)
- 프로시저 (procedure)
: 특정 기능을 수행하는 일종의 트랜잭션 언어. 호출을 통해 실행되어 미리 저장해놓은 SQL 작업을 수행
- 트리거 (Trigger)
: 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행됨.
- 사용자 정의 함수
: 종료 시 예약어 Return을 사용하여 처리 결과를 단일 값으로 반환.
협업 도구
프로젝트 및 일정 관리 | 구글캘린더, 분더리스트, 트렐로, 지라, 플로우 등 |
정보 공유 및 커뮤니케이션 | 슬랙, 잔디, 태스크월드 등 |
아이디어 공유 | 에버노트 |
기타 | Git의 웹호스팅 서비스인 깃허브 |
릴리즈 노트
: 개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서
- 릴리즈 노트에서는 소프트웨어에 포함된 기능이나 사용 환경에 대한 내용 확인 가능
- 개선된 작업이 있을 때마다 관련 내용을 릴리즈 노트에 담아 제공.
디지털 저작권 관리 (DRM)
클리어링 하우스 | 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 수행 |
패키저 | 콘텐츠를 메타 데이터*와 함께 배포 가능한 형태로 묶어 암호화 하는 프로그램 |
DRM 컨트롤러 | 컨텐츠의 이용 권한을 통제하는 프로그램 |
보안 컨테이너 | 컨텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치 |
형상 관리
: 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
- 소프트웨어 개발의 전 단계에 적용되는 활동 ( 유지보수 단계에서도 수행 )
기능) 형상 식별 / 버전 제어 / 형상 통제(변경관리) / 형상 감사 / 형상기록(상태 보고)
소프트웨어 버전 관리 도구
공유 폴더 방식 | 클라이언트/서버 방식 | Subversion | Git |
- 약속된 공유 폴더에 매일 복사 - 담당자 : 자기 PC로 복사한 후 컴파일 하여 이상 유무를 확인 - SCCS, RCS, PVCS, QVCS 등 |
- 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식 - 모든 버전 관리는 서버에서 수행 - CVS, SVN, CVSNT 등 |
- CVS를 개선한 것. - 클라이언트-서버 구조 - 커밋 시, 리비전이 1씩 증가 - 서버는 유닉스 사용 |
- 지역(로컬) 저장소와 원격 저장소가 존재. - 파일의 변화를 스냅샷으로 저장. |
애플리케이션 테스트
파레토 법칙 | 애플리케이션의 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다. |
살충제 패러독스 | 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는다. |
오류-부재의 궤변 | 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 할 수 없다. |
화이트박스 테스트 | 모듈의 원시코드 오픈 - 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스 설계 모듈 안의 작동을 직접 관찰 문장을 한 번 이상 실행함으로써 수행. 조건 검사 / 루프 검사 / 데이터 흐름 검사 |
블랙박스 테스트 | 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트 인터페이스에서 실시되는 테스트 동치분할 검사 / 경계값 분석 / 원인-효과 그래프 검사 / 오류 예측 검사 / 비교 검사 |
단위 테스트 ( unit Test ) |
- 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 - 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행 - 주로 구조 기반 테스트를 시행 |
통합 테스트 ( Integration Test ) |
단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 - 비점진적 통합 방식 : 빅뱅 통합 테스트 - 점진적 통합 방식 : stub(하향식) / cluster(상향식) |
시스템 테스트 ( system Test ) |
해당 컴퓨터 시스템에서 완벽하게 수행되는가 점검하는 테스트 기능적 요구사항 : 블랙박스 테스트 / 비기능적 요구사항 : 화이트 박스 테스트 |
인수 테스트 | 개발한 소프트웨어를 사용자가 직접 테스트 - 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법 - 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법 |
테스트 케이스 ( Test Case )
: 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된
입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
테스트 시나리오 ( Test Scenario )
: 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스들을 묶은 집합
- 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서.
- 여러 개의 시나리오로 분리하여 작성해야 함.
- 사용자의 요구사항과 설계 문서 등을 토대로 작성해야 함.
결함 추적 순서
- 결함 등록 : 발견돼 결함이 등록된 상태
- 결함 검토 : 담당자 / 개발자에 의해 검토된 상태
- 결함 할당 : 문제 해결 담당자에게 결함이 할당된 상태
- 결함 수정 : 결함 수정을 완료한 상태
- 결함 조치 보류 : 수정이 불가능해 연기된 상태, 재오픈을 준비 중인 상태
- 결함 종료 : 담당자가 종료를 승인한 상태
- 결함 해제 : 종료 승인한 결함을 검토하여 결함이 아니라고 판명한 상태
모듈 연계 - EAI
- 애플리케이션 및 플랫폼 간의 정보 전달 / 연계 / 통합 등 상호연동이 가능하게 해주는 솔루션
1) Point-to-Point : 애플리케이션을 1:1로 연결, 변경 및 재사용이 어렵다
2) Hub&Spoke : 확장 및 유지보수가 용이 / 허브 장애 발생 시 시스템 전체에 영향을 미침.
3) Message Bus : 애플리케이션 사이에 미들웨어를 두어 처리하는 방식 / 확장성이 좋아 대용량 처리 가능
'IT Programmer > Certification (정보처리기사)' 카테고리의 다른 글
[정보처리기사 필기 대비] 4과목 프로그래밍 언어 활용 (0) | 2020.08.21 |
---|---|
[정보처리기사 필기 대비] 3과목 데이터베이스 구축 (0) | 2020.08.19 |
[정보처리기사 필기 대비] 1과목 소프트웨어 설계 (0) | 2020.08.17 |
[4과목_프로그래밍 언어 활용] 오답노트2 (0) | 2020.08.17 |
[4과목_프로그래밍 언어 활용] 오답노트 (0) | 2020.08.17 |