플랫폼
- 서비스 제공자와 사용자를 매개하는 쉬운 구동의 결합 형태
- 개발비와 운영비 감소, 커뮤니티 형성을 통한 네트워크 효과, SW개발 생산성 향상
OPEN api
- 어플리케이션을 구축/통합하기 위한 프로토콜 세트
JSON
- 객체 표현 : {}
- 배열표현 : []
- 문자표현 : ""
- 숫자표현 특징 : 8,16진수는 지원안함
전송단위 크기(왼이 가장 큼)
- DATA, SEGEMENT, PACKET, FRAME, BIT
스키마
- 메타데이터라고도 불리며 데이터 사전에 저장됨
- 분류 : 외부=사용자뷰 / 개념 = 전체뷰 / 내부 = 물리적 저장스키마(시스템설계자 관점)
UML-유스케이스 다이어그램
- 구성요소 = 시스템 + 액터 + 유스케이스 + 관계
- 이벤트 흐름 = 기본흐름, 대체흐름, 예외흐름
- 유스케이스 : 액터에게 제공해야하는 시스템 요구사항/개발범위
- 반드시 수행은 include포함 / 수행이 자유면 extend확장
- 실현을 위해 최소 3개이상 클래스 도출 필요
- 엔터티 클래스(추적할 자료) & 경계 클래스(외부 상호작용=시스템인터페이스) & 제어 클래스(환경독립적, 초기 생성되어 끝까지 존재)
UML-시퀀스다이어그램
- ALT = 대안
- OPT = 옵션
- LOOP = Iteration = 반복
UML-컴포넌트다이어그램
- 물리적 구조 표현
코드화의 기능
- 표준화, 간소화, 식별, 분류, 배열, 연상, 암호화 오류검출
리팩토링
- 코드 구조 등 내부 디자인을 개선 = 겉으로 보이는 기능 추가없음
하위설계 종류
- 모듈설계 , 자료구조 설계 , 알고리즘 설계
요구사항 공학
- 도출 ~ 분석=시스템을 계층적,구조적으로 표현 ~ 명세(비기능,기능) ~ 확인
- Baseline 요구사항 기준선 : 합의된 명세서
객체지향 개발
- 유연하고 변경이 용이하여 대규모 소프트웨어 개발에 활용
- 각각의 객체가 메세지를 주고받고 데이터를 처리함
- 인스턴트 = 추상화나 객체/클래스 등이 실제로 구현된 것
객체지향 개발의 다형성
- 오버로딩 = 한 클래스 내 여러 이름 메서드 정의(명칭 동일) , 다른 파라미터 개수와 자료형
- 오버라이딩 : 상속관계의 상의 클래스명을 하위 클래스 명으로 정의 , 매개변수/파라미터 개수와 타입 동일
객체지향 기법의 연관성-집단관계
- Aggregation 집합 관계 : 각 객체 라이프 타임 독립적
- Composition 합성 관계 : 부분-전체와 부분, 전체 객체의 라이프타임과 부분객체 라이프 타임이 의존적
객체지향 기법 접근 제한자
- public+ protect# default(동적패키지까지허용) private-(클래스내부)
MVC 패턴
- 모델 : 통보 주체
- 뷰 : 모델에서 정보를 얻어옴
- 컨트롤러 : 모델에게 명령을 보내 상태를 변경함
애자일 방법론 keyword
- xp = 피드백 코딩
- 린 = 낭비제거
- 스크럼 = 비종속, 30일, backlog(제품과 프로젝트에 대한 요구사항)
UI설계 단계
- 문제정의 ~ 모델 정의 ~ 작업 분석 ~ 컴퓨터 오브젝트 및 기능 정의 ~ 사용자 인터페이스 정의(오브젝트 선택) ~ 디자인 평가
설계 기능적 요구사항 : 데이터 모델, 프로세스 모델
설계 비기능적 요구사항 : 성능(속도), 보안, 아키텍쳐(확장성 및 유연성), 안정성(장애대응), 환경, 품질
UI 설계 도구
- 화면설계용 전문도구는 단순하고 전문화된 기능 제공함
설계 모델링
- 구조모델
- 시스템 구조 : 컴포넌트 연결, 컴포넌트 유형
- 컴포넌트 구조 : 인터페이스, 데이터 구조, 알고리즘 구조
- 행위 모델 : 입출력데이터, 데이터 변환, 상태전이, 사건발생 순서, 실행경로
SW 아키텍쳐
- 구조를 비롯한 개발에 중요영향을 미치는 결정들(컴포넌트 사이 커뮤니케이션 방법, 물리적 배치)
- 추상적 표현을 활용한 복집도 단순하게 관리
- 시스템아키텍쳐는 어떻게 작동하는지를 내,외부 관계를 통해 설명함
- 아키텍쳐 드라이버 : 아키텍쳐에 영향을 주는 요구사항, 설계 집중하도록 잘 식별하는 것이 중요함
- 아키텍쳐 프레임워크 IEE1471 : 구조 기술 규정
- 아키텍쳐 프레임워크 IEE42010 : 시스템과 엔지니어링 관련 용어 정의
SW아키텍쳐 4+1 VIEW
- 다양한 관점을 바탕으로 정의
- 고객 요구사항 4관점 = 사용사례관점 + 논리관점(상위수준 시스템 고려) + 구현관점(독립 실행 컴포넌트 간 관계) + 프로세스 관점(병렬/동기화 처리를 위한 스레드와 프로세스 정의) + 배치관점(HW와 SW 관계정의)
방향그래프 최대간선 : N(N-1)
무방향 그래프 최대간선 : N(N-1)/2
CASE 종류
- 특징 = 생명주기 전 단계를 연결, 개발 모형 지원
- 상위 : 기본 설계 단계 지원
- 중위 : 상세 설계 지원
- 하위 : 시험과 유지보수 지원
소켓
포트를 할당하고 통신 요청시 클라리언트와 연결함
비동기거래
응답 메세지를 대신 받아 처리 (EX_MOM)
웹서버와 웹 어플리케이션의 구성
형상관리
- 개발환경 전체 과정의 산출물 이력 변경 관리(단, 최소한의 방해), 문제 발생의 원인 출력
- CVS나 SVN, GIT
- 핵심 순서 :식별(ID부여) ~ 통제 ~ 감사(무결성 판단과 승인) ~ 기록(보고절차 수행)
- BASELINE : 기능(요구사항 정의) ~ 분배(산출물WBS) ~ Design설계 ~ 시험 ~ 제품(TEST 완료시점) ~ 운영
- 기능
- 체크아웃 : Responsitory로부터 형상 관리 대상 Download
- 체크인 : Responsitory에 형상 관리 대상 Upload
- 커밋 : 형상관리 서버에 변경사항 반영
구현도구
- 여러 작업을 가능하게 하고 요즘은 IDE 사용 추세
- VS, Eclipse
스키마
- 외부 스키마 = 각 개인
- 내부 스키마 = 설계자 입장
- 개념 스키마 = 조직 전체 데이터 베이스 구조를 논리적으로 정의
3R기법
- 역공학(CASE를 이용하여 문서로 추출)
- 재사용(이미 개발된 SW의 전체나 일부를 재사용)
- 재공학(기존 시스템을 표준화하거나 고수준 언어로 재구성하는 변환)
단위모듈 테스트의 소스코드 커버리지
- 구문 커버리지 : 소스코드 구문 단순 실행 여부 측정, 결과무관한 구문 실행 개수 계산
- 결정 커버리지 : 전체 조건식이 최소 참/거짓 한번 값을 가져야 함
- 조건 커버리지 : 전체 조건식 결과 무관하게 각 개별 조건식이 참/거짓 한번씩 모두 갖고 이를 조합
- 조건/결정 커버리지 : 전체 조건식이 참/거짓 한번씩 갖고 개별 조건식도 참/거짓 한번씩 가짐
- 변경조건/결정 커버리지 : 각 개별 조건식이 타 조건식과 무관하게 전체 조건식에 영향줌
- 다중조건 커버리지 : 결정 조건 내 모든 개별 조건식의 몯느 가능한 논리적 조합 100% 보장
개발 검증의 V모델
- 검증 : 개발자 관점의 시스템 검증 (설계와 통합 테스트 사이)
- 확인 : 사용자 관점의 시스템 검증 (설계와 테스트 계획 및 설계 사이)
정렬 알고리즘
- 퀵 정렬 : 최악 시간 O(N2), Pivot분할원소는 자유 선택 가능
- 합병 정렬 : 분할정복 사용, 평균 평균 시간 복잡도 O(NLOG2N)
McCabe의 Cyclomatic 회전복잡도
- 복잡도를 나타내는 공식 (회전복잡도, 순환복잡도)
- Edge : 선
- 폐구간 : Edge로 사방이 막힌 영역
- 회전복잡도 = Edge수 - Node수 +2P(보통 P=1)
- 회전복잡도(2) : 소스코드의 분기수(WHILE,IF수) +1
언더플로
- 스택구조에서 더 이상 삭제할 데이터가 없을 때 데이터를 삭제하면 발생하는 현상
형상관리
- 식별 ~ 통제 ~ 감사 ~ 기록
사용자 메뉴얼
- 사용환경 & 구동환경 & 제품 명칭 & 제품 번호
빌드 자동화 프로세스
- 컴파일 ~ 패키징 ~ 단위테스트 ~ 정적분석 ~ 리포팅 ~ 배포 ~ 최종빌드
문제 정리
Q. 단위모듈 테스트 방법으로 부적절한 것은?
1. 화이트 박스 테스트
2. 메소드 기반 테스트
3. 블랙박스 테스트
4. STUB와 Driver 활용 테스트
=> 단위모듈 테스트는 소스코드를 보아야함. 명시적으로 블랙박스 테스트는 소스코드를 보지 못함
A. 3.
Q. 소프트웨어 버전 관리 도구 유형이 아닌것은?
1. 분산형 버전 관리
2. 로컬 버전 관리
3. 클라우드형 버전 관리
4. 중앙집중식 버전 관리
=> 분산형은GIT, 로컬버전은 RCS, 중앙집중식은 CVS
A. 3.
Q. 소프트웨어 품질표준 ISO/IEC 9126 품질 특성 중 설명하는 의미의 특성은?
- 투입된 자원에 대해 제공되는 성능정도
- 요구 기능을 수행하기 위해 필요한 자원의 소요 정도
1. 기능성
2. 호환성
3. 보안성
4. 효율성
=> 기능성은 명시된 요구와 내재요구를 만족하는 기능을 제공하는 능력임
효율성은 투입자원에 대해 제공되는 성능 정도와 요구 기능 수행을 위한 필요 자원의 소요 정도임
A. 4.
Q. 단위모듈 디버깅을 위한 자동화 도구 사례로 올바르지 않은 것은?
1. JAVA 기반 단위모듈 디버깅에 JUnit 활용
2. C++기반 단위모듈 디버깅에 CppUnit 활용
3. Python기반 단위모듈 디버깅에 unittest 활용
4. Swift기반 단위모듈 디버깅에 xUnit 활용
=> xUnit은 다양한 언어를 지원하고, C#을 위한 자동화 도구이다.
A. 4.
Q. 다음 중 검증 시험과 거리가 먼 것은?
1. 알파 테스트
2. 베타 테스트
3. 블랙박스 테스트
4. 화이트박스 테스트
=> 기본적으로 검증 시험은 소스코드를 보지 않고, 화이트 박스 테스트는 개발단계에서 수행한다.
또한, 화이트박스는 원시 코드의 논리적 구조를 커버하도록 테스트 케이스를 설계한다.
A. 4.
Q. 소프트웨어 테스트 기법 중 명세 기반 기법의 일반적 특징 설명이다. 적절하지 않은 것은?
1. 일반적으로 공식/비공식적 모델이 명세화를 위해 사용된다.
2. 대표적인 종류로 동등 분할, 경계값 분석, 조합 테스트 등이 있다.
3. 테스트 케이스를 수행하여 중대한 결함이 없음을 보장하는 것이 일반적이다.
4. 코드와 설계 등의 소프트웨어 구현 정보를 기반으로 테스트 케이스를 도출한다.
=> 명세기반 테스트는 주어진 형태를 빠짐없이 테스트 케이스화 하는 것을 의미한다. 구현정보 기반 테스트 케이스 도출은 구조 기반 기법이다.
A. 4
'관련 도서 및 지식 > 자격증' 카테고리의 다른 글
[ 정보처리기사 기사패스- 정보처리기사 필기 적중문제 ] 오답 및 추가 상식 요약(5파트) (0) | 2023.01.24 |
---|---|
[ 정보처리기사 기사패스- 정보처리기사 필기 적중문제 ] 오답 및 추가 상식 요약(3파트, 4파트) (0) | 2023.01.23 |
[ 정보처리기사 실기 ] C언어 - 기본적 문법 구조 (2) | 2023.01.21 |
[ 정보처리기사 필기 ] 5파트 요약 : 프로젝트 비용 산정 , 프로그램 기술 , 보안 , 정보 원칙 , 공격 , 네트워크 관리 신기술 , 암호화 (0) | 2023.01.16 |
[ 정보처리기사 필기 ] 4파트 요약 (2) : 모듈 , 프로세스 , OSI 7 , 프로토콜 , 프로세스 (1) | 2023.01.16 |