시간이 얼마 남지 않았다. 학원갔다와서 공부하고 다시 숙제하고 세미 프로젝트 준비하고 하다보니, 정처기 공부하는 시간
이 없었다ㅜ ..음 사실 핑계인 것도 같지만 그래도 아직 23일에 시간이 남았으니 더욱 집중해서 공부하기로 하였다.
기존에 공부했던 방식으로 진행하려면 내년에 따야할 것 같기에, 유튜브를 보다가 정처기 공부방법에 대해서 자세히 설명해주신분이 있어, 그분에 방법으로 공부를 진행하기로 하였다. 혹시 궁금하신분이 있을것 같아 해당 주소 남겨놓겠다.
https://m.blog.naver.com/wook2124/222102990691
2022년04월24일 기출문제
1과목 소프트웨어 설계
1. UML다이어그램 중 순차 다이어그램
: 순차다이어그램은 동적 이며 시간개념 중심으로 모델링 한 것이다.
📚 UML
시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록
표준화한 대표적인 객체지향 모델링 언어이다.
(결과물은 다른 모델링 작업에 영향을 줄 수 있다.)
- 특징 (가구명문 = 가시화언어 , 구축언어, 명세화언어, 문서화언어)
- 구성요소 (사관다 = 사물 / 관계/다이어그램)
📚 UML 다이어그램
1. 구조적 다이어그램 (정적)
- 클래스 다이어그램 : 클래스 사이의 관계를 표현
- 객체(Object)다이어그램 : 인스턴스를 특정시점의 객체와 객체 사이의 관계를 표현
- 컴포넌트(Component) 다이어그램 : 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트간의 인터페이스를 표현
- 배치(Deployment) 다이어그램 : 컴포넌트 사이의 종속성을 표현, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
- 복합체(Composite) 구조 다이어그램 : 클래스 컴포넌트가 복합구조를 갖는 경우 그 내부 구조를 표현
- 패키지 다이어그램 : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계표현
글객 컴배 복패
2. 행위적 다이어그램 (동적)
- 유스케이스 다이어그램 : 사용자 입장에서 표현하는 다이어그램
액터 : 시스템과 상호작용하는 모든 외부요소(사람 기계 시스템)
- 시퀀스(순차) 다이어그램 : 객체간 동적 상호작용을 시간 개념으로 메세지 흐름을 이용해서 표현하는 다이어그림
→ 구성요소 : 액터, 객체, 생명선, 실행상자, 메세지
- 커뮤니케이션 다이어그램 : 메세지와 연관을 표현하는 다이어그램
- 상태 다이어그램(State): 상호작용에 따라 상태가 변하는 것을 표현하는 다이어그램 / 럼바우
- 활동(Activity) 다이어그램 : 어떤 기능을 수행하는지 처리의 흐름을 순서로 표현하는 다이어그램
- 상호작용개요(Interaction Overview) 다이어그램 : 제어 흐름을 표현한다.
- 타이밍 다이어그램 : 객체 상태 변화와 시간 제약을 명시적으로 표형하는 다이어그램
유시커 상활타
2. 메세지 지향 미들웨어(MOM)
📚미들웨어란 ?
운영체제와 소프트웨어 Application 사이에서 원만한 통신이 이루어질 수 있도록 중개 및 제어 역할을 하는 소프트웨어
정보 교환 방법을 보안의 위협이 될 수 있어, 쉽게 확인할 수 없게 해야한다.
- DB : 원격의 데이터베이스와 연결하기 위한 미들웨어
- RPC : 원격 프로시저를 마치 프로시저처럼 호출하는 미들웨어
- MOM : 메세지 기반 비동기형 메세지를 전달하는 방식, 즉각적인 응답이 아닌 안정적인 응답을 필요로할때 많이 쓰임
- TP-Monitor: 항공가나 철도 예약등과 같은 온라인 트랜잭션을 처리 및 감시하는 미들웨어
- ORB : 객체지향 미들웨어로 코바 표준 스펙을 구현한 미들웨어
3. 익스트림 프로그래밍(XP)
📚익스트림 프로그래밍이란 ?
: 일부 기능이 완성될때마다 고객에게 보여주고 이에 대한 반응을 확인하는 과정을 최종 제품이 완성 될때까지 반복
대표적인 애자일 방법론 중 하나이다.
XP의 5가지 핵심 가치 (용단의피존)
- 용기
- 단순성
- 의사소통
- 피드백
- 존중
4. 유스케이스(Use Case) 다이어그램
📚 유스케이스란 ?
: 개발될 시스템과 관련된 요부요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을
사용자 관점에서 표현한 것이다.
- 외부요소와 시스템간의 상호작용을 확인할 수 있다.
- 사용자의 요구사항을 분석하기 위한 도구를 사용된다.
- 시스템의 범위를 파악할 수 있다.
1. 유스케이스 다이어그램 구성
- 시스템범위 : 사각형으로 묶어 시스템의 범위를 표현함
- 액터 : 시스템과 상호작용을 하는 모든 외부요소로 사람이나 외부 시스템을 의미한다.
- 유스케이스 : 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현
- 관계 : 연관/포함/확장/일반화관계를 표현
2. 유스케이스 구성요소간의 관계 (연일포확)
- 연관관계 : 유스케이스와 액터간의 상호작용이 있음을 표현한다.
- 포함관계 : 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계이다. (점선)
- 확장관계 : 특별한 조건을 만족할 때 수행한다. (점선)
- 일반화 관계 : 반삼각형+실선
5. 요구사항 분석
📚 요구사항분석이란 ?
:어떠한 문제를 해결하기 위해 필요한 조건이나 제약사항을 요구하는 것이며, 소프트웨어는 사용자의 요구사항을 충족시키기 위해 설계되고 개발됩니다.
1.기능 요구사항
- 시스템이 실제 어떻게 동작하는지에 관점(기능에 관련된 요구사항)
2.비기능 요구사항 (보성품안)
- 시스템 구축에 대한 성능, 보안, 품질, 안정,제약사항으로 실제 수행에 보조적인 요구사항
차량 대여 시스템이 제공하는 모든 화면이 3초 이내에 사용자에게 보여한다.
시스템은 1년 365일 24시간 운영이 가능해야한다.
5. UI의 설계 지침
📚 UI란 ?
- 사용자 중심 : 사용자가 이해하기 쉽고 편하게 사용할 수 있는 환경 제공
- 일관성 : 기억하기 빠르고 쉽게 습득할 수 있도록 설계
- 단순성 : 간단하게 작동되도록 하여 인지적 부담 최소화
- 결과예측기능
- 가시성
- 표준화 : 선행학습 이후 쉽게 사용 가능해야함
- 접근성 : 다양한 계층을 수용해야함
- 명확성
- 오류발생해결 : 오류에 대한 상황을 정확하게 인지 할 수 있어야함
피드백 : 시스템의 상태와 사용자의 지시에 대한 효과를 보여주어 사용자가 명령어 대한 진행상황과 표시된 내용을 해석
5. 다형성 (Polymorphism)
📚 다형성이란 ?
: 코드를 변경하지 않고 새로운 클래스를 쉽게 추가 할 수 있다.
여러가지 형태를 가지고 있으며 하나의 메세지에 대해 여러가지 형태의 응답이 있다는 것을 의미한다.
오버로딩: 메소드 이름은 같지만 매개변수의 수나 타입을 다르게 하여 여러기능을 정의한다.
오버라이딩 : 상속 관계에서만 발생 메소드안의 실행 코드를 달리하여 자식 클래스에서 재정의해서 사용할 수 있다. '
6. 소프트웨어 개발영역
📚 인터페이스란 ?
서로 다른 두 시스템이나 소프트웨어 등을 서로 이어주는 부분 또는 접속 장치
6. 객체
📚 객체란 ?
클래스가 공통된 속성과 연산(행위)을 갖는 객체의 집합
📚 클래스란 ?
공통 속성을 공유하는 객체들의 집합(데이터 추상화)
1. 클래스 특징
- 캡슐화(Encapsulation) : 서로 관련성이 많은 데이터들과 연산들을 묶음(정보은닉)
- 상속(Inheritance) : 상위 클래스의 메소드와 속성을 하위 클래스가 물려 받는것
- 다형성(Polymorphism) :
- 연관성(Relationship)
7. 컴포넌트 (Component)
: 명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서는 재사용되는 모든 단위
단 인터페이스를 통해서만 접근할 수 있음
8. GoF디자인 패턴
📚GoF디자인 패턴 유형
- 생성패턴 : 객체를 생성하는 것에 대한 패턴 (공장을 단순한 단위로 만들었네/추빌팩프싱)
추상 팩토리 패턴(abstract factory),
팩토리 메소드 패턴(factory method),
싱글톤 패턴(singleton)
프로토타입 패턴(prototype),
빌더 패턴(builder),
- 구조패턴 : 구조를 통해 확장성을 꾀하는 패턴(어브컴데퍼플프)
어댑터 패턴(adapter), 브릿지 패턴(bridge), 컴포지트 패턴(composite),
데코레이터 패턴(decorator), 퍼사드 패턴(facade),
플라이웨잇 패턴(flysweight), 프록시 패턴(proxy)
- 행위패턴
9. 소프트웨어 아키텍처 모델 (MVC)
Model : 보관
view : 보이는 역할
controller : 제어 (전달자역할)
한개의 모델에 대한 여러개의 뷰를 만들 수 있으며 대화형 어플리케이션에 적합하다.
2과목 : 소프트웨어 개발
1. 통합 테스트(Integration Test)
: 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트하는 것이다.
📚상향식 통합 테스트 (Bottom Up Intergration Test)
- 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)필요
📚하향식 통합 테스트 (Top Down Intergration Test)
- 상위 모듈에서 하위 모듈 방향으로 통합
- 깊이 우선 통합법, 넓이 우선 통합법 사용
- 초기부터 사용자에게 시스템 구조를 보여줌
- 인터페이스가 이미 정의 되어 있어 통합이 쉬움
- 스텁(Stub)
2. 워크스루(Walkthrough)
: 요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함 발견
📚인스펙션 : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함 발견
📚인스펙션 과정
계획 → 사전교육 → 준비 → 인스펙션 회의 → 수정 → 후속조치
3. 형상관리
: 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동
📚크랙 : 수정/비활성화하거나 제거하는 일
📚저작권 : 자기 저작물에 대해 가지는 법적권리
4.테스트 케이스(Test Case)
: 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행조건, 기대결과 등으로 구성된 테스트 항목에 대한 명세서 (판단 기준 : 오라클)
( 테스트 목표 및 방법을 결정하고 테스트 케이스를 작성해야한다.)
5. DRM(Digital Rights Management)
: 디지털 콘텐츠의 지적재산권보호 관리 기능 및 안전한 유통과 배포를 보장하는 솔루션
6. 위험 모니터링
: 위험 요소 징후들에 대하여 계속적으로 인지하는 것
7. RCS(Revision Control System)
: 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구
📚RPC : 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스 간 통신
8. 화이트박스 데스트 (기초 조건 루프 데이터 흐름)
: 내부 논리적인 경로, 구조적
실제 프로그램을 실행하여 오류를 찾는 동적테스트
소스코드의 모든 문장을 한번 이상 수행함으로써 진행
📚블랙박스테스트(동지분할, 경계값,원인-효과,비교,오류예측검사)
: 소프트웨어가 수행할 특정기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 테스트로 기능 테스트라고함
소프트웨어 인터페이스에서 실시
9. 리팩토링(Refactoring)
: 겉으로 보이는 동작의 변화 없이 내부구조를 변경하는 것 ≠ 리뉴얼(Renewal)
10. 단위 테스트(Unit Test)
: 코딩 직후 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것
모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
📚테스트 드라이버(test driver)
: 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈
📚 테스트 스텁(test stub)
:인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할을 한다.
11. IDE(Integrated Development Environment) 도구
- Coding - 프로그래밍 언어를 가지고 컴퓨터 프로그램을 작성할 수 있는 환경을 제공
- Compile - 고급언어(사람이 인식하는 언어)에서 저급언어(기계어)로 바꾸는 변환하는 기능
- Debugging - 프로그램에서 발견되는 버그를 찾아 수정할 수 있는 기능
- Deployment - 소프트웨어를 최종 사용자에게 전달하기 위한 기능
12. 트리 구조
: 정점(Node,노드)과 선분(Branch,가지)을 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
- 디그리 (Degree) : 가지의 수
- 단말 노드 (Terminal Node) : 자식이 없는 노드
📚 트리운행법
- Preorder 운행 (전위순회): 부모 갔다가 -> LEFT 모든곳 갔다가 -> RIGHT 모든곳 갔다가
- Inorder 운행 (중위순회) : LEFT 모든곳 갔다가-> 부모 갔다가 -> RIGHT 모든곳 갔다가
- Postorder 운행 (후위순회) : LEFT 모든곳 갔다가-> RIGHT 모든곳 갔다가-> 부모 갔다가
13. 자료구조 분석
- 스텍 LIFO(후입선출) /한쪽끝으로만 삽입(오버플로우) 삭제(언더플로)가 이루어짐
- 큐 FIFO(선입선출) 양방향에서 일어남 한쪽은 삽입 다른 한쪽은 삭제
14. 단위테스트 도구
- CppUnit
- JUnit
- HttpUnit
3과목 : 데이터베이스 구축
1. 정규형
📚 정규화과정 [도부이결다조]
- 1NF : 모든 *도*메인이 원자 값으로만 구성
- 2NF : 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, *부*분적 함수 종속을 제거한 정규형
- 3NF : 기본키가 아닌 모든 속성이 기본키에 대해 *이*행적 함수 종속 관계를 만족하지 않는 정규형
- BCNF : 모든 *결*정자가 후보키인 정규형, 종속성 보존X
- 4NF : *다*치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
- 5NF : 모든 *조*인 종속이 R의 후보키를 통해서만 성립되는 정규형
2. 데이터베이스의 트랜잭션 특성
📚 트랜잭션 : 쪼갤 수 없는 업무 처리의 최소 단위
- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전 후에 같아야 함
- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨
3. 분산 데이터 베이스
: 논리적으로 하나의 시스템에 속하지만
물리적으로는 네트워크를 통해 연결된 여러개의 사이트에 분산되어 있는 데이터베이스
📚 분산데이터 목표(병장위중)
- 위치투명성
- 중복투명성
- 병행투명성
- 장애투명성
4. 내림차순 / 오름차순
- 판매량이 많은 제품부터 출력하려면 내림차순정렬 적용 (DESC)
- 오름차순은 생략/ ASC 사용
5. 인덱스
: 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위하여 구성한 순서 데이터를 말한다.
데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제됨
- 인덱스 생성 : CREATE
- 인덱스 삭제 : DROP
6. 레코드 양식 설계 고려사항
: 데이터타입, 데이터 값의 분포, 접근빈도
📚 트랜잭션 모델링
: 트랜잭션을 개념적 시스템 독립적으로 정의한다.
트랜잭션의 입출력 기능, 형태만 정의한다.
검색, 갱신, 혼합
7. DCL / DDL / DML 정리
1) DCL (CRGR)
- COMMIT :
- ROLLBACK : 명령어로 수행을 실패하였음을 알리고 수행된 결과를 원상복구 시킨다.
- GRANT : 사용자에게 사용 권한 부여
- REVOKE : 사용자로부터 사용 권한 취소
2) DDL (CAD)
- CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
- ALTER : TABLE에 대한 정의를 변경하는 데 사용
- DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제
3) DML (SIDU)
- SELECT
- INSERT
- DELECT
- UPDATE
8. 데이터 사전(Data Dictionary)
- 시스템 자신이 필요로 하는 여러가지 객체에 관한 정보를 포함하고 있는 시스템 테이터베이스이다.
- 시스템 카탈로그, 메타데이터라고도 한다.
- 시스템 카탈로그 자체로 시스템 테이블로 구성되어 있어 SQL문을 이용하여 내용 검색이 가능하다.
- 사용자가 시스템 카탈로그를 직접 갱신 할 수 없다.
- SQL문으로 여러가지 객체에 변화를 주면 시스템이 자동으로 갱신한다.
9. 릴레이션
: 데이터들의 표(Table)의 형태로 표현/ 듀플 : 행
- 튜플의 유일성 : 모든 듀플은 서로 다른 값을 갖는다.
- 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없다.
- 속성의 원자성 : 속성값은 원자값을 갖는다.
- 속성의 무순서성 : 유일한 이름을 가지며 순서는 큰 의미가 없다.
10. 데이터베이스 뷰(View)
- 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.
- 뷰는 일종의 가상 테이블이며, update에는 제약이 따른다.
- 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다.
- 뷰는 논리적으로만 존재한다.
11. Candidate key(후보키)
: 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
듀플을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합
📚 Super key(슈퍼키)
속성들의 집합으로 구성된 키
릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
12. 데이터베이스 설계 단계
- 개념적 설계 : 트랜잭션 모델링/ 독립적인 개념 스키마 모델링 / 개념스키마 설계 / E-R 다이어그램
- 논리적 설계 : 트랜잭션 인터페이스 설계/DBMS에 맞는 논리스키마 설계/ 테이블 설계/ 논리적 매핑/ 스키마 평가 및 정제
- 물리적 설계 : 레코드 집중의 분석, 설계/ 저장 레코드 양식 설계 / 저장 구조 및 액세스 경로 설정
13. 기본키(Primary Key)
'ON > 자격증' 카테고리의 다른 글
[자격증] 내가 보려고 작성하는 정보처리기사 실기 1. 요구사항 확인 (1) | 2024.01.25 |
---|---|
SQLD 자격증 결과 미리보기 (3) | 2023.10.04 |
2023년 7월 회고 (정처기 필기합격) (0) | 2023.08.07 |
[자격증] 정보처리기사 1과목 2과목 문제 해석 [2022년 03월 05일 ] (0) | 2023.07.11 |
[자격증] 정보처리기사 자격증 준비하기 (0) | 2023.05.25 |