[정보처리기사 실기] 초압축 개념정리-2
[정보처리기사 실기] 초압축 개념정리-2
필자는 '[정보처리기사 실기] 수제비 2022 회차별 최종정리 시리즈'를 다 완벽히 외우고 시험을 치러 갔다. 결과는 합격!
하지만 이 7개 시리즈도 외울 시간이 정말정말 없는 분들을 위해 초압축 버전을 다시 준비했다.
비록 60점으로 합격했지만, 직장인 등 시간이 없는 분들은 이 시리즈만이라도 제발 다 외우고 시험치러가보자!!
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-1
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-2
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-3
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-4
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-5
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-6
[정보처리기사 실기] 수제비 2022 회차별 최종 정리-7
위 시리즈를 공부할 시간이 없다면?
<DL제어기법> : 회흐오
- 회선제어(Circuit Control) : 데이터 동시 전송시 충돌 제어 - ENQ/ACK기법, 풀링기법
- 흐름제어(Flow Control) : 전송되는 데이터 양 제어 - Stop&Wait기법, Sliding Window기법
- 오류제어(Error Control) : 전송오류 발생시 복구 제어 - FEC(전진오류수정)기법, BEC(후진오류수정)기법
<SQL 명령>
- DDL(Data Definition Lang) - 크드얼트 :: Create, Drop(Table), Alter(Table), Truncate(Table)
- DML(Data Manipulation Lang) - 인셀딜업 :: Insert(Into, 튜플추가), Select, Delete(From, 튜플삭제), Update(Set, 튜플변경)
- DCL(Data Control Lang) - 그리 :: Grant, Revoke
- TCL(Tx Control Lang) - 커롤첵 :: Commit, Rollback, Checkpoint
- 권한부여 - 그온투
- 권한부여 & 권한권한부여 - 그온투윗옵
Grant all on Student to SHMOON with Grant option;
- 권한회수 - 리온프
- 부여된 옵션까지 권한회수 - 리온프캐콘
Revoke Delete On Score from Dooum cascade constraints;
- 뷰생성 - 크뷰애셀
Create view 사원뷰 as select 사번, 이름 from 사원 where 성별 = ‘M';
- 뷰삭제 - 드뷰
- 데이터추가(삽) - 인인밸
Insert Into 학생 Values('202101','임꺽정‘,’프로그래밍‘,’010-1234-5678‘);
Insert Into 급여(부서명, 직책, 급여) Values('마케팅부‘,’부장‘,’100‘);
- 데이터삭제(삭) - 딜프웨
delete from 학생 where 수강과목 = ‘유체역학’;
- 데이터변경(갱) - 업셋웨
Update 학생 set 상태=‘매국노’ where 이름=‘이광수’;
Update 급여 Set 호봉=15 where 이름=‘홍길동’ ;
- 모든데이터삭제 -(DDL) 트테 /(DML) 딜프
- 인덱스생성 - 크인온
Create Index 학번인덱스 on 학생(학번);
- 중복제거 - 셀디프(Select Distinct From)
Select 학년 Distinct from R1;
- 테이블삭제 - 드테캐(Cascade : 링크된 데이터 다 삭제, Restrict : 링크된 테이블이면 삭제 명령 취소)
- 컬럼추가(삽) - 얼테애(where절은 select에서만 쓸 수 있음)
- 중복값 입력 금지 - Alter Table 학생 add 전화번호 VARCHAR(11) UNIQUE;
- 연차에는 NULL 입력 금지 - Alter Table 급여 Add 연차 INTEGER NOT NULL;
★주의★ : where 절 : IS NULL/IS NOT NULL이고 Alter : NULL/NOT NULL임
- 성별에는 M과 F만 입력 가능 - Alter Table 학생 Add 성별 CHAR(1) CHECK(성별 IN('M', 'F'));
- 컬럼삭제(삭) - 얼테드
Alter Table 직원 Drop 고과;
- 컬럼속성변경(갱) - 얼테모
- PK지정 - Alter Table 부서 Modify 부서번호 Integer Primary Key;
- Grade Number(1)에 NULL대신 기본값 1지정 - Alter Table 부서 Modify Grade Number(1) Default 1;
- 1,1,3,4 랭크 : 랜오(오)
Select 이름, 수학, rank() over(Order by 수학 DESC) as 등수 from 점수 order by 수학 DESC;
- 1,1,2,3 랭크 : 덴랜오(오) :: 더 자세히 본다는 뜻
Select 이름, 수학, dense_rank() over(Order by 수학 DESC) as 등수 from 점수 order by 수학 DESC;
- 부서별로 각각 랭크 : 랜오(파오)
Select 부서,이름,Rank() Over(Partition by 부서, Order by 연봉 DESC) as 순위 from 급여 Order by 부서 DESC, 연봉 DESC;
- A∪B(중복제외) - A Union B
- A+B(중복허용) - A Union All B
- A∩B - A Intersect B
- A-B - A Minus B
- 조건으로 그룹묶기(급여 6000 넘는 부서 출력)
select 부서, sum(급여) as 급여합계 from 급여 group by 부서 having 급여합계 >= 6000;
<그룹함수>
- 그바그 : 학년, 반 독립적으로 :: 1, 2, -1, -2 평균점수 출력
select 학년, 반 AVG(점수) as 점수 from 점수 group by grouping sets(학년, 반);
- 그바롤 : 학년(기준), 반 모든 조합으로(기준은 안없어짐) :: 1-1, 1-2, 1, 2-1, 2-2, 2, 전체평균 점수 출력
select 학년, 반, AVG(점수) as 점수 from 점수 group by rollup(학년, 반);
- 그바큐 : 학년, 반 기준없이 진짜 모든 조합으로 :: -1, -2, 1-1, 1-2, 1, 2-1, 2-2, 2, 전체평균 점수 출력
select 학년, 반, AVG(점수) as 점수 from 점수 group by cube(학년, 반);
- 필기가 NULL이거나 0점인 수험자명 출력
select 수험자명 from 정처기 where 필기 IS NULL or 필기 = 0;
- Select Count(국어+영어) from 성적에서 국어, 영어에 NULL이 있다면? - 교집합이므로 어느 한쪽에라도 NULL 있으면 카운트 안함
- Select AVG(국어) from 성적에서 3개 레코드인 국어에 NULL 1개 있다면? - 분모/분자에 모두 카운트하지 않음
<화이트박스테스트> : 소스코드 내부를 테스트(개발과정 테스트) :: 구결조 조변다 기제데
- 구문 커버리지(=문장) : 모든 구문박스 체크
- 결정 커버리지(=선택=분기) : 모든 IF(A&B)의 T/F 체크
- 조건 커버리지 : 모든 IF(A&B)에서 A,B의 T/F 체크
- 조건/결정 커버리지 : 조건+결정 중 한번만 T/F 체크
- 변경 조건/결정 커버리지 : 모든 조건/결정 중 일부 샘플만 T/F 체크
- 다중 조건 커버리지 : 모든 조건/결정 T/F 체크
- 기본 경로 커버리지(=경로) : 모든 라인 체크
- 제어흐름 테스트 : 내부로직 제어흐름 테스트 -> 그래프로 출력
- 데이터흐름 테스트 : 내부로직 데이터흐름 테스트 -> 그래프로 출력
<블랙박스 테스트> : TC를 만들어 명세서대로 출력값 나오는지 테스트(개발결과 테스트) :: 동경결상유분페원비
- 동등분할 테스트 : 데이터 영역을 유사도메인으로 묶고 대푯값만 테스트(무효값도 넣어야함)
- 경계값분석 테스트 : 동등분할 후 본인값+경계값 테스트(무효값도 넣어야함)
- 결정테이블 테스트 : 조건+행위로 테이블 만들어 테스트
- 상태전이 테스트 : 이벤트에 의해 상태가 변화는 놈들만 테스트
- 유스케이스 테스트 : 실제 프로세스 흐름대로 테스트케이스 설계 및 수행
- 분류트리 테스트 : 트리구조로 만들어 테스트케이스 설계 및 수행
- 페어와이즈 테스트 : 데이터값을 모두 최소 1번 만나도록 짝(Pair)를 만들어 테스트(모든 조합을 해도 테스트세트가 작은 경우 수행)
- 원인-결과그래프 테스트 : 그래프 분석하여 인풋대비 아웃풋 영향성 큰놈들만 테스트
- 비교 테스트 : 모든 프로그램 버전에 동일 인풋, 동일 아웃풋 나오는지 테스트
<UML 다이어그램> : 정동기
1) UML 정의
- Unified Modeling Language :: 객체지향SW 개발 시 모델링기술+방법론을 통합하여 만든 표준화된 언어
2) UML 구성요소 : 사관다
- 사물(Thing) : 주재를 나타내는 추상적인 개념
- 관계(Relationship) : 사물간의 관계를 표현
- 다이어그램(Diagram) : 사물과 관계를 모아 그림으로 표현
3) UML 관계
- Aggregation(◇) - ASSY ⊂ INSTL 관계(상위)
- Composition(◆) - Detail ⊂ ASSY 관계(하위)
4) 정적다이어그램 : 객체(클래스)의 구조적 관계 표현 D
- 클래스다이어그램 : 클래스간 관계표현 D((클속메접)클래스/속성/메서드(연산)/접근제어자,(-):Private::클래스 내부접근,(+):Public::클래스 외부 접근,(#):Protected::동일패키지/파생클래스 접근,(~):Default::동일패키지 접근)
- 객체다이어그램 : 객체간 관계 표현 D
- 컴포넌트다이어그램 : 컴포넌트간 의존관계표현 D
- 배치다이어그램 : 컴포넌트 등 물리요소의 위치(배치구조) 표현 D
- 복합체구조다이어그램 : 컴포넌트, 클래스가 복합구조를 갖는 경우, 그 내부 구조 표현 D
- 패키지다이어그램 : 패키지간 관계표현 D(여기서 패키지는 클래스 등 모델요소를 그룹화한 것)->Streotype사용
5) 동적다이어그램 : 객체(클래스)의 상호작용 표현 D
- 시퀀스다이어그램 : 객체/클래스의 상호작용을 시계열메시지로 표현한 D((객생실메)객체/생명선/실행/메시지)
- 스테이트머신다이어그램 : 객체/클래스의 상태변화를 표현한 D
- 콜라보레이션다이어그램 : 객체/클래스의 상호작용을 시계열메시지+연관관계로 표현한 D
- 인터랙티브오버뷰다이어그램 : 조건문에 따라 다르게 처리되는 제어흐름을 표현한 D
- 타이밍다이어그램 : 시간의 흐름에 따라 객체/클래스의 상태변화를 표현한 D
6) 기능적다이어그램 : 기능수행절차를 표현한 D
- 유즈케이스다이어그램 :(정적) 사용자관점에서 시스템을 표현한 D
- 액티비티다이어그램 :(동적) 기능수행관점에서 실제 기능을 수행하듯 처리를 표현한 D
<디자인패턴> : 생구행
1) 생성패턴 :(추빌팩프싱) 객체를 만드는 방법 예제
- 추상팩토리(Abstract Factory): 서로 연관있는 객체들을 그룹화/추상화 하는 방법 예제
- 빌 Builder : 인스턴스들을 합쳐 객체를 만드는 방법 예제
- 팩 Factory Method : 상위클래스=인터페이스정의, 하위클래스=인스턴스 생성으로 업무분장하는 방법 예제
- 프 Prototype : 원본객체를 복제하여 객체 생성하는 방법 예제
- 싱 Singleton : 전역변수 안쓰고 참조객체를 만들어 다른 객체에서 사용하는 방법 예제
2) 구조패턴 :(데브프플어퍼컴) 클래스(객체)를 조합해 더 큰 구조를 만드는 방법 예제
- 데 Decorator : 클래스에 객체들을 합치는 방법 예제
- 브 Bridge: 독립적인 클래스들을 서로 연결하는 방법 예제
- 프 Proxy : 가상 객체를 만들어 정보은닉하는 방법 예제
- 플 Flyweight : 가상 인스턴스를 만들어 메모리 절감하는 방법 예제
- 어 Adapter : 기존에 만들어진 클래스를 재사용하는 방법 예제
- 퍼 Facade : 빌딩 외벽을 고치듯 보다 쉬운 인터페이스를 제공하여 시스템의 복잡도/결합도를 낮추는 방법 예제
- 컴 Composite : 객체 관계를 트리구조로 바꾸어 계층구조를 단순화하는 방법 예제
3) 행위패턴 :(비스옵템체스메이커) 클래스(객체)의 상호작용하는 방법 예제
- 비 Visitor : 메서드가 클래스들을 "방문"하여 기능 수행
- 스 State : 객체의 "상태"에 따라 다르게 작업 수행
- 옵 Observer : 객체를 “지켜보다”가 객체의 상태가 달라지면 다른 객체들에게 알림
- 템 Template Method : 소스코드 일부분을 “템플릿화(캡슐화)”하는 방법 예제
- 체 Chain of Responsibility : 하드코딩된 정적“연결”처리를 동적“연결”처리로 바꾸는 방법 예제
- 스 Strategy : 행위객체를 클래스로 캡슐화해 동적 행위하도록 “전략”을 바꾸는 방법 예제
- 메 Memento : “작업취소(Undo)” 기능개발 예제
- 이 Iterator : 내부구조를 노출하지 않고 내부구조 각 항목들을 “순차적(반복적)”으로 접근하는 방법 예제
- 커 Command : 기능이나 “명령”을 캡슐화해 재사용 가능한 클래스로 만드는 방법 예제