728x90
반응형

https://youtu.be/CqH3twPtgyg?si=xGZET6-lV_6lIr6P

1. 데이터베이스 관리 시스템의 구조와 활용

1-1. 데이터베이스 관리 시스템과 SQL
- 데이터베이스 관리 시스템(DBMS)는 데이터의 저장, 관리, 기능을 제공함
- SQL은 DBMS에서 사용하는 기본적인 명령어로, 데이터베이스를 생성, 수정, 삭제하는 데 사용됨
- SQL은 데이터 데피니션(데이터 정의어)와 관계형 데이터 모델을 이용하여 활용됨
- (중요) SQL을 활용하여 데이터의 구조와 제약사항을 생성, 수정, 삭제하는 것이 가능함

1-2. 데이터 데피니션(데이터 정의어)과 그 활용
- 데이터 데피니션은 데이터를 저장하는 테이블 등 구조를 생성, 변경하기 위해 사용하는 명령어임
- 데이터 데피니션에는 크리에이트, 드롭, 리네임, 올터, 트랜잭션 등의 명령어가 포함됨
- (중요) 이 명령어들을 통해 테이블의 생성, 수정, 삭제, 구조의 제약사항 등을 파악하고 수정할 수 있음
- 트랜잭션은 연산 작업을 수행하여 데이터베이스의 상태를 변환시키는 논리적 기능을 수행함

1-3. 제약조건의 적용과 테이블 생성, 수정, 삭제
- 제약조건은 테이블 생성, 수정, 삭제 시에 사용되며, 각각 다른 조건을 설정함
- 프라이머리 키는 테이블의 기본키를 정의하며, 반드시 '트래프'를 허용하지 않음
- (중요) 포링키는 다른 테이블 간의 연결점 역할을 하며, 유니크는 해당 열의 유일성 보장
- 제약조건의 유형에는 기본키 지정, 외키 설정, 옵션 설정 등이 있음

2. 관계형 데이터 모델과 트랜잭션

2-1. 관계형 데이터 모델의 이해
- 관계형 데이터 모델은 2차원 테이블을 구성하고, 테이블 내 속성 간의 관계를 설정함
- (중요) 테이블 간의 관계는 1대1관계, 다대다관계로 표현 가능
- 고객과 예약은 1대1로 연결되어 있음
- 테이블의 특징은 하나 이상의 컬럼을 가져야 하며, 열의 이름과 번호를 설정함

2-2. 트랜잭션의 특성
- 트랜잭션은 데이터의 무결성을 보장하기 위한 작업 단위임
- 트랜잭션의 특성으로는 원자성, 일관성, 고립성, 영속성이 있음
- (중요) 트랜잭션의 원자성은 트랜잭션의 성공 또는 실패가 한 가지여야 함
- 트랜잭션의 일관성은 트랜잭션 실행 후 데이터의 상태가 보존되야 함
- 트랜잭션의 고립성은 변경사항 없이 트랜잭션의 결과가 영구적으로 저장되어야 함

2-3. 트랜잭션의 제어 명령
- 트랜잭션의 제어 명령에는 컴비트, 롤백, 체크포인트 또는 세이브 포인트가 있음
- 컴비트는 트랜잭션 처리가 완료되었음을 알려주는 명령임
- 롤백은 트랜잭션의 오류가 발생했을 때, 트랜잭션의 원래 상태로 돌아가게 하는 명령임
- (중요) 체크포인트 또는 세이브 포인트는 트랜잭션을 잠그기 위한 명령임
- 명령어에 따라 트랜잭션의 상태가 달라짐

3. 테이블 구조

3-1. 테이블과 컬럼
- 테이블은 2차원 구조로 데이터 저장소 역할을 함
- 테이블의 컬럼은 가로 방향으로 연결된 필드들로 구성됨
- 테이블 용어는 데이터를 저장하는 객체임
- 테이블은 관계형 데이터 모델에서 필수적인 요소임
- 테이블은 서로 다른 데이터에 대한 관계를 정의함

3-2. 테이블 특징과 데이터 사전
- 테이블은 하나의 주제와 목적에 따라 만들어짐
- 테이블의 자료는 주기적으로 변화하지 않아야 함
- 데이터 사전은 데이터베이스의 데이터를 제외한 모든 정보를 저장함
- 데이터 사전은 시스템의 데이터를 제공하고 관리하는 데 필요한 참조 정보임
- (중요) 데이터 사전은 시스템의 구성 요소로서 작업을 수행하는 데 필요한 정보를 포함함

3-3. 데이터 사전 검색과 트랜잭션
- 오라클과 마이SQL 모두 데이터 사전을 검색할 수 있음
- 데이터 사전은 테이블 형태로 구성되며, 해당 데이터베이스의 테이블 목록을 통해 검색 가능함
- 마이SQL은 데이터 사전을 검색할 때 다중 인덱스를 사용함
- 트랜잭션은 논리적 기능을 수행하는 작업 단위로, 데이터베이스의 상태를 변환함
- 트랜잭션은 실패 시 원상복귀 기능을 제공함

4. 관계형 데이터 모델과 트랜잭션 이해

4-1. 관계형 데이터 모델과 트랜잭션 개념
- 관계형 데이터 모델에서의 'er'는 '엔터티 릴레이시오십 모델'이라 함
- 트랜잭션은 데이터베이스의 상태를 변화시키기 위한 논리적 기능 수행 단위임
- 트랜잭션의 특징으로 원자성, 일관성, 고립성, 영속성이 있음
- 테이블은 데이터를 저장하는 객체로, 관계형 데이터베이스의 기본 단위임
- 컬럼과 행의 2차원 구조로 데이터를 열과 행으로 표현하며, 이를 '빌드'라 함

4-2. 데이터 사전과 SQL 작성
- 데이터 사전은 데이터를 제외한 모든 정보를 포함하며, 이는 오라클 DBMS와 마찬가지로 제어함
- 데이터 사전 검색은 '데이터 사전'에서의 검색과 동일하게 이루어짐
- (중요) 기본 SQL로는 데이터베이스 구축과 활용을 설명하고 있음
- 고급 SQL로는 테이블에 대해 어떻게 조작하고, 어떻게 이용하는지에 대한 내용을 다룸

4-3. 뷰와 인덱스 이해
- 뷰는 가상 테이블을 구성하는 데이터베이스 오브젝트로 별도의 저장 공간은 없음
- 뷰는 논리적으로 독립성을 제공하며, 데이터 관리가 용이함
- 뷰의 내용에 대한 삽입이나 삭제는 가능하지만, 일부 제약이 존재함
- 인덱스는 데이터를 빠르게 찾기 위해 사용하는 데이터 구조임
- 인덱스의 사용 주체는 데이터베이스 관리 시스템이며, 데이터 사용자에게는 불필요함

5. 인덱스와 조인

5-1. 인덱스 정의와 활용
- 인덱스는 테이블에서 검색과 가색을 빠르게 하는 속성임
- 인덱스는 주키와 간키를 이용하여 정의되며, 테이블 전체를 스캔하지 않고 특정 대상만 스캔하여 검색 가능함
- (중요) 인덱스는 기본적으로 뷰에서는 정의 변경이 불가능함
- 테이블의 주키 값이 변경되면 기존 인덱스를 삭제하고 새로운 인덱스를 생성하는 것이 일반적으로 권고됨
- 인덱스를 통해 검색 성능 향상을 꾀할 수 있음

5-2. 다중테이블 검색
- 다중테이블은 여러 개의 테이블 관계를 의미하며, 데이터 중복을 최소화하기 위한 정규화 기법을 사용함
- 다중테이블의 검색 방법은 조인, 서브쿼리, 집합 연산의 세 가지가 있음
- 조인은 두 개의 테이블을 결합하여 하나를 만드는 결합 방법임
- 논리적 조인은 사용자의 조건에 따라 테이블을 결합하는 방식이며, 내부 조인과 외부 조인으로 나뉨
- 물리적 조인은 데이터베이스의 성능을 향상시키기 위한 튜닝 관점이며, 논리적 조인은 사용자의 조건에 따라 테이블을 결합하는 논리적 조인으로 간주됨

5-3. 논리적 조인의 예
- 내부 조인은 두 테이블의 컬럼이 모두 같은 경우를 추출하는 이너 조인과, 두 테이블의 모든 컬럼을 비교하여 같은 컬럼값을 가진 경우를 추출하는 교차 조인으로 나뉨
- 외부 조인은 상대적인 조인으로, 왼쪽 외부 조인과 오른쪽 외부 조인, 그리고 완전 외부 조인으로 나뉨
- 논리적 조인은 내부 조인과 외부 조인으로 나뉨
- 내부 조인은 동등 조건절이나 온 조건절을 사용하여 컬럼을 선언함
- 논리적 조인은 비연관 서브 커리, 연관 서브 커리, 다중 테이블 서브 커리로 나뉨

6. 고급 SQL 작성

6-1. 집합 연산의 이해
- 집합 연산자는 여러 질의 결과를 하나로 결합하는 방식임
- 테이블을 집합 개념으로 이해하고, 집합 연산을 사용할 수 있음
- 집합 연산을 통해 서로 다른 테이블에 유사한 형태의 결과를 하나의 결과로 합침
- 집합 연산의 유형으로는 유니온, 인터섹션, 멀티셋, 마이너스가 있음
- (중요) 유니온은 중복된 행을 제거하지 않고, 인터섹션은 중복된 행을 제거함

6-2. 다중 테이블 검색
- 다중 테이블 검색 시, 조인 집합 연산을 사용하여 결과를 추출할 수 있음
- 조인의 종류는 논리적 조인과 물리적 조인으로 나뉨
- 논리적 조인은 내부 조인과 외부 조인으로 구분됨
- 뷰는 하나 이상의 물리적 테이블로부터 생성 가능한 가상의 테이블임
- 뷰의 장점은 논리적 독립성, 사용자 데이터 관리 용이, 데이터 보안 용이임

6-3. 인덱스와 다중 테이블 검색
- 인덱스는 생성 후 변경 불가능하며, 다중 테이블 검색 시 필요한 기법임
- 인덱스의 특정 컬럼은 특정 테이블에만 속할 수 있음
- 조인은 교집합 결과를 가져오는 결합 방법임
- 관계형 데이터베이스에서 조인은 논리적 조인과 물리적 조인으로 나뉨
- 다중 테이블 검색은 두 개 이상의 테이블을 결합하여 데이터를 추출하는 기법임

00:03
세베이스 구축 두 번째 학습 능력 단위인 sql 활용에 대해 살펴보도록 하겠는데요. sqr 활용에서 먼저 첫 번째 기본 sql 작성에 대해 알아보도록 하겠습니다. 학습목표입니다. 테이블의 구조와 제약 조건을 생성 삭제하고 수정하는 ddl은 데이터 데프니션 랭귀지입니다. 데이터 정의어라고 이야기를 하고요. 데이터정의어 명령을 작성할 수 있다. 두 번째 생성된 테이블의 목록과 테이블의 구조 제약사항을 파악하기 위해 데이터 사전 데이터 딕션으로 이야기합니다. 데이터 사전을 조회하고 명령을 작성할 수 있다. 세부학습내용은 다섯 파트로 나눠져 있는데, 자 데이터 데피니션 부분에 대한 내용은 ncs 학습 모델에 포함되어 있고요.

00:55
그 외에 두 번째부터 네 번째까지인 관계형 데이터 모델과 트랜잭션과 테이블은 해당 sql 활용 학습 모듈에 포함이 안 돼 있습니다. 안 돼 있고 출제 기준에 추가되어 있기 때문에 추가해서 내용을 정리한 거고요. 마지막에 데이터 사전은 ncs 학습 모듈 내용에 포함되어 있습니다. 용어 사전으로서 데이터 정의어는 데이터를 저장하는 테이블 등 구조를 생성하고 변경하기 위해 사용하는 명령어인데 예로서는 크리에이트 드롭 리네임 올터 트랜케이트 등이 있고 트랜잭션은 일련의 연산 작업 연산 집합으로 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위가 트랜잭션이고요. 이 개념 문제에 시험에 자주 나옵니다. 설명 제시해 놓고요.

01:55
이거에 해당되어지는 건 뭐야? 보기 항목의 트랜잭션을 고를 수 있게끔 이렇게 매치시켜서 익혀 놓으시면 되겠습니다. 세부 내용으로 들어가서요 ddl 데이터 정의어의 개념부터 먼저 살펴보면 데이터를 정의하는 언어야 데이터베이스 관리 시스템에서는 데이터를 담는 오브젝트를 정의하는 언어다 이렇게 개념 지을 수 있겠고 데이터 정의어를 통해서 정의하는 오브젝트 유형은 어떤 것들이 있을까? 첫 번째 스키마가 있습니다. 스키마는 구조입니다. 데이터베이스 관리 시스템 특성과 구현 환경을 감안한 데이터 구조가 되겠고요. 직관적으로 하나의 데이터베이스로 이해가 가능합니다. 그리고 도메인이 있어요.

02:46
도메인은 해당 테이블 레이에 테이블 레이에 어 테이블 구성하는 필드들 테이블 크리에이트 테이블 이렇게 할 때 필드 이름 그 다음에 데이터 타입을 정해줍니다. 여기 e에는 어떠한 데이터 문자열 데이터 문자 또는 숫자 이런 식으로요 그리고 크기 값은 어떻게 속성에 데이터 타입과 크기 제약 조건 등을 지정하는 정보가 도메인이 된다. 속성이 가질 수 있는 값의 범위로 이해하면 되겠고요. 주소 필드에다가 주소 필드에다가 예를 들어서 이렇게 설정했다. virca jr 갈록콜레인을 120으로 했다 라고 하게 되면 가변 문자열이라는 부분입니다. 고정 문자열이 아니라 고정 크기가 아니라 주소는 들쑥날쑥 할 수 있잖아요. 짧은 주소가 있는 거 하면 긴 주소도 있단 말이에요.

03:38
대신 갈록 구름이 120 돼 있으니까 최대는 120 글자 가벼운 문자를 120 글자를 저장할 수 있는 해당 필드야 이렇게 이해하시면 되겠습니다. 테이블은요, 데이터를 저장하는 공간이 됩니다. 데이터베이스에서요 데이터를 저장하는 단위는 테이블 단위입니다. 주학습대상입니다. 뷰는 하나 이상의 물리 테이블에서 유도되는 가상의 논리 테이블입니다. 저희가 별도로 뷰에 대해서 다룰 겁니다. 인덱스는 검색을 빠르게 하기 위한 데이터 구조가 인덱스 색인이라는 말이죠. 색인 책에 보면 찾아보기 그게 영어로 인덱스 이렇게 돼 있을 겁니다. 책 부록에 다음 ddl 조작 방법인데요. 데이터 정의어의 조작 방법은 오브젝트를 생성 변경 그리고 제거하기 위한 다음과 같은 명령어들을 사용할 수 있어 즉 네 데이터 정의어 명령어입니다. 데이터 정의어의 명령어는 생성은 그레이트문을 사용하고요.

04:38
크리에이트 명령어 그리고 변경은 arter 올터 변경 그 다음 삭제는 드롭이 있고요. 네 턴케이트가 있습니다. 드랍은 아예 오브젝트 자체를 삭제해 버리는 거고, 트론케이트는 오브젝트 자체를 삭제한다. 즉 테이블을 삭제한다든지 데이터베이스를 삭제한다든지 자체를 삭제하는 게 아니라 내용을 삭제합니다. 테이블에 저장되어 있는 내용만 지우고 테이블은 남겨놓는 거죠. 그런 차이가 있습니다. 테이블 생성입니다. 테이블을 생성하기 위한 ddl 사용 방법 다음과 같은 두 종류로 분류할 수 있는데, 신규 생성 새로 만들어 테이블을 활용하고 있습니다.

05:24
크레이트테이블 테이블 이름 갈론의 열 이름 그리고 그 열에 저장할 수 있는 데이터 타입 그리고 디폴트 값 그다음에 널 허용 여부 빈값을 허용한다. 안 한다. 이 말입니다. 그다음에 프라이머리키 지정 여부요 해당 이 열을 프라이머리 키를 지정할 거야. 프라이머리 키로 지정하는 해당 컬럼은 중복된 값을 저장할 수가 없어요. 중복된 값을 안 가져야지 해당 이 행 단위로 구분이 되죠. 누구 거라는 게 그래서 개인 회원 가입할 때는 어떻게 아이디를 구분 수단으로 삼는 경우에는 중복 중복 아이디는 만들 수 없어 그러니까 미리 가입돼 있는지 아이디 오보 조회해 이렇게 되겠죠.

06:12
포링키 다른 테이블과의 관계를 설정할 때 외래키 그다음에 프레퍼런스 그다음에 온 딜리트 옵션 온 업데이트 옵션 유니크라는 것들이 있는데, 세부적인 부분은 뒤에서 좀 더 다루도록 할 겁니다. 두 번째는 다른 테이블의 정보를 이용을 한 테이블 생성은 크리에이트 테이블 테이블 이름 에즈 셀렉트 문 이렇게 사용할 수 있는데, 데이터베이스 관리 시스템 제품마다 약간 차이가 있을 수 있다. 테이블의 변경입니다. 네 arter 올터 문을 이용해서 테이블 구조를 변경할 수 있는데, 일단 변경하는 대상에 따라서 테이블 수정할 건데 뭐 수정할 거냐 열을 하나 더 추가시킬 거예요.

06:54
기존에 예를 들어서 멤버 테이블로 아이디 심플하기 아이디 그 다음에 이메일 주소 이름 이렇게 회원을 가입을 받았는데 이거보다 또 추가적으로 해당 음 핸드폰 번호를 꼭 받아야 될 것 같아 그런 경우에 핸드폰 번호를 입력할 수 있는 필드를 추가시킨다. 그러면 이제 새로 만드는 게 아니라 아니라 올터 문을 이용해서 수정할 때는 올터 테이블 그 다음에 테이블 이름 에드 핸드폰 번호를 hp 그다음에 거기 저장할 수 있는 데이터 타입은 고정문자열 길이 13자리야 이러면 char 13자리 이렇게 해줄 수 있겠고요. 다음 열 데이터에 대한 타입 변경이다. 저장할 수 있는 데이터 형식을 바꾼다 그런 경우엔 모디파이라고 하는 명령어를 사용할 수 있고요. 열을 삭제한다 라고 하게 되면 드롭을 사용할 수 있습니다.

07:53
올터 테이블 테이블명 드롭 삭제하고자 하는 열 이름 다음 테이블의 삭제와 절단과 이름 변경인데요. 자 어떻게 보면 이 기능이 약간 비슷할 수도 있으니까 명확하게 구분합시다. 앞서 저희가 학습했던 내용 중에 드랍 테이블이라는 부분이 있었어요. 드랍 테이블은 테이블 자체를 아예 삭제를 한다. 만들었던 테이블을 지운다 트렁케이트 테이블은 내용만 지운다 네 테이블 내용만 지운다 그리고 테이블의 이름 명령은 리네임이라는 명령을 이용해서 리네임 테이블 이전 테이블 이름을 2 새로운 테이블 이름 이렇게 지정할 수 있고요. 또는 올트 테이블 이전 테이블 이름 리네임 새로운 테이블 이름으로도 동일하게 이름을 바꿀 수 있습니다. 제약조건의 적용인데요.

08:45
제약조건의 유형에 보면 테이블 생성에 사용되는 제약의 조건들 프라이머리 키 기능 뭔데 프라이머리 키는 테이블의 기본키를 정의하는 부분이다. 프라이머리 키로 지정한 경우에는요 반드시 너를 허용을 못해요. 그래서 not nor 그리고 중복과 허용 안 돼요. 그래서 unique라고 하는 제약이 기본적으로 포함이 되어집니다. 포링키는 왜 이렇게 입니다. 다른 테이블 간에 합친다든지 조인한다든지 이렇게 할 때 연결점 역할을 합니다. 유니크는 테이블 내에서 해당 이 열은 유일한 값을 가져야 된다. 중복된 값을 가질 수는 없다. 난 널은 너를 허용하지 않는다. 반드시 해당 입력을 요구를 한다. 회원가입할 때 필수 정보 입력란 있죠. 그런 부분들을 입력하지 않고 제출 버튼 누르면 필수 정보 입력 안 돼서 추가 못 하겠다.

09:44
필수 정보 꼭 입력해 줘 이렇게 하죠. 그래서 반드시 입력해야 되는 해당 대상은 nanno를 설정합니다. 너를 허용하는데 체크는 개발자가 정의하는 제약 조건으로 상황에 따라서 다양한 조건 설정이 가능하다 자 해당 데이터 정의어에 대한 퀴즈입니다. sql 문장 중에 ddl문이 아닌 것은 ddl은 데이터 deponition language 데이터 정의어죠 크리에이트 맞죠. 생성 딜리트 딜리트 삭제 맞는 것 같은데, 이 딜리트는 데이터 정의어가 아니라 데이터 매니퍼레이션 조작어였죠 데이터 조작어 dml문이었고요. 올터가 변경 드랍이 삭제 틀린 것은 2번 크리에이트 올터 드롭은 ddl문입니다.

10:37
관계형 데이터 모델 네 개념적인 측면만 집어가지고 짧게 짧게 살펴보고 넘어갈 겁니다. 관계형 데이터 모델은 릴레이셔널 모델인데 2차원 테이블을 구성을 하여 테이블 내에 있는 속성들 간의 관계를 설정하거나 테이블 내 속성이라고 하는 부분은 열입니다. 열을 이야기합니다. 열 컬럼 어큐리뷰트 그다음 필드 같은 개념이라고 보시면 될 것 같고, 속성들 간의 관계를 설정하거나 테이블 간의 관계를 정의하는 데이터베이스 구조다 데이터 간의 관계는 기본키 1을 참조하는 외래키로 표현할 수 있고 테이블들의 관계는 1대1관계야 다대다관계로 표현할 수가 있습니다. 관계형 데이터 모델의 표현 방식으로 해서요.

11:36
해당 사각형 박스로 이렇게 했는데 테이블이라고 보시면 되고요. 테이블 그 위에 테이블 이름 고객 그 다음에 해당 안에 이 들어가 있는 부분은 얘가 이제 나중에 컬럼으로 만들어질 부분이에요. 열 열로 번호 이름 이렇게 돼 있는데, 밑줄이 그어져 있는 부분 자체는 기본키 프라이머리 키 로 구분을 해가지고 얘가 이 고객 누군지 라는 부분을 고객 단위별로 고유한 번호를 붙여 가지고 구분하겠다. 그 다음에 예약 테이블 있네요. 예약 테이블 또 몇 번째 예약이야 몇 번째 예약 그다음에 예약번호 그리고 예약서라는 테이블이 있는데, 예약서 테이블과 예약은 1대1로 연결되어 있네요. 고객과 예약은 1대4로 연결돼 있어요. 1:1 한 사람이 예약을 이렇게 할 수 있잖아요.

12:34
근데 그 예약은 예약서하고는 하나씩 작성이 돼야 되겠죠. 네 넘어가겠습니다. 관계형 데이터 모델과 개체의 관계도 er에 대한 모델의 비교라고 되어 있는데, 엔터티 릴레이션십 모델은 저희가 별도 파트에서 좀 더 깊게 다룰 겁니다. 밑에 있는 이 그림입니다. 이 그림이 엔터티 개체 관계 모델 다이어그램인데 일단 여기서는 이제 도형 단위별 기능을 묻는 문제들이 출제가 되기도 합니다. 그래서 사각형이 뭔데 사각형이 개체예요. er 다이어그램은 데이터를 개체 개체가 엔터티입니다. 영어로 개체는 사각형 안에 개체 이름 그 다음에 관계 관계는 마름모 그다음에 속성은 동그라미로 표시를 합니다.

13:28
고객 개체의 속성은 번호와 이름 그다음에 예약서와 고객은 예약이라는 관계로 서로 연결되어진다 이렇게 이해하시면 되겠습니다. 자 관계형 데이터 모델에 대한 퀴즈 관계형 데이터 모델의 구성 요소가 아닌 것은 방금 전에 살펴봤던 내용이 얼마 안 됐어요. 개체 관계 속성 테이블 방금 전에 저희가 앞에서 er 모델은 데이터를 개체 관계 숙성 이 세 가지로 묘사를 난다 그랬죠 이렇게 이해하시면 돼요. 그래서 틀린 것은 개체 관계 속성 외에 테이블 예가 틀렸습니다. 트랜잭션에 대해 살펴보도록 하겠습니다. 트랜잭션은 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위가 트랜잭션입니다.

14:28
사용자가 시스템에 대한 서비스 요구 시 시스템에 응답하기 위한 상태 변화 과정의 작업 단위이기도 하고요. 하나의 트랜잭션은 커뮤니티 또는 롤백 된다. 커뮤니티는 수행 완료되는 거고요. 롤백은 해당 취소가 되는 거죠. 트랜잭션은요, 해당 데이터베이스 내의 테이블에 어떠한 변화를 줄 수 있는 작업들요 추가 인서트 업데이트 수정 딜리트 삭제 이 세 가지에 대해서요. 트랜잭션을 수행을 해 아니면 이전으로 돌려 변화가 있는 걸 이전으로 돌린다 셀렉트는 대상이 아닙니다. 셀렉트는 가져오는 거니까 변화가 없죠 트랜잭션 특징은 데이터의 무결성들이 흠집이 없게끔 무결성을 보장하기 위해 데이터베이스 관리 시스템의 트랜잭션이 가져야 할 특성들인데 이것이 시험에 자주 나옵니다. 중요합니다.

15:26
왜 보기 항목이 4개이기 때문에 시험 문제 내기가 딱 좋아요. 사지선답형으로 문제가 나오니까 객관식 사지선답형 자 설명드릴게요. 특징 원자성이다. 네 오토머스T1자성이라고 하는 건 분해가 더 이상 안 돼 분해가 불가능한 최소 단위 연산 전체가 성공 또는 실패 둘 중에 하나예요. 명확하게요. 흑백 논리예요. 어중간한 거 안 돼요. 트랜잭션 중에 예를 들어서 a라는 사람이 b라는 사람한테요 해당 돈을 이체를 시켰어요. a한테 a가요 b한테 예를 들어 5만 원을 보냈어요. a는 처리가 됐대요 근데 b는 안 받았어요. 큰일 나죠. 이것처럼 어중간한 건 안 돼요.

16:11
성공 아니면 실패 한 가지라도 실패할 경우 전체가 취소가 되어서 무결성이 보장되게끔 해야 돼 올 오아 낫딩 네 자 일관성입니다. 컨시턴시 보기가 영어가 보기로 나올 수도 있어요. 그래서 한글하고 영어가 같이 익혀둡니다. 일관성 컨시스턴시 트랜잭션이 실행 성공 후에 항상 모순이 없이 일관성 있게 데이터베이스는 상태가 보존이 되어야 된다. 라는 게 일관성입니다. 모순 없이 고립성은 트랜잭션 실행 중에 생성하는 연산의 중간 결과를 다른 트랜잭션 접근이 안 되게끔 막아야 돼요.

16:59
어떤 변경이 생길 수 있기 때문에 엄격한 실행 시 임시 갱신을 해결하고 연쇄 복귀가 불필요하게끔 하기 위해서는 고립성이 필요하다 마지막으로, 영속성입니다. durability 성공이 완료된 트랜잭션 결과는요 영구적으로 데이터베이스에 바뀌지 않고 저장이 돼야 돼요. 수정사항 없이 영구적으로 네 가지 트랜잭션 특성 트랜잭션은 컴미트 또는 롤백한다. 커미트와 롤백 연산입니다. 컴미트 뭔데 커밋은 데이터베이스가 일관성 있는 상태에 있을 때 하나의 트랜잭션이 끝났다라는 것을 알려주기 위해 사용하는 연산이야 롤 빼고 뭔데 롤백은 하나의 트랜잭션 처리가 비정상적으로 종료가 되어지는 경우에는 트랜잭션의 원자성이라는 게 있었잖아요.

17:57
성공 아니면 실패를 해야 돼 그래서 어떤 오류가 있을 때는 얘가 취소가 되게끔요 변동이 안 되게끔 돌린다 다시 실행하거나 부분적으로만 연산된 결과를 취소시키는 게 롤백입니다. 자 퀴즈입니다. 트랜잭션의 제어명령이 아닌 것은 트랜잭션의 제어명령 세 가지 저희 살펴봤었죠. 콤비트 맞고요. 롤백 맞고요. 체크포인트 또는 세이브 포인트 맞고요. 리로드는 아니었습니다. 다음 테이블입니다.

18:35
테이블도 개요적으로만 짧게 살펴볼게요 테이블 개념 세로 가로가 만나서 표 형태가 작성이 되어지죠 세로줄과 가로줄의 모델을 이용하여 정렬된 데이터 집합 모임이야 관계형 데이터베이스에서는요 데이터의 저장의 기본 단위가 뭐다 테이블 단위입니다. 관계형이라는 거는 테이블과 테이블 간의 관계를 설정을 해가지고 합칠 수도 있고요. 관계형 데이터베이스에서 데이터 저장 단위는 테이블 단위다 테이블의 특징은 어느 특정한 주제와 목적으로 만들어야 되고 테이블은 반드시 하나 이상의 컬럼을 가져야 된다. 열이라고 말씀드렸습니다. 이렇게 테이블 하나의 열은 이겁니다. 세로 세로 열 네 이게 컬럼이에요.

19:22
하나 이상의 컬럼을 가진다 테이블에는 등록된 자료들이 있어야 되고 그 자료들은 삭제되지 삭제하지 않는 한 지속적으로 유지가 되어져야 된다. 테이블 구조죠 데이터를 저장하는 객체로서 관계형 데이터베이스 기본 단위이고 관계형 데이터베이스에서는 모든 데이터를 행과 열 2차원 구조로 나타내고 세로 방향을 컬럼 가로 방향을 로우라고 하고요. 컬럼과 행이 겹쳐서 하나의 공간이 만들어지는데 그걸 빌드라고 한다. 넘어가겠습니다. 테이블 용어요.

20:03
테이블 용어는 테이블 2차원 구조 가로 세로 만나서 데이터 저장소가 되고 컬럼 열 세로 방향으로 이루어진 더 이상 나눌 수 없는 하나의 특정 속성이 컬럼 열 행은 가로 방향으로 이루어진 데이터 단위 가로는 여러 개의 필드들이 모여서 괄호 구성을 하겠죠. 파일 시스템에서는 레코드라는 표현으로도 지칭합니다. 레코드 테이블의 관계용어입니다. 테이블 관계에서요 정규화는 뭔데 정규화는 테이블의 불필요한 중복을 줄여서요 줄이는 그 프라세스 처리 과정이 정규화입니다.

20:44
기본키는 테이블 내에 저장되어져 있는 횡단위를 구분하기 위한 중복값을 허용하지 않는 고유키 외부키 포링키는 다른 테이블에 기본키로 사용되고 있는 관계를 연결한 컬럼이 된다. 퀴즈입니다. 테이블 특징에 해당되지 않는 거 테이블은 하나의 장의 컬럼을 가진다 맞죠. 어느 특정한 주제와 목적으로 만든다. 테이블의 자료들은 주기적으로 변화하면 안 되죠. 리 변화시키지 않는 이상은 저장된 상태가 유지가 되어야 되죠. 테이블은 주기적으로 변화한다. 이게 틀렸고 테이블에는 등록된 자료들이 있어야 돼 데이터 사전입니다. 데이터 사전 데이터 딕셔너리를 이야기합니다. 데이터 딕셔너리 사전 데이터 사전은 데이터베이스의 데이터를 제외한 모든 정보가 들어있다.

21:43
데이터 사전의 내용을 변경하는 권한인 시스템이 가진다 사용자에게는 읽기 전용 테이블 형태로만 제공이 되기 때문에 단순한 조회만 가능하다 데이터를 제외한 모든 정보라고 하는 것은 데이터의 데이터를 의미한다. 데이터를 설명하고 있는 데이터를 의미한다. 그래서 데이터 사전은 메타데이터로 구성되어 있다고 할 수 있습니다. 데이터 사전의 내용과 용돈데요. 데이터 사전 안에 존재하는 메타 데이터 유형으로서는 사용자 정보나 id 패스워드 권한 같은 데이터베이스의 객체 정보나 테이블 뷰 인덱스와 같은 그리고 무결성 제약 정보나 함수나 프로시어 트리 등이 있을 수 있는데, 데이터베이스 관리 시스템 제품들마다 약간 해당 내용이 다를 수는 있다.

22:37
데이터 사전을 사용하는 목적은 뭔데 용도는 뭔데 데이터 사전은 어떤 용도야 사용자에게 데이터 사전은 단순 조회 대상 올해 제공이 되는데 해당 데이터베이스 엔진을 이루는 컴파일러나 옵티마이저 같은 구성 요소의 입장에서는 데이터 사전은 작업을 수행하는 데 필요한 참조 정보뿐만 아니라 작업의 대상이 되기도 합니다. 자 데이터 사전 검색인데요. 오라클 데이터베이스에서의 데이터 사전 검색과 그리고 중소기업 국군에서 많이 사용하는 마이 sq에서의 데이터 사전의 방식 간단하게 정리하겠습니다. 오라클 사용자는 뷰로 데이터 사전에 접근할 수 있다. 오라클에서 데이터 사전과 관련된 뷰는 세 가지 영역이 있는데, 권한에 따라서 다음과 같이 dva 올 그리고 유저 이렇게 권한이 제일 많은 게 db예요.

23:31
데이터베이스 관리자 어드밀 스트레이터라고 보시면 되겠고 뒤에 세부 설명이 있습니다. 오라클의 데이터 사전 영역 오라클에서는 영역 지시자 뒤에다가 오브젝트명을 붙이는 형태로 뷰의 이름을 결정을 한다. 그래서요 네 영역은 dva 올 유저 dva는 데이터베이스 관리자 시스템 시스템 접근 권한을 의미한다. 이해되는데 올은 뭔데 유저는 뭐고 올은 자신의 계정 접근 가능한 객체 외에요.

24:02
타 계정의 접근 권한을 가지는 모든 객체 조회 를 이야기하는 거고, 유저는 현재 자신의 계정이 소유한 객체 조회만 가능하다 데이터 사전 검색 쿼리에는 셀렉트문으로 별표는 모든 필드 프라함 그 다음에 뒤에 테이블 대상에 뷰 뷰는요 하나 이상의 물리적 테이블로부터 필드를 가지고 와서 구성을 하는 가상 테이블이에요. 논리적 테이블입니다. 뷰에 대해서 저희가 별도로 학습할 겁니다. 마이에스큐엘에서의 데이터 사전 검색입니다. 데이터 사전은 테이블 형태로 구성되어 있는데, 테이블 내용을 검색하기 위해서는 해당 데이터베이스의 테이블 위치와 이름을 정확히 알고 있어야 된다.

24:54
데이터 사자원은 어디에 저장이 되어 있느냐 하면 mysql에서 인포메이션 언더바 스키마라고 하는 데이터베이스 안에 존재가 되기 때문에 우선적으로는 해당 데이터베이스로 이동한 다음에 테이블 목록을 조회 요청을 해서 확인할 수 있다. 특정 데이터베이스로 사용을 바꾸는 명령어는 유즈입니다. 그래서 유즈 인포메이션 언더버스키마 하고 난 다음에 보여줘 쇼 명령을 이용해 가지고 쇼 테이블 위즈 이렇게 하게 되면 테이블 목록들을 볼 수가 있습니다. 데이터 사전에 대한 퀴즈입니다. 데이터베이스에 데이터를 제외한 모든 정보가 저장된 건 뭐야? 이름 그대로 데이터틱셔너리죠 데이터 사전 1번이 정답입니다. 모의평가 문제 다섯 문제 풀면서 정리하겠습니다.

25:48
ddl을 통해서 데이터정의요 를 통해서 정의할 수 있는 오브젝트 유형이 아닌 것은 스키마부터 해서 아까 많이 있었죠. 뷰 인덱스 봅시다 테이블도 정의 대상이고 스키마도 정의 대상이고 사용자는 아닙니다. 인덱스는 맞습니다. 그래서 데이터 정의를 통해서 정의할 수 있는 오브젝트 유형이 아닌 것은 사용자 2번 일련의 연산 집합으로 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위는 뭐야? 기출문제입니다. 시험에 나왔던 기출문제예요. 트랜잭션입니다. 아까 제가 트랜잭션 설명 드리면서 이렇게 문제도 나옵니다 라고 말씀드렸죠 일련의 연산 집합으로 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위는 트랜잭션 3번입니다.

26:47
트랜잭션의 특성 중에 아래 내용에 해당하는 것은 시스템이 가지고 있는 고정 요소는 트랜잭션 후에 수행한 후에 같아야 된다. 일관성이 있어야 된다. 정답은 일관성 컨시스턴시입니다. 트랜서트 특성 중 특성 4가지 있었잖아요. 시험 자주 나옵니다. 다음 네 번째 트랜잭션의 실행이 실패하였음을 알리는 연산자로 트랜잭션이 수행한 결과를 원래 상태로 원상복귀시키는 연산은 롤백이죠. 롤백 연산 4번이 정답입니다. 마지막 5번 2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성을 뭐라고 하느냐 열이죠. 영어로는 컬럼 정답은 2번 쉽습니다.

27:46
핵심 정리 다뤘던 내용 정리해 봅시다 ddl 데이터 정의 랭귀지는 데이터를 정의하는 테이블의 구조를 생성 변경하기 위해 사용하는 명령어로 크리에이트 드라우브 리네임 올터 트렁케이트 등이 있었다. 그리고 관계형 데이터 모델은 2차원 테이블을 구성하여 테이블 내에 있는 속성들 간의 관계를 설정하거나 테이블들 간의 관계를 정의하는 데이터베이스 구조였고 관계형 데이터 모델은 데이터를 개체 테이블과 관계 테이블로 표현을 합니다. 관계형 데이터 모델에서는요 그리고 er은 엔터티 릴레이시오십 모델이에요. 개체관계 모델 그래서 데이터는 세 가지 개체 관계 속성으로 표현을 했는데 기호적인 부분은 개체는 사각형 관계는 마름모 속성은 다원 동그라미로 표시를 했었어요. 네 트랜잭션입니다.

28:43
트랜잭션 부분에서는요 데이터베이스의 상태를 변화시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위다 트랜잭션의 특징 네 가지 시험에 자주 나온다고 말씀드렸습니다. 원자성 일관성 고립성 영속성이 있다. 테이블입니다. 테이블은 데이터를 저장하는 객체로서요 관계형 데이터베이스의 기본 단위가 되고요. 관계형 데이터베이스에서는 모든 데이터를 열과 행의 2차원 구조로 나타내고 세로방향을 컬럼 가로방향 행 로우 그리고 컬럼과 행이 겹치는 하나의 공간을 빌드라고 했죠. 마지막으로, 데이터 사전입니다. 데이터 사전은 데이터 딕셔너리 데이터베이스의 데이터를 제외한 모든 정보가 있고요. 오라클 dbms에서의 데이터 사전 검색과 mysql에서의 데이터 사전 검색 방법을 간단하게 살펴봤습니다. 이상으로 기본 sql 작성 마치도록 하겠습니다.

29:43
네 데이터베이스 구축 sql 활용의 두 번째 고급 sql 작성에 대해 살펴보도록 하겠습니다. 학습목표인데요. 먼저 생성된 테이블들을 이용해서 새로운 테이블과 뷰 위주로 살펴볼 거예요. 뷰를 생성하는 데이터 정의어 명령을 작성할 수 있다. 두 번째 테이블 조회 시간을 단축하기 위해서 사용하는 인덱스 개념을 이해하고 인덱스를 생성하는 데이터 정의 명령어를 작성할 수 있다. 마지막으로, 조인과 서브콜이 집합연산자 사용을 하여 두 개 이상의 테이블로부터 데이터를 조회하는 데이터 조작어 명령어를 작성할 수 있다. 입니다. 세부 학습 내용은요, 뷰 인덱스 다중 검색 다중 테이블 검색 세 파트에 나눠서 살펴보도록 하겠습니다. 자 뷰입니다.

30:39
뷰와 관련되어져서는 개념 문제가 한 문제씩 꼭 나옵니다. 시험에 자 뷰 개념은 가상 테이블을 구성하는 데이터베이스 오브젝트로 별도의 저장 공간은 없다. 왜냐하면, 물리적 테이블이 아니라 논리적인 가상 테이블이기 때문에 하지만 셀렉터나 딜리트나 업데이트를 사용할 수 있다. 뷰는요 하나 이상의 물리적 테이블로부터 생성 가능하고요. 밑에 있는 개념도는 두 개 테이블 a와 테이블 b 가지고요. 뷰를 생성한 개념도가 되겠습니다. 뷰의 장점과 단점입니다. 뷰의 장점은 논리적으로 독립성을 제공한다. 그래서 뷰는 논리 테이블입니다. 데이터 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경되지가 않습니다.

31:35
이게 장점으로 작용이 되어지고요. 사용자의 데이터 관리가 용이합니다. 복수 테이블에 존재하는 여러 종류의 데이터에 대해 단순한 지료 사용이 가능합니다. 그리고 데이터 보안에 용이합니다. 중요 보안 데이터를요 저장 중인 테이블에는 접근을 불효하고요. 해당 테이블의 일부 정보만 볼 수 있는 뷰에는 접근을 허용하도록 하는 방식으로 보안 데이터에 대한 조건 제어가 가능합니다. 단점은 뷰 자체는 인덱스가 불가하다 인덱스는 물리적 저장 데이터에 대한 대상으로 하기 때문에 논리적 구성인 뷰는 인덱스를 가지지 못하고요. 뷰에 대한 정의 변경이 불가합니다. 이거 시험에 자주 나옵니다. 틀린 보기로 뷰의 정의를 수정하려고 해 안 돼요. 그럼 어떻게 해야 돼 삭제하고 다시 만들어야 돼요. 그래서 뷰의 정의를 변경하려면 뷰를 삭제하고 재생성해야 됩니다.

32:35
데이터 변경 제약이 존재한다. 뷰의 내용에 대한 삽입이나 삭제 변경 가능하지만 제약이 있다는 거죠. 다음 뷰 활용인데요. 뷰 사용에 대한 주의용은 다음과 같이 단순한 재료 사용이 가능하기 때문이다. 셀렉트 문입니다. 셀렉트 별표 프럼 뷰 네임 이렇게 돼 있어요. 테이블 대신에 뷰 만들어서요 뷰를 대상으로 해가지고 해당 원하는 컬럼을 뽑아올 수 있습니다. 네 뷰 상성은요, 크리에이트 뷰 명령을 사용합니다. 크리에이트 뷰 뷰 이름 그다음에 컬럼 목록 그다음 에즈 뷰를 통해서 보여줄 데이터 조회용 커리 조회용 커리는 슬랙트문이죠. 뷰 생성 방법 세 가지 제시해놨는데 테이블 a를 그대로 이용하는 방법 크리에이트 뷰 이름이고요.

33:28
에즈 셀렉트 별표 프람 테이블 a 테이블 a로부터 다 가지고 와 그래서 그걸로 뷰를 만들어 테이블 a의 일부만 그 케이스 같은 경우에는 셀렉트의 필드를 이렇게 제한해가지고 테이블 a에 있는 컬럼 1 2 3만을 가지고 와서 그걸로 해당 뷰x라고 하는 뷰를 만들어라 테이블 a와 b 조인한 결과 하나로 만든 두 개의 테이블을요 조인 방식이 있어요. 합치는 거죠. 테이블 a와 테이블 b로부터 가지고 오는데 왜 의하 조건문을 이용해서 a 테이블의 컬럼1과 b 테이블 컬럼 1이 같은 거를 네 개로 해가지고 테이블 두 개를 하나로 합친 다음에 그거를 뷰y 뷰에다가 내용으로 해서 뷰를 생성해 이렇게 할 수 있고 주의사항은 셀렉트물에서는요 유니온이나 오토바이 절은 사용할 수가 없다. 있다.

34:28
라는 게 주의사항입니다. 뷰 생성할 때 셀렉트문에서는 뷰의 삭제 및 변경입니다. 뷰에 대한 삭제는 드랍 뷰 뷰 이름 그 다음에 뷰의 내용 변경은 안됩니다. 그래서 뷰를 통해서 접근하는 데이터에 대한 변경이 가능하지만 모든 경우에 데이터 변경이 가능한 것이 아니라 일부 제약이 존재한다. 제가 말씀드린 거는 뷰의 내용 변경은 가능해요. 내용 변경이 가능하고 뷰의 정의요 뷰를 만든 이 정의 정의의 변경은 안 돼요. 뷰 변경 뷰의 정의 변경은 안 되고 불가하고 뷰의 내용 변경은 가능합니다. 근데 일부 제약이 존재한다. 라는 부분입니다. 뷰와 관련되어진 퀴즈입니다.

35:22
에스큐엘 뷰 설명으로 틀린 거 뷰를 제거하고자 할 때는 드록문을 사용해야 돼 맞습니다. 뷰의 정의를 변경하고자 할 때는 올트문을 이용한다. 맞는 것 같지만 틀렸습니다. 강조해서 말씀드리죠 뷰의 정의 내용이 아니라 뷰의 정의를 변경은 안 되기 때문에 드랍해서 삭제하고 다시 크리에이터로 만들어야 돼요. 뷰를 생성하고자 할 때는 크레이트문을 사용한다. 뷰의 내용을 검색하고자 할 때는 셀렉토머를 이용한다. 맞습니다. 자 인덱스로 넘어가도록 하겠습니다. 네 인덱스는 데이터를요 빠르게 찾을 수 있도록 해주는 수단이다. 인덱스가 색인이잖아요.

36:04
색인 찾아보기 테이블에 대한 조회 속도를 높여주는 자료 구조야 인덱스는 아래 그림처럼 테이블의 특정 레코드 위치를 알려주는 용도로 사용하지만 이러한 인덱스가 자동으로 생성되지는 않습니다. 단 프라이머리 키 컬럼요 기본키로 설정한 컬럼은 프라이머리 키를 생성할 때 자동으로 프라이머리 키 인덱스가 생성은 됩니다. 인덱스의 사용 주체는 사람이 아니라 데이터베이스 관리 시스템입니다. 사람은요, 즉 db 사용자는요 데이터베이스 관리 시스템 dbms가 인덱스를 사용할 수 있게끔 준비는 해줘야 돼요. 자 인덱스 생성은요, 크리에이트 문을 이용하고요. 크리에이트 옵션으로 유니크 유니크는 밑에 파라미터 인덱스에 걸린 인덱스 걸린 컬럼에 중복과 허용하지 않는다.

37:03
크리에이트 유니크 네 인덱스 인덱스 이름 온 테이블명 갈로 아니 컬럼들을 지정해줄 수 있어요. 인덱스 언더반 네임은 생성하고자 하는 인덱스 테이블명이고 그리고 테이블명은 인덱스 대상이 되는 테이블 이름이고 컬럼즈는 인덱스 대상이 되는 테이블의 특정 컬럼 이름들 복수 컬럼 지정 가능합니다. 인덱스 삭제는 드랍으로 이용합니다. 드롭 인덱스 뷰도 드롭 뷰 테이블명 이렇게 했죠. 삭제는 이렇다 넘어가겠습니다. 변경은요, 올터문을 이용해가지고 altr 올터문을 이용해 가지고 인덱스에 대한 정의를 변경할 수 있어요. 근데 뷰는 정의 변경이 안 됐습니다.

37:54
한 번 생성된 인덱스에 대해서 변경이 필요한 경우는 일반적으로 드물다 그래서 해당 인덱스를 변경한다 라고 한다면, 기존의 인덱스를 삭제하고 신규 인덱스를 생성하는 방식이 오히려 많이 권고되고 있다. 가능은 합니다. 정의로 변경하는 게 가능은 한데 자 인덱스에 대한 퀴즈입니다. 인덱스에 대한 설명도 틀린 거 데이터를 빠르게 찾을 수 있는 수단이에요. 맞고요. 웨어 조건절이 있는 이콜로 비교되는 컬럼을 인덱스로 생성을 하게 되면 검색 결과를 높일 수가 있어요. 맞습니다. 프라이머리 키 pk 컬럼은 pk를 생성할 때 자동으로 인덱스가 생성되어져요 맞습니다. 인덱스로 인해서 테이블의 풀 스캔 전체를 스캔한다. 이게 가능해서 검색 성능이 향상된다. 반대입니다. 인덱스를 이용하게 되면 테이블 전체를 스캔하지 않고 해당 대상만 스캔해서 빠르게 할 수 있다.

38:54
그렇기 때문에 4번이 인덱스에 대한 설명이 아닙니다. 다중테이블에 대한 검색인데요. 다중테이블은 테이블을 여러 개의 말입니다. 테이블 여러개 관계형 데이터베이스는 데이터 중복을 최소화하기 위해서 어떻게 정규화라는 기법을 사용해서 데이터를 분해 저장하죠. 반대로 데이터를 통합하는 기법으로서는 다중 테이블에 대한 검색을 이용하는데 다중 테이블의 검색 방법은 세 가지 조인 서브 코리 집합 연산 이렇게 세 가지가 있습니다. 검색 기법 단일 테이블 검색 기법 조인은요, 두 개의 테이블을 결합해서 하나를 만드는 거예요. 합치는 거죠. 서브 커리는요 sql문 안에 다시 sql문이 그래서 이제 메인 sql문이 있고 그다음에 서버 sql문이 있어요.

39:48
얘들은 주종 관계를 따집니다. 주와 종 집합 연산형 테이블을 집합 개념으로 조작하는 기법이다. 뒤에서 다루겠습니다. 조인 개념부터 먼저 살펴봅니다. 조인은 결합을 의미한다. 관계형 데이터베이스에서의 조인은 교집합 결과를 가지는 결합 방법을 의미한다. 교집합이라고 하는 부분 자체는 해당 같은 것 같은 것끼리는 하나로 이렇게 합칠 수 있다. 이 말입니다. 교집합이 되는 공통점은 다양한 관점에서 정의될 수 있고 그 관점을 정의하는 게 바로 조인의 접근이 된다. 조인은 프라이머리 키와 포링키 값을 이용을 해서 결합을 하고요. 네 그게 일반적입니다.

40:35
3개 이상의 테이블에 대한 결합은 순차적으로 두 개 테이블 먼저 결합하고 그다음에 나머지하고 그 결과하고 다시 테이블을 다시 결합해서 3개 이상의 테이블도 결합시킬 수는 있어요. 존 시킬 수는 있어요. 조인의 유형은 크게 물리적 조인이 있고 논리적 조인이 있습니다. 먼저 물리적 조인이라고 하는 부분 자체는 사람에 의해서 조인할 수 있는 게 아니라 얘는 데이터베이스의 성능을 높이기 위한 튜닝적 관점입니다. 사용자에 의해서 제어가 가능한 조인은 논리적 조인입니다. 구분이 돼야 됩니다. 그래서 조인의 유형은 대분류로 논리적 조인이 있고 물리적 조인이 있다. 논리적 조인은 사용자의 에스큐엘 문에 표현되는 테이블 결합 방식인데 얘는 다시 내부 조인과 외부 조인으로 다시 나눌 수 있습니다.

41:28
내부 조인은 두 테이블에 공통적으로 존재하는 컬럼을 이용하는 방법이 내부 조인이고 외부 조인은 특정 테이블의 모든 데이터를 기준으로 다른 테이블의 정보를 추출할 수 있다. 다른 테이블의 값이 없어도 출력이 가능하고 물리적 조인은 데이터베이스의 옵티마이즈에 의해서 내부적으로 발생하는 테이블 결합 방식인데 세 가지 네스티드 루프 조인 머지 조인 해시 조인 이렇게 세 가지 있는데, 세부적인 내용은 안 다루고 있습니다. 저희는 논리 조인 위주로만 다루고 있고 개념적 측면에서요 물리적 조인 방식은 결합 방식 이렇게 세 가지는 있다. 정도로 구분할 수 있으면 좋을 것 같고, 논리적 조인에 대해서 더 구체적으로 살펴보겠습니다. 논리적 조인은 크게 내부 조인과 외부 조인으로 구분되어지는데 내부 조인에서 조인의 대상이 되는 컬럼을 명시적으로 선언하기 위해서는 유징 조건절이나 온 조건절을 사용할 수도 있습니다.

42:25
내부 조인은 다시 동등 조인 공통 존재 컬럼의 값이 같은 경우를 추출하는 방법 그리고 자연 조인 내추럴 조인은 두 테이블의 모든 컬럼을 비교하여 같은 컬럼을 가진 모든 컬럼값이 같은 경우를 추출하는 방식 교차 조인은 크로스 조인 조건이 없는 경우 조인 조건이 없는 모든 데이터의 조합을 추출하는 방식이 있고요.

42:57
외부 조인은요, 왼쪽 외부 조인 레프터 아우터 조인과 오른쪽 외부 조인 라이트 아우터 조인 그리고 완전 외부 조인 풀 아우터 조인이 있는데, 상대적인 거니까 왼쪽 외부 조인은 왼쪽 테이블에 있는 모든 데이터와 오른쪽 테이블에 있는 동일 데이터를 추출하는 방식이야 오른쪽 외부 조인은 오른쪽에 있는 모든 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출한다. 넘어갈게요 논리적인 조인의 예로서 내부 조인은요, 구문 자체가 셀렉트 필드명 네 이게 필드 컬럼입니다. 컬럼명 프롬 언어 테이블 테이블 해당 테이블에 대한 네 해당 이름을 이렇게 조였어요. 그다음에 이너 조인하고자 하는 두 번째 테이블 테이블 이름 그다음에 on 조건들을 줘가지고요.

43:56
얘 두 개를 조인할 때 어떻게 조인할 거냐면은 t1 테이블의 프로젝트 라인과 t2 테이블의 프로젝트 라인이 같은 거를 기준으로 해서 얘 합칠 거예요. 이너 조인이고요. 아우트 조인은 전체적인 구분은 같아요. 여기 이너 조인 들어가는 부분이 레프트 아우트 조인 이렇게 돼 있죠. 넘어가겠습니다. 서브 거리 서브 거리는 sql문 안에 포함된 또 다른 sql문을 서브 거리라고 하위 거리라고 이야기를 합니다. 메인 커리와 메인 커리와 서브 커리 관계는 주종 관계 주인 간에 따른 종의 관계로써 서브 커리에 사용하는 컬럼 정보는 메인 커리 컬럼 정보를 사용할 수 있지만 역으로는 안 된다. 서브커리에서 사용하는 컬럼 을 메인 쪽에서 이용이 안 된다. 이 말입니다.

44:47
서브커리의 이용은요, 동작 방식에 따른 서브커리 종류와 반환되는 데이터의 형태에 따른 서브 커리 종류로 나눌 수 있습니다. 동작하는 방식과 반환되는 데이터 형태에 따라 분류할 수 있는데, 동작 방식에 따른 서브 커리 종류는 비연관 서브 커리 연관 서브 커리 하나만 볼까요? b형 간 서브 쿼리라는 거는 서브 커리가 메인 쿼리의 컬럼을 가지고 있지 않은 형태 서브 커리가요 하이 커리가 메인 쿼리에 컬럼을 가지고 있지 않은 형태가 비연관 서브 커리고요.

45:32
연관의 서브 커리가 메인 커리의 컬럼을 가지고 있는 형태 넘어갈게요 반환되는 데이터 형태에 따라서 서브 코리 종류는 싱글로 서브 코리 멀티플로우 서브 코리 다중히행 멀티플 컬럼 서브 코리 서브 컬럼으로 변환하는 서브 코리 다라는 데 있는 데이터 형태에 따라서 개념들만 정리하겠습니다.

45:56
네 서브 커리 예에서 비용 간 서브 커리는 select 컬럼명 프라운 테이블 레어 그다음에 해당 프로젝트 라인이 낫 인이라고 하는 부분은 가지고 있지 않은 거 여기 에스큐엘문으로서 반환되어진 거 얘를 이게 아닌 값을 가지고 있는 해당 테이블 레이의 레코드들을 가져와서 그 레코드들 중에 이 필드 컬럼값을 가지고 와 또는 연관 서브 커리의 소스는 이렇게 있는데, 뒤에서부터 해석을 해보면 해당 프로젝트 라인과 p1의 프로젝트 라인이 같은 걸로 조인해가지고요. 프로젝트 테이블로부터 바이프라이스에 대한 avg 평균이죠.

46:44
평균값을 뽑아와서 그 값보다 해당 프로젝트 프로젝트 테이블에 있는 바이프라이스 값이 더 큰 거에 해당되는 레코드들의 프로젝트 네임과 바이프라이스 컬럼을 가지고 오라 이렇게 되어 있는데, 개괄적으로 해석하고 넘어가겠습니다. 자 실제적으로는요 이게 깊게 들어가면 끝없이 깊게 들어가지는데 자격 검정에서는 어느 정도의 깊이를 유지를 시킵니다. 너무 깊게는 요구를 안 하거든요. 자 다중 검색 방법 마지막으로, 다중 테이블 검색입니다. 다중 테이블 검색의 집합 연산인데 집합 연산의 개념을 보게 되면 테이블을 집합 개념으로 보고 두 테이블 연산의 집합 연산을 사용할 수 있어 집합 연산자는 여러 질의 결과를 연결하여 하나로 결합하는 방식을 사용하는데 집합 연산자는 두 개 이상의 질의 결과를 하나의 결과를 만들어낼 수 있다.

47:42
일반적으로 집합 연산자를 사용하는 상황은 서로 다른 테이블에 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 또는 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때가 되겠는데 세부적으로 들어가 보면 집합 연산의 유형으로서요 집합 연산을 하는 연산자의 종류가 소개되고 있는데, 보기 항목이 4개입니다. 그래서 시험에 자주 나올 수 있겠죠. 해당 설명 문제 하나 제시해 놓고 여기에 해당되는 집합 연산자의 종류 골라 이런 식으로 자 유니온이라고 있어요. 유니온은 합친다는 말인데 어떻게 여러 에스큐엘 문의 결과에 대한 합집합을 구한다. 그런데 중복된 행은 제거합니다. 중복된행은 밑에 있는 유니온의 o자가 붙어있어요. 다 몽땅 이 말이죠.

48:40
여러 에스큐엘의 결과에 대한 합집판을 구하는데 얘는 중복행을 제거하지 않습니다. 중복된 것도 다 가지고 오라 이렇게 처리가 되어져요 인터섹션 인터섹션은 여러 에스큐엘 결과에 대한 교집합은 공통되어진 것만 저희가 집합이라고 해서 동그라미를 이렇게 그려 가지고 학교 다닐 때 하죠. 합집합이라는 거는 동그라미 여기 두 개 포개져 있으면 이 두 개 다 교집합은 해당 공통적인 것만 교집합 중복행 제거합니다. except 또는 마이너스는 앞에 에스큐엘 문의 결과와 뒤에 에스큐엘 문 결과 사이의 차이가 되는 집합 깔아먹고요. 남는 거 네 중복행 제거 일부 제품은 마이너스 사용 집합 연산의 예입니다.

49:34
네 셀렉트 문 두 개가 있는데, 유니온으로 연결을 이렇게 했다고 하게 되면요 결과치는요 해당 프로젝트 테이블로부터요 프로젝트 코드하고 프로젝트 네임을 가지고 와라고 하는 에스큐엘 문과 그다음에 뒤에 거는요 프로젝트 라인 테이블로부터요 요 두 개 해당 필드를 가지고 와라고 하는 부분을 두 개를 합쳐라고 하게 되면 합쳐진 테이블은 필드가 4개를 가지는 테이블이 되겠습니다. 프로젝트 테이블로부터 이렇게 쭉 해가지고요. 단 중복되어진 행을 제거하고 합집합 개념이 되는 데이터가 추출되어집니다. 단용 테이블에 대한 검색 퀴즈입니다. 다중 테이블 검색 퀴즈 단용 테이블 검색 방법에 해당하지 않는 것은 세 가지 방법 있었죠. 다중 테이블 검색 방법 조인 집합 연산 서브 쿼리 정규화가 아닙니다.

50:30
모의평가 문제 정리할게요 다섯 문제 풀겠습니다. 뷰에 대한 설명으로 옳지 않은 것은 첫 번째 dba는 데이터베이스 어드미니스트레이터 관리자는 보안 측면에서 뷰를 활용할 수 있다. 뷰의 장점 중에 보안이라는 부분이 있었죠. 해당 권한적인 부분 자체를 보는 조회 용도적인 부분으로만 그래서 해당 보안적인 부분에 대해서 강화가 필요한 거는 뷰를 이용해 가지고 내용을 볼 수 있게끔 뷰 위에 또 다른 뷰를 정의할 수도 있다. 뷰에 대한 삽입과 갱신과 삭제 연산할 때 제약이 따르지 않는다. 게 이게 틀렸습니다. 제약이 따른다가 정답이고요. 틀린 건 3번 뷰의 정의는 옳다물을 이용하여 변경할 수 없어요. 뷰의 정의는 변경할 수 없어요. 뷰의 내용은 변경할 수는 있어요.

51:27
뷰에 대한 설명으로 옳지 않은 것은 뷰는 삽입삭제 갱신 연상의 제약이 따른다. 맞죠. 뷰는 물리적으로 구현된 테이블이야 틀렸습니다. 뷰는 한 개 이상의 물리적 테이블로부터 뷰를 만들 수 있는데, 가상 테이블 즉 논리적 테이블입니다. 뷰는 데이터 접근 제어로 보안을 제공한다. 맞고요. 뷰는 데이터의 논리적 동성을 제공한다. 3번 다음에 인덱스 문법에 관한 설명 중 옳지 않은 것은 크리에이트 유니크 인덱스 인덱스명 온 테이블명 그다음에 컬럼 이렇게 되어 있네요. 차근차근 보겠습니다. 유니크 파라미터는 인덱스 컬럼이 중복 값을 허용하지 않는 것을 뜻하는 거예요. 맞습니다. 두 번째 인덱스는 생성한 다음에 변경이 불가능합니다.

52:27
틀렸습니다. 뷰는 생성하고 난 다음에 변경 불가능하지만 인덱스는 생성하고 난 다음에 변경이 가능합니다. 올터 인덱스 이렇게 해가지고 컬럼 파라미터는 인덱스 대상 테이블의 특정 컬럼들이다. 인덱스 언더바 메인 파라미터는 생성하고자 하는 인덱스 이름입니다. 맞고요. 네 번째 다중 테이블 검색과 관련한 집합 연산자 종류 중에 중복행 제거하지 않고 유니온 뒤에 올 여러 sql 결과에 합집하려고 하는 거야. 유니온 올이 정답이고요. 유니온은 중복행을 제거합니다.

53:16
다섯 번째 조인에 관한 설명 중 올바르지 않은 것 관계형 데이터베이스에서의 조인은 교집합 결과를 가져오는 결합 방법을 의미한다. 사용자가 sqm1을 통해서 직접 제어할 수 있는 조인은 물리적 조인입니다. 조인의 종류는 두 가지 있었죠. 논리적 조인이 있었고, 물리적 조인이 있었는데, 저희는 사용자들이 컨트롤 할 수 있는 조인 논리적 조인만 다루겠습니다. 물리적 조인은 사용자들이 에스큐엠으로 제어 안 된다고 그랬죠 틀린 건 2번 물리적 조인은 네스티드 루프 조인과 머지 조인과 해시 조인 이렇게 세 가지가 있어요. 자주 보면서 익혀놓겠습니다. 명칭만 논리적 조인은 내부 조인과 외부 조인으로 구분되어 집니다.

54:05
핵심 정리 뷰는 하나 이상의 물리 테이블로부터 생성 가능한 가상의 테이블이야 뷰의 장점은 논리적 독립성 사용자 데이터 관리 용이 데이터 보안 용이 뷰의 단점은 뷰 자체는 인덱스가 불가능해 뷰의 정의는 변경이 안 돼 정의는 변경이 안됩니다. 뷰의 내용변경은 되지만 데이터 변경 제약에 대한 존재 있다. 다음 인덱스 뭔가 빠르게 데이터를 빠르게 찾을 수 있는 수단이고 테이블에 대한 조회 속도를 높여주는 자료구조다 다중테이블검색 두 개 이상의 테이블로부터 원하는 것만 뽑아내겠다. 관계형 데이터베이스에서 데이터를 통합하는 기법으로는 다중 테이블 검색에 사용되어지는데 다중 테이블 검색의 방법은 세 가지 조인 두 개의 테이블을 결합해서요.

55:02
데이터를 추출하는 기법 서브 커리 해당 메인 커리 안에 다시 에스큐레몬 넣어가지고 에스큐라맨 안에 포함된 에스큐라맨 형태의 사용 기법 마지막으로, 집합 연산은 테이블을 집합 개념으로 조작하는 방법 이상으로 고급 sql 작성에 대해 살펴봤습니다.

728x90
반응형
posted by 아이윤맨
:
728x90
반응형

https://youtu.be/MsrtCXp51sc?si=eeQGeomqcPFvjiJO

1. 사용자 정의 함수

1-1. 사용자 정의 함수 소개
- (중요) 데이터베이스 구현 시 반복적으로 사용하는 기능을 여러 개의 명령문으로 구성하는 절차형 SQL을 작성하는 방법을 학습함
- 사용자 정의 함수는 절차형 SQL을 활용하여 연산 처리 결과를 단일값으로 반환할 수 있음
- 사용자 정의 함수는 데이터베이스의 공통 함수 외에 사용자가 직접 정의하여 사용할 수 있음
- 사용자 정의 함수는 호출을 통해 실행할 수 있으며, 메소드에 필요한 데이터를 매개함수로 넣어줌
- 사용자 정의 함수의 결과는 반환되는 단위 값으로, 조회 또는 삽입, 수정 작업 시 사용할 수 있음

1-2. 사용자 정의 함수의 구성
- 사용자 정의 함수의 선언부는 변수 및 상수 타입을 선언하고, 제어 부분에서 조건문이나 반복문을 넣어 실행 흐름을 제어함
- 제어 부분에서 단위 블록별 실행 흐름을 제어하는 조건문이나 반복문을 넣을 수 있음
- 데이터 관리를 위한 조회, 추가, 수정, 삭제와 같은 DQL 문의를 넣을 수 있음
- 데이터 매니저링 조작(인서트, 수정, 업데이트, 삭제)과 오류 발생 시 예외 처리를 포함한 사용자 정의 함수를 작성할 수 있음
- 사용자 정의 함수는 일반적으로 프로시즈와 유사하지만, 리턴이 있음

1-3. 사용자 정의 함수의 예제
- 생년을 입력받아 나이를 계산하는 사용자 정의 함수의 예시를 살펴봄
- 생년을 입력받아 해당 연도의 생년도를 계산하는 이벤트를 처리하는 함수임
- 이벤트를 처리하는 방식은 입력받은 생년을 문자열로 변환하여 연도를 추출하는 방식으로 이루어짐
- 해당 연도의 생년도를 계산하여 결과값을 반환받도록 설계됨
- 이와 같은 사용자 정의 함수는 데이터를 입력받아 연도를 계산하는 방식으로 활용될 수 있음

2. 사용자 정의 함수와 트리거에 대한 이해

2-1. 사용자 정의 함수의 개념과 작동
- 사용자 정의 함수는 테이블의 데이터를 추가하거나 수정하는 행위를 처리함
- 나이를 구하는 예시로 생년월일을 입력하고 나이를 반환하는 함수를 사용함
- 사용자 정의 함수를 이용할 때는 호출해서 사용함
- 데이터 조작을 위한 함수로 수정을 하는데, 이때 수정사항을 '데이터 조작'으로 정의함
- (중요) 사용자 정의 함수는 데이터베이스 테이블에 맞게 정의되어야 함

2-2. 트리거의 개념과 필요성
- 트리거는 데이터베이스에서 특정 이벤트(데이터 변경)가 발생할 때, DB 관리 시스템이 자동적으로 실행되는 프로그램임
- 트리거는 전체 트랜잭션 대상인 것도 있고, 각 행에 의해 발생되는 것 모두를 포함함
- 데이터의 무결성을 유지하고, 로그 메시지 출력 등에 별도로 처리하기 위해 트리거를 사용함
- (중요) 트리거는 이벤트와 관련된 테이블의 데이터 삽입, 추가, 삭제 등의 작업을 자동적으로 수행하려 할 때 사용함

2-3. 트리거의 구성 요소와 작성 시 주의사항
- 트리거는 트리거가 실행될 조건, 트리거의 데이터, 트리거의 다음 단계로 구성되어 있음
- 트리거 작성 시, 해당 데이터 제어(컴퓨터, 롤백 등)는 사용하지 않아야 함
- 트리거 실행 중 오류 발생 시, 해당 오류가 트리거 이후의 작업에 영향을 미치지 않아야 함
- 트리거 내에 다른 프로시저를 호출하는 것도 가능하나, 데이터 제어가 트리거에 포함되면 안 됨
- (중요) 트리거는 특정 테이블에 데이터를 추가한 후 오류 발생 시, 추가 작업이 안 될 수 있음

3. 데이터베이스와 DML 명령어

3-1. 데이터베이스의 이해와 이벤트
- 데이터베이스의 중요성과 역할에 대해 설명함
- (중요) 데이터베이스의 주요 개념인 '이벤트'에 대해 설명함
- 이벤트는 특정 시간 또는 상황에 의해 발생하는 동작을 말함
- 이벤트 생성의 사례로 마이SQL을 예로 듦
- 이벤트는 데이터베이스 관리 시스템에서 생성되며, 일련의 연산을 처리하여 결과를 반환함

3-2. DML 명령어의 사용과 실행
- DML 명령어는 데이터베이스에서 데이터를 삽입, 수정, 삭제, 조회하는 명령어를 의미함
- DML 명령어의 유형으로는 '데이터 생성', '데이터 삽입', '데이터 수정', '데이터 삭제'가 있음
- (중요) 데이터 생성은 새로운 데이터를 테이블에 삽입하는 것으로, 데이터 삽입과 비슷한 개념임
- DML 명령어는 트랜잭션을 통해 실행되며, 이때 결과는 단위 값으로 반환됨

3-3. 데이터 분석 함수의 소개
- 데이터 분석 함수는 데이터의 특성을 분석하고 통계화하여 활용하는 함수를 의미함
- 대표적으로 '데이터 튜플 간의 상호 연관 및 계산 분석' 함수가 있음
- 이 함수는 데이터 튜플 간의 관계를 분석하고, 각각의 필드에 대한 상호 연관성을 계산함
- DML 명령어와 함께 사용하여 데이터를 분석하고 활용할 수 있음

4. 데이터베이스 테이블 관련 SQL 명령어

4-1. 데이터베이스 테이블의 기본 개념 및 생성
- 데이터베이스 테이블은 필드로 구성되어져 있음
- 각 필드는 선별적으로 데이터를 추가하거나 제거할 수 있음
- 테이블 내 필드의 개수에 맞게 밸류즈의 값이 일치하도록 설정해야 함
- 별도로 컬럼을 표기하지 않을 경우, 필드들에 데이터를 모두 넣어야 함
- 테이블 생성 시 필드들에 다 넣어주어 순차적으로 해당 필드의 개수에 맞게 밸류즈의 값이 일치되도록 설정해야 함

4-2. 데이터의 조회 및 수정
- 레코드 단위로 데이터를 조회할 때, SQL 명령어를 사용함
- (중요) 데이터 조회 시 셀렉트 옵션 컬럼 지정을 통해 특정 테이블 및 열 값을 선택하고, 대표적으로 '로그인 아이디와 비밀번호' 등의 정보를 수정할 수 있음
- 중복을 제어한 조회 결과를 가지고 올 때는 조건에 따라 중복을 제거하거나 중복 포함된 상태로 가져옴
- 데이터 수정 시에는 업데이트 테이블명, 컬럼명, 조건절을 이용해 특정 컬럼의 값만 수정해야 함

4-3. 데이터 제어의 기본 개념 및 활용
- 데이터 제어는 데이터의 무결성을 보장하고, 안전한 거래를 보장하기 위해 사용됨
- 데이터 제어의 주요 활용은 사용자 권한과 트랜잭션을 제어하는 것
- 시스템 권한과 객체 권한을 부여하는 경우, 그랜트 명령어를 사용함
- 시스템 권한에는 계정 생성, 테이블 생성, 시퀀스 생성 등이 있음
- (중요) 객체 권한에는 변경, 인서트, 추가, 딜리트, 삭제, 셀렉트, 추출, 업데이트, 수정 데이터 조작 권한 등이 있음

5. 데이터 분석 함수와 그 종류 이해

5-1. 데이터 분석 함수와 그 종류
- 데이터 분석 함수는 하나의 행에 대한 처리를 넘어서 두 개 이상의 행을 다루는 것
- 다중행 처리를 목적으로 하는 함수들을 데이터 분석 함수라 함
- (중요) 데이터 분석 함수는 집계함수, 그룹 함수, 윈도우 함수로 분류
- 집계함수는 평균, 합계 등의 계산을 수행하며 그룹 함수는 집계함수를 기준으로 여러 개의 데이터를 묶음
- 윈도우 함수는 순위나 집계를 수행하며, 순위를 구하는 여러 종류가 있음

5-2. 집계함수와 그룹 함수의 특징
- 집계함수는 단일 행에 대한 계산을 수행하며, 그룹 함수는 여러 개의 행을 묶음
- 집계함수는 선택문, 해빙 오토바이 등의 구문에 사용되며, 그룹 함수는 그룹 바이 구문에 사용됨
- 집계함수에는 합계, 평균, 개수 등의 종류가 있으며, 그룹 함수에는 롤업, 큐브, 그룹핑 세트 함수가 있음
- 롤업 함수는 중간 집계값 산출 목적으로 사용하며, 컬럼의 순서가 바뀌면 결과가 달라질 수 있음
- 큐브 함수는 다차원의 집계를 생성하며, 대상 컬럼의 순서가 바뀌어도 결과가 달라지지 않음

5-3. 윈도우 함수의 종류와 특징
- 윈도우 함수는 순위와 집계, 비율을 구하는 것에 사용되며, 복잡한 순위 구하기에 사용됨
- (중요) 순위함수, 로우 넘버, 로우 디센드 등 세 가지 방식이 있으며, 각각 다른 방식으로 동의를 부여
- 순위함수는 점수가 같은 경우, 동의를 부여하는 방식으로 점수가 높을수록 순위가 높아짐
- 로우 넘버 함수는 점수가 낮을수록 순위가 낮아짐
- 로우 디센드 함수는 동의를 부여하는 방식을 따로 제외하고, 점수가 낮을수록 순위가 높아짐

6. 데이터 분석과 오류 처리

6-1. 데이터 분석 함수의 종류와 유형
- 댄스 언더발 랭크 함수는 순위를 매김
- 로우 언더바 넘버 함수는 동일 순위의 값을 가진 음수가 있을 경우 연속부여 번호를 부여
- 윈도우 함수의 종류에는 순위 함수와 그룹 내 비율 함수 포함
- (중요) 행성성 함수는 에스큐엘 서버에서는 지원하지 않음

6-2. 오류 처리의 방법과 개념
- 오류 복구는 원인을 파악하여 문제를 해결하고 정상 상태로 돌려놓는 방법
- 오류 처리 방법 중 하나는 회피로, 오류를 메소드 밖으로 던져버림
- (중요) 퍼블릭 보이드 팝 스큐엘 익셉션은 객체의 역할이 에스큐엘 물에 대한 오류를 감지

6-3. 오류 전환과 예외 처리
- 오류 전환은 오류에 대한 오류 메시지를 개괄적으로 제공하는 방법
- (중요) 트라이-캐치 구문을 활용하여 오류를 감지
- 예외 처리는 오류를 발생시키는 부분 자체를 제어하여 오류를 예방하거나 복구하는 방법

00:03
자 세 번째 과목인 데이터베이스 구축 첫 번째 sql 응용 부분에서 절차형 sql 작성에 대해 살펴보도록 하겠습니다. 학습목표인데요. 반복적으로 사용하는 특정 기능을 수행하기 위해 여러 개의 한 개가 아니라 여러 개의 sql 명령문을 포함하는 프로시저를 작성하고 프로시저 호출문을 작성할 수 있다. 이 부분은 저희가 시험 출제 기준에 빠져 있어서 네 저희가 뺐고요. 두 번째 1년의 연산 처리 결과가 단일값으로 반환되는 사용자 정의함수 작성하고 사용자 정의 함수를 호출하는 거리를 작성할 수 있다. 다뤄보도록 하겠습니다. 하나의 이벤트가 발생하면 관련성이 있는 몇 개의 테이블 간에 연속적으로 데이터 삽입 삭제 수정을 할 수 있는 트리거를 작성할 수 있다. 살펴보도록 하겠습니다.

01:02
학습할 내용은 사용자 정의 함수 트리고 이벤트 세 가지입니다. 먼저 사용자 정의 함수입니다. 이 부분은요, 저희가 생소한 부분은 아니고요. 소프트웨어 개발 저희 두 번째 과목의 첫 번째 능력 단위 요소 즉 학습 모듈 내용이 데이터입출력 구현이었습니다. 데이터입출력구현의 세 번째 보면 데이터 프로시즈 작성이라는 게 있었어요. 그 파트에서 먼저 언급이 된 내용입니다. 사용자 정의함수 먼저 개념을 살펴보면요 절차형 sql을 활용하여 sqla에 처리 절차를 포함하고 있다. 이 말입니다. 절차형 sql을 활용하여 1년에 연산처리 결과를 단일값으로 반환할 수 있는 sql이다.

01:57
프로시저와 차이점인 사용자 정의함수는 반환값을 가집니다. 실행한 결과 리턴되어져 오는 게 있어요. 그런데 그 값은 여러 개의 값이 아니라 단일값으로 반환이 되어 옵니다. 그리고 사용자 정의 함수는요 데이터베이스에서 제공하는 공통적 함수 외에 사용자가 직접 만들어서 정의해서 사용할 수가 있습니다. 세 번째 사용자 정의 함수는 호출을 통해서 실행할 수 있어요. 호출한다는 건 간단합니다. 이름을 불러준다는 거죠. 사용자 정의 함수 이름을 불러주고 사용자 정의 함수를 호출할 때 해당 이 사용자 정의 함수가 처리하는 과정 내에 필요한 데이터를 넣어줘요 매개함수를 넣어서 호출해주면 됩니다. 그러면 얘는 실행하고 난 다음에 반환값을 가지죠 그래서 반환되는 단위 값을 조회 또는 삽입 수정 작업을 할 때 이용할 수 있다.

02:57
마지막으로, 일반적 개념 및 사용법과 문법 등은 프로시즈와 거의 같습니다. 대신 이제 리턴이 있다. 없다. 그 차이만 있습니다. 종료 시 단위값을 반환한다는 것이 프로시즈와 가장 큰 차이가 된다. 삶의 정리함수의 구성도인데요. 제일 상단이 디클레어 선언부입니다. 뭘 선언하는지 변수 및 상수 타입 등을 선언하고요. 그리고 바디 몸체 부분에서는 반드시 비긴으로부터 시작하고 앤드로 끝나요?

03:30
그리고 비긴과 앤드 사이에 컨트롤 부분에서요 제어 부분에서는 단위 블록별 실행 흐름을 제어하는 조건문이나 반복문을 넣을 수도 있고 sql문요 데이터 관리를 위한 조회나 추가나 추가나 수정이나 삭제와 같은 dql 문의라고 되어있는 부분은 데이터 쿼리 랭귀지 셀렉트문 가지고 오라 라는 부분을 이야기하고요. 그리고 dml 앞으로 저희가 데이터베이스 이 파트에서요 데이터베이스 구축 파트에서요 에스큐엘 문화에 대해서 하나하나씩 세부적으로 다 저희가 살펴볼 겁니다. 그중에서 제일 많이 저희가 다룰 파트가 dml 부분인데 데이터 매니플레이션 랭귀지라고 해서 조작입니다. 조작의 추가해 인서트 수정의 업데이트 그다음에 삭제해 딜리트 구문 자주 연습할 겁니다. 그리고 이제 오류가 발생했을 때 except 어떤 오류가 발생했다.

04:27
라는 걸 확인할 수 있게끔 예외적인 부분 그리고 상대적인 함수는 꼭 리턴을 가집니다. 리턴 얘를 호출하고요. 수행한 결과값을 다시 돌려받을 때 어떤 값을 돌려받을 거야. 반환받을 값을 지정해 줍니다. 자 사용자 정의함수의 작성 예입니다. 어떤 예냐면 생일을 입력을 해서요. 날짜를 출력하는 그러한 사용자 정의함수문이 되겠는데요. 위에서부터 찬찬히 한번 보도록 하겠습니다. 크리에이트 만들어라 또는 리플레이스해라 바꿔라 이 말입니다. 펑션 함수인데 이름값은 get on the baze 야 이게 사용자 정의 함수 이름이고요. 갈로꾸르미로요 얘 호출을 할 때 입력받는 값은 v언더바 버스 언더바 데이트인데 해당 데이터 타입이 char8로 되어 있어요.

05:21
문자이고 고정 크기로 8자리 즉 생년월일 연 4자리 월 2자리 1 2자리 조합해가지고 그렇게 입력을 받겠다. 이 말입니다. 이즈 비긴 내용적인 부분에서는요 세 개의 변수를 다시 선언해 주고 있어요. van the ball on the bar eo 그 다음에 ch ar 갈록콜라미 4가 이게 데이터 타입이죠. 얘가 변수 이름이고요. 변수 변수 이름에 그 해당 이 변수가 어떠한 값을 담는다라는 것을 알 수 있게끔 이름을 설정해 주는 게 수월합니다. 파악이 쉽게 됩니다. v 연도 바 콜 온도바 이렇게 돼 있으니까 이름값을 이렇게 줬어요. 현재 연도를 담는 변수이겠구나 라고 유추할 수 있죠. 그리고 해당 데이터 타입은 chr 문자인데 갈록 구름이 4 이렇게 돼 있어요. 네 개의 문자 연도 네 자리잖아요.

06:20
연도 네 자리 현재 요거 하이퍼 나이퍼는 주석입니다. 소스에서 설명문을 다는 거고, 실행은 되지 않습니다. 현재 연도 변수를 문자열 네 자리로 선언한 거야. 밑에 같은 패턴입니다. 같은 방식입니다. 보이 언더바 볼스 언더바 이어니까 생년월일 네 자리를 담는 변수로 선언을 한 거고, 데이터 타입도 마찬가지 네 글자 담는 거야. 이렇게 돼 있고요. 그 다음에 보이언더바 어 에이지 이 넘버 이렇게 돼 있네요. 숫자값을 담는 변수인데요. 나중에 이제 나이 생일을 입력을 해서요. 나이를 계산해가지고 출력해주는 그래서 이제 그 나이를 담는 거 이렇게 돼 있습니다. 그다음에 에스큐엘로 들어가 있네요. select to 언더바 char 이렇게 되어 있고요. 해당 이건 함수인데 galona에 sis 언더바 데이터라고 하는 부분 자체는 저기 보면 prom 듀얼이라고 되어 있어요. 데이터베이스 테이블 이름입니다.

07:14
dull이라고 하는 테이블로부터 가지고 오는데 해당 테이블은 표 표 테이블 테이블의 열녀 필드라고 이야기를 합니다. 필드 이름 중에 시스 언더바 데이트 시스 언더바디에이트 갑 이거는 지금 현재 날짜를 자동으로 출력해가지고요. 이거 케이스 같은 경우에는 해당 필드에서 불러오는 게 아니라 시스템의 날짜 시스템의 날짜를 불러와서 그 날짜의 형식을 와이 와이 네 자리로 하라 이 말입니다. 그 다음에 이것도 함수예요. str 함수는요 문자열 부분 추출하는 함수입니다.

08:03
보이 언더바 벌스 언더바 데이터 같은 경우 위에서 아까 얘를 호출할 때 생년월일 8자리를 넘겨받아가지고, 넘겨받은 값을 1에서부터 4 이렇게 돼 있으면 앞에 첫 번째부터 네 자리를 뽑아봐 그러면 연도가 뽑아지는 거죠. 그게 생년월이 되겠죠. 생일연도가 되겠죠. age e 변수는 어떤 값을 가지느냐 하면 age e는 2 언더바이언더버 커넌트 선수가 eo 이렇게 되어 있으니까 이거는 숫자값으로 하라 이 말입니다. to windable 넘버라고 하는 부분은 앞서서 얘가 어떤 값을 가지고 있냐 문자형 변수였잖아요.

08:55
문자값을 가지고 있는데, 자 문자 대상으로 해가지고 사칙연산 계산할 수 있느냐 사칙연산 계산을 못합니다. 그러니까 숫자로 데이터 형식을 바꿔 가지고 플러스 마이너스 곱하기 나누기 사칙연산 수행하겠다. 이 부분이죠. 보이언더바 컨언더바 이원은 현재 연도였죠 현재 연도를 숫자로 변환한 다음에 빼 뭘요 boy on the virthon the virthon the ball 생년월일 생년도 네 생년을 뺀 다음에 더하기 1 한 값을 aze 변수에 넘겨줘라 지금 구하는 내용은 생일을 입력 받아가지고, 나이를 구하려고 한다. 라는 부분입니다. 그래서 여러분들이 200년도에 태어났어요. 그런 경우에 뭐 2020년이다. 그러면 2020년 빼기 2천 년 이렇게 하게 되면 20이지만 실제적으로 이렇게 계산했을 때 저희가 일반적으로 나이 따질 때는 플러스 1 해줘야지 맞을 겁니다.

09:51
다 수행하고 난 다음에 반환은 뭘 하느냐 예제 변수를 넘겨받는 넘겨주는 걸로 그렇게 돼 있는 소스입니다. 네 마지막 마지막 엔드 꼭 해줘야 되고요. 비긴부터 엔드까지 묶입니다. 사용자 정의 함수 얘를 이제 이용을 할 때는 호출해서 이용을 합니다. 사용자 정의하면서 호출 쿼리 작성 이렇게 돼 있죠. 일례로요 에스큐엘 문을 이렇게 에스큐엘 게드 언더바 에이지 이 그리고 호따옴표를 묶은 건 문자열 입력할 때는 호따옴표 묶어줘야 돼요. 해주고요. 프롬 듀얼이라고 했는데 이게 호출이에요. 게더운드만 에이지 상위동형의 함수를 해가지고 매개변수에다가 이 값 넘겨주고 그 다음에 받겠죠. 계산되어진 뭐를요 생년월일을 입력해주고 나이를 구한 나이 값을 받겠죠.

10:48
그래서 첫 번째 사용자 종이 함수는 생년월일 값을 가지고 연령값을 가져오는 예가 되고 두 번째는 업데이트문 데이터 조작어로서요 수정입니다. 문법적인 측면에서는요 인플루언더바 인포언더바 t라고 하는 부분은 얘가요 테이블 이름이에요. 데이터베이스 테이블이구요. 대상 테이블이고요. 세트 명령을 사용해야 되고요. aj라고 하는 부분 자체는 테이블 내에 필드입니다. 열 이름 필드 age라고 하는 테이블 테이블은 가로 행과 세로 열로 구성되어지는데 여기에 age라고 하는 네 해당 필드가 있는데, 그 필드의 값을 이 값으로 수정하라 이 말입니다. get 언더바 에이지는 사용자 영역 함수를 호출한 거죠.

11:47
verse 언더바 데이트 같은 경우에는 얘는 벌스 언더바 데이트라고 하는 필드가 따로 사용한 경우에 여기에 저장되어 있는 값을 이 상위도 정의함수에 넣어가지고 해당 나이 값을 수정하게끔 이렇게 요구하고 있습니다. 시간은 계속 흘러갑니다. 그래서 이 에스큐레임을 언제 실행시켰느냐에 따라서 나이는 달라지겠죠. 내년 내후년 하면 나이는 일찍 증가하겠죠. 그래서 네, 그렇게 해석하면 될 것 같고, 웨어이야 조건절 나중에 저희가 다룰 건데 웨어는 조건을 만족하는 것만 골라 오라 이 말입니다. 인플루언더 아이디가 제가 볼 때 4번이 이거인 사람의 생 날짜요 태어난 날짜 입력 그 값을 사용자 정의 함수 나이 구하는 함수에다 넣어가지고 구한 나이를 해당 다시 업데이트하라 이 말입니다.

12:45
수정하라 이렇게 해석할 수 있겠습니다. 자 퀴즈입니다. 사용자 정의 함수 다음 중 사용자 정의 함수를 설명한 내용 중에 틀린 거 골라 펑션 바디는 비긴과 앤드 문장으로 묶어주면 된다. 맞죠. 다중 데이터 값을 리턴 받을 수 있어 틀렸습니다. 왜 틀렸느냐 리턴 받는다고 했는데 다중 데이터 값이 아니라 단일 값이에요. 단일값 아까 생년월일을 입력해서 반환되어진 건 나이 이런 식으로 하나의 값 파라미터를 정의할 때 괄호를 묶어준다. 갈루 파라미터랑 매개변수 그다음에 리턴 명령 다음에 리턴 될 값을 정의한다. 맞습니다. 다음 트리거에 대해 살펴보도록 하겠습니다. 트리거의 개요인데요. 개념적으로 트리거라고 하는 부분은 트리거는 영어로 방아쇠에 담긴다 이 말이죠.

13:36
뭔가 빵 이렇게 쏜다 언제요 언제 특정 테이블에 삽입 수정 삭제 등 데이터 변경하는 이벤트가 발생을 하면 dbms는 데이터베이스 관리 시스템입니다. dbms에서 자동적으로 실행되도록 구현된 프로그램을 드리거라고 한다 라고 소개하고 있고요. 해당 이벤트는요 전체 트랜잭션 대상인 것도 있고 각 행에 의해 발생되는 것도 있다. 이러한 모두를 포함할 수 있고 테이블과 뷰 데이터베이스 작업을 대상으로 정의할 수 있다 라고 소개하고 있습니다. 트리그를 사용하는 목적입니다. 트리그는 어떤 목적으로 사용하느냐 특정 테이블에 대한 데이터 변경을 시작점으로 설정을 하고 그와 관련되어진 작업을 자동적으로 수행하고자 할 때 사용을 합니다.

14:32
일반적으로 이벤트와 관련되어진 테이블의 데이터 삽입이나 추가 삭제 작업을 dbms가 자동적으로 시행하는 데 활용할 수 있고요. 데이터의 무결성을 유지하고 로그 메시지 출력 등에 별도 처리를 위해 트리거를 사용하기도 합니다. 트리거 세 가지 구성 요소인데요. 트리거가 실행될 조건이 되는 문장이나 이벤트가 있어야 되겠고 그리고 실행조건에 대한 제약 실행할 내용 이렇게 구성되는데 트리고 구성도를 살펴보게 되면 앞단에 저희가 살펴봤던 사용자 정의함수의 전체적인 틀은 같습니다. 디클레어 선언부가 있고 그다음에 여기서는 이제 이벤트가 이벤트 이벤트라는 부분이 사용자 정의 함수에서는 없었죠. 비긴 앤드 레이에 실행문 들어가는 건 같습니다. 그래서 차이 나는 건 이벤트 이 이벤트는 아까 추가한다든지 수정한다든지 삭제한다든지 뒤에 소스 보면서 살펴볼게요 캐릭터 작성의 예인데요.

15:32
일례로 직원 정보 테이블에 수정 사항이 발생을 했을 때 직원 정보 테이블에 어떤 내용을 수정했을 때 수정하고 난 다음에 직원 정보 이력 테이블에다가 그 수정한 내용을 자동으로 입력하는 트리그 작성의 예입니다. 자 전체적인 구문은 크리에이트 오럴 리플레이스 트리거야. 트리거 이름 선언해 놓았고요. 여기 보면 f2 업데이트 이렇게 돼 있어요. 이거 에스큐엘 문이에요. 수정하는 업데이트문이 수행되고 난 뭐라고요.

16:12
f2 후에 f2 반대는요 b4 이전에 수정되기 전에 그래서 두 종류요 이전이나 후 이렇게 채점을 여기다가 명기해 줍니다. 수정이 되고 난 다음에 어디에 어느 테이블에 여기 테이블로 돼 있네요. 온 테이블로 인플루언더바 인풋 온더바 tm 해당 업데이트가 되고 나면 해당 이 트리그를 수행하도록 해 라고 하는 이벤트가 지정돼 있고 폴 이치 로야 로우 단위로 건별 단위별로 수정해라고 돼 있고요. 비긴과 앤드문 내에 인서트 구문이 돼 있습니다. 추가하라 라고 하는 부분입니다. 어디다 추가하는데 뭘 추가하는데 인서트 이게 필드명들이에요. 인서트 인 투 이게 테이블명이에요.

17:06
인플로잉 언더바 인풋 언더바 h 직원 정보 이력 테이블에다가 수정 사항이 있는 부분들을 수정하라 이렇게 이해하시면 되겠습니다. 나중에 저희가 dml 구문 단계별로 다 할 테니까. 이거 너무 복잡하고 잘 모르겠는데요. 너무 부담 안 가지셔도 돼요. 나중에 하니까 넘어가겠습니다. 트리그 작성할 때 주의사항입니다. 트리거를 작성할 때 해당 데이터 제어를 사용하면 안 돼 트리거 내에 실행문 내에다가 컴퓨터나 롤백과 같은 데이터 컨트롤 랭귀지는 사용하면 안 된다. 네 하나 더 유의할 부분은 트랙으로 인해 발생하는 후속 모든 후속 절차에도 동일하게 적용된다.

17:53
무슨 말이냐 밑에 이게 트래그 내에 다른 프로시저를 호출하는 것도 가능한데 해당 호출하는 그 프로시저 내에 컴퓨터가 포함되어 있다면 오류가 발생할 수 있다. 주의해야 된다. 그래서 데이터 제어가 트리거에 실행문으로 포함되면 안 된다라는 부분이고 그리고 오류 오류에 특히 주의할 건 뭔데 트리거를 실행하는 중에 오류가 발생을 하게 되면 트리거는 언제 진행한다고 말씀을 저희가 살펴봤나요? 수정이나 삭제나 추가로 한다든지 이거 할 때였는데 트리거 실행 중에 오류가 발생해 버렸다 그러면 수정이나 추가나 삭제가 될까 안 될까 트리거 실행의 원인을 제공했던 데이터 작업에도 영향을 미쳐서 안 된다는 부분입니다. 추가나 수정이나 삭제 작업이 진행되지 않을 수 있다.

18:49
즉 특정 테이블에 데이터를 추가한 후에 발생하는 트리그에서 오류가 발생하게 되면 트리그 이후에 작업이 진행되지 않는 것뿐만 아니라 더 나아가서 데이터가 추가되지 않는다. 라는 부분을 주의해야 된다. 라는 부분입니다. 자 트릭에 대한 퀴즈입니다. 다음 중 트리거의 구성 요소가 아닌 것은 세 가지 저희가 살펴봤었죠. 네 트리거가 진행될 조건이나 문장이나 이벤트가 있어야 돼요. 네 있어야 되고 맞고 데이터베이스 이름이 있어야 돼요. 데이터베이스 이름은 아니었고 트래그 내에서는 문 내에서는 뭐가 있었냐면 테이블명이 있었어요. 데이터베이스명은 포함이 안 되고 실행할 내용과 실행 조건에 대한 제약이 있어야 된다. 맞습니다. 마지막으로, 이벤트인데요. 이벤트는 한 페이지가 이게 끝이에요. 간단하게 개념만 정리하겠습니다. 이벤트는 뭔데 앞서서 계속 이벤트 이벤트 나왔어요.

19:48
트리거는 언제 이벤트가 발생할 때 그 이벤트가 뭔데 뭐 수정 삭제 추가 이러한 것들이 발생할 때 자 이벤트 개념은 특정 시간 또는 특정 상황 있죠. 그죠 특정 시간에 특정한 쿼리 프로시저 함수 등을 실행시키는 기능을 이벤트라고 한다. 이벤트의 생성 사례로서 마이 sql 데이터베이스 중에 마이 sql은 이벤트를 생성하게 되면 마이 sql점 깊게는 안 들어가겠습니다. 마이 sql점 이벤트나 인포메이션 스키마나 이벤트 테이블에 자동으로 등록이 되어지는데 일례로 크리에이트 이벤트 if 낫 이그지스트 이게 뭐 없다라고 한다면, 해당 온 스케줄 해가지고 이게 실행되어지게끔 이렇게 돼 있습니다. 데이터베이스 관리 시스템마다 해당 에스큐엘 문의 종류가 약간씩 좀 차이가 좀 있어요. 그래서 이 케이스는 앞서서는 저희가 살펴봤던 문법들은 오라클을 베이스로 한 문법들이었습니다.

20:46
오라클 데이터베이스 관리 시스템 중에 가장 보편성 그리고 규모가 큰 대기업군은 거의 오라클을 이용하거든요. 그래서 시장 점유율이라든지. 이러한 것들을 고려했을 때 오라클 또는 마이너스큐엘 이러한 부분들 중소기업군은 마이너스큐엘도 많이 쓰고요. 자 개념만 정리하고 넘어가겠습니다. 세부적인 부분은 몰라도 됩니다. 자 평가 문제로 마무리하도록 하겠습니다. 모의평가 문제요 이 파트는 저희가 다뤘던 내용이 많지가 않아서 한 3문제 정도만으로 정리하겠습니다. 다음 중 이벤트에 관한 설명 중에 올바른 것을 골라라 이벤트 데이터베이스가 미리 정해놓은 조건을 충족할 때 자동으로 실행되는 동작이야 설명 중 올바른 걸 골라라고 되어 있습니다.

21:35
데이터베이스가 미리 정해놓은 조건 충족할 때 자동 실행되는 동작이야 애매하지만 두 번째 특정 시간에 특정한 거리 프로시저 함수 등을 실행시키는 기능이야 이게 바로 더 정확한 설명이 되겠습니다. 데이터 삽입 추가 삭제 작업을 dbms가 자동으로 실행시키는 기능이야 일련의 연산 처리 결과를 단위값으로 반환하는 기능이야 라고 하는 부분은 이거는 사용자 정의 함수적인 부분이었고요. 이벤트 설명 중 올바른 것은 특정 시간에 특정한 쿼리 프로시저 함수 등을 실행시키는 기능이다. 이렇게 정리하겠습니다. 두 번째 다음 중 트리거의 타입이 아닌 것은 트리거 소스 내에 포함되지 않는 거 이렇게 이해하시면 될 것 같고요. 로우가 있다. 포이치 로우 뭐 이렇게 있었죠.

22:34
또는 문장 프리비어스와 넥스트가 있었나요? 없었습니다. 오히려 비포 에프트 제가 좀 더 구체적으로 설명드렸죠 아까 에프트 에프트만 있었죠. 해당 뭐 직원의 해당 정보 테이블에 변동 사항이 있고 난 다음에 그래서 에프트가 있었는데, 비포도 있다. 설명을 드렸었습니다. 다음 3번입니다. 다음 중 사용자 정의 함수 문법 중에 사용되지 않는 구문은 무엇인가 사용자 정의 함수 프로시저도 사용자 정의 함수도 튀기고도 해당 비슷한 구조였어요. 비긴 앤드 있었죠. 본체 내의 시작 끝 리턴 중요하다고 그랬죠 사용자 영역함수는 반드시 리턴이 있어야 된다. 이게 특징이었고요. 트리거는 이벤트 부분이 있어야 되고 고투 없앴습니다.

23:33
틀린 것은 4번 자 정리하겠습니다. 핵심 내용 사용자 정의 함수 부분에서요 네 사용자 정의 함수는 개념이 절차형 sql을 활용을 해서 뭔가 처리하는 sql문들의 여러 개의 sql문을 순차적으로 처리하는 절차형 sql을 활용해서 1년의 연산처리 결과를 단일값으로 반환하는 할 수 있는 sql이야 사용자 동위함수의 호출을 통해서 실행이 되고 반환되는 단위값을 조회 또는 삽입 수정 작업에 이용할 수 있다. 두 번째 트리거입니다. 트리거는 특정 테이블에 삽입이나 수정이나 삭제 등과 같은 데이터 변경 이벤트가 발생을 하면 데이터베이스 관리 시스템에서 자동적으로 실행되도록 구현되어진 프로그램을 말한다.

24:24
이벤트는 전체 트랜잭션 대상이 될 수도 있고 각 행에 의해 발생하는 경우도 되는데 모두를 포함할 수 있으며 테이블과 뷰 데이터베이스 작업 등을 대상으로 정의 실행문을 지정할 수 있다. 마지막으로, 데이터 제어는 사용하면 안 된다. 실행문으로 이벤트는 개념만 정리하겠습니다. 이벤트는 특정 시간에 특정한 쿼리 프로시저 함수 등을 실행시키는 기능이었습니다. 이상으로 절차형 sql 작성에 대해 살펴봤습니다. 데이터베이스 구축 sql 응용 두 번째 응용 sql 작성에 대해 살펴보도록 하겠습니다. 학습 목표는요 한 개의 테이블에 대해 데이터를 삽입 수정 삭제하고 행을 조회하는 dml 데이터 조작 옵니다. 데이터 매니퍼레이션 랭귀지 명령어를 작성할 수 있다.

25:24
두 번째 윈도우 함수와 그룹 함수를 사용하여 순위나 소기 중간 합계 중계 전체 합계 총합 와 같은 것들을 산출할 수 있는 또 데이터 조작어 명령어를 작성할 수 있다. 마지막 세 번째는 사용자의 그룹을 정의하여 사용자를 생성 또는 변경할 수 있고 사용자의 권한 부여와 회수를 권한을 줬다가 횟수는 다시 빼낸다는 거죠. 이러한 권한을 제어하는 데이터 컨트롤 랭귀지 명령문을 작성할 수 있다. 입니다. 학습내용은 dm형 dca형 집계성 sql 작성 오류처리인데요. 여러분들 지금 현재 우선 시험출제기준은 ncs 학습 모듈 베이스로 출제하겠다고 되어 있기 때문에 그걸 근간으로 해서 학습을 하시되 이 파트에서는 지금 변동사항이 dml 부분하고요.

26:24
오류 처리 부분은 학습 모듈에는 없습니다. 이 dml이 저 뒷단에 있는 sql 활용 파트에 있는 부분을 앞쪽으로 당겼어요. 세부 출제 기준에 맞춰서 순서대로 제가 강의 진행하고 있습니다. 참고하시면 될 것 같습니다. 자 세부 내용 보도록 하겠습니다. 용어 사전인데요. 데이터 조작어란 데이터 조작어는 데이터 매니플레이션 랭귀지인데 데이터베이스에 있는 데이터를 변경하거나 검색하기 위하여 사용하는 명령어들이야 대표적으로 추가하는 인서트 수정하는 업데이트 삭제하는 딜리트 이 삭제한다는 거는 테이블 내에 있는 데이터를 삭제하는 거예요. 그리고 가지고 와 추출하는 셀렉트문이 있습니다. 그리고 제어 데이터 제어는 사용자별로 데이터베이스에 접근할 수 있는 권한 권한을 컨트롤하는 명령어가 되겠고요.

27:19
권한을 주는 그랜트 회수하는 리보크 그리고 해당 트랜잭션을 실행시키는 커뮤트 그리고 다시 돌리는 롤백이라는 명령어들이 있는데, 세부적인 부분은 뒤에서 살펴볼게요 자 그리고 데이터 분석 함수가 새롭게 소개가 되어집니다. 데이터 튜플 간 테이블 레이의 레코드 단위요 필드의 조합인 레코드 단위 튜플 간의 상호 연관 및 계산 분석을 위한 함수들을 살펴볼 건 내일의 집계함수 그룹 함수 윈도우 함수가 있습니다. 자 세부 내용으로 첫 번째 dml 데이터 조작어 파트 살펴보도록 하겠는데요. 먼저 개요적인 측면에서 해당 dml 데이터 조작어에 대한 정의입니다. 데이터를 조작하는 명령어이다.

28:10
여기서 조작은 데이터관점에서 생명주기를 제어하는 것을 의미한다 라고 소개하고 있습니다. dml의 유형으로서요 dml 명령어 네 가지 소개하고 있는데, 먼저 데이터 생성이다. 해당 테이블에 데이터가 들어가는 거예요. 테이블에 데이터를 추가시키면서 데이터가 새롭게 생성된다. 이렇게 이해하시면 되겠고 인서트 구분이 그 역할을 담당합니다. 그리고 데이터 조회는 select 변경은 업데이트 삭제는 delit인데 세부 dml 해당 문법적인 부분은 뒤에서 바로 살펴보도록 하겠습니다. 먼저 데이터 삽입부터 인서트부터 보도록 하겠는데요. 데이터를 삽입하기 위한 명령어입니다. 두 가지 형태의 명령 형식을 제공하는데 자 밑에 보면 명령문 유형이라고 에이 비형 이렇게 있어요.

29:05
기본적으로 보면 인서트 그다음에 인투 이 문법적인 부분에 대한 것도 물어지니까. 어 문법은 정해져 있잖아요. 정해져 있기 때문에 반복해서 익히셔야지 남게 됩니다. 인서트 인투 그 다음에 테이블 이름 테이블은 테이블은 여러 개의 필드로 컬럼 열로 구성되어지죠 그래서 해당 그 열들 중에 선별적으로 전부 모든 열이 아니라 선별적으로 몇 개만 데이터를 추가할 거야. 그렇게 할 수도 있습니다. 예를 들어서 일련번호를 설정을 한 컬럼 같은 경우에는 굳이 숫자를 입력하지 않더라도 얘가 자동적으로 증가하거든요. 1씩 그런 경우에는 거기에 숫자 값을 안 넣어도 되죠.

29:53
선별적인 경우에는 해당 어떤 컬럼이라고 테이블명 뒤에 컬럼명까지 명기하고 그다음에 밸류즈 갈록그룹 내에 직접 직접적으로 추가되어질 데이터를 적어주면 됩니다. 또는요 b형은 컬럼을 별도로 표기를 안 한 거예요. 그러면 해당 테이블 내에 필드들에다가 다 넣겠다는 말입니다. 그래서 순차적으로 해당 그 필드의 개수에 맞게끔 뒤에 밸류즈의 값만 일치되게끔 넣어주면 돼요. 자 데이터 조회 부분입니다. 슬랙트 가지고 오라 레코드 단위로 행단위 이야기하는 겁니다. 레코드 단위로 데이터를 조회할 때 많이 사용하는 명령어입니다. 가장 많이 사용되어지는 sql 명령어가 같이 사용이 되어서 sql의 활용을 풍부하게 할 수 있다. 에스큐엘문의 특정적 요소로 별명 엘리어스 기능도 있고요.

30:47
명령어의 기본 형식은 셀렉트 가지고 와 그 다음에 옵션 컬럼 지정을 합니다. 어떤 컬럼 테이블 내에 어떤 열 열 열 값 가지고 올 건데 프라임 어디부터 특정 테이블 그래서 셀렉트 옵션 컬럼 프롬 테이블 그리고 외에 의하 조건절 테이블러에 저장되어져 있는 많은 데이터 중에 대표적으로요 해당 개인의 정보 수정하려고 해요. 그럼 제가 로그인을 하죠. 아이디 비밀번호 입력하고 로그인했어요.

31:19
그다음에 정보 수정 버튼을 딱 누르게 되면 해당 누구 거 수정한다는 부분은 해당 회원 회원 테이블 내에서는 중복값 허용 안 하는 id 값 가지고 id가 kskim인 사람 거 정보 가지고 와 해서 수정 페이지에 그 사람이 기존에 입력했던 정보들이 쭉 입력되고 거기서 이제 수정해서 수정 완료 버튼 누르면 다시 그 값이 데이터베이스 테이블에 추정되게끔 처리가 되어지죠 웨이 웨어라는 부분 자체는 누구 거라는 네 제한할 때 사용하는 조건절입니다. 셀렉트물에서 사용하는 요소로서 옵션에 들어갈 수 있는 값은 요소값으로 올과 디스팅크 디스팅크가 있다. 이거 시험에 자주 나옵니다. 기본값은 올이기 때문에 무슨 말이냐 중복 포함된 결과를 중복 포함된 상태로 가지고 올 거야. 아니면 중복을 제거해서 가지고 올 거야.

32:15
디스팅크티는 중복을 제어한 조회 결과를 가지고 온다 뒤에 저희가 문제 파트에서 실제적으로 이 사례가 있기 때문에 그때 더 구체적으로 설명드릴게요. 자 컬럼은요, 컬럼즈는 컬럼명의 목록 가지고 오는데 와일드카드 별표를 사용을 하게 되면 여기다 별표 이렇게 하게 되면 해당 그 테이블에 있는 모든 열을 다 가지고 와 이렇게 알 수 있습니다. 자 데이터 수정입니다. 업데이트 업데이트는 내용을 수정할 때 사용하는 부분이고요. 웨어저를 통해서 어떤 조건을 만족하는 특정 컬럼의 값만 수정하는 용도로 사용되어 있습니다. 기본 구문은요, 업데이트 테이블명 트 이거 빠뜨리기 쉬운데 셋 네 그 다음에 컬럼 이름 갑 네 그 다음에 여의와 조건절 이렇게 돼 있습니다. 다음 데이터 삭제입니다.

33:13
딜리트인데 딜리트는 기본적으로 명령 형식이 딜리트 프롬 테이블명 그리고 웨어와 조건절 누구 거라는 게 구분되어야 되니까. 조건에 맞는 해당 레코드 단위 행만 삭제하라 이렇게 됩니다. 예를 들어서 웨어 이하 조건들을 빼버리면요 빼버리게 되면 해당 테이블 내에 있는 모든 데이터가 다 지워질 수 있겠죠. 한꺼번에 자 관련해서요. 퀴즈 풀어보면서 문제 유형 익히겠습니다. 다음 중 dml 명령문이 올바르지 않은 거 틀린 거 골라라 이렇게 돼 있어요. 셀렉트 해당 pw는 얘는 필드 네 컬럼이고요.

33:56
컬럼 열 특정 패스워드라고 보시면 될 것 같죠 비밀번호 비밀번호 내가 설정 뭘 했는지 알고 싶어 그런 경우에 비밀번호 필드의 값을 가지고 와 그럼 어디에서부터 멤버 테이블로부터 누구 거 왜요 아이디가 케이스 케어맨인 거 네 맞습니다. 형식 인서트 추가 구문입니다. 인서트 인투 테이블명 괄호에 컬럼 밸류즈 그 다음에 해당 각 컬럼에 들어가는 실제 값 이 개수가 꼭 매치가 돼야 돼요. 일치 안 하고 개수 안 맞으면 입력 오류 뜹니다. 업데이트 네 멤버 테이블명 pw값이 어 pw값을 hk2로 할 거야. 누구 거 아이디가 홍인 거 하나가 빠졌어요. 아까 제가 설명해 드렸죠 업데이트 멤버 그다음에 세트가 빠졌어요. st 네 세트 빼먹기 쉬운데 여기 들어가야 됩니다.

34:51
틀린 건 3번 딜리트 프람 테이블명 웨어 조건에 맞는 네 데이터치오 두 번째 데이터 제어에 대해 살펴보도록 하겠는데 데이터 제어는 기본적인 정의가요 무결성 결함이 없게 한다는 거죠. 보안 및 권한 제어 회복을 위해 데이터베이스의 조건을 제어하는 sql 명령어다 dcl 데이터 제어의 조작 대상은 오브젝트가 사용자 권한과 트랜잭션으로 구분이 돼 있는데, 사용자 권한은 조건 통제를 목적으로 하고 사용자를 등록하고 사용자에게 특정한 데이터베이스에 사용할 수 있는 권리를 부여하는 작업을 말하고요. 트랜잭션은 개념 문제로 내용 데이터베이스 내에 어떠한 변경을 하는 그 작업이 뭐야? 작업의 단위는 뭐야?

35:48
이렇게 그게 트랜잭션의 정의인데 묻는 문제가 자주 나옵니다. 트랜잭션은 안전한 거래 보장을 목적으로 하고 동시에 다수의 작업을 독립적으로 안전하게 처리하기 위한 상호작용 단위가 트랜잭션이야 dcl의 유형과 명령어입니다. 트랜잭션 제어를 위한 명령어를 tcl 약어를 쓰는데 트랜잭션 컨트롤 랭귀지 네 트랜잭션 제어 명령 밑에 보면 dcl은 데이터 컨트롤 랭귀지고요. tcl은 트랜잭션 컨트롤 랭귀지 데이터 컨트롤 랭귀지의 명령어는 두 가지 그랜트 승인한다. 리보크 권한을 부여했던 권한을 회수한다. 그리고 tcl은 컴미트 트랜잭션을 확정시켜서 처리 완료시키게끔 하는 거고, 롤백은 트랜잭션을 취소하는 거 그리고 세이브 포인트와 책 포인트는 데이터베이스 관리 시스템마다 명령어가 약간씩 차이가 좀 있을 수 있어요.

36:45
그래서 세이브 포인트 같은 경우에는 이거는 오라클에서 사용하는 부분이고 책 포인트 같은 경우에는 마이크로소프트의 에스큐엘 서버에서 기능은 복귀 지점을 설정하는 것을 뜻합니다. 사용자 권한 부여로서요 권한은 시스템 권한과 객체 권한이 있다. 부여하는 부분은 다 그랜트문을 이용을 합니다. 그랜트 명령어를 사용해 가지고요. 시스템 권한을 부여할 때는 그랜트 권한 2 누구한테 사용자 계정 그리고 객체 권한 부여할 때는 그랜트 어떤 권한을 온 객체명2 사용자 계정 이렇게 사용을 합니다. 시스템 권한과 객체 권한의 종류를 쭉 있는데, 암기할 필요는 없어요. 시스템 권한의 종류는 개괄적으로 보겠습니다. 크레인트 유저 사용자를 만든다는 거죠. 계정생성권한을 이야기하는 거고요. 드랍 유저는 계정을 삭제할 수 있는 권한 드랍에니 테이블은 테이블을 삭제할 수 있는 권한 드랍은 삭제입니다.

37:45
그리고 크리에이트 만든다는 거죠. 세션 데이터베이스 접속 권한 크리에이트 테이블 테이블 생성 권한 크리에이트 뷰 생성 권한 크리에이트 시퀀스 시퀀스 생성 권한 크리에이트 프로시저 프로시스 생성 권한이 있고요. 그 다음에 객체의 권한으로서는 arter 올터 네이 변경하다 이 말이고요. 그리고 인서트 추가 딜리트 삭제 셀렉트 추출 업데이트 수정 데이터 조작 권한이 되겠고 그다음 엑시큐트는 프로시저를 실행하는 권한이 되겠습니다. 사용자 권한에 대한 횟수는 그랜트의 반대 명령어 리보크를 사용하면 되고 형식은 똑같고요. 그랜트가 들어가는 자리에 리보크를 배치하면 대체를 시키면 돼요. 넘어가겠습니다. 데이터 제어에 대한 퀴즈인데요. 다음 중 데이터 컨트롤 랭귀지 명령어가 아닌 것은 올터 옳다는 변경입니다.

38:40
변경은요, 해당 생성 변경 삭제 이런 게 묶이는데 얘는 데이터를 대표니션한다. 정의하는 랭귀지 ddl문입니다. 그래서 1번이 dcl문이 아니고요. 그랜트 승인 커뮤니티 트랜잭션을 확정시켜서 동작시키는 거 리모컨은 도난일수 지심입니다. 집계성 sql 작성이라고 해서요. 데이터 분석 함수에 대한 개요 데이터 분석 함수에 대해 저희가 살펴보도록 하겠는데요. 데이터분석함수는 하나의 행에 대해서만 처리하지 않고 두 개 이상의 두 개 이상의 행을 저희가 레코드라는 표현으로도 쓰고요. 나중에 릴레이션 부분에서는 튜플이라는 용어로도 씁니다. 관계형 데이터베이스에서 단일행 기준의 처리가 주를 이루지만 어떤 경우 합계를 구한다든지 평균을 구한다든지 이런 경우에는 하나가 아니라 여러 개 두 개 이상이라는 거죠.

39:39
여러 개 데이터 분석에 대해서는 복수형에 대한 데이터를 모아서 처리한다. 그 경우에 다중이행처리를 목적으로 하는 함수가 다중행 함수가 있는데, 그 함수들을 데이터 분석 함수라고 지칭을 하고요. 뒤에 보면 종류 세 가지를 다루도록 할 거예요. 자 단일형을 기반으로 산출하지 않고 복수형을 그룹으로 모아놓고 그룹당 단일 계산 결과를 반환하는 뒤에 해당 그룹을 그룹으로 묶을 때 사용하는 구문이 그룹바이라고 하는 구문을 활용을 하고요. 셀렉트문과 해빙 오토바이 등의 구문에도 해당 사용이 활용되어집니다. 데이터 분석 검사의 유형은 세 가지가 있습니다. 집계함수가 있고요. 그리고 그룹 함수가 있고요. 윈도우 함수가 있습니다. 그룹 함수에 이 집계함수가 포함이 돼요. 일부분입니다.

40:39
그래서 이 그룹 집계함수는 집계함수는 상대적으로 단순하다 그래서 이를 기본으로 해서 그룹 함수와 윈도우 함수에도 집계함수가 적용이 되어집니다. 뒤에 바로 집계함수 종류 나올 거예요. 합계 평균 개수 뭐 이렇게 나옵니다. 집계함수는 그룹 함수의 한 부분이다. 집계함수를 기준으로 기본적인 구문 형식을 보면 select문 컬럼 그다음에 프롬 언어 테이블 웨어 이하 조건 순서예요. 순서 셀렉트 컬럼 그다음에 프롬 테이블명 그다음에 웨어 조건문 그다음에 그룹 바이 그다음에 해빙이나 기타 이렇게 넘어갑니다. 그룹바이 구문 뒤에는 테이블을 구분하는 컬럼을 기재해 할 수 있다.

41:27
근데 해빙 구분은 웨어 조건으로 지정되어진 데이터 집합으로부터 다시 그룹화 되어진 집합에 대해 조건 선택할 때 사용할 수 있다. 이렇게 돼 있습니다. 그래서 이 순서가 웨어 그룹 바이 해빙 요 순소 네 순서를 따집니다. 집계함수의 분류 집계함수 카운트 몇 개 해야 되는 거고요. 그다음에 썸 합계 avg 평균 max 최댓값 민 최소값 std dv는 표준편차 베리어는 분산과 같은 집계함수 종류들이 있습니다. 그룹 함수는 소개 및 통계를 구할 때 집계함수만 사용하다 보면 해당 레벨 단위별로 집계를 할 때 각 단계별 데이터 지지어로 유니온 올이라든지.

42:27
이러한 것들을 결합해서 표기하는 해당 소스가 길어져요 그런 경우에 그룹 함수를 사용하게 되면 간단하게 복잡도를 많이 줄여가지고 원하는 어떤 작업을 수행할 수가 있고 정렬을 필요로 할 때는 오더바이라고 하는 정렬 컬럼을 명시해 가지고 활용할 수 있습니다. 그룹 함수의 종류는 네 여기서 소개하는 건 세 가지입니다. 그룹 함수의 종류는 세 가지 롤업이 있고요. 롤업 그리고 뒤에 소개해 드릴 건데 큐브 함수가 있고요. 그다음에 그룹핑 포인트 함수가 있어요. 뒤에 소개가 될 겁니다. 각 특징을 설명드리면, 롤업 함수는요 속에 소개 등 중간 집계값 산출 목적으로 사용하는 함수입니다.

43:22
뒤에 보면 밑에 보면 앞서서 집계함수 구문 있죠. 그 구문 그대로 사용을 하고요. 여기 그룹바이드에 얘가 추가돼요. 이 그룹 함수인 롤러업이나 큐브나 이 자리에 추가되어지는 겁니다. 롤업 뒤에 컬럼을 지정합니다. 하게 되면 롤업 뒤에 지정한 컬럼의 수보다 하나 더 큰 레벨의 중간 집계값이 생성되어진다 주로 소개를 구하는데 롤러업의 특징은 계층별로 구성이 되어지기 때문에 순서가 바뀌면 수행 결과가 바뀔 수 있다는 점을 유의하라 어떤 순서예요. 이 컬럼의 순서가 바뀌면 수행 결과가 달라질 수 있다는 걸 주의하셔야 됩니다. 다음요 큐브 큐브 함수는요 네 결합 가능한 모든 값에 대한 다차원의 집계를 생성을 한다.

44:16
하나의 어떤 기준에 따른 소개가 아니라 여러 네 다차원 여러 개에 대한 집계를 뚝딱 한꺼번에 이렇게 뚝딱 구할 수 있어요. 그래서 가능한 한 소개만을 생성하는 롤러업과 구분되어지고 그리고 대상 컬럼의 순서가 바뀌어도 결과가 달라지진 않아요. 이것도 롤업하고 차이가 있습니다. 구문은 똑같고, 롤업 들어가는 자리에 큐브를 넣어 가지고 동작시킬 수 있어요. 마지막으로, 그룹핑 세트 그룹핑 세트는 특정 항목 단위별로요 괄호로 묶인 집합별 항목별로 다양한 속의 집합 계산이 가능하다 이렇게 정리하겠습니다. 다음 윈도우 함수요 윈도우 함수는 주로 사용되어지는 게 순위나 집계는 당연히 사용을 하고요.

45:12
집계함수 아까 개수나 합계나 평균 그 외에 순위 구하는 거 그다음에 해당 그룹 단위별 어떤 비율을 구하는 거 이런 용도로 사용되어지는데 윈도우 함수는 뒤에 보면서 알겠습니다. 윈도우 함수를 olab이라고도 지칭합니다. 온라인 어나이어티컬 프로세싱 함수라고도 지칭하고 온라인 분석 처리는 시장 분석이나 통계 작성이나 경영 계획 분석 등 비즈니스 현장에서 자주 사용되어지는 분석이 포함되어 있습니다. 윈도우 함수의 기본 구분입니다. 마찬가지 셀렉트물을 사용하고요. 그다음 윈도우 함수 이름 여기 들어가지고요. 그다음에 뭐 해당 아규먼트 그다음에 오버 파티션 바이 컬럼 이름들 그다음 오더바이 프롬 테이블 이렇게 돼 있습니다. 파티션 바이라고 하는 부분 자체는 선택 항목이다.

46:04
그리고 순위를 정할 대상 범위의 컬럼을 설정을 하는데 이 파티션 바이는 그룹바이하고 성격이 좀 달라요. 그룹바이는 집약 기능이 있지만 파티션 바인은 집약 기능이 없어요. 그래서 해당 로우 수가 줄지 않는다. 이 집약 기능이라고 하는 부분 자체는 얘를 묶는다는 부분입니다. 같은 글끼리 나중에 저희가 이제 소기를 구한다든지 합계를 구한다든지 할 때 그냥 대상 자체를 묶어 가지고요. 그룹핑을 해 가지고요. 자 넘어가도록 하겠습니다. 쭉쭉 넘어갈게요 윈드 함수의 예시 나와 있는데, 뒤에 소개할 부분들이라서 약간만 한번 개괄적으로 볼까요? 셀렉트 가지고 와 메이저 컬럼값과 서브젝트 그 다음에 스튜던트 이름과 그레이드와 랭크 순위 오버 오드바이 그레이드 디센드 등급을 디센드 내림사전으로 정렬해가지고요.

47:03
오드바이는 정렬입니다. 그다음에 에저 그레이드 랭크로 그다음에 젠스 언더바이 랭크 그다음에 로우 온더바이 넘버 이렇게 있는데, 뒤에 해당 함수에 대한 소개부터 먼저 살펴보고 그다음에 다시 돌아와 보도록 하겠습니다. 네 윈도우 함수의 예제 예시에 대한 수수 간단히 살펴봤는데 이 포함되어져 있는 함수들에 대한 종류를 먼저 이해하는 게 중요할 것 같아가지고, 다음 넘어가서 설명드리면, 윈도우 함수의 종류는요 집계함수는 앞서서 저희가 집계함수 썸 합계 평균 이런 거 있었죠. 다 사용할 수 있고요. 윈도우 함수의 종류에도 포함이 되어 지고요. 추가적으로요 윈도우 함수에는 순위함수라고 해서요.

47:48
랭크 댄스 엄버 랭크 그다음에 로운드반 넘버라고 하는 세 가지 방식의 순위를 구하는 함수가 있는데, 해당 랭크 함수는 일반적인 순위 구하는 부분인데 얘들의 차이점은 뭐냐면 예를 들어서 6명 학생에 대한 어떤 순위를 구한다라고 할 때 점수가 같은 이제 케이스가 생길 수 있잖아요. 그 경우에 동의 처리를 어떻게 하느냐 랭크 함수는요 예를 들어서 2등이 똑같은 점수가 3명이 생겨버렸어요. 3명이 생기면 1등 다음에 2등 2등 2등 그다음에 동의가 3등이 아니라 다음 순번인 5등 6등 이렇게 동의 부여되어지는 형태이고요. denson the bal 랭크 함수는 같은 경우인데 동의부여를 어떻게 하느냐면 2등이 동일한 점수가 3명이야 그러면 1등 외에 2등 2등 하고 난 다음에 그다음에 랭크는 5등으로 넘어갔는데 그다음에 3등입니다. 3등 4등 이렇게 순위 매기는 게 댄스 언더발 랭크 함수고요.

48:46
그다음에 로우 언더바 넘버 함수는 얘는 그냥 2등이 없어요. 똑같은 음수를 하더라도 어떤 기준에 맞춰가지고 그냥 1등 2등 3등 4등 5등 6등 이렇게 해당 동일 순위의 값이 존재해도 무관하게 연속부여 번호를 부여를 해가지고요. 순위를 매기는 그런 차이가 있습니다. 윈도우 함수의 종류 그룹 내 비율 함수 레이시오. 언더바 투 언더바 레프트라든지 퍼센트 언더바 랭크나 이러한 함수들 성격적인 부분입니다. 윈도함수 종류에 포함되는 건 어떤 거 순위 함수 그리고 그룹 내의 비율 함수 이렇게 기억하시면 될 것 같고, 행성성 함수도 있어요. 근데 이거는 에스큐엘 서버에는 지원 안 한다.

49:33
마이크로소프트 에스큐엘 서버에는 지원하지 않고 오라클 지원하는데 퍼스트 언더바 밸류 파티션별 윈도우에서 가장 먼저 나오는 값을 찾아라 집계함수의 mim과 동일한 결과를 출력을 합니다. 제일 작은 값 라스트언더바밸류는 파티션별 윈도우에서 가장 높게 나오는 값을 찾는데 직대함수에서는 맥스 제일 큰 값 구하는 결과값과 같다 그 다음에 lh 파티션 별 윈도우에서 1부터 2점 몇 번째 행의 값을 불러온다 리드는 윈도우에서 파티션 윈도우에서 1부터 이후 몇 번째 이전 이후 이런 차이가 있습니다. 세부적인 건 꼭 몰라도 괜찮을 것 같고, 넘어갈게요 자 해당 파트에서의 문제 유형은 이렇게 나올 수 있다. 퀴즈 다음 중 데이터 분석 함수의 종류가 아닌 것은 데이터 분석 함수의 종류 저희 세 가지 저희가 익혔습니다.

50:30
방금까지요 익혔던 함수의 종류 집계함수 그룹 함수 윈도우 함수 그게 아닌 거 사용자 정의 함수가 포함돼 있네요. 이게 틀리고 집계 그룹 윈도우 함수 자 오류 처리 부분입니다. 네 오류 처리 개념과 처리 방법에 대해서 정리해 보면 오류 처리라고 하는 부분 자체는요 프로그램 코드상에서요 어떤 구문 오류라든지 아니면 프로그램 실행 시 어떤 상황에 따라 가지고 발생할 수 있는 오류들이 있는데, 그 오류가 발생했을 때 처리를 어떻게 하느냐 라는 부분이고요. 오류 처리의 방법 세 가지로 구분해서 정리해 드리면, 먼저 첫 번째는 오류 복구입니다. 어떤 오류인가 그 원인을 파악해 가지고요. 그 원인을 해결해서요. 문제를 해결해서 정상 상태로 돌려놓는 게 오류 복구입니다. 그 다음 오류 처리 방법으로는 그냥 회피예요.

51:22
그냥 내버려 둬 예외 처리를 자신의 후출 쪽으로 던져버리고 치명적으로 뭔가를 어떤 하는 데 있어서 영향력이 크지 않은 오일인 경우에는 그냥 회피하는 케이스도 있고 퍼블릭 보이드 팝 스큐엘 익셉션이라고 하는 음 객체의 역할이 에스큐엘물에 대한 오류를 감지하거든요. 네 세 번째는 오류 전환입니다. 네 오류를 좀 전에 회피는 그냥 예외를 메서드 밖으로 그냥 던져버리지만 전화되어 가는 부분 자체는요 그 오류에 대한 오류 메시지 자체가 sql exception을 이용하게 되면 개괄적으로 sql문에 대한 오류가 있다. 이렇게 되는데 어떤 구체적으로 어떤 sql문에 대한 오류가 있느냐 라는 것을 더 구체화해서 오류 메시지를 띄우고자 할 때 활용할 수 있는 방법입니다.

52:18
오류 전환을 일례로 신규 회원 가입을 하려고 하는데 사용자 아이디가 중복이 되어 가지고 이 사람 걸 추가시키지 못하겠다. 라고 했을 때 sql exception 오류가 발생할 수 있는데, 얘를 구체적으로 jupricate usondaxion이라고 변경을 해 가지고요. 오류를 발생시키면 아 이 사용자 아이디가 중복이 되어서 발생하는 오류 이내라고 알 수가 있습니다. 주로 트라이 캐치 구문을 사용합니다. 트라이 캐치 그 다음에 해당 예외 처리에 대한 에스큐엘 익셉션 객체 이렇게 돼있습니다. 다섯 문제형 모의평가 풀면서 해당 이 내용 정리할게요 sql에서 딜리트 명령에 대한 설명으로 옳지 않은 것은 딜리트는 해당 표 테이블 내에 행 단위로 뭔가를 삭제한다. 이 말이죠. 내용을 테이블의 행을 삭제할 때 사용합니다. 맞습니다.

53:12
웨어 조건절이 없는 경우는 딜리트 명령을 수행하게 되면 드롭 테이블 명령을 수행했을 때와 같은 효과를 얻을 수 있다. 드롭구문은 권한적인 부분에서만 제가 설명드렸죠 삭제 권한이다 라고 설명을 드렸는데 나중에 저희가 데이터 대표니션 랭귀지도 할 거거든요. 그대로 보면 테이블을 삭제한다. 이 말입니다. 테이블 자체를 없애버린다 딜리트 또 삭제하는 것 같지만 삭제의 대상이 테이블 자체를 삭제하는 건 아니고요. 테이블에 저장되어 있는 데이터를 삭제하는 거죠. 그렇기 때문에 해당 이 결과치는 다릅니다. 딜렉트는 내용삭제 드랍 테이블은 테이블 자체 삭제 그래서 틀린 것은 2번이고 sql을 사용 용도에 따라 분류할 경우에 딜리트는 dml 구문에 해당되죠. 데이터 조작업 맞습니다. 기본 사용 형식은 딜리트 프롬 테이블 웨어 조건문이야 네 맞습니다.

54:09
두 번째 다음의 성적 테이블에서 학생별 점수 평가를 구하기 위한 sql 문으로 옳은 것을 고르시오. 제시되어져 있는 표를 보니까 성명 과목 점수인데 홍길동의 국어 영어 수학 점수 강감찬의 국어 영어 수학 점수 이렇게 정리가 되어 있는데요. 학생별로요 이 세 과목에 대한 평균을 구하고자 한다. 이 말입니다. 자 그러면 해당 복양목 자 문제를 푸실 때 효율적으로 푸는 방법은 필기는 객관식이에요. 사지삼답형이기 때문에 사지삼답형에서 엉뚱한 보기가 있으면 그걸 지워나가면서 답을 고르는 것도 하나의 방법입니다. 셀렉트 성명 다 똑같고요. 여기에 보니까 avg 갈로 점수 avg 어 네 여기서 지금 두 가지로 나눠졌어요.

55:03
avg 함수는 집계함수로 평균 구하는 함수입니다. 형식이 avg 갈로 평균을 구할 대상 이렇게 되니까. 1번 하고요. 3번은 아니고요. 2번 4번 중에서 다시 뒤에 프라운 성적까지 갔고 오토바이 성명과 그룹바의 성명이 있는데, 둘 중에 어느 거야. 오토바이는 정렬입니다. 정렬 얘는 정렬 정렬이고요. 그룹 바에는 그룹핑해서 묶어가지고 이렇게 되니까. 학생별로 묶어야겠죠. 홍길동이의 점수 과목 세부적인 과목이 아니라 홍길동이의 이 점수 이렇게 되니까. 정답은 4번 정답입니다. 학생별 점수 평균 구하는 sql문 다음 3번입니다.

55:49
스튜어 전투 테이블에 독일어과 학생이 50명 중국어과 학생이 30명 영어영문학과가 50명 총 몇 명이냐 130명 학생이 학생 테이블에 정보가 저장이 되어 있다. 다음 두 sql의 실행 결과 튜플 수는 튜플이라고 하는 분 자체는 해당 테이블 레이에 행단위입니다. 횡단위 결과적으로는 몇 명의 학생 이렇게 이해를 하셔도 돼요. 단 d eptic columb은 뭔데 학과명이야 이렇게 되어 있네요. 첫 번째 a select 가지고 와 dpt 컬럼 학과명 필드 값을 가지고 와 스튜던트 테이블로부터 스튜던트 테이블에 몇 명의 학생이 저장돼 있다면 130명 130명 학생의 해당 학과 열을 가지고 와 네 가지고 왔을 때의 튜플 수는 130개입니다.

56:47
130개 3 4번 중에 3이냐 130이냐 두 번째는 디스팅크티 옵션이 사용됐어요. 디스팅크티는 중복된 거는 없어요. 네 자 그러면 궁극적으로 가져오는 건 뭐냐 하면 dpt예요. dft는 합감형입니다. 학과명이 독일어과는 학과명이 다 독일어과 독일어과 독일어과 이렇게 돼 있겠죠. 그럼 중복된 걸 없애 독일어과가 오십 명인데 중복된 거 없애면 하나밖에 안 나와요. 독일어과 중국어과도 마찬가지고 학과는 세 개니까 결과적으로는 디지탱크띠를 사용한 결과는 튜플스가 3 이렇게 됩니다. 정답은 3번입니다. 4번으로 넘어가겠습니다. 다음 중 그룹 함수에서 그룹바이 특성에 대한 설명 중 올바르지 않은 것으로 골라라 이렇게 소개하고 있습니다. 그룹핑 하는 부분이잖아요. 셀렉트에서 사용하는 것과 같은 얼라이언스를 별칭이에요.

57:43
별명 기존에 있는 컬럼 이름을 다른 명칭으로 바꿔줄 수 있는데, 얘를 그룹바이 내에 사용할 수 있느냐 사용을 못합니다. 문법이기 때문에 본문에서 설명 안 된 부분을 문제에서 제가 설명 드리려고 뽑았어요. 네 그래서 1번이 올바르지 않습니다. 그룹바이 내의 셀렉트에서 사용하는 것 같은 얼라이언스 사용은 안 돼요. 그룹바이에서는요 왜요 고문은 그룹바이보다 먼저 와야 돼요. 셀렉트 컬럼 프롬 테이블 레어 그 다음에 그룹 바인 그 다음에 해빙 뭐 이런 식으로 네 자 그래서 음 맞고요. 대상이 되는 단일은행을 사전에 선별할 수 있는 역할을 해 nll null이라고 하는 부분은요, nll입니다. nll이라는 부분은 해당 값이요. 없을 수도 있다. 이 말입니다.

58:41
꼭 값이 추가되지 않을 수도 있어요. 널 값을 가지는 로우 행은 제외한 후에 산출한다. 비어있으니까 기준이 되어지는 열인데 거기가 비어 있으니까 분류가 안 되니까. 제외시킵니다. 웨어 구문을 포함 외요 구문 안에 포함되지 않는다. 네 웨어 구문 그 다음에 네 그룹 바위가 와야 돼요. 맞습니다. 틀린 건 1번입니다. 5번 학적 테이블에서 전화가 넣을 값이 아닌 그러면 학적 테이블에 전화번호가 반드시 입력된 학생 이야기를 하는 건데 학생명을 모두 검색할 때 sql 모드로 옳은 걸 골라라 이렇게 돼 있어요. 해당 음 필드에 넣을 값이 아닌 거라고 하는 조건은 웨어 조건문을 사용할 때 얘도 마찬가지 문법이기 때문에 그냥 암기하세요. 넣을 값이 아닌 거는 왜요 해당 대상 필드명 이즈난 널 정답은 3번입니다.

59:41
셀렉트 학생명 필드값 가지고 와 프롬 학습 테이블로부터 외워 조건의 전화번호 값이 널이 아닌 거 이즈난 널 자 핵심정리 정리하겠습니다. dml은 데이터베이스에 있는 데이터를 변경하거나 검색하기 위해 사용하는 명령어들이고 종류로는 인서트 업데이트 딜리트 셀렉트먼들이 있다. dcl은 사용자별로 데이터에 집권할 수 있는 권한을 부여하거나 회수하 회수하는 명령어고 그랜트 리보크 커미트 롤백 해당되어진다 세 번째 집계성 sql 작성인데요.

1:00:17
집계성 sql 작성은 단일행이 아니라 두 개 이상의 복수의 행을 서로 그룹화해서 소개를 구한다든지 전체 합계를 구한다든지 이렇게 하는 구분이 되겠고 그래서 그룹바이 구문을 활용해서 복수행을 그룹핑할 수 있고 셀렉트 해빙 오더바이 등의 구문에도 활용이 되어진다 그리고 데이터 분석함수의 종류로는요 크게 개괄적으로 집계함수 그룹함수 윈도우 함수 이렇게 나눌 수 있는데, 윈도우 함수에서는 순위함수나 그룹 내의 비율함수 행순서 함수들이 있었습니다.

1:01:01
마지막으로요 오류 처리 부분인데 오류 처리는 프로그램 코드상에서 프로그램 코드상에서 구문 오류라든지 또는 실행할 때 어떤 상황에 따라서 발생할 수 있는 오류를 처리하는 과정을 오류 처리라고 했고 오류 처리의 방식 세 가지 오류의 문제를 해결해서 처리하는 오류 복구가 있고요. 그다음에 오류가 발생해도 그냥 내버려둬 회피가 있고요. 오류에 대한 구체적인 어떠한 원인적인 부분을 표시시키게끔 하는 오류 전환 방법 세 가지가 있었습니다. 이상으로 응용 sql 작성에 대해 살펴봤습니다.

728x90
반응형
posted by 아이윤맨
:
728x90
반응형

https://youtu.be/yNjYeaLbqoc?si=dlzvm5x9cica_15A

1. 소프트웨어 인터페이스 설계와 구현

1-1. 인터페이스 설계의 중요성과 목표
- 인터페이스 설계는 소프트웨어 설계의 마지막 세부 과목
- (중요) 인터페이스 설계의 목표는 외부 및 내부 모듈 간의 기능과 데이터의 인터페이스를 확인하는 것
- 인터페이스 설계의 학습내용은 인터페이스 기능 확인과 데이터 표준 확인으로 나눠짐
- 인터페이스 기능 확인은 인터페이스 목록, 명세서 및 인터페이스 설계서를 통해 진행

1-2. 인터페이스 기능 확인 방법에 대한 이해
- 인터페이스 기능 확인 방법은 인터페이스 목록, 명세서, 데이터 명세 정의서로 이루어짐
- (중요) 인터페이스 목록은 시스템 인터페이스의 정보를 제공하며, 인터페이스 이름, 대분류, 작성 일자 등을 포함
- 명세서는 데이터 저장, 처리 등의 상세 내역을 제공하며, 처리 횟수, 데이터 크기 등을 포함
- 데이터 명세 정의서는 각 세부 기능의 개요, 사전 조건, 사후 조건 등을 정의

1-3. 인터페이스 기능 확인의 실제 적용 사례
- 인터페이스 기능 확인은 유스케이스 다이어그램을 통해 시간적 흐름에 따른 동적 모형을 제공
- 인터페이스 명세 정의를 통해 시스템의 각 기능이 어떻게 작용하는지 확인 가능
- (중요) 실제 사례로는 시스템 인터페이스 목록, 명세서, 데이터 명세 정의서 등을 통해 인터페이스 기능을 확인
- 인터페이스 기능 확인을 통해 시스템의 효율성과 안정성을 확보할 수 있음

2. 인터페이스 기능과 데이터 표준 확인

2-1. 인터페이스 기능 파악 방법
- 인터페이스 설계를 통해 인터페이스 기능을 확인
- 시스템의 동적, 정적 모형을 확인하는 방법을 사용
- 데이터 명세 정의를 통해 인터페이스 기능을 확인
- 단위 테스트 계획서를 확인하는 방법을 사용

2-2. 인터페이스 기능과 모듈 연계 방법
- 인터페이스 기능을 강화하기 위해 모듈과 연계하는 방법 필요
- (중요) 풀네임 애플리케이션 인테그레이션(기업 애플리케이션 통합) 및 eai 모듈을 활용
- (중요) 네트워크, 네트워크의 물리적 구조 등에 대한 이해 필요
- 모듈을 연결하는 방식은 직접 연계와 간접 연계로 나뉨

2-3. 데이터 표준 확인과 의미
- 데이터 표준 확인은 인터페이스 데이터 형식과 표준을 정의
- 공통된 데이터 영역을 추출하거나 변환해야 하는 경우 존재
- (중요) 데이터 표준 확인은 인터페이스의 정확성과 신뢰성을 보장함
- 각 데이터의 형식과 표준을 확실히 지키는 것이 중요

3. 인터페이스 기능과 표준화 방법

3-1. 인터페이스 기능과 표준화
- 인터페이스 데이터 모듈 구현에 있어서 인터페이스의 데이터 표준 확인 필요
- 인터페이스 구현 시 데이터 표준을 준수하며 구현해야 함
- 인터페이스 모듈 표현 수단으로 제이슨, 데이터베이스 OCR 등 다양한 형태 사용 가능
- (중요) 인터페이스 데이터 표준 사례를 통해 인터페이스 데이터 표준이 어떻게 정해져야 하는지 이해

3-2. 인터페이스 설계 전후 기능 확인
- 인터페이스 설계 전후 기능 확인은 인터페이스 기능 확인의 주요 방법 중 하나
- 인터페이스 설계서를 통한 인터페이스 기능 확인
- 인터페이스 전처리 후처리 스펙을 확인하는 것이 주요
- (중요) 인터페이스 데이터의 길이와 타입 확인이 필요

3-3. 인터페이스 표준 기술과 연계 방식
- 인터페이스 표준 기술인 eAI의 구축 유형을 이해
- 데이터 전송에 암호화 사용이 필요하며 이는 기본적인 인터페이스 구현 방식
- (중요) 인터페이스 설계서가 인터페이스 기능을 명확하게 정의하고, 인터페이스 구현을 지시함

4. 인터페이스 보안

4-1. 인터페이스 보안 기능 개요
- 데이터 표준을 정해 인터페이스 간 데이터 연계 및 보안 제공함
- 인터페이스 구현, 기능 구현을 통해 보안 기능 적용 가능함
- (중요) 개발하고자 하는 응용 소프트웨어와 모듈 간의 설계서를 통해 인터페이스 구현해야 함
- 인터페이스 보안 기능 적용을 위해 내부 모듈에 대한 보안이 필요함
- 스니핑과 스포핑을 통해 인터페이스 보안 취약점 파악 가능함

4-2. 스니핑과 스포핑
- 스니핑은 네트워크 내 데이터 통신 내역을 감청해 기밀성 훼손하는 기법임
- 보안은 접근 권한 있는 사람만 볼 수 있게 함
- 스니핑을 통해 탈취 정보를 얻을 수 있음
- 스포핑은 속여 먹는다는 뜻으로, 호스트의 주소나 이메일을 바꿔 해킹하는 것임
- 세부내용은 웹 애플리케이션의 보안 취약점과 국내 인터넷진흥원의 보안 약정 가이드를 참고함

4-3. 인터페이스 보안 적용
- 네트워크 구간, 애플리케이션, 데이터베이스에 대한 보안 기능 적용 필요함
- 네트워크 보안 애플리케이션 보안은 네트워크 표준 모델에 따라 다양하게 적용 가능함
- 트랜스포트 레이어 네트워크 보안은 트랜스포트 레이어를 통한 데이터 탈취와 위변조 탈취를 막기 위해 필요함
- (중요) 네트워크 구간 암호화를 통해 트래픽을 암호화해 보안 기능을 강화함
- 국제 표준화 기구의 네트워크 표준 모델을 참고하여 보안 기능을 적용함

5. 네트워크 보안의 계층별 접근 제어

5-1. 네트워크 보안의 계층별 접근 구조 이해
- 네트워크 보안은 물리적 네트워크부터 시작해 데이터링크, 네트워크, 트랜스포트, 애플리케이션의 계층을 구성함
- 각 계층에서 보안 기능을 적용, 보안 대상은 각 계층별로 다름
- (중요) 7계층인 애플리케이션 레이어는 사용자 화면으로 통신을 제공함
- 6계층에서 5계층으로 갈수록 더 높은 계층의 보안 기능을 적용

5-2. 트랜스포트 레이어와 애플리케이션 레이어의 보안 적용
- 트랜스포트 레이어에서는 전송 계층과 관련된 네트워크 보안을 적용
- 전송 계층에서 인증과 암호화 적용, 인증 헤더와 암호화된 데이터를 사용
- 애플리케이션 레이어에서는 웹 상의 인증과 암호화 적용
- (중요) 이는 각각의 서버와 사용자 사이에서 통신을 하며, 7개의 계층이 서로 통신함

5-3. 인터페이스 보안과 데이터베이스 보안의 적용
- 인터페이스 보안에서는 보안 기능을 적용, 인가되지 않은 사람의 접근을 제한
- 악의적인 코드 삽입을 검지하고, 악의적인 공격에 대한 에러 처리 적용
- 데이터베이스 보안에서는 민감한 데이터를 암호화시켜 저장, 악의적인 코드 삽입을 예방
- (중요) 민감한 데이터에 대해 데이터 암호화를 통해 직접적으로 안전하게 보호

6. 데이터베이스 암호화 기법과 보안

6-1. 데이터베이스 암호화 기법 이해
- 데이터베이스 암호화 기법은 크게 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘으로 나뉨
- 대칭키 암호 알고리즘은 키 암호문과 복호화할 때 사용하는 키가 같음
- 비대칭키 암호 알고리즘은 키 암호문과 복호화할 때 다른 키를 사용함
- 대표적인 암호화 알고리즘으로는 RSA와 e독 다사 암호 알고리즘이 있음
- 해시 암호화 알고리즘의 종류는 포함되어 있는 해시 키의 유형에 따라 다름

6-2. 데이터베이스 암호화 기법의 적용 방식
- 데이터베이스 암호화 기법은 API 방식, 플러그인 방식, 하이브리드 방식으로 나뉨
- (중요) API 방식은 데이터베이스 암호화를 수행하는 레벨이 애플리케이션에서인 것을 의미함
- (중요) 플러그인 방식은 데이터베이스 레벨에서 암호화를 수행하는 것을 의미함
- 하이브리드 방식은 이 두 가지 방식을 혼용한 방법임

6-3. 데이터베이스 보안의 취약점과 보완
- 인터페이스 보안 취약점 중 하나는 암호화 애플리케이션에서의 보안 문제임
- 인터페이스 보안 보완으로는 캡슐화 사용, 비밀성과 기밀성 관리 등이 있음
- 소프트웨어 연계 테스트는 송신 시스템과 수신 시스템의 연계 테스트를 의미함
- 송신 시스템에서는 데이터 흐름, 처리 절차 등을 체크하고, 수신 시스템에서는 연계 데이터 생성, 테이블 생성 등을 체크함

7. 인터페이스 구현과 보안 테스트에 대한 이해

7-1. 인터페이스 구현과 보안 취약점 이해
- 인터페이스 구현 검증은 송신 시스템과 수신 시스템 간의 연계 테스트를 의미함
- (중요) 인터페이스 구현 검증에는 단위 테스트와 통합 테스트가 포함됨
- 인터페이스 보안 취약점 중 하나는 변수를 직접 핸들링할 수 없게 접근 권한을 가진 함수만 접근하게끔 하는 것
- 인터페이스 보안 기능 적용 방법 중 하나는 특정 기능에 대한 접근 권한을 고려하여 퍼블릭 프라이빗 프로토콜을 선언하는 것

7-2. 인터페이스 보안 취약점에 대한 보완 방안
- 인터페이스 보안 취약점 보완을 위해 예외 처리 방법 중 하나는 오류 로그를 기록하고 미리 정의된 트라임 횟수에 따라 재전송 신호를 반복하는 것
- (중요) 인터페이스 보안 기능 적용 시, 데이터베이스 암호화 알고리즘 중 대칭키 암호화 알고리즘인 RSA와 시드가 선택됨
- 인터페이스 구현 시 오류 처리 방법에 대해 가장 적합한 것은 오류 처리 방법을 선택하고 그 오류 로그를 기록하는 것

7-3. 인터페이스 구현 검증과 보고서 작성
- 인터페이스 구현 검증에는 단위 기능 및 시나리오를 기반한 통합 테스트가 필요함
- 테스트 자동화 도구를 이용하면 단위 및 통합 테스트를 효율적으로 수행할 수 있음
- (중요) 인터페이스 오류 처리 사항 확인 및 보고서 작성이 필요함
- 인터페이스 구현 검증 결과를 통해 인터페이스 보안 취약점을 보완하고, 보완된 인터페이스 구현을 검증함

8. 웹 애플리케이션 테스트 프레임워크와 오류 처리

8-1. 웹 애플리케이션 테스트 프레임워크의 개념과 종류
- 웹 애플리케이션 테스트 프레임워크는 웹 애플리케이션의 성능을 평가하고 개선하는 도구임
- (중요) 시스템 장애나 오류를 효율적으로 처리하고 관리하기 위한 테스트 프레임워크임
- 다양한 종류의 테스트 프레임워크가 있으며, 각각 특징과 장단점을 가지고 있음
- 애플리케이션 모니터링 툴을 활용하여 인터페이스 동작 상태를 모니터링함
- 인터페이스 명세서를 기반으로 한 구현 검증 기법을 사용함

8-2. 웹 애플리케이션 테스트 도구의 사용과 기능
- (중요) 인터페이스 명세서 기반 검증 도구를 활용하여 인터페이스 기능을 분석하고 테스트함
- 인터페이스 테스트 설계서를 기반으로 구현 검증을 진행함
- 데이터베이스와 웹 애플리케이션의 트랜잭션 상태를 모니터링함
- 수신 측에서 암호화된 통신으로 올바르게 수신되었는지 검증함
- 감시 도구를 활용하여 데이터베이스의 상태와 조회 트랜잭션을 모니터링함

8-3. 웹 애플리케이션 오류 처리 방법
- (중요) 인터페이스 오류를 처리하는 방법은 화면에서 오류를 발생시켜 확인하는 방법과 로그 생성하는 방법이 있음
- 시스템 운영 로그를 통해 오류에 대한 정보를 기록할 수 있음
- 오류 로그 생성 예시는 시스템 관리자가 오류 로그를 확인하고 조치할 수 있도록 함
- 오류 발생 시 상황 인지 및 조치 사항을 시간 경과에 따라 작성하여 추후 관리에 활용함
- 테이블에 오류 사항을 기록하여 오류 처리를 쉽게 할 수 있음

9. 인터페이스 오류 처리

9-1. 인터페이스 오류 처리 개요
- 인터페이스 오류 발생 시, 시기에 따라 보고 프로세스에 맞춰 단계별 보고서 작성 필요함
- 조치사항과 결과를 시간적 경과에 따라 보고서 양식 단계별로 작성하는 게 좋음
- 오류 발생 상황인지 판단하고, 조치사항과 결과를 기록해 보고해야 함
- (중요) 초기 단계에서는 오류 내용, 장애 원인, 조치사항 등을 간략하게 보고함
- 최초 인지 후 진행 상황을 보고하고, 오류 조치사항 위주로 보고함

9-2. 인터페이스 오류 로그 생성
- 인터페이스 오류 로그에는 오류 코드, 발생 시각, 오류 내용, 장애 원인 등을 포함시킴
- 데이터베이스 레코드 개수를 비교하는 방법은 오류 검증에 적합하지 않음
- 오류 발생 시, 웹 인터페이스는 연동 데이터 레코드 수를 비교함
- 인터페이스 구현 검증 방법 중 하나는 송신파일과 수신파일 숫자를 비교함
- 오류를 발생시켜 띄우거나, 인터페이스 오류 로고를 생성하는 방법도 있음

9-3. 인터페이스 오류 보고
- 인터페이스 오류 처리 보고서에는 완료 보고, 장애 발생 보고, 진행 보고, 완료 보고 등을 포함시킴
- 장애 발생 시, 장애 내용, 증상, 원인, 조치사항, 재발 방지 계획 등을 기록함
- 최초 발생 시, 오류 조치사항과 영향도 정도만 보고하고, 초기 인지 및 진행 상황을 보고함
- 완료 보고는 최종 조치 완료 후, 조직 내 및 고객사에 보고함
- 보고서에는 오류 발생 원인에 대한 재발 방지 대책도 포함시킴

00:02
소프트웨어 개발 다섯 번째 세부과목인 인터페이스 구현에 대해 살펴보도록 하겠습니다. 인터페이스 구현은 저희가 소프트웨어 설계 파트에서 마지막인 인터페이스 설계라는 과목으로 먼저 다뤘던 내용이라서 아주 생소한 과목은 아니고요. 그 인터페이스를 설계했던 부분에 이어서 실제적으로 구현을 어떻게 하는지 그와 관련된 내용을 다루고 있다 라고 보시면 되겠습니다. 먼저 인터페이스 설계 확인부터 살펴보도록 하겠습니다. 학습목표입니다. 인터페이스 설계서 인터페이스 설계서를 기반으로 외부 및 내부 모듈 간 공통적으로 제공되는 기능과 각 데이터의 인터페이스를 확인할 수 있다.

00:52
두 번째 개발하고자 하는 응용 소프트웨어와 관련된 외부 및 내부 모듈 간의 연계가 필요한 인터페이스의 기능을 식별할 수 있다. 마지막으로, 개발하고자 하는 응용 소프트웨어와 관련된 외부 및 내부 모듈 간의 인터페이스를 위한 데이터 표준을 확인할 수 있다. 입니다. 학습내용은요, 두 파트로 나눠서 살펴보도록 하겠는데요. 인터페이스 기능확인과 데이터 표준확인입니다. 용어 사전으로서 eai와 esb에 대해 간단히 정리하고 넘어가도록 하겠습니다. eai 약어죠 풀로 단어를 보면 엔터프라이즈 애플리케이션 인테그레이션의 약어입니다. 기업애플리케이션 통합이죠. 기업에서 운영되는 서로 다른 플랫폼 또는 애플리케이션 간의 정보 전달 연계 통합을 가능하게 해주는 솔루션이다.

01:50
연계 서버에 사용되어집니다. esb는 엔터프라이즈 서비스 버스의 약어인데요. 어플리케이션보다는 서비스 중심으로 통합을 지향하는 아키텍처 또는 기술을 뜻합니다. 자 먼저 인터페이스 기능 확인에 대해서 세부적으로 살펴보도록 하겠는데 먼저 개요적인 측면에서요 인터페이스 기능은 뭔가 개념적인 부분을 살펴보면 내부와 외부의 모듈 간의 연계 기능을 뜻한다 라고 소개하고 있는데, 인터페이스라는 부분은 약어로는 유저 인터페이스를 이야기해요. 유저 인터페이스는 다시 저희가 소프트웨어 설계 파트에서 사용자 인터페이스라고 해서 화면 설계 파트에서 살펴봤고 또 마지막 저희가 다섯 번째 과목에서는 인터페이스 설계는 어떤 부분을 대상으로 한다. 시스템 인터페이스를 대상으로 했습니다.

02:43
지금 현재 저희가 다루는 이 파트에서의 인터페이스는 대상 자체가 시스템 인터페이스와 모듈 간 인터페이스를 내용을 하고 있습니다. 시스템이 모듈보다는 더 큰 범위죠 자 두 번째 인터페이스 기능 확인 방법 3가지 인터페이스 목록과 인터페이스 명세서를 포함한 인터페이스 설계서를 통해서 인터페이스 기능을 확인할 수 있다. 두 번째 시스템의 정적 동적 모형을 통한 인터페이스 기능확인 세번째 인터페이스가 되는 데이터 명세 정의를 통한 인터페이스 기능 확인 이렇게 세 가지가 있는데, 세부적으로 단계별로 살펴보도록 하겠습니다. 먼저요 네 인터페이스 기능 확인은 인터페이스 설계서를 통한 기능 확인입니다. 인터페이스 설계서는 장확하게 설명되어 있는데, 다 스킵하구요.

03:40
인터페이스 설계서는 인터페이스 목록과 밑에 인터페이스 목록 살펴보겠습니다. 인터페이스 정의서로 구성이 되어진다 인터페이스 목록은 그러면 어떤 내용이 포함되어 있는지 시스템 인터페이스 목록을 저희가 사례로 보도록 하겠는데요. 연계 업무와 연계에 참여하는 송수신 시스템의 정보 그리고 연계 방식 그리고 통신 유형에 대한 정보를 포함하고 있다. 자 좀 화면을 좀 확대해서 볼까요? 인터페이스 시스템 인터페이스 목록을 보면 저희가 인터페이스 설계 파트에서 다뤘던 내용입니다. 그래서 약간 좀 빠르게 넘어갈게요 포함되어진 내용은 업무 구분은 어떤 거야. 업무 대분류 작성 일자 작성자 이렇게 돼 있고요. 그리고 인터페이스로 구분할 수 있는 아이디가 인터페이스별로 부여가 되어 있고요.

04:27
그리고 인터페이스 이름 인터페이스 아이에프 하이폰 공공일이야 인터페이스 이름은 직업정보 전송이야 송신은 어디에서 당사울이 회사에서 송신 시스템은 회계 시스템이고 수신기관은 어디야 언행 a라는 언행 수신 시스템은 수신 시스템 이렇게 돼 있고요. 대내외 부분에서 대외야 외부하고 연계되어지는 부분이고 연계 방식은 eai로 연결을 하고 통신 유형은 요청 및 응답이고 처리 형태는 실시간적으로 연계 주기는 매일 하는 거야. 데이터형식은 고정결의 방식이고 담당자는 요구사항 아이디는 이거와 관련돼 있다 라고 하는 내용이 시스템 인터페이스 목록에 포함이 되어 있습니다. 다음으로, 넘어가서 시스템 인터페이스 명세서 정의서에 대한 개념과 예시인데요.

05:19
데이터 송신 시스템과 수신 시스템 간의 데이터 저장소와 속성 등의 상세한 내역을 포함하고 있습니다. 그래서 시스템 목록에 비해서 추가적으로도 포함되어진 내용들은 최대 처리 횟수라든지 처리 최대 횟수는 몇 회야 데이터 크기는 어느 만큼이야 라는 것도 추가적으로 포함되어 있고 특히 구분되어지는 부분은 하단에 보면 해당 전송하는 데이터에 대한 테이블 데이터 테이블이 정의되어 있습니다. 그래서 테이블은 어떻게 구성되어진다 필드 이름과 해당 필드의 키 프라이머리 키 여부 그리고 데이터의 타입 사이즈 크기 널 허용 여부 디스크립션 컨디션과 같은 내용들이 포함돼 있고 보내는 쪽 받는 쪽 데이터 테이블이 정의되어 있는 곳이 큰 차이가 또 있습니다.

06:16
그래서 상세 내역을 포함한다. 라는 부분이고요. 상세 기능별 인터페이스 정의서 개념과 예시라고 돼 있는데, 방금 저희가 살펴봤던 인터페이스는 시스템 인터페이스였고요. 여기서는 상세 기능별로 인터페이스를 정의한 것을 이야기하는 거고, 그 예시 보도록 하겠는데요. 인터페이스를 통한 각 세부 기능의 개요와 세부 기능이 동작하기 전에 필요한 사전 조건 그리고 사후 조건 및 인터페이스 m 전달되어지는 매개변수 파라미터 그리고 호출 이후 결과를 확인하기 위한 반환값들이 정의되어진 문서가 상세 기능별 인터페이스 정의서가 되겠습니다. 자 시스템 엔터페이스 정의서에 비해서는 해당 많은 내용을 담고 있지는 않은데 보면 엔트페이스 아이디는 뭐야?

07:09
인터페이스 이름 그리고 오퍼레이션명 그리고 오퍼레이션의 개요 사전 조건 사후 조건 파라미터 반환값 이렇게 포함이 되어 있습니다. 자 그런데 해당 설명 내용들이 텍스트 기반으로 해가지고 이렇게 서술형으로 되어 있어요. 지금 예시가 되어지는 부분은 뭐냐면 operation명이 rucast on thevergeneration inboice라고 이렇게 돼 있는데요. 인터페이스 이름이 급여 전표를 발행하는 인터페이스라고 돼 있습니다. 급여 전표 발행 인터페이스는 어떠한 모듈과 어떠한 모듈들 간에 관계가 있는지라는 부분을 해당 서술 형태로 글자로 표시가 되어 있는데, 이것보다는 개념적으로는 바로 뒤에 살펴볼 정적 동적 모형을 통한 인터페이스 기능 확인이 조금 근데 시각적으로는 이해도가 높습니다.

08:00
그래서 보면 인사급여관리라고 하는 모듈과 회계관리라고 하는 모듈이 서로 간에 연결이 되어서 인사급여 관리 파트에서 급여 결과 확인이라는 부분을 회계관리 파트에 요청을 하게 되면 여기서 전표를 발행해 가지고 온다 이렇게 그래서 정적 동적 여기서는 동적이죠. 다이어그램 종류는 유스케이스 다이어그램입니다. 유스케이트 다이어그램은 해당 활동적인 부분 자체가 시간적 흐름에 따라서 이렇게 동작한다. 라는 걸 한눈에 볼 수가 있기 때문에 동적 모형을 통한 인터페이스 기능 확인은 시스템을 구성하는 주요 구성 요소 간의 트랜잭션 상호 간의 작용을 보여주고 이를 통해서 시스템에서 인터페이션은 어디에 속해 있고 어떤 트랜잭션이 인터페이션을 통해 상호 교환되는지를 해당 다이어그램 형태로 구분할수가 있습니다. 인터페이스 기능 확인 세 번째는 데이터 명세 정의를 통한 기능 확인입니다.

08:58
데이터 명세 정의를 통한 인터페이스 기능 확인은 지금 예제에서 밑에서 보게 되면 제공 목록 서비스 제공 서비스 목록이라고 제시되어져 있는데, 제공 서비스 종류는 제품 리콜 정보 조회입니다. 제품 리콜 정보 상세 조회도 있고요. 예제가 뭐냐면은 예를 들어서 특정한 어떠한 제품을 리콜을 하는지라는 부분을 조회를 하고자 한다 라고 할 때 외부의 어떤 시스템 정보 시스템에 내가 접속을 해서요.

09:32
조회하는 화면 페이지 내에서 대상 자체를 선택을 하고 그러니까 분류 항목을 선택하고 전자제품이야 네 전자제품 또는 자동차야 자동차라고 선택을 하고 그 다음에 검색어에다가 해당 검색어를 입력해서 볼 수 있는 그 사례로 지금 현재 제시가 되어져 있는데, 여기서는 그러면 해당 제품 리콜 정보를 조회하기 위해서는 어떤 내용을 입력을 해야 되고 어떤 형식으로 입력해야 되는가 라는 부분이 명세화되어지게 되면 그걸 베이스로 해 가지고요. 인터페이스 기능을 파악할 수 있다. 이렇게 이해하시면 되겠습니다. 그래서 지금 현재 보면 제품 리콜 정보 조회라고 해서 요청 메시지에 대한 url이 개방식으로 되어 있고 http url에 보면 저기 끝단에 보면 물음표 이렇게 돼 있어요. 뒤에요.

10:29
해당 컨디션 키 값은 이콜 검색 구분 엔드 컨디션 밸류 값은 검색어 이렇게 돼 있습니다. 제가 개념적으로 설명 드리면, 일례로 여러분들이 게시판에서도 보면 검색을 할 때 많은 글이 있을 때 검색을 할 때 어떻게 하느냐면은 작성자나 아니면 아이디나 아니면 제목이나 제목을 이렇게 선택한다든지 하고 제목 내에 어떤 검색어가 포함되어 있는 것 예를 들어서 정보처리라고 하는 검색어가 포함되어 있는 것을 찾겠다. 그 다음에 검색 버튼 눌러가지고 찾죠 그렇게 이해하시면 돼요. 그래서 이제 대상 자체 검색 구분 부분에다가 일례로요 컨디션 키가 가질 수 있는 값 자체는 여기서는 지금 현재 항목 설명으로써 리콜 언더 바이디 모델 네임 프로젝트 네임 이렇게 분류 기준으로 잡은 거고, 그다음에 여기 검색어 입력란에다가 어떤 걸 입력했을 때 그게 여기에 담기는 거죠.

11:26
예제이기 때문에 상세하게 모르셔도 되고요. 개념적인 부분만 정리를 데이터 명세 정의를 통해서도 인터페이스 기능을 확인할 수 있다. 이렇게 정리하고 넘어가도록 하겠습니다. 다음으로, 내외부 모듈 연계 방법에 대해서 살펴보도록 하겠는데요. 두 가지의 주요 내외부 모듈 연계 방법을 저희가 살펴볼 겁니다. 첫 번째가요 eai 라건데 앞단에 저희가 용어 정의에서 먼저 다뤘던 부분입니다. 풀네임을 보게 되면 엔터프라이즈 애플리케이션 인테그레이션이었습니다. 기업 애플리케이션 통합 방식과 esb 엔트프라이 서비스 버스 방식 그중에서 좀 더 깊게 살펴볼 대상은 eai입니다.

12:17
eai는 개념이 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달과 연계 통합 등을 가능하게 하는 솔루션이고 연계 서버에 이용되어진다 ear을 사용함으로써 각 비즈니스 간의 통합 및 연계성을 증대시켜서 효율성을 높여줄 수 있고 각 시스템 간의 확장성을 높여줄 수 있다고 정리되어 있는데, 확장성이라고 이해하시면 될 것 같습니다. 시스템과 확장성 자 eai 구축 유형입니다. 네 4가지 구축 유형이 제시되어져 있는데요. 종류가 포인트 투 포인트 허브 앤스포크 메시지 버스 그리고 하이브리드 이렇게 돼 있습니다. 개념도 사항에서 보게 되면 포인트 투 포인터라고 하는 부분은 저희가 인터페이스 설계 파트에서 연계 방식은 두 가지가 있다.

13:07
직접적으로 연결하는 방식과 간접 연계 방식의 중계 서버나 연계 서버가 사용되어진다 이렇게 했었고요. 여기서 지금 현재 보면 포인트 투 포인트 같은 경우에는 중간에 어떤 미들웨어를 두지 않고요. 각 애플리케이션 간의 포인트 포인트 형태로 직접 연결하는 것을 이야기합니다. 그래서 특징이 솔루션 구매 없이 통합이 가능하고 상대적으로 비용이 적게 든다. 저렴하게 통합이 가능하고 반면, 단점은 변경이나 재사용에 어려움이 있을 수도 있다. 허브 앤 스포크 같은 경우에는 중간에 허브가 있고요. 그 다음에 해당 단일 접점이 허브 시스템을 통해서 데이터를 전송하는 중앙 집중적 방식이다.

13:55
특징은 모든 데이터 전송 보장이 되고 확장과 유지보수가 용이 하지만 단점은 허브 장애가 되면 전체가 마비될 수도 있겠죠. 다음 메시지 버스 방식 여기 보면 esb 방식이라고 돼 있어요. 엔터프라이즈 서비스 보스 방식 애플리케이션 사이에 미들웨어를 두고요. 처리하는데 그래서 미들웨어를 통한 통합이 된다. 특징은 어렵트가 각 시스템과 버스를 두어서 연결을 하여 뛰어난 확장성과 대용량 처리가 가능하다 자 나중에 저희가 네트워크에 대한 토폴로지라고 네트워크의 물리적 구조 자체를 저희가 네트워크 부분에서 다룰 거거든요.

14:43
그때도 보면은 이게 버스 방식이라고 그래가지고 개념적인 측면은 차량 노선도에 각 해당 정거장에 사람들이 타서 버스가 이동해서 목적지까지 날라주는 것처럼 여기서도 개념적으로 버스는 중간에 이동할 수 있는 중간 매체가 되고요. 버스를 버스가 미들웨어 역할을 한다. 이렇게 정리하시면 되겠습니다. 하이브리드는 혼합형이에요. 그런데 뭘 혼합을 했느냐 대장 자체는 두 가지 허브 앤 스포크 방식과 메세지 버스 방식 두 가지요 그룹 내에서는 허브 앤 스포커 방식을 그룹 간에는 메시지 버스 방식을 사용하고 있다. 특징은 표준 통합 기술이고 데이터 병목 현상을 최소화 시킬 수 있는데, ai 구축 유형 부분에서 해당 특징 또는 설명을 제시해 놓았을 때 유형 자체를 고를 수 있는 정도로 이해하시면 좋을 것 같습니다.

15:39
자 두 번째 연계 방법으로 esb에 대해 살펴보도록 하겠는데 엔터프라임 서비스 버스다 개념적인 부분은요, esb는 애플리케이션보다는 서비스 중심으로 통합을 지향하는 아키텍트 또는 기술입니다. 웹서비스 중심으로 표준화되어진 데이터 그리고 버스를 통해서 이 기종의 애플리케이션을 유연하게 통합하는 핵심 플랫폼 기술이 된다 라고 되어 있는데, 개념들을 살펴보게 되면 구성 예시가 엔터프라임 서비스 버스가 각각의 애플리케이션들 하고 서로 간에 통신할 때 사용되어지는 이게 프로토콜입니다. 통신 규약이라고 해가지고요. 프로토콜 주고받는 데이터에 따라 내용에 따라서 해당 통신하는 방식을 정해놓은 통신규약이라고 하는데요.

16:30
통신할 때 규정된 약속이야 종류가 http도 있고 soap도 있고 soap도 있고 다양해요. 또는 mq나 jms도 있어요. 이거는 이제 ibm의 웹서피오 웹 서버가 이용하는 해당 전송 방식인데 다양한 이기종의 애플리케이션이라 하더라도 유연하게 통합할 수 있는 핵심 플랫폼 서비스를 제공하는 게 esb야 이렇게 정리하시면 되겠습니다. 자 문제를 한번 정리해 보겠습니다. 다음 중 인터페이스 기능을 확인하는 방법으로 거리가 먼 거 틀린 거 인터페이스 기능 확인 방법 몇 가지 세 가지 저희가 다뤘습니다. 첫 번째 인터페이스 설계서 찾아보세요. 첫 번째 있네요. 두 번째 저희가 다뤘던 거는 시스템의 동적 정적 모형 확인 이거 다뤘죠 세 번째 저희가 살펴봤던 부분은 데이터의 명세 정의를 확인한다.

17:29
이 세 가지가 인터페이스 기능 확인 방법이었고 네 번째 단위 테스트 계획서를 확인한다. 이게 틀렸습니다. 자 두 번째로요 데이터 표준 확인에 대해 살펴보도록 하겠습니다. 데이터 표준 확인이라고 하는 부분 자체는 인터페이스 서로 간에 연계되어지는 시스템 또는 모듈 간에 주고받는 데이터의 형식이 같아야겠죠. 그래야지 우리가 약속했을 때는 예를 들어서 날짜를 8자리로 받겠다고 했는데 6자리만 줘버리게 되면 연 4자리 월 2자리 1 2자리 조합해서 8자리로 하기로 했는데 6자리만 뚝딱 보내면 이게 데이터가 엉키겠죠. 그것처럼 인터페이스 데이터 표준 개념은요, 인터페이스를 위해서 인터페이스가 되어야 할 범위의 데이터들에 대한 형식과 표준을 정의하는 것을 이야기합니다.

18:20
인터페이스 데이터 형태의 동일여부에 따라서 다시 두 가지로 다시 나눌 수가 있는데, 기존에 있던 데이터 중에 공통의 영역을 추출해서 그대로 전달 이렇게 할 수 있는 경우가 있는가 하면 공통적인 부분이 없어서 어떤 경우에는 인터페이스를 위해서 한쪽의 데이터를 변환해야 하는 경우도 생길 수 있습니다. 밑에 있는 그림은요, 음 두 개를 제가 섞어버렸어요. 그래서 첫 번째 경우에서 제시하고 있는 기존에 있던 데이터의 공통 영역을 추출해서 정의하는 경우는 송신자 a가 수신자 b한테 뭔가 데이터를 전달할 때 그냥 전달 전달할 수 있다는 부분입니다. 송신자가 인터페이스에 위에 보면 인터페이스 데이터 영역에 맞는 데이터를 전송하면 b가 그대로 받아들일 수 있어요.

19:08
인터페이스 데이터 영역을 수신자에게 그대로 받아들일 수 있는데, 맞지 않는 데이터 형식인 경우에는 송신자에서 수신자한테 보낼 때 인터페이스에 맞게 데이터를 변환해서 전송해야 되는 경우도 있을 수 있다. 라는 부분입니다. 인터페이스 데이터 표준 확인에 대한 내용인데요. 인터페이스 구현 전에 개발자는 인터페이스에 대한 데이터 표준을 먼저 확인해야 합니다. 그리고 인터페이스 구현할 때 그 데이터 표준을 준수해서 구현을 해야겠죠. 자 애플리케이션 파트에서는요 해당 표현할 수 있는 인터페이스 모듈 표현 수단으로서는 제이슨이나 데이터베이스 xml과 같은 다양한 형태로 인터페이스 모듈의 표현이 가능합니다. 제이슨이라고 하는 부분 자체는 자바스크립트 기반입니다.

20:02
자바스크립트 오브젝트 노테이션이라고 해서 제이슨은 해당 속성과 값을 1:1로 쌍을 내려가지고 이렇게 보냅니다. 그리고 xml은 h2ml 차기 웹 표준 언어로서요 마크오블 랭귀지라고 익스텐스멀 락커블 랭귀지이기 때문에 얘는 프로그램 언어가 아니고 표현 언어입니다. 태그 시작 태그와 마침 태그 사이 내에 값을 넣고요. 해당 이름값을 정해가지고 이렇게 하는 방식입니다. 나중에 저희가 프로그램 언어 파트나 이쪽 파트에 접어들 때 좀 더 연관될 때 세부적으로 설명 드리도록 하겠습니다. 제시되어진 표는 인터페이스 데이터 표준 사례로 제시되어져 있는데, 입력값과 출력값입니다. 앞서서 저희가 살펴봤던 동적 모델 유즈 케이스 다이어그램이 있었죠. 급여와 전표 발행이라고 돼 있는 거 그 사례를 그대로 가지고 와서 제시한 케이스입니다.

21:02
그래서 갑자기 이렇게 나온 건 아니고 저희가 다루는 예제 자체는 동일한 걸 쭉 이렇게 다루고 있습니다. 전송 파라미터에는 급여코드 급여 코드에 대해서는 데이터 표준을 어떻게 정할까 급여 지급 연월일을 숫자 8자리로 할 수도 있고 6자리로 할 수도 있겠죠. 여기서는 급여 지급 연월 그래서 연도 4자리와 월 2자리에서 6자리로 하자 연 4자리 월 2자리라고 이제 해서 뭐 연 4자리를 예를 들어서 2020년 2020 그다음 3월이다. 03 이렇게 하자 정규직인 경우는 구분 기호로 r을 붙이고 계약직인 경우엔 티를 붙이자 이렇게 해서 약속을 이렇게 정했다. 데이터의 표준을 정했다고 한다면, 202003r이라고 한다면, 2020년 3월이고 r은 정규직이네 이런 식으로 구분이 되겠죠.

21:56
급여 일자에 대해서는 연 네 자리 월두 자리 일 두 자리를 조합해 가지고 여덟 자리로 하자 라고 정할 수도 있겠고 급여계산 결과에 대해서는 직원별 급여계산 결과 항목으로서는 이러한 부분들을 사용하자 급여액은 도출되어진 금액을 정수로 표현을 하고 첨단위 구분기에는 쉼표로 표현하자 이렇게 데이터를 표준화시킬 수 있겠습니다. 같은 방법으로 이해하시면 되겠습니다. 자 모의평가 문제 다섯 문제 정도 풀면서 정리하겠습니다. 첫 번째 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달과 연계와 통합을 가능하게 해주는 가장 적합한 솔루션은 무엇인가 db링크 eai 소켓 웹 서비스 이렇게 있는데요.

22:45
여기에 가장이라고 되어 있다 보니까 이 케이스 같은 경우 지금 현재 보기 항목들이 다 연계 방식들입니다. 연계 방식들인데 db 링크는 db와 db 간 근데 저희가 살펴봤던 해당 학습 내용 중에는 제일 근접한 보기는 eai가 되겠죠. intpris 애플리케이션 인테그레이션이 되겠습니다. 소켓이나 웹서비스도 연계방식 중에 포함이 되어지는 부분입니다. 2번입니다. 다음에서 설명하는 eai의 구축 유형 앞서도 구축 유형 4가지 살펴봤었어요. 포인트 투 포인트 방식 허브 앤 스포크 방식 메시지 버섯 방식 하이브리드 방식 이렇게 네 가지 살펴봤었는데 설명 문구 보도록 하겠습니다. 그룹 내에서는 허브 앤스포크 방식 그럼 허브 앤스 포크는 아니겠다. 방식을 그리고 그룹 간에는 메세지 버스 방식 그럼 메시지 버스 방식도 아니겠다.

23:45
그러면 남은 거 두 개밖에 없네요. 표준 통합 기술이며 데이터 폭력 현상을 최소화한다. 하이브리드 방식입니다. 정답은 2번 다음 인터페이스 구현 전에 설계서에서 확인할 내용으로 올바르지 않은 거 틀린 거 골라라 이렇게 요구하고 있습니다. 자 설계서 설계서를 바탕으로 인터페이스 기능 뽑아낼 수 있었죠. 1번입니다. 운영 테이블의 정규화를 확인한다. 테이블에 대한 정규화는 어느 단계에서 저희가 다뤘느냐 하면 논리적 모델링 데이터 모델링 파트에서 다뤘어요. 네 데이터 입출력 구현 파트에서요 논리 저장소 확인 부분에서 저희가 다뤘거든요. 일 정규화 이 정규화 뭐 이렇게 그래서 인터페이스 구현과 관련된 설계사에서 확인할 대상은 아닙니다.

24:40
송수신화는 주기로 확인하자 내일이냐 뭐 일주 단위냐 인터페이스 데이터의 길이와 타입을 확인하자 인터페이스 전처리 후처리 스펙을 확인하자 맞죠. 넘어가겠습니다. 자 4번입니다. 다음은 인터페이스 설계서의 일부인데 인터페이스 설계서에 따라서 세운 구현에 대한 방향 설정이 가장 잘못된 것을 골라라고 되어 있습니다. 인터페이스 이름은 신용조회 인터페이스 패턴은 db 그리고 인터페이스 주기는 시간당 한 번 인터페이스 데이터는 네 가지 주민번호와 계좌번호와 이름과 언행명을 본인은 데이터냐 자 그러면 보기 한번 볼게요 1번 주민번호하고 계좌번호는 비식별화한다. 이 비식별화라고 하는 부분 자체는 내용을 보더라도 모르게 한다. 이 말입니다.

25:28
그 방법을 활용할 때 어떤 방법을 쓰느냐 암호화를 시키죠 자 중요 정보는 다른 사람이 못 보게끔요 네 주민번호 개인정보죠. 계좌번호도 마찬가지 비식별화한다. 맞죠. 두 번째 데이터 전송 전에 암호화하고 수신할 때 복호화해서 다시 내용 볼 수 있게끔 한다. 맞죠. esb 솔루션을 활용한다 라고 돼 있는데요. 방식을 보면 인터페이스 패턴이 dbt db로 돼 있어요. 이 케이스는요 데이터베이스 전개 방식 중에 db 링크라는 방식이 있습니다. 그래서 esb 솔루션보다는 db링크 방식이 적합하기 때문에 3번이 좀 안 맞지 않다 마지막으로, 인터페이스 로그를 기록할 수 있는 테이블을 생성한다. 이렇게 맞고 정리하겠습니다. 다음 문제로 넘어갈게요 인터페이스 표준 기술인 eai의 구축 유형 네 가지 반복해서 살펴보고 있습니다.

26:28
설명 중 올바른 것을 골라라 바른 걸 골라라 이렇게 돼있네요. 허브 앤 스포크 방식은 단일 접점인 허브 시스템을 단일 접점이 허브 시스템을 통해서 데이터를 전송하는 중앙 집중력 방식이야 맞습니다. 이거는 네 그래서 올바른 것은 1번이 정답이고요. 2번 포인트 투 포인트 방식은 애플리케이션 사이에 미들웨어를 두고 처리해 애플리케이션 사이에 미들웨어를 두고 처리했던 방식은 메시지 버스 여기 4번입니다. 설명 문구는 메시지 버스에 대한 설명이고요. 음 3번 하이브리드 방식은 중간에 미들웨이를 두지 않고 각 애플리케이션 안에 직접 연결하는 거야. 직접 연결은 포인트 투 포인트 방식이고요. 4번에 대한 설명 그룹 내에서는 허브 스포크 방식 그룹 간에 있는 메시저 버스 방식을 사용해 이게 하이브리드 방식입니다. 섞었을 때도 이렇게 매칭할 수 있게끔 정리하시면 좋을 것 같아요.

27:26
자 핵심 정리 인터페이스 기능 확인에 대해서 저희가 파트에서 살펴봤던 내용으로서요 주된 내용은 인터페이스 기능 확인 방법은 세 가지가 있습니다. 첫 번째 인터페이스 설계서를 통한 인터페이스 기능 확인 두 번째는 정적 동적 모형을 통한 인터페이스 기능 확인 세 번째는 데이터 명세 정의를 통한 인터페이스 기능 확인이 있었고요. 네이버 외부 모듈 연계 방식 두 가지 eai하고 esb에 대해 살펴봤습니다. 네 마지막으로, 데이터 표준에 대해서 저희가 다뤘던 부분은요, 네 데이터 표준이 필요한 이유는 인트페이스 간에 데이터를 제대로 연계해서 주고받을 수 있게끔 데이터를 표준적으로 정했죠. 인터페이스 데이터 표준은 인터페이스를 위해 인터페이스가 되어야 할 범위에 데이터들의 형식과 표준을 정의하는 것이다. 라고 살펴봤습니다. 인터페이스 구현 두 번째의 인터페이스 기능 구현에 대해 살펴보도록 하겠습니다. 학습목표인데요.

28:25
개발하고자 하는 응용 소프트웨어와 연계 대상 모듈 간의 세부 설계서를 확인하여 일관되고 정량화된 인터페이스 구현을 정의할 수 있다. 총 4파트의 학습목표가 있는데, 해당 시험 세부 출제 기준에서는 주로 다룬 건 네 번째입니다. 네 번째는 뭔지 응용 소프트웨어와 관련이 된 내외부 모듈 간의 연계 데이터의 중요성을 고려하여 인터페이스 보안 기능을 적용할 수 있다. 위주로 살펴보도록 하겠습니다. 학습내용은 엔터페이스 보안과 소프트웨어의 연계 테스트 부분은 세부출제 기준에 추가된 내용입니다. 학습모듈에는 없습니다. 용어 사전으로서 스내핑과 스포핑 약간 용어가 비슷하다 보니까 혼동스러워 하는데 저희가 살펴볼 주 내용은 스니핑입니다. 스니핑의 개념은 쿵쿵 냄새를 맡다라는 뜻입니다.

29:24
네트워크 주변을 지나다니는 킷을 엿보면서 계정과 패스워드를 알아내기 위한 행위다 네트워크 파티에서 저희가 패킷에 대해서 계속 언급이 되어질 건데 간단하게 정리해 드리면, 패킷은 인터넷은 내가 인터넷 하고 있으면 옆에 사람은 인터넷 못한다. 아니죠. 근데 내가 프린팅하고 있으면 옆에 사람은 프린터로 프린팅을 못 해요. 데이터의 전송 방식이 다르다는 부분입니다. 패킷 단위로 데이터를 쪼개가지고 데이터를 주고받기 때문에 인터넷은 동시에 여러 사람들이 할 수가 있는 부분입니다. 즉 인터넷상에서 데이터를 전송하는 기본 단위는 패킷입니다. 그래서 네트워크에 돌아다니는 패킷들을 이렇게 겹쳐가지고 안에 있는 내용들을 엿본다 이 말입니다. 스니핑은 스포핑은요, 속여 먹다라는 뜻을 가진 스포프에서 나온 말로 해커가 악용하고자 하는 호스트의 ip 주소나 이메일 주소를 바꿔서 이를 통해 해킹하는 것을 뜻합니다.

30:24
세부내용입니다. 인터페이스 보안부터 먼저 살펴보도록 하겠는데요. 인터페이스의 보안 취약점 네트워크에 연결되어져 있으면 보안에 대해서는 취약점이 있을 수밖에 없습니다. 완벽한 보안이 있을 수가 없는데 스니핑에 대한 부분부터 먼저 나오는데요. 스니핑은 좀 전에 제가 용어 정리해서 살펴봤던 것처럼 데이터 통신 내역을 중간에 감청해서 기밀성을 훼손할 수 있는 기법이다. 이렇게 되어 있어요. 보안과 관련해서 기밀성은 비밀성 으로 이해를 해도 됩니다. 접근 권한이 있는 사람만 그 내용을 볼 수 있게끔 하는 것을 뜻하는데 접근 권한이 없는데 해커가 권한 부여받지 않은 상태에서 내용을 본다 탈취 정보 탈취 이죠.

31:22
이걸 하기 위해서 도청할 수 있는 중간 설치하는 도구로 스니퍼를 이용한다든지 하고 주로 패킷 분석기 같은 것들을 내부 네트워크망에서 가동시켜가지고, 해당 패킷들을 훔쳐보는 거죠. 그게 스니핑이다. 라는 부분입니다. 보안 취약점 관련해서 두 번째 시큐어 코딩에 대한 내용을 다루도록 하겠는데 대표적인 웹 애플리케이션에 대한 보안 취약점을 발표했던 사례가 ow asp라고 오픈 웹 애플리케이션 시큐어티 프로젝트 탑10을 참고로 해서요. 국내 한국인터넷진흥원에서 소프트웨어 보안 약정 가이드를 발표했는데 그 내용을 정리한 게 밑에 있는 보안 취약점에 대한 시큐어코딩 항목들입니다. 구분 항목별로 내용을 한번 살펴보도록 하면 먼저 입력 데이터에 대한 검정 및 표현 파트에서 보면 xss 약어로 보면 뜻을 잘 몰라요.

32:19
풀어서 크로스 사이트 스크립팅이라고 제가 풀어서 포함을 시켜봤는데 xs 그리고 sql 인젝션을 방지하기 위해 소스 코드에 대한 취약점을 점검하라 이렇게 되어 있습니다. 일례로 게시판 같은 경우를 보면 8천부를 해당 프로그램 언어로 작성되어진 문서를 파일 첨부해가지고 서버 내에 네트워크의 내부적인 구조나 이러한 부분들을 파악할 수 있거든요. 그래서 jsp로 예를 들어서 프로그램 되어진 게시판에서는 jsp 파일을 첨부를 못하게끔 막아야 돼요. 왜 xss 크로스사이트 스크립팅 방식을 이용해가지고 그러한 취약점들이 sql 인젝션이라고 하는 부분 자체는 sql문을 해당 추가시켜서 해당 db 내에 있는 걸 이용해버릴 수 있다든지 그런 것들도 방지할 수 있도록 소스코드의 취약점을 점검해야 된다. 이 말이고 api를 이용한다.

33:19
애플리케이션 프로그래밍 인터페이스를 이야기합니다. 네이버 지도가 누구든지 이용할 수 있게끔 네이버에서요 프로세요. 대신 api로 연결할 수 있는 그 방식만 알면 어느 사이트에서도 네이버 주소 네이버 지도 서비스를 이용할 수 있게끔 자 그런 api를 이용하는 경우에는 게츠나 시스템 이그짓과 같은 시스템 접근 api를 오용하는 것은 취약하다 라는 부분을 이야기하는 거고요. 특성적인 측면에서는요 인증이라고 하는 부분은 누군지 식별하는 거죠. 로그인 절차를 거친다든지 접근 제어라고 하는 부분 자체는 권한을 달리해서요.

34:01
접근할 수 있는 대상을 다르게 한다든지 컨트롤하는 걸 이야기하는 거고, 접근 제어를 통해서 기밀성이 보장되어지게끔 비밀성이 보장되어지게끔 그리고 암호화나 권한 관리나 취약한 알고리즘 부적절 인가로 인한 취약점과 같은 것들이 있는지를 체킹하라 보안 특성과 관련해서는 시간 및 상태 부분에서는 프로세스를 동시에 수행할 때 시스템 콜 등과 같은 동시에 수행 시 잘못된 권한을 위임할 수 있는 가능성이 있으니까 이 부분도 체킹할 사항이고 에러 처리라고 하는 부분은 에러가 발생했을 때 에러가 어떤 에러가 떴다 라는 부분 자체를 해당 화면에 띄운단 말이에요. 그때 너무 세부적인 정보까지 공개를 했을 때 오히려 해당 보안적인 측면에서 문제가 될 수도 있다.

34:48
그래서 어떻게 에러 처리가 부적절하거나 에러의 정보가 과도하게 많이 포함되어 있지 않은지 체킹해 봐라 코드 품질은 복잡한 소스 코드가 가독성과 유지 보수성을 저하시키니까 클린코드 이전 시간에 저희가 다뤘습니다. 베드코드하고 클린코드요 누가 보더라도 가독성 있게 깔끔하게 네 마지막으로, 캡슐화는 묶는다는 말인데 중요 데이터를 불충분하게 캡슐화를 하게 되면 노출될 수 있다. 이 말입니다. 그렇기 때문에 악의적 접근이 가능하니까 캡슐화를 할 때 중요 정보가 노출되지 않게끔 캡슐화를 하라 이렇게 정리하겠습니다. 다음 인터페이스 보안 기능에 대한 적용력 인터페이스 보안 기능에 대한 적용을 세 파트에 나눠 가지고 저희가 살펴보도록 하겠습니다.

35:45
첫 번째 네트워크 구간에 대한 보안 기능 적용 두 번째 미리 설명을 드리고 세부 내용 살펴봅니다. 애플리케이션에 대한 보안 기능 적용 마지막으로는 데이터베이스 데이터베이스에 대한 보안 기능 적용 이렇게 세 파트로 단계별로 살펴보도록 하겠습니다. 먼저 네트워크 구간에 대한 보안 기능 적용인데요. 인터페이스 송수신 간의 중간자에 의한 데이터의 탈취 그리고 후에 위변주 탈취해서 위변주하는 것을 막기 위해 네트워크의 트래픽에 대한 암호화가 필요하겠다. 네트워크 구간 암호화를 위해서요. 인터페이스 아키텍처에 따라 다양한 방식으로 보안 기능을 적용할 수 있는데, 자 단계가 갑자기 트랜스포트 레이어 네트워크 보안 애플리케이션 레이어 네트워크 보안 이렇게 나오니까 무슨 말인지 잘 모를 수 있어요. 네트워크와 관련되어진 저희 과목에서 나중에 네트워크 표준모델이라고 해서요.

36:40
국제표준화기구에서 음 공개한 네트워크 표준 모델은 osi7 계층입니다. 오픈 시스템 인터커넥션이라고 그래가지고 7개 계층 단위별로 총 7개 계층의 종류는 이렇습니다. 1계층이 피지컬 레이어 2계층이 데이터링크 3계층이 네트워크 4계층이 트랜스포트 5계층 세션 그다음 6계층 프레젠테이션 마지막 7계층이 애플리케이션인데 7계층이 사용자가 볼 수 있는 화면이라고 보시면 돼요. 해당 pc와 pc 간에 예를 들어 통신을 한다든지 아니면 인터페이스 시스템 간에 통신한다고 했을 때 이렇게 7 6 5 4 3 2 1 1 2 3 4 5 6 7 이렇게 마지막 단계의 애플리케이션 안에 요 요 주요 특징은 나중에 저희가 정리하도록 하겠는데요. 네 계층 단위별로 서로 간에 통신을 합니다.

37:37
그래서 기업에서 보면 외부에서 예를 들어서 사장이 왔어요. 근데 a라는 회사에서 사장이 왔는데 b라는 회사는 예를 들어 대리급이 나와가지고, 마중을 하면 그 격이 안 맞죠. 네 그래서 같은 해당 레벨끼리 서로 의사소통을 한다. 이렇게 이해를 하셔도 됩니다. 자 트랜스포트 레이어 부분에서는 전송 계층입니다. 전송 계층과 관련되어진 네트워크 보안은 상대방에 대한 인증 적용 시 ip 시큐어 as를 ih를 적용하자 ip는 인터넷 주소죠 ipcq 암호화 시킨 그리고 어센티케이션 헤더를 적용하자 인증 헤더를 적용한다. ik는 인터넷 키 익스체인지 프로토콜을 적용한다. 자 어 제가 이제 찝어서 드리도록 하겠습니다. 우선 개괄적으로 한번 보세요. 트랜스포트는 상대방 인증 적용할 때 ipsc라고 되어있는 ipcq가 주키라고 보시면 돼요.

38:33
데이터 기밀성 보장 ip sexb는 약오 인캡슐레이션 시큐어 페이로드 이렇게 되어 있는데요. and to and 보안 적용도 ip seck 트랜스포트 모드 이렇게 되어 있기 때문에 트랜스포트 레이어 네트워크 부분에서는요 ipcq ipesc 이것만 키로 분간할 수 있으면 되겠습니다. 그 다음에 애플리케이션 레이어 부분입니다. 애플리케이션 레이어 부분은 제일 상위 7개 층 부분인데요. 서버만 공개키 인정키 인증서를 가지고 통신하도록 하자 자 여러분들이 쇼핑몰에서 원하는 물건을 구매를 한다 라고 할 때 해당 제품 목록을 볼 때는 주소 상단에 이렇게 보면 웹브라우저 주소에 보면 주소가 http 콜론 뭐뭐, 뭐 이렇게 돼 있어요.

39:25
자 그런데 이제 내가 이거 마음에 들어 결제해야지 라고 하면서 결제 페이지로 딱 넘어가게 되면 예를 들어서 신용카드 정보 입력하세요. 주소 입력하세요. 이 페이지 같은 경우에는 해당 이 정보가 노출되면 안 되는 정보잖아요. 그런 경우에 보면 프로토콜이 https가 딱 붙을 겁니다. 자 어떻게 그렇게 되는데 이걸 이용한 거예요. ssl 서버 인증 모드를 시큐어 쇼켓 레이어를 이용하게 되면 https라고 해서요. 해당 그 페이지는 암호화가 됩니다. 암호화가 되어서 해당 그 입력하는 신용카드 정보라든지 주소라든지 이런 것들은 암호화돼서 서버 때문에 전송되고 서버 쪽에 다시 복호화돼서 내용을 알 수 있게끔 그렇게 합니다. 자 그래서 여기서도 마찬가지 보안 기능 적용 부분에 보면 해당 애플리케이션 부분에서는요 ssl이라고 하는 시큐어 쇼킷 레이어라는 단어가 나오고요.

40:19
그다음에 연결 단위 외의 메시지 단위로도 인증 및 암호화하자 s http 시큐어 http를 적용을 해서 메시지를 암호화하는 것도 필요하겠다. 이렇게 나와 있습니다. 다음 넘어갈게요 인터페이스 보안 기능 적용의 두 번째 애플리케이션에 대한 보안 기능 적용입니다. 애플리케이션을 구현할 때 코드상에 소스상의 보안에 대한 취약점이 있는 경우에 그것을 보완할 수 있는 방향으로 애플리케이션에 대한 보안 기능을 적용을 시키자 네 주로 시큐어 코딩 가이드를 참조해서 보안 기능을 적용을 하는데 고려사항으로 세 가지가 제시되어져 있어요. 비인가 접근 권한 관리라고 돼 있습니다. 인가되지 않은 사람은 못 보게끔 하죠. 소스 코딩할 때요 java 같은 경우에는 객체 접근 권한을 퍼블릭 프라이빗 프로텍티드 구분해가지고 선언할 수 있습니다.

41:17
퍼블릭은 누구든지 다 볼 수 있게끔 다 이용할 수 있게끔 프라이빗은 안 돼 나만 이용할 거야. 프로텍티드는 객체 제한 개념에서 보면 상속 관계에 있는 자식 자식 클래스는 부모 클래스를 이용할 수 있는데, 그렇지 않은 경우에 이용 못 하게끔 이러한 객체 조건 권한을 고려해서 구현을 하고 변수를 직접적으로 핸들링 할 수 없다. 또로 접근 권한을 가진 함수만 접근 가능하게끔 하는 것도 네 하나의 보안 기능입니다. 그리고 악의적인 코드 삽입을 검지시키자 특수문자를 통해가지고 sql 변조를 시도한다든지 이런 경우 악의적 공격 패턴을 입력하지 못하도록 아예 사전에 방지하고요. 마지막으로, 악의적 시도할 시 에러처리입니다.

42:03
악의적인 공격 나쁜 의도를 가지고 공격을 시도할 때 사용자 정의 예외 처리를 적용을 해서 예외 처리 내용이 대신 이제 오류 메시지를 띄우되 그 오류 메시지적인 부분을 외부에서 조회되지 않도록 권한 관리를 하는 것도 중요하다 라는 부분입니다. 마지막 인터페이스 보안 기능 적용 대상 세 번째 데이터베이스에 대한 보안 기능 적용입니다. 데이터베이스의 접근 권한 및 데이터베이스의 동작 객체 종류로서 에스큐엘이나 프로시저나 트리고 에 대한 보안 취약점을 보완하기 위해 보안 기능을 적용시키자 민감한 데이터는요 데이터 자체에 대해서 보안 방안으로 암호화를 해가지고 저장을 시킨다. 데이터베이스 내에 테이블에 저장할 때 비밀번호 같은 경우에는 암호문으로 바꿔가지고 저장을 시킨다든지 그렇게 하는 게 안전하겠죠.

42:58
고려사항으로서 데이터베이스 접근 권한 적용 부분에 보면 보안 기능 적용은 데이터베이스나 스키마 엔터티 테이블에 대한 접근 권한 관리를 하자 악의적인 코드 삽입을 검지하자 앞서서 애플리케이션하고 같은 개념인데 대상 자체가 고려대상이 다릅니다. 데이터베이스에서는 프로시즈나 트리거나 배치 일괄 처리하는 것을 이야기합니다. 배치 등 데이터베이스 객체의 동작상에 악의적인 코드가 삽입되지 않도록 동작 간에 처리를 하자 민감한 데이터에 대해서는 직접적으로 데이터를 암호화시켜 가지고 저장을 시키자 그리고 악의적인 지도에 대한 에러처리 사용자 정의 에러 처리에 대해서 오류 처리 내용이 외부에서 조회되지 않도록 권한 관리를 하자 애플리케이션에서 살펴봤던 거하고 같습니다.

43:47
자 데이터베이스 암호화에 대해서 좀 더 구체적으로 살펴보게 되면요 나중에 저희가 과목 중에 다섯 번째 과목이 뭐냐 정보시스템 구축관리입니다. 정보시스템 구축관리에 보면 세부과목 중에 보안과 관련되어진 파트로 소프트웨어 개발 보안 구축과 그리고 시스템 보안 구축이 있습니다. 그 파트에 해당 보안적인 부분을 더 깊게 다루도록 하겠고요. 이게 더 언급될 수 있는 부분이긴 한데 이 파트에서 데이터베이스에서 암호화 알고리즘 세 가지 암호화 알고리즘을 소개하고 있는데, 구분할 수 있게끔만 특징적으로 정리하겠습니다. 대칭키 암호화 알고리즘이다. 이렇게 돼있는데요. 암호문을 만들 때 사용한 키와 그 암호문을 평문으로 복호화할 때 사용하는 키가 같다는 말입니다. 그러면은 그 키를 어떻게 노출되면 안 되겠죠. 그래서 키 관리를 잘해야 된다.

44:43
그래서 다른 말로 비밀키 암호화 알고리즘이라고도 해요. 키가 노출되면 안 되기 때문에 자 해당 대칭키 암호화 알고리즘 비밀키 암호화 알고리즘 같은 말이다 라고 보면 되겠고 해당되어지는 암호화 알고리즘은 어떤 게 있는데, 아리아 뒤에 십자 가면 비트 구분입니다. 128 192 256 이거 기억하시면 되겠습니다. 아리아 그다음에 시드 이렇게 두 개가 대칭키 암호화 알고리즘에 해당되고 되고요. 그 다음 반대가요 비대칭키 암호화 알고리즘이에요. 대칭이 되지 않는 키 암호 알고리즘이야 암호문에 사용한 키하고요. 복호화할 때 사용한 키하고 달라요. 그래서 하나는 오픈시켜요 그래서 공개키 암호화 알고리즘이라고도 합니다. 공개키 여기에 해당되는 알고리즘의 종류는 rsa와 ecdsa 두 종류가 있습니다.

45:38
그다음에 세 번째는 해시 암호화 알고리즘이다. 해시 암호화 알고리즘의 종류로서는요 해시 h가 포함되어져 있는 거는 해시 암호화 알고리즘 이렇게 기억하셔도 구분이 될 겁니다. 보면 sha has 이렇게 두 종류가 있습니다. 문제 풀면서 다시 정리할게요 자 데이터베이스 암호화에 대한 암호화 기법적인 부분에서 세 가지 종류로 다시 나눠지는데 데이터베이스 암호화 기법 애플리케이션 단위에서요 암호화를 수행하는 api 방식이 있고요. 데이터베이스에서 암호화를 수행하는 플러그인 방식이 있습니다. 그리고 이 두 개 방식을 혼용한 하이브리드 방식이 있습니다. apr 방식과 플러그인 방식은 필터 방식이라고도 하고요.

46:28
하이브리드 방식 해당 특징들 정리해 놓았는데 개념적인 측면에서는 api라고 하는 거는 애플리케이션 레벨 단위에서 암호화를 수행하는 거야. 그다음에 플러그인은 데이터베이스 레벨에서 암호화를 수행하는 거야. 라고 이 개념을 명확하게 구분할 수 있으면 되겠고 그와 관련해서 특징적인 부분이 서버 성능 부하적인 부분에서는 애플리케이션은 애플리케이션 서버에서 암복화가 이루어지게 지기 때문에 애플리케이즈 서버의 부하가 발생하고 플러그인 방식은 db 서버에서 암보호코가 이루어지니까. db 서버에서 부하가 발생한다는 부분이고 하이브리드 방식 같은 경우에는 해당 db와 클라이언스에서 부하를 분산시킬 수가 있다는 게 장점이고요. 나머지는 넘어가겠습니다. 문제 풀면서 정리하겠습니다.

47:21
인터페이스 보안 파트에서요 퀴즈 문제 인터페이스 보안에 대한 취약점에 관한 설명으로 옳지 않은 것은 인터페이스 보안 취약점 시큐어코딩 해당 가이드로 해서 여러 개를 정리를 했었는데 첫 번째 코드 품질은 에러 처리가 부적절하거나 에러에 정보가 과도하게 많이 포함된 경우를 이야기한다. 설명이 틀렸습니다. 코드 품질은 뭐였냐면 배드코드였죠 해당 소스 코드가 너무 복잡하게 돼 있는 경우에 품질도가 떨어질 수 있고 부화를 일으킬 수 있다. 이거였고요. 에러 처리에 대한 부적절이나 에러 정보에 대한 과도한 내용 포함은 에러 처리와 관련된 부분이었습니다. 합니다. 나머지는 맞는 설명인데 보안 특성은 인증과 접근 제어와 기밀성과 암호화 권한 관리가 취약한 점이 원인이 될 수 있어 캡슐화는 중요 데이터가 불충분하게 캡슐화 안 묶여져 가지고 악의 접근이 가능하게 될 수도 있다.

48:17
api는 애플리케이션 프로그램의 인터페이스라고 했고 gets나 시스템 이것과 같은 시스템 접근 api 오용이 원인이 될 수 있다. 맞죠. 자 소프트웨어 연계 테스트 부분인데요. 소프트웨어 연계 테스트는 내외부 모듈 연계 모듈 구현해서요. 이야기하는 소프트웨어 연계 테스트는 송신 시스템과 그리고 수신 시스템의 연계 테스트를 의미를 합니다. 보내는 시스템에서 수신 그 사이에 중계 서버가 있으면 중계 서버를 거쳐서 송신 시스템에서 중계 서버를 거쳐서 수신 시스템까지 연계하였을 때 데이터가 제대로 전송되어진 데이터가 동일하게 전송이 됐느냐 정합성이라는 건 매치가 되느냐 그다음에 전송이 실제적으로 제대로 이루어졌느냐 라는 부분을 테스트하는 것을 이야기합니다.

49:10
소프트웨어 연계 테스트의 연계 구간은 송신 연계 서버 또는 중계 서버를 거치지 않고 수신까지 가는 데이터가 전달되어지는지에 대한 테스트이고요. 소프트웨어의 테스트의 단위는 영 연계 단위 테스트가 있고요. 연계 통합 테스트가 있습니다. 0개 단위 테스트라고 하는 부분 자체는 소프트웨어 연계 테스트에 0개에 포커스를 두고요. 연계 자체만을 테스트하는 것을 연계 단위 테스트라고 합니다. 저희가 소프트웨어 설계 파트에서 애플리케이션 해당 설계 상세 내용을 다룰 때 세 번째 저희 강좌에서 이 과정도 포함이 되어 있었거든요. 그래서 다시 한번 정리해보면 송신 시스템에서 연계 데이터를 추출 및 생성하고 이를 연계 테이블로 파일 생성 이렇게 쭉 되어 있는데요.

50:02
바로 뒷 페이지 뒤에 표로 정리되어 있으니까 그거 가지고 살펴보는 게 나을 것 같아요. 우선 포커스는 소프트웨어 연계 단위 테스트는 연계 자체만을 테스트하는 거야. 자 소프트웨어 연계 통합 테스트입니다. 통합 테스트는 비즈니스 프로세스 흐름에 맞춰서 연계 데이터 생성과 전송과 저장까지 보다 큰 통합 기능에 대한 테스트 일부로서 연계 통합 테스트를 수행한다.

50:33
인위적인 조작 없이 비즈니스 프로세스 활용에 맞춰서 연계 기능을 점검하고 최종적으로 수신 시스템 운영 db에 반영된 데이터 검색 및 활용 이렇게 내용을 다루고 있는데, 방금 제가 스킵했던 내용이 이렇게 표로 정리를 하면 조금 더 일목요연하게 정리가 되기 때문에 여기서 살펴보면 송신 시스템에서는 데이터 흐름 및 처리 절차에서요 데이터 발생 및 운영 db 저장 그다음에 연계 데이터 추출 및 생성 그다음에 연계 서버로 넘겨가지고 연계 서버에서는 연계 테이블 파일 생성 그리고 연계 테이블 간의 송수신 순서가요 그다음에 연계 테이블 거꾸로 받는 쪽으로 넘어가면 이 순서가 반대로 돼요. 반대로 그래서 연계 테이블 생성 그리고 연계 테이블의 연계 데이터 로드 그리고 운영 db에 반영 반영된 데이터 검색 활용 이렇게 되어 있습니다.

51:32
단위 테스트는 각 단위별 통합 테스트는 시작부터 끝까지 생성부터 저장까지 소프트웨어 연계 테스트를 하기 위해서 테스트 케이스를 작성하는 방법에 대해 정리해 놓은 부분인데요. 연계테스트케이스는 송신 시스템과 수시 시스템에서 확인해야 될 사항들을 각각으로 도출하고 그리고 송수신 시스템 각각에서 단순한 개별 데이터의 두 가지로 다시 구분이 되어지는데 단순 개별 데이터 유효값을 체크하는 경우와 그리고 데이터 간의 연계관계를 체크하는 경우로 나누어 가지고 작성을 하고요. 단순 개별 데이터에 대한 유효값을 체크하는 경우에서 유효값이 코드인 경우에는 코드 테이블에 등록되어져 있는 값인지 여부 또는 유효 데이터의 타입 형식과 길이 필수 입력 등 체크를 의미합니다. 데이터 간 연계 관계 체크라는 부분은 연계 서버 또는 중계 서버를 통해서요.

52:28
연관 관계가 주어진 규칙대로 데이터 전환이 이루어지는지를 점검하는 것을 말합니다. 자 예시로 송신용 연계 응용 프로그램에서의 단위 테스트 케이스를 작성한 표와 뒷장에서는 해당 통합 테스트 케이스 작성한 게 있는데, 세부적으로는 살펴보지 않겠고 개괄적으로만 보도록 하겠습니다. 네 일례로요 송신용 연계 응용 프로그램 단위 테스트 케이스 작성의 예제로서 단위 시스템 이름을 보니까 송신용 보내는 쪽에서 사용자 쿠폰 정보 연동 부분이냐 이렇게 돼 있고요. 고유 아이디가 부재되어 있고 식별자 테스트 일시 그리고 설명 관련 프로그램 아이디 그리고 단계가 이렇게 제시되어져 있습니다.

53:23
단계별로 간단히 볼게요 재료들 1단계에서는 시험 환경 및 처리 절차가 사용자 쿠폰 테이블에서 테스트 일자와 시간 추가하고 수정 삭제된 정보를 검색해 입력 데이터는 이렇다 예상 결과는 이렇게 조회될 거야.

53:38
검정 방법으로서는 셀렉트 에스큘럼을 이용해 가지고 총 카운트 레코드를 헤아려 어디로부터 사용자 쿠폰 테이블로부터 웨어 이하 조건은 변경 일시가 이게 포함되어 있는 거 이렇게 그다음에 단계 n 부분에서는 처리 일시에 대한 연계 파일 생성 연계 입력 데이터는 처리 일시고 이렇다라고 할게요 연계 통합 테스트 케이스의 작성은 해당 송신용 사용자 쿠폰 정보 연동인데 설명 부분을 보면 송신 시스템 운용 db에서 사용자 쿠폰 정보 연계 데이터를 추출 코드 변환 및 연계 파일 생성 및 송 후에 수신 시스템 운용 db의 사용자 쿠폰 정보에 제대로 반영되었는지까지 전체적인 부분을 다 확인한다. 이렇게 되어 있고요. 절차적인 부분 자체는 참고하시면 되겠고 문제 풀이하면서 정리하겠습니다.

54:38
모의평가입니다. 첫 번째 힌트페이스 보안 취약점과 관련된 스니핑에 관한 설명 중에 올바르지 않은 거 틀린 거 골라 첫 번째 데이터 통신 내역을 중간에 감청하여 기밀성 비밀성이라고 그대로 읽으면 계속 북한의 기밀성과 단어가 같아서 비밀성이라고 하겠습니다. 비밀성을 훼손할 수 있는 기법이다. 맞죠. 두 번째 도청할 수 있도록 중간에 설치하는 도구는 스니퍼야 맞고요. 주로 패킷 분석기 같은 툴을 통해서 진행돼 해커가 악용하고자 하는 호스트의 ip 주소나 이메일 주소를 바꾸어서 이를 통해 해킹하는 거야. 라고 하는 부분은 스니핑을 이야기하는 게 아니라 용어 정리에서 살펴봤던 스포핑을 뜻하는 부분입니다. 속이다. 스포핑 사물이 스니핑에 관한 설명이 아닙니다.

55:34
두 번째 네트워크 구간의 보안 기능에 적용되는 통신 프로토콜의 종류로 올바른 것은 자 저희가 보안 기능 적용을 세 파트로 나눠서 정리를 했었는데 네트워크 구간 두 번째 애플리케이션 세 번째 데이터베이스 자 네트워크 구간의 보안 기능 적용 통신 프로토콜은 rsa 데이터베이스 암호화 알고리즘이었고 dsa도 암호화 알고리즘이고 ssl이 이게 시큐어 쇼킷 레이어 인증서 아까 제가 http s라고 말씀드렸던 부분 있죠. 이게 정답이고요. has는 해시 암호화 알고리즘입니다. 3번입니다.

56:12
인터페이스 보안 취약점을 보완하는 방향으로 애플리케이션 보안 기능을 적용한 것으로 올바르지 않은 거 틀린 거 골라라 첫 번째 변수를 직접 핸들링 할 수 없게 접근 권한을 가진 함수만 접근하게끔 하자 맞습니다. 두 번째 객체 접근 권한을 고려해서 퍼블릭 프라이빗 프로틱 디디를 선언하자 맞습니다. 특수문자를 통한 sql 변조 시도 등 악의적 공격 패턴을 입력하지 못하도록 사전에 방지하자 설명이 있었죠. 마지막은 왜 틀렸는지 보겠습니다. 악의적 공격 시도 시 사용자 정의하는 예외 처리를 적용하자 여기까지 맞아요. 에러 처리 내용은 외부에서도 조회되도록 권한 관리를 하자 이게 틀렸습니다. 에러 처리 내용은 외부에서는 조회되지 않도록 권한 처리를 하자 4번이 틀렸습니다. 4번입니다.

57:10
데이터베이스 암호화 알고리즘 중에 비대칭케 암호화 알고리즘에 해당하는 것은 자 대칭키 암호화 알고리즘으로서 아리아가 있었고, 시드가 있었어요. 제일 마지막도 비대칭키 암호화 알고리즘이고 h가 포함되어 있는 건 해시 암호화 알고리즘이라 그랬고 rsa 얘가 정답입니다. 자 마지막 5번입니다. 인터페이스 구현 시 오류 처리 방법에 대한 설명 중에 가장 적합하지 않은 거 오류 처리 방법에 적합하지 않은 거 1번 인터페이스 전체 실행을 중지시켜야 한다. 네 이 문구가 바람직하지 않고요.

57:56
나머지는 한번 봅시다 예외 처리 로직을 수행을 하고 오류 로그를 기록하자 미리 정의되어진 트라임 횟수 오류가 발생했을 때 몇 회 다시 재전송해 라고 설정되어 있는 횟수에 따라서 재전송 신호를 반복했어. 맞죠. 미리 정의되어진 오류 매핑 코드에 따른 오류 코드를 기록하고 나중에 해당 담당자가 처리하게끔 확인해서 맞죠. 자 핵심 정리입니다. 인터페이스 보안 파트에서 저희가 다뤘던 내용 중에 주된 내용입니다. 인터페이스 보안 취약점에 대한 시큐어 코딩 항목에 대해 살펴봤었고 그리고 인터페이스 보안 기능 적용 방법 세 가지 저희가 살펴봤었어요.

58:36
네트워크 구간 보안 기능 적용 애플리케이션의 보안 기능 적용 데이터베이스의 보안 기능 적용 그리고 데이터베이스의 암호화 알고리즘에 대해서 세 가지 종류 대칭키 해시 비덴치 키 세부적인 암호 알고리즘들 서로 간에 구분할 수 있는 정도로 익혀놓으시면 좋겠습니다. 마지막으로, 소프트웨어 연계 테스트에 대해 살펴봤었는데요. 레이외부 연계 모듈을 구현해서 소프트웨어 연계 테스트는 송신 시스템과 수신 시스템 간의 연계 테스트를 하는 것을 의미하고 소프트웨어 연계는 단위 테스트가 있고 통합 테스트가 있었어요. 그리고 테스트 케이스도 단위 테스트 케이스와 통합 테스트 케이스 작성이 있었죠. 네 이상으로 인터페이스 기능 구현에 대해 살펴봤습니다. 네 인터페이스 구현 마지막 세 번째 인터페이스 구현 검증에 대해 살펴보도록 하겠습니다. 자 학습 목표는요 구현되어진 인터페이스 명세서를 참조해서요.

59:32
구현 검증이 필요한 감시도구 및 도구를 감시 및 도구를 준비할 수 있다. 두 번째 엔터페이스 구현 검증을 위하여 외부 시스템과의 연계 모듈 상태를 확인할 수 있다. 마지막으로, 인터페이스 오류 처리 사항을 확인하고 보고서를 작성할 수 있다. 입니다. 학습내용은 인터페이스 구현 검증과 인터페이스 오류 처리 확인 및 보고서 작성이 되겠습니다. 인터페이스 구현 검증인데요. 먼저 인터페이스 구현을 검증하기 위해서는요 인터페이스 구현이 제대로 됐는지라는 부분입니다. 그거를 살펴보기 위해서 인터페이스 단위 기능 및 시나리오를 기반한 통합 테스트가 필요한데 테스트 자동화 도구들을 이용을 하게 되면 단위 및 통합 테스트를 효율적으로 효율성을 높일 수가 있겠다.

1:00:30
그러면 테스트 자전거 도구는 어떠한 것들이 있는가 라는 부분이 표로 정리되어 있습니다. x유닛이라고 하는 부분 자체는요 해당 앞에 x부는 j가 들어와요. j유닛 c++은요, cpp 유닛 프로그램 언어죠 java c 플러스 플러스 닷넷 기반 개발에서는 n unit 등 다양한 언어를 지원하는 단위 테스트 프레임워크가 x unit이라는 부분이고 두 번째 stap 이렇게 서비스 호출 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크다 핀니스 웹 기반의 테스트 케이스 설계와 실행과 결과 확인 이러한 것들을 지원하는 테스트 프레임워크가 되겠고요.

1:01:17
그다음에 여기서 ntaf 이것만 조금 더 주의 깊게 기억을 하시면 좋을 것 같은데, 얘는 쉬워요 이해를 하시면 ntaf는 네이버 n이 네이버예요. 네이버에 t는 테스트예요. 네이버의 테스트 n은요, 자동화예요. 오토매틱 자동화 f는 프레임워크예요. 네이버의 테스트 자동화 프레임워크가 ntaf입니다. 이거는 위에 staf하고요. 그리고 petnis 얘 두 개를 통합해 가지고 만든 겁니다. 셀레니엄이라고 되어 있는 도구는 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크가 되겠다. 그리고 워티어라고 읽을까요? 로비 기반인 웹 애플리케이션 테스트 프레임워크입니다. 다음 인터페이스 감시 도구인데요.

1:02:14
인터페이스 동작이 제대로 잘 진행되어지고 있는지 확인하기 위해서 애플리케이션 모니터링 툴 apm 애플리케이션 퍼포먼스 매니지먼트라고 하는 도구를 이용을 해서 동작 상태를 감시할 수 있는데, 감시 대상은요, 데이터베이스 그리고 웹 애플리케이션의 트랜잭션 상호 데이터 교환적인 부분과 상호작용적인 부분과 변수값 호출함수 그리고 로그 시스템 부하 등 종합적인 정보를 조회하고 분석할 수 있습니다. 밑에는 오픈소스 감시도구 예시인 스카우터를 이용해서 로그라든지 해당 cpu의 성능이라든지. 이러한 것들을 확인할 수 있다. 라는 부분을 보여주고 있고요. 자 인터페이스 구현 검증에서요 설계 산출물은 어떠한 것들이 있을까? 설계 산출물의 종류는 크게 두 가지 정리하면 첫 번째 인터페이스 명세서가 있어요.

1:03:14
인터페이스 정의소 같은 말입니다. 해당 인터페이스 명세서에는 어떠한 것들이 정의되어 있느냐 하면 데이터 전송 주기 전송량 전송 포맷 이러한 것들이 있는데, 해당 기재되어져 있는 대로 수신 시스템에 데이터가 전송되어졌는지를 확인할 수 있겠고요. 그리고 인터페이스 단위 및 통합 테스트 설계서를 활용해서 구현 검정을 진행할 수 있습니다. 다음으로, 인터페이스 명세서 기반으로 하는 구형 검증에 대해 더 세부적으로 살펴보도록 하겠는데 인터페이스 명세서 기반 구형 검증 기법입니다.

1:03:57
구현되어진 인터페이스명세서에 세부 기능을 참조하여 구현 검증 및 감시에 필요한 기능을 분석할 수 있는데, 각 기능의 특징에 맞게 요건을 도출할 필요성이 있고요. 일례로 기능 구현 정의를 송신 측에서 인터페이스 대상 선택 전송 인터페이스 객체 전송 받는 쪽 받고 난 다음에 수신척의 트랜잭 중과 결과 반환 기능에 대한 검증 도구의 요건과 감시도구의 요건을 정리한 표인데 개괄적으로 한번 보도록 하겠습니다.

1:04:31
송신 측에서 보낸 쪽에서요 인터페이스 대상 선택을 해서 전송하는 경우에 검증하는 도구가 갖추어야 될 요건은 입력한 대상과 생성된 인터페이스 객체의 정보가 일치하느냐 라는 부분을 확인할 수 있어야 되겠고 감시 도구의 요건은 데이터베이스의 sql을 모니터링 할 수 있고 조회 트랜잭션을 모니터링 할 수 있고 json 생성에 대한 객체를 모니터링 할 수 있어야 된다. 이렇게 해석하면 되겠습니다. 볼까요? 인터페이스의 객체 전송과 관련해서는 검정 도구가 갖춰야 될 요건은 암호화된 통신으로 올바른 수신 측에 전달되었는가 두 번째는 전달된 정보가 수신된 정보와 일치하느냐 그리고 파싱된 정보가 송신된 정보와 일치하느냐 파싱이라는 것은 해당 소스의 문장을 이해를 해가지고 해석하는 걸 이야기하는 거고요.

1:05:28
감시도구의 요건으로서는 인터페이스 개체전송은 통신 암호화 모니터링 정보 모니터링 연결되어진 트랜잭션에 대한 변수 모니터링 기능을 갖춰야 됩니다. 마지막 수신처에서의 트랜잭션과 결과 반환과 관련되어서 검증도구의 요건인 수신된 데이터와 연관 있는 이후 트랜잭션의 기댓값과 일치하는지 여부를 파악할 수 있어야 되겠고 감시도구 요건인 객체 입력 출력 값 모니터링과 객체 동작의 성공 실패 여부를 파악할 수 있어야 되겠다. 다음 인터페이스 테스트 설계서를 기반으로 한 구형 검정 기법인데요. 인터페이스 구형 검증을 위해서 외부 시스템과의 연계 모듈에 대한 상태를 확인할 수 있어야 되겠습니다. 인터페이스 기능을 절차적인 측면에서 최초 데이터 입력부터 수신 결과 반환까지 순서로요 테스트 시나리오를 작성을 하고요.

1:06:27
예상되어진 결과값을 이렇게 정리해서 이걸 기반으로 해서요. 해당 테스트 설계서를 기반으로 구현 검증을 해볼 수 있겠습니다. 단계별로 넘어가겠습니다. 인터페이스 테스트 결과에 대한 검증 방법 5가지 제시되어 있는데, 운영 db 테이블의 건수를 카운팅하는 방법이 있고 실제 테이블이나 파일을 열어서요 안에 데이터를 확인하는 방법 그리고 파일 생성 위치의 파일 생성 여부와 파일의 크기를 확인하는 방법 네 번째는 연계 서버에서 제공하는 모니터링 화면의 내용을 확인하는 방법 마지막은 시스템에 기록하는 로그를 확인하는 방법이 있습니다. 자 해당 인터페이스 구현 검증에 관련되어진 퀴즈입니다. 다음 중 인터페이스 구현 검증 도구요.

1:07:18
설명 중에 올바르지 않은 것은 stap 스텝 스태프는 서비스 호출 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임웍이에요. 빠르게 저희가 그냥 쭉 한번 읽었기 때문에 지금 정확하게 구분하실 수 있으신 분은 굉장히 집중력이 뛰어나신 분이세요. 자 모르 잘 모르겠다. 넘어가 보겠습니다. 네 엑스유닛은 자 이거는 아까 좀 구분이 됐죠 자바는 제이유닛 c 플러스 플러스는 cpp 유닛 뭐 이런 식으로 다양한 언어를 지원하는 단위 테스트 프레임웍이에요. 얘는 맞구요. ntaf는 뭐라고 했어요. 제가 이거는 좀 쉽게 기억할 수 있을 것 같아요. 라고 말씀드렸습니다. 네이버라고 그랬잖아요. 국내 서비스인 네이버 네이버에서 테스트를 자동화 오토메틱한 프레임워크예요. 라고 했죠. 근데 설명은 루비 기반의 애플리케이션 테스트 프레임워크다 이게 틀렸죠 연결이 잘못됐습니다.

1:08:14
셀레니엄은 다양한 브라우저 지원의 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크다 맞습니다. 자 오류 처리 확인 및 보고서 작성 부분에 대해 살펴보도록 하겠습니다. 먼저는요 저희가 세 파트로 나눠서 살펴볼 건데 인터페이스 오류를 처리하는 방법 인터페이스 오류를 처리하는 방법으로 첫 번째 사용자 화면에서 오류를 발생시켜서 오류가 있는지를 확인하는 방법 화면에서 바로 보이니까. 이 방법 같은 경우에는 인터페이스 오류 자체를 인지할 때 가장 직관적으로 오류를 인지할 수 있어서 가장 많이 쓰이는 방법입니다. 인터페이스 오류가 발생했을 때는 알람 형태로 화면에 표시되어지게끔 주로 즉시적으로 데이터가 인터페이스 되는 경우에 사용할 수 있겠고요.

1:09:11
두 번째 인터페이스 오류 처리 방법은 인터페이스 오류 로고를 생성하는 방법 시스템 운영 로그인 인터페이스 오류가 발생했을 때 그 오류에 대한 로그를 별도로 생성하는 거예요. 그러면 그 오류가 기록이 되어지니까. 시스템 관리자가요 시스템 관리자나 운영자가 오류 로그를 확인해서 조치할 수 있게끔 일례로 인터페이스 오류 로그 생성 예시는 다음과 같습니다. 나중에 이 예시를 제가 문제로 냈기 때문에 문제 풀면서 해석해 보도록 하겠습니다. 세 번째 인터페이스 관련되어진 테이블에 오류 사항을 기록하는 오류 처리 방법이 있는데, 테이블을 통한 인터페이스 기능을 구현할 경우나 인터페이스 트랜잭션 기록을 별도로 보관하는 경우에 테이블에 오류 사항을 기록시켜서 처리할 수 있습니다.

1:10:04
장점은요, 이력을 직관적으로 보기 쉽게끔 운영자가 관리하기 용이하다 라는 게 장점이고요. 일례로 인터페이스 오류 로그 테이블의 예시는 다음과 같습니다. 송신일시 이때 변경 부분에서는 입력을 했는데 발령 번호는 이거고, 사본 발령 내용 이렇게 해서 입력해 보냈단 말이에요. 근데 처리가 안 됐어요. 실패로 떴고요. 오류 코드는 이렇고요. 오류 내용은 뭐다 수신 데이터베이스 연결이 제대로 안 돼 가지고 못했다. 이렇게 네 표로 일목요연하게 정리가 되어 있기 때문에 보기가 쉽다는 게 장점입니다. 인터페이스 오류 처리 보고서 작성 관련된 내용 보도록 하겠는데요. 인터페이스 오류 처리 보고서 작성 및 보고입니다.

1:10:54
자 오류가 발생을 했을 때 보고하는 네 보고서를 작성을 해야 되는데 인트페이스 오류 발생 시 상황 인지 및 조치 사항을 시간 경과에 따라서 작성을 합니다. 오류가 생겼던 부분에 대한 세 번째 문구처럼 오류를 다 조치하고 난 다음에 보고를 하게 되면 문제가 더 커질 수도 있겠죠. 그렇기 때문에 해당 조직 내에서요 시기에 따라서 어떻게 하라고 하는 보고에 대한 프로세스에 맞춰가지고요. 보고를 할 필요성이 있고 그리고 조직과 상황에 따른 보고서 양식을 만들어 사용하는 것이 바람직합니다. 키포인트는요 오류 발생 상황인지 그리고 조치 어떻게 해갖고 결과는 어떻다라고 하는 시간적 경과에 따라서요 보고서를 단계별로 작성 보고를 하는 게 바람직합니다.

1:11:53
핸터페이스 오류 처리 보고 형식의 예시입니다. 본 위원은 장애 확대해서 보여드릴까요? 완료보고서 뿐만 아니라 장애 발생 보고서 진행 보고서 완료 보고서 이렇게 하나의 보고서 양식의 내용을 단계별로 작성해서 활용할 수가 있겠고요. 양식 자체는 표준적으로 이 양식을 꼭 써야 된다는 거 아니고 조직 내에서 적당하게 만들어주시면 되겠습니다. 그래서 장애 내용 증상 장애 원인 조치사항 그리고 재발 방지 계획 및 의견 초기 단계 발생 케이스 같은 경우에 발생 일시 뭐 장애 내용은 어떤 거다 이렇게 하고 보고를 해야겠죠. 그다음에 진행 중인 상태에서는 장애 원인 파악했고 이렇게 조치하고 있어요. 완료에서는 다 조치했고 재발 방지 계획은 이렇다 라는 게 다 포함된 상태로 완료 보고가 돼야겠죠.

1:12:49
인터페이스 처리 보고 시기에 따른 보고서 특징 방금 구두상으로 설명했던 그 내용 그대로입니다. 최초 발생 보고 시에는 상황 인지하고요. 조직상의 신속하게 보고하고, 대응조직을 만들어야 되겠다. 그래서 보고서 내용은 간략화시켜가지고요. 간이보고서를 활용해서 오류 발생 구간 실정과 영향도 정도만 보고하고, 그리고 오류처리 경과 오류를 처리하고 있는 과정 중에서는 최초 인지하고 진행되는 상황을 보고하고요. 오류처리조치사항 위주의 보고 대안 서비스와 고객사 공지사항 완료 예상 시점 등을 보고서에 포함을 시킵니다. 마지막으로, 완료 보고는요 최종 조치가 완료되고 난 다음이 조직 내부 및 고객사에 완료 보고를 하는데 하는 것을 뜻하구요. 보고서는 최초 발생 시점 조치 경과 그리고 오류 발생 원인에 대한 재발 방지 대책도 종합적 내용에 포함시킬 필요가 있습니다. 네 문제 풀이하면서요 해당 내용 정리하도록 하겠습니다.

1:13:49
모의평가인데 1번입니다. 인터페이스 구현 검정 도구 중에 네이버 테스트 자동화 프레임워크에 해당하는 것은 네이버 테스트 자동화 프레임 ntaf였죠 2번이 농담입니다. 2번입니다. 인트페이스 감시 도구를 활용을 하여 데이터베이스 웹 애플리케이션 등 정보를 조회하고 분석하는 대상이 아닌 건 뭔지 이게 어떤 부분의 대상이냐면 감시형 apm이라고 해서 애플리케이션 퍼포먼스 매니지먼트 apm 도구였는데 감시 대상은 뭐였냐면 조회 분석 대상은 트랜잭션 맞고요. 호출함수 맞고요. 로그도 맞아요. 그런데 하드디스크 여유 용량은 대상에 포함되지 않았습니다. 3번 넘어갈게요 인터페이스 설계의 산출물의 종류가 아닌 것은 인터페이스 설계 산출물 종류 크게는 저희가 두 가지로 봤는데 보도록 하겠습니다.

1:14:48
첫 번째 시스템의 정적 동적 설계서 이렇게 돼 있는데, 시스템 정적 동적 설계서는 시스템 설계서예요. 인터페이스 설계서가 아니라 그래서 얘기가 틀렸고 나머지는 봅시다 인터페이스 명세서 인터페이스 테스트 계획서 인터페이스 목록 인터페이스 목록은 명세서와 목록을 포함해서 인터페이스 설계서라고 했죠. 맞습니다. 4번입니다. 다음 중 엔터페이스 오류 로고이다. 앞서서 제가 뒤에 문제로 다룰게요 라고 세부 설명은 그 대상인데 설명 틀린 거 골라 보도록 하겠습니다. 근데 찬찬히 이거 어렵지 않습니다. 찬찬히 따져보면 답 고를 수 있어요. 자 1번 볼게요 인사발령 구분에 오류가 발생하였다. 내용상에서 보도록 하겠습니다. 쭉 보니까 인사발령 번호 인사발령 구분 발령내역 길이가 초과하였어. 이렇게 돼 있습니다.

1:15:47
인사발령 구분 여기 보면 인사발령 구분 인사발령 구분은 오래 발생하였다. 맞습니다. 인사발령 내역은 두 번째 정상적으로 전달이 되었어 이게 틀렸어요. 오류가 발생했는데 정상적으로 전달되지는 않겠죠. 세 번째 발령 내역의 길이가 초과하여 오류가 발생한 거야. 여기 메시지 보면 발령 내역의 길이가 초과해서 오류가 발생한 거야. 라고 내용상에 표기가 되어 있습니다. 그다음 마지막 2020년 3월 17일 발생했고 에러 코드는 100이야 쭉 보니까 날짜 있네요. 2020년 3월 17일 그리고 에러 코드 100이라고 돼 있네요. 틀린 것은 2번입니다. 자 마지막 5번인데요.

1:16:37
다음 중 인터페이스 구현 검증 방법으로 틀린 거 설명한 것 중에 틀린 거 인터페이스 구현 검증 방법 보도록 하겠습니다. 1번 ear 인터페이스인 경우는 데이터베이스 레코드 개수를 비교한다. 자 저희가 세부적으로 안 다뤘는데 정리하면서요 문제 풀면서도 제가 설명을 드립니다. 설명이 미흡했던 부분들은 이 ai 인터페이스는요 데이터베이스 레코드 개수를 비교하지 않고 파일수 파일 수를 비교합니다. 그래서 1번이 틀렸고 db2 db 인터페이스는 db 링크 연계 기법 종류 중에 dbdb 연결은 db 링크 활용 맞습니다. 파일 2파일 인터페이스인 경우는 송신파일 숫자와 수신파일 숫자가 같은가 비교해서 검증한다. 맞고요.

1:17:33
웹 인터페이스 웹 서비스 인터페이스인 경우는 연동 데이터 권수를 비교한다. 틀린 것은 1번입니다. 핵심 정리 정리하겠습니다. 인터페이스 구현 검정 파트에서 저희가 다뤘던 주 내용은 인터페이스 구현 검증 도구와 감시도구 모니터링 도구 살펴봤고요. 어떤 걸 대상으로 조회하는지 그리고 인터페이스 구현 검증에 필요한 설계 산출물 종류로서는 인터페이스 명세서 인터페이스 목록 포괄적으로 인터페이스 설계서 그리고 인트페이스 단위 및 통합 테스트 설계서가 있었습니다. 인티페이스 오류 처리 확인 및 보고서 작성은요, 인터페이스 오류 처리 방법 우려서 세 가지가 있었죠.

1:18:21
사용자 화면의 오류를 발생시켜 띄워가지고 하는 방법이 있었고, 인터페이스 오류 로고를 생성시켜서 하는 방법이 있었고, 마지막 가독성이 높다라고 했던 게 인터페이스 관련된 사항을 테이블 형태로 기록해서 하는 방법이 있었습니다. 네 이상으로 인터페이스 구현 검증에 대해 설명을 마치도록 하겠습니다.

728x90
반응형
posted by 아이윤맨
:
728x90
반응형

https://youtu.be/_sB-NKgpBIo?si=UxVnvsFBQOUBw9wH

1. 애플리케이션 테스트 관리

1-1. 테스트 케이스와 시나리오
- (중요) 개발하고자 하는 응용 소프트웨어의 특성을 반영한 테스트 방식과 대상 범위를 정의함
- 테스트 시나리오를 정의하고, 테스트 케이스와 차이점을 설명함
- 테스트 케이스는 프로그램 일부분이나 특정 요구사항을 준수하는지 확인하기 위해 설계된 테스트 항목의 명세서임
- 테스트 시나리오는 여러 개의 테스트 케이스의 집합이며, 각각의 테스트 케이스에 대해 동작 순서를 기술한 문서임
- 소프트웨어 테스트의 개념과 필요성, 테스트의 기본 원칙과 테스트 프로세스를 설명함

1-2. 테스트 계획과 수행
- 테스트 목적과 범위, 대상 시스템의 구조, 테스트 일정, 조직과 비용 산정을 포함한 테스트 계획을 수립함
- 테스트 분석, 디자인, 테스트 케이스 및 시나리오 작성이 포함된 테스트 계획서를 작성함
- 테스트 케이스는 테스트를 설계한 산출물이나 입력값, 실행조건, 기대 결과로 구성된 텍스트 항목의 명세서임
- 테스트 시나리오는 여러 개의 테스트 케이스를 포함한 집합이며, 테스트 케이스의 동작 순서를 기술한 문서임
- 테스트 결과는 테스트 종료 후에 보고된 평가와 리포팅, 보고서 작성이 포함됨

1-3. 테스트 유형과 분류
- 프로그램 실행 여부에 따라 정적 테스트와 동적 테스트로 나뉨
- 정적 테스트는 프로그램을 실행하지 않고 테스트하는 것이고, 동적 테스트는 프로그램을 실행하면서 테스트하는 것임
- 화이트박스 테스트는 프로그램 소스를 보며 테스트하는 것으로, 구조 기반 테스트와 명세 기반 테스트로 나뉨
- 명세 기반 테스트는 해당 소스를 보면서 테스트하는 것으로, 동치분할, 경계값, 원인효과 그래프 기법 등이 포함됨
- 관점에 따라 사용자 시각에서 테스트하는 부분이 확인되는 테스트 유형이 있음

2. 소프트웨어 테스트와 결함 관리

2-1. 소프트웨어 테스트의 종류와 중요성
- (중요) 소프트웨어 테스트는 약속의 준수 여부를 확인하는 과정
- 테스트의 목적은 개발자의 개발 전략을 검증하고 테스트의 원활한 수행을 보장
- 테스트는 회귀 테스트, 회복 테스트, 안전 테스트, 강도 테스트 등 다양한 형태 존재
- 테스트는 명세 기반 테스트와 구조 기반 테스트로 나눠짐
- 명세 기반 테스트는 소스 코드를 통한 오류 발견, 구조 기반 테스트는 프로그램 소스를 통한 문제 해결

2-2. 테스트 계획과 테스트의 종류
- 테스트 계획은 프로젝트의 목표와 전략에 따라 기획되며 주로 테스트 케이스로 구성
- 테스트 케이스는 특정 프로그램의 일부나 특정 요구사항을 준수하는지 확인하기 위한 명세서
- 테스트 오라클은 테스트 결과의 진위를 판단하기 위한 사전 정의
- 테스트 레벨은 소프트웨어 테스트의 목적에 따라 다름
- 테스트 단계는 개발 단계, 통합 단계, 시스템 인수 단계, 사용자 인수 단계로 진행

2-3. 테스트 절차와 기능 점검 사항
- (중요) 테스트 절차는 테스트 계획 검토, 자료 확보, 위험 평가 및 우선순위 결정으로 시작
- 테스트 요구사항 정의, 테스트 대상 재검토, 테스트 방법 결정, 테스트 케이스 정의 순서로 진행
- 단위 테스트, 통합 테스트, 시스템 인수 테스트 순으로 단계적 테스트 진행
- 기능 점검 사항은 프로그램의 기본 단위 모듈로 테스트하고, 시스템 테스트에서는 시스템 전체적인 작동 여부를 테스트
- 인수 테스트는 사용자가 시스템을 운용하면서 테스트 수행, 이는 실제 운영 환경에서 테스트를 수행

3. 소프트웨어 테스트 방법론의 이해

3-1. 소프트웨어 테스트의 분류와 정의
- 소프트웨어 테스트는 명세 기반, 경계값 분석, 원인 결과 그래픽, 비교 검사의 네 가지 방법론이 있음
- 명세 기반 테스트는 테스트 케이스를 생성하는 방법을 포함함
- (중요) 경계값 분석은 입력값의 정상 여부를 기준으로 판단하는 방법을 포함함
- 원인 결과 그래픽은 입력값의 원인과 결과를 기반으로 판단하는 방법을 포함함
- 비교 검사는 서로 다른 두 개 이상의 값을 비교하여 결과를 도출하는 방법을 포함함

3-2. 애플리케이션 테스트 시나리오의 작성과 주의사항
- 애플리케이션 테스트 시나리오는 테스트 케이스의 동작 순서를 기술한 문서임
- (중요) 여러 테스트 케이스를 분리하여 작성해야 함
- 테스트 시나리오에는 테스트 케이스, 테스트 데이터, 테스트 결과 등을 포함해야 함
- 테스트 환경 구축 시 물리적 분리가 불가능한 경우, 가상 환경을 이용해야 함
- 테스트 환경에 대한 수정은 기본적으로 테스트 그룹이 검토해야 함

3-3. 테스트 지식 체계와 테스트 기법의 선정
- 테스트 지식 체계는 소프트웨어 테스트에 대한 국제 표준임
- 테스트 프로세스는 조직 테스트, 관리 동적 테스트, 화이트박스 검사 등이 있음
- (중요) 테스트 기법 선정 시 데이터 흐름 검사, 루프 검사, 조건 검사, 분기 검사 등이 선택됨
- 시험할 입력값을 얻기 위해 테스트 계획 단계에서 수행하는 활동은 수행 단계에서 이루어짐

4. 소프트웨어 테스트 방법론 및 테스트 자동화 도구 이해

4-1. 소프트웨어 테스트 개요 및 분류
- 소프트웨어 테스트에 대한 기본 개념과 테스트 기법을 이해함
- 소프트웨어 테스트의 분류를 화이트 박스, 블랙박스로 나누었음
- (중요) 테스트 설계 권한에 따른 분류와 테스트 케이스 작성 방법에 대한 이해를 함
- 애플리케이션 테스트 시나리오 작성에 대한 내용을 살펴봄

4-2. 테스트 환경 구축 및 테스트 계획
- 애플리케이션 테스트 시나리오 작성에서 테스트 시나리오의 개념적 부분과 작성된 유의사항을 이해함
- 테스트 환경 구축에 대한 개념과 유의사항을 학습함
- (중요) 테스트 결과에 대한 분석을 통해 테스트의 충분성 검증 및 결함 개선 조치 사항을 작성할 수 있음

4-3. 애플리케이션 통합 테스트 및 테스트 자동화 도구
- 애플리케이션 통합 테스트의 수행과 그 결과를 분석함
- (중요) 애플리케이션 통합 테스트의 계획에 따라 통합 모듈 및 인터페이스가 요구사항을 충족하는지 테스트함
- 테스트 자동화 도구에 대한 개념을 이해하고, 이를 통해 반복적인 테스트 작업을 스크립트 형태로 구현함
- 테스트 자동화 도구를 활용하면 테스트 시간을 줄이고 인력 투입 비율을 낮출 수 있음

5. 소프트웨어 테스트 도구의 종류와 기능

5-1. 테스트 도구의 분류 및 개념 이해
- 소프트웨어 테스트 도구의 분류를 이해하고 있음
- (중요) 자동화 도구, 테스트 통제 도구, 테스트 장치, 테스트 관리 도구 등을 소개함
- 각 도구의 특징과 사용 목적인 설명하고 있음
- 테스트 도구에 대한 기본적인 이해가 요구됨

5-2. 자동화 도구와 테스트 관리 도구의 세부적인 기능
- 자동화 도구와 테스트 관리 도구에 대한 세부적인 기능과 용도를 설명함
- 테스트 자동화 도구의 유형과 그들의 기능을 알아봄
- (중요) 테스트 관리 도구의 기능과 이를 사용하는 방법을 설명함
- 결함 추적 관리 도구와 통합 테스트 도구의 세부 기능을 알아봄

5-3. 테스트 장치와 테스트 수행 도구에 대한 설명
- 테스트 장치와 테스트 수행 도구에 대한 구체적인 설명 제공함
- 테스트 케이스 생성과 테스트 수행에 필요한 자동화 도구 유형을 설명함
- (중요) 테스트의 실행 및 로깅 지원 도구와 그 사용 방법에 대해 알아봄
- 각 도구의 용도와 그들을 어떻게 사용하는지에 대한 정보를 제공함

6. 소프트웨어 통합 테스트

6-1. 테스트의 개요
- 프로그램 결함 발견 시 테스트로 이를 개선함
- 테스트는 비용, 일정, 조직 제약을 고려해 계획해야 함
- (중요) 테스트 시, '의도하지 않은 부작용 발생 안 하도록'을 목표로 해야 함
- 소프트웨어 결함과 오류, 실행 실패를 검사하는 것이 테스트임
- 테스트 후, 결함을 재발하지 않도록 해야 함

6-2. 테스트 유형
- 단일 모듈을 다른 모듈과 연계한 통합 테스트가 있음
- (중요) 통합 테스트는 단위, 통합, 시스템, 인수 테스트로 나뉨
- 시스템 테스트는 설계 시점의 결함을, 인수 테스트는 시스템이 완성된 후에 수행함
- 통합 테스트는 여러 테스트 유형을 통합한 것임
- 인수 테스트는 '입력' 부분을 테스트하는 것임

6-3. 테스트 진행과 결함 관리
- 테스트의 완료 조건은 계획 단계에서 정의해야 함
- 테스트 결과 분석을 통해 결함과 오류를 발견함
- (중요) 결함 관리 활동은 단계별로 테스트를 진행하며, 유사결함 발견 시 처리 시간 단축을 위해 추적해야 함
- (중요) 테스트 결함 관리 도구는 자동화 도구, 결함 관리 도구, 결함 추적 관리 활동으로 나뉨
- 결함 관리 도구를 도입할 때 고려해야 할 사항들이 있음

7. 애플리케이션 성능 개선과 알고리즘 이해

7-1. 애플리케이션 통합 테스트의 이해
- 애플리케이션 통합 테스트에 대한 개념과 수행 방법 소개함
- 테스트 자동화 도구와 관련된 도구에 대해 살펴봄
- (중요) 애플리케이션 테스트 결과 분석에서는 소프트웨어 결함과 관련된 용어들을 다룸
- 테스트 완료 조건과 테스트 결함에 대한 개념 및 자동화 결함 관리 도구들을 소개함

7-2. 애플리케이션 성능 개선과 알고리즘의 개념
- 애플리케이션 성능 개선을 위한 코드 최적화 기법과 아키텍처 조정 설명함
- 호출 순서 조정을 통한 성능 개선 방법을 소개함
- 프로그래밍 언어 특성에 대한 이해를 통한 소스 코드 품질 분석 도구 활용법을 제시함
- 알고리즘에 대한 복잡도 분석 방법을 소개함

7-3. 알고리즘의 종류와 특징
- (중요) 알고리즘의 세 가지 종류인 정렬 알고리즘, 그래프 알고리즘, 탐색 알고리즘 소개함
- 각 알고리즘의 특징과 활용 예제를 제공함
- 알고리즘의 한 회전 시 어떤 변화가 일어나는지 설명함
- 선택 정렬과 삽입 정렬에 대한 설명을 통해 알고리즘의 회전 시 세부적으로 어떻게 작동하는지 이해함

8. 그래프 알고리즘과 그래프 탐색 방법론 이해

8-1. 삽입 정렬과 버블 정렬의 이해
- 삽입 정렬은 두 수를 순차적으로 비교해 적절한 위치에 삽입하는 알고리즘임
- (중요) 삽입 정렬을 사용하면 기존의 수는 밀려나고, 새로운 수는 적절한 위치에 삽입됨
- 버블 정렬은 큰 수를 가장 뒤로 보내 놓고 정렬하는 알고리즘임
- (중요) 버블 정렬은 네 개의 수를 놓고 작은 수부터 시작해 큰 수를 찾는 방식으로 진행됨

8-2. 그래프 알고리즘의 이해
- 그래프는 노드(정점)와 노드 간의 관계를 표현한 자료 구조임
- 무방향 그래프, 방향 그래프 등이 있으며, 최대 간선 수는 공식에 따라 구할 수 있음
- (중요) 방향 그래프의 최대 간선 수는 무방향 그래프의 최대 간선 수에 2를 곱한 값임
- 그래프 탐색 방법에는 깊이 우선 탐색과 너비 우선 탐색이 있음

8-3. 깊이 우선 탐색과 너비 우선 탐색의 이해
- 깊이 우선 탐색은 가장 깊은 노드를 탐색하며, 너비 우선 탐색은 가장 가까운 노드를 탐색함
- 스택 자료 구조를 이용하여 깊이 우선 탐색을 진행함
- (중요) 깊이 우선 탐색은 그래프의 모든 노드를 재귀적으로 탐색하며, 연결된 노드들을 순차적으로 재탐색함
- 너비 우선 탐색은 깊이 우선 탐색과 동일하지만, 탐색 순서를 거꾸로 진행함

9. 그래프 탐색 알고리즘 이해

9-1. 그래프 탐색의 개념과 종류
- 그래프 탐색은 그래프에서 특정 시작점에서 다른 점에 이르는 최단 경로를 찾는 알고리즘임
- 그래프 탐색의 종류로는 깊이 우선 탐색과 너비 우선 탐색이 있음
- 깊이 우선 탐색은 깊이 있는 곳부터 시작해 가면서 이진 탐색과 동일한 방식으로 진행함
- 너비 우선 탐색은 넓이 있는 곳부터 시작해 가며 이진 탐색과 같은 방식으로 진행하지 않음
- (중요) 그래프 탐색에서는 각 점에서 다음 점으로 이동할 때,  이동된 점에서의 그래프 탐색을 저장해놓음

9-2. 그래프 탐색 알고리즘의 예시와 특징
- 그래프 탐색 알고리즘의 예시로는 이진 탐색, 단위별 깊이 우선 탐색, 스택 구조 등이 있음
- (중요) 이진 탐색은 정렬된 그래프에서 시작점에서 찾는 값이 더 크다면, 그 값을 더 큰 값으로 교환함
- 단위별 깊이 우선 탐색은 그래프의 각 노드에서 깊이 있는 곳을 찾아가면서 진행함
- 스택 구조는 그래프 탐색 중 가장 단위 별로 깊이 있는 곳을 찾아가는 알고리즘임

9-3. 그래프 탐색 알고리즘의 적용
- 그래프 탐색 알고리즘은 인공지능에서 채택되어 효율적인 데이터 검색을 가능하게 함
- 선택 정렬 알고리즘은 전체 그래프에서 가장 작은 값과 가장 큰 값의 차이를 이용해 탐색을 진행함
- 그래프 탐색 알고리즘은 어떤 입력 데이터 집합에서 특정 조건을 만족하는 하나의 데이터를 찾는 데에 사용될 수 있음
- (중요) 각 알고리즘은 입력 데이터의 성질에 따라 다르게 적용되어야 하며, 입력 데이터의 특성에 따라 탐색 시간이 달라짐

10. 소스코드 최적화와 분석 도구 이해

10-1. 소스코드 최적화 개요
- 소스코드 최적화는 읽기 쉽고 변경 및 추가가 쉬운 코드를 만드는 것을 목표로 함
- (중요) 클린코드는 좋은 코드로, 가독성이 높고 단순하며, 의존성이 낮아야 함
- 클린코드 작성 원칙에는 가독성, 단순성, 중복 최소화 등이 있음
- 나쁜코드는 중복 코드 제거와 제어 로직의 정제가 되지 않고, 코드의 복잡도가 높음

10-2. 소스코드 품질 분석 도구 이해
- 소스코드 품질 분석 도구는 코드의 실행 없이 코딩 표준 준수 여부를 확인하는 도구와 애플리케이션 실행 시 메모리 누수 현황을 분석하는 도구로 나뉨
- 정적 분석 도구는 코드 분석 도구로서, 프로그램 실행 없이 코드의 버그나 데드코드를 분석함
- (중요) 동적 분석 도구는 애플리케이션 실행 시 메모리 누수 현황을 발견하고 스트라이드 결함 등을 분석함

10-3. 소스코드 최적화 기법과 분석 도구의 세부적인 사용법
- (중요) 소스코드 최적화 기법에는 클래스 분할, 배치, 결합, 코딩 형식, 변수 전원, 주석, 설명 문구 등이 있음
- 각 도구의 사용법은 주로 프로그램의 성능 개선을 위해 사용되며, 각 도구는 코드의 복잡도나 코딩 스타일 등을 분석함
- 소스코드 품질 분석 도구의 사용은 코딩의 가독성, 단순성, 의존성 등을 고려해야 함
- 각 분석 도구는 각기 다른 목표를 가지고 있어, 상황에 맞게 적절히 사용해야 함

11. 소프트웨어 분석

11-1. 알고리즘과 분석 도구
- 알고리즘은 정해진 절차나 방법을 공식화한 형태로 표현된 것임
- 선택정렬, 삽입정렬, 버블정렬, 그래프 탐색 등 정렬 알고리즘을 소개함
- 탐색 알고리즘은 깊이 우선 탐색과 너비우전 탐색이 있음
- (중요) 애플리케이션 성능 개선을 위해선 소스 코드 최적화가 중요함
- 소스 코드 최적화는 읽기 쉽고 변경 및 수정이 쉬운 클린코드를 작성하는 것임

11-2. 정적 분석 도구
- 정적 분석 도구는 소스 코드의 성능을 분석하고 문제점을 찾는 데 사용됨
- (중요) 파이썬, 파이브, 대수학, 소프트웨어 협업, 메타토리즘 등이 대표적 정적 분석 도구임
- 소프트웨어의 성능을 평가하고 개선하기 위해 정적 분석이 필요함
- 분석 도구를 통해 소스 코드의 성능, 가용 메모리, 실행 시간 등을 분석할 수 있음
- 분석 결과를 바탕으로 애플리케이션의 성능 개선안을 도출할 수 있음

11-3. 동적 분석 도구
- 동적 분석 도구는 소스 코드의 성능과 가용 메모리, 실행 시간 등을 분석하는 도구임
- 아발렌드, 발그린드, 캐비, 성능 향상 패턴 분석, 인공지능 분석 등이 있음
- (중요) 분석 도구를 통해 소스 코드의 성능 평가, 개선안 도출, 문제점 진단이 가능함
- 소스 코드의 동적 성능을 분석하여 효율적인 개발 전략을 수립할 수 있음
- 동적 분석 도구는 애플리케이션의 성능 평가, 개선, 문제점 진단에 효과적임

00:02
소프트웨어 개발 네 번째 학습 능력 단위인 애플리케이션 테스트 관리에 대해 살펴보도록 하겠는데요. 애플리케이션 테스트관리는 총 3개의 학습능력 단위 요소로 구분이 되어집니다. 그 중에서 첫 번째 애플리케이션 테스트 케이스 설계에 대해 먼저 살펴보도록 하겠습니다. 자 애플리케이션 테스트 케이스 설계 학습 목표는 개발하고자 하는 응용 소프트웨어의 특성을 반영한 테스트 방식 대상 범위를 결정하여 테스트 케이스를 작성할 수 있다. 둘째, 개발하고자 하는 응용 소프트웨어의 특성을 반영한 텍스트 방식 대상과 범위가 적용된 시나리오를 정의할 수 있다. 여기서 이야기하는 건 테스트 시나리오를 이야기합니다.

00:52
그리고 애플리케이션 테스트 수행에 필요한 테스트 데이터 테스트 시작 및 종료 조건을 준비할 수 있다. 입니다. 세부 학습 내용은 두 파트로 애플리케이션 테스트 케이스 작성 그리고 애플리케이션 테스트 시나리오 작성이 되겠는데요. 용어 사정과 관련해서는요 두 가지 용어로 테스트 케이스와 테스트 차 이거 먼저 정리하고 세부 내용 보도록 하겠습니다. 테스트 케이스라는 부분은 테스트의 설계 산출물로서 특정한 프로그램의 일부분 또는 경로에 따라서 수행하거나 특정한 요구사항을 준수하는지 확인하기 위해 설계되어진 입력값 실행조건 기대 결과로 구성된 텍스트 항목에 대한 세부적인 명세서 세부 내용을 기록한 문서가 되겠습니다.

01:46
둘째로, 테스트 시나리오라는 부분은 테스트 케이스하고 차이점은요, 테스트 시나리오 테스트 케이스를 묶어 놓은 집합이 테스트 시나리오입니다. 그래서 나중에 저희 양식을 보도록 하겠는데 테스트 시나리오 내에 보면 여러 다양한 테스트 케이스들이 포함되어 있다는 걸 알 수 있겠고요. 테스트 케이스의 동작 순서를 기술한 문서이고 테스트를 위한 절차를 명세한 문서입니다. 절차 자 세부내용으로서요 애플리케이션 테스트 케이스 작성으로서 먼저 소프트웨어 테스트 개념적인 부분 먼저 정리하도록 하겠습니다. 소프트웨어 테스트의 개념인데요.

02:28
만든 구현된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능의 동작과 성능 사용성 안정성 등을 만족하는지 확인하기 위해서 소프트웨어의 결함을 찾아내는 활동이 되겠습니다. 기본 전제조건은요, 모든 소프트웨어는 결함을 가지고 있어 라는 걸 전제로 해서 테스트가 진행되어집니다. 소프트웨어 테스팅의 필요성인데요. 세 가지 관점입니다.

02:58
오류 발견 관점 오류 발견 관점은 프로그램에 잠재되어진 오류를 발견하고 이를 수정해서 올바른 프로그램 개발을 할 수 있도록 하는 활동이고 두 번째 오류를 예방하는 관점 프로그램 실행 전에 코드 리뷰나 동료 검토 인스펙션 등을 통해서 오류를 사전에 발견하는 예방 차원의 활동이 되겠고 그리고 세 번째 품질 향상의 관점 사용자 요구사항 및 기대 수준을 만족할 수 있도록 반복적 테스트를 거쳐서 제품의 신뢰도를 높여가는 향상하는 품질 보증 활동이 소프트웨어 테스트가 되겠다. 라는 부분입니다. 다음으로, 소프트웨어 테스트의 기본 원칙인데요. 시험에 출제할 만한 대상인 것 같아요. 시험 내기가 좀 용이한 파트인 것 같습니다.

03:54
소프트웨어 테스트의 기본 원칙 첫 번째 테스팅은 결함이 존재함을 밝히는 활동이야 그리고 두 번째 완벽한 테스팅은 불가능하다 완벽한 프로그램 없다. 리스크 분석과 결정된 우선순위에 따라서 테스트를 집중하자 그리고 테스트는 언제 개발 초기부터 시작합니다. 결함 집중이라고 되어 있는 부분은 결함이 소수 특정 모듈에 집중적으로 발생할 수가 있다는 부분이고 살충제 패러독스 살충제를 계속 뿌리면 해당 곤충이나 해충이 면역성이 생겨요 그것처럼 테스트도 동일한 테스트만 계속하다 보면 내성 문제가 발생할 수 있기 때문에 주기적으로 테스트 케이스를 리뷰하고 개선해 나갈 필요성이 있다는 부분이고 테스트 테스팅은 정황에 의존적이다. 즉 테스트 대상에 따라서요 테스트를 다르게 수행할 필요가 있다.

04:48
라는 부분이고 마지막으로, 오류 부재 궤변이다 라고 하는 부분은 오류가 없어 개발자 입장에서는 개발 소스 코드에 문제가 전혀 없어 하지만 그 응용 프로그램을 사용하는 사용자 입장에서는 해당 요구사항을 만족하지 못하는데 그게 무슨 소용이야 이렇게 될 수 있거든요. 네, 그렇기 때문에 사용자의 요구사항을 만족하지 못하는 결함을 찾고 수정하는 건 크게 의미가 없다는 게 오류 부재의 궤변입니다. 다음 소프트웨어 테스트의 프로세스인데요. 크게 보면 계획 수립 수행 결과 보고 세부적으로는 계획 수립 부분에서 테스트 계획 단계의 내용 부분은 좀 집중적으로 볼 필요가 있을 것 같고, 나머지는 큰 덩어리로 이렇게 정리하시면 될 것 같아요. 계획 수립 및 테스트 계획에서는 어떤 내용을 수행하느냐 테스트 목적과 범위를 정의한다. 그리고 대상 시스템의 구조를 파악한다.

05:48
그리고 테스트 일정을 정한다. 그리고 테스트 종료 조건을 정의하고 그리고 조직 및 비용 산정을 하는 게 어디에서 테스트 계획 단계에서 진행되어지는 부분이고요. 수행 단계에서는 테스트 분석 및 디자인 테스트 케이스 및 시나리오 작성 그리고 테스트 수행을 하고 결과 보고 단계에서는 테스트한 결과에 대한 평가 및 리포팅 보고서 작성이 있겠습니다. 소프트웨어 테스트의 산출물 네 가지를 제시해 놓았는데 지금 이 파트에서 저희가 비중도 있게 살펴봐야 될 대상은 테스트 케이스하고 테스트 시나리오죠 자 그리고 테스트 계획서는 앞서 설명드렸던 것처럼 테스트 목적과 범위를 정의하고 대상 시스템의 구조를 파악하고 테스트 수행 절차를 정하고 테스트 일정 조직의 역할 및 책임 정의 종료 조건을 정의하는 등 테스트 수행을 계획한 문서가 테스트 계획서가 되겠습니다.

06:46
그리고 테스트 케이스는 테스트를 설계한 산출물이나 입력값 실행조건 기대결과로 구성된 텍스트 항목의 명세서가 되겠고요. 테스트시나리오는 여러 개의 테스트 케이스의 집합이면서 내용상에 보면 여러 개의 테스트 케이스들이 해당 테스트 시나리노에 들어가 있어요. 그리고 해당 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서가 테스트 시나리오입니다. 마지막으로, 테스트 결과서는 테스트 결과를 정리한 문서 이렇게 정리하고 넘어가겠습니다. 자 테스트 소프트웨어 테스트의 유형인데요. 소프트웨어 테스트를 다양한 기준으로 분류할 수가 있습니다.

07:31
이 부분도 시험에 자주 나오는 파트이기 때문에 잘 정리하도록 하겠는데 자 테스트는 첫 번째 실행하느냐 실행시키지 않느냐 프로그램을요 테스트할 때 프로그램의 실행 여부에 따라서요 실행하지 않고 테스트하는 거야. 할 수 있어 정적 테스트고 프로그램을 실행하면서 테스트해야 돼 동적 테스트 다시 동적 테스트는 분석 대상에 따라서 자 화이트박스 테스트가 있고요. 블랙박스 테스트가 있습니다. 화이트박스 테스트는 하얗다는 거죠. 투명하다고 생각하시면 될 것 같아요. 그래서 해당 프로그램 소스 자체를 보면서 테스트하는 게 화이트 박스 테스트인데 구조 기반 테스트 또는 구현 기반 테스트라고도 합니다. 이에 반해서요. 블랙박스 테스트는요 깜깜해요.

08:29
검은 박스 안에 뭐가 들어있는지 모르겠어요. 해당 소스를 보면서 테스트하는 게 아니라 해당 내용을 입력했을 때 출력 결과치가 어떻게 되느냐 라는 부분 형태로 외부 입장에서 구현의 기능을 보면서 테스트하는데 명세기반 테스트라고 합니다. 명세기반 테스트 종류는 뒤에서 살펴보겠지만, 동치분할 경계값 원인효과 그래프 기법 이런 것들이 명세기반 테스트에 해당되어집니다. 그리고 관점적인 측면에서 보는 관점에 따라서 사용자 시각에서 테스트하는 부분이 확인입니다. 밸리데이션 테스트고요. 개발자 입장에서 테스트하는 게 검증입니다.

09:16
파리케이션 이렇게 나눌 수 있고 사용 목적에 따라서는 회귀 테스트 어떤 오류가 있었을 때 그게 다시 정상적으로 되기까지 어느 정도 걸리는지 회복 테스트 그다음에 네 회복 테스트 그 다음에 안전 테스트 강도 테스트 과부하를 주면서 어느 정도 견디는지 그리고 성능 테스트 그리고 구조 테스트 회귀 테스트 이 회귀 테스트는 저희 통합 테스트 파트에서요 중요도가 있는 테스트의 종류입니다. 수정의 영향도를 테스트한다. 마지막으로, 병행 테스트는 기존 시스템과 변경된 시스템 간에 값을 넣어서 결과를 비교한다든지 할 때 사용하는 테스트 방식입니다. 자 정적 테스트 프로그램 실행 없이 테스트하는 거야.

10:06
말씀드렸죠 네 프로그램의 코드를 실행하지 않고 여러 참여자가 모여서 소프트웨어 개발 중에 생성되는 모든 명세나 코드를 검토한 뒤 다시 기술적 검토 기법과 관리자 검토 기법으로 나눌 수가 있습니다. 기술적인 검토기법은 개별검토 동료 검토 피어 리뷰 그리고 검토 회의 워크스루 검토 회의 워크스루 그리고 관리자 기법 검토 기법으로 인스펙션 검사 그리고 오디트 감사 이러한 부분들이 정적 테스트에 해당되어집니다. 이에 반해서 동적 테스트는 세부적으로 살펴보면 테스트 데이터를 이용을 해서 프로그램을 실행하면서 테스트하는 거야. 다시 양분하해서요. 영세 기반 테스트가 있고 구조 기반 테스트가 있다. 영세 기반 테스트라고도 하면서 블랙박스 테스트라고도 합니다.

11:03
그리고 구조 기반 테스트는 구현 기반 테스트라고도 하면서 화이트 박스 테스트가 대표입니다. 종류적인 부분도 고려해서 시험에 나올 확률이 높아요. 그래서 명세 기반 테스트는 소스코드를 보지 않으면서 오류를 찾는 형태인데 테스트 방식은 신텍스 동등분할 경계값 분석 원인 결과 그래프 의사결정 테이블 그리고 페어와 같은 테스트 방법이 어디에 영세 기반 테스트 즉 블랙박스 테스트에 해당된다. 그리고 구현 기반 구조 기반 테스트는 화이트 박스 테스트 방식인데 프로그램 소스를 보면서 테스트를 합니다. 흐름적인 측면에 대한 구문 기반 결정 기반 조건 기반 이러한 부분들이 화이트 박스 테스트에 해당되어집니다.

12:02
자 그다음에 테스트 케이스 개념 좀 더 구체적으로 살펴보면 반복해서 저희가 몇 번 용어에서부터 계속 언급하고 있는데, 중요하기 때문에 그렇습니다. 테스트 케이스는 명세 기반의 테스트 설계의 산출물로서 특정한 프로그램의 일부분 또는 경로에 따라 수행하거나 특정 요구사항을 준수하는지 확인하기 위해 설계된 입력값 실행요건 기대 결과로 구성된 테스트 항목 명세서다 테스트 케이스 사례를 이렇게 테스트 케이스 개념에 대해서 살펴보면 명세 기반 테스트 설계 산출물로 특정한 프로그램의 일부분 또는 경로에 따라 수행하거나 특정한 요구사항을 준수하는지 확인하기 위해서 설계된 입력값 실행 조건 기대 결과로 구성된 테스트 항목 명세서가 되겠고요.

12:59
옆에 보면 테스트 케이스가 있는데, 양식이 작기 때문에 확대해서 보면서 간단히 살펴보도록 하겠습니다. 어떠한 내용이 포함되어지느냐 테스트 케이스 문서에는요 프로젝트 이름이나 단계명 단위 테스트 작성자 승인 쭉 있고 해당 테스트 아이디 그리고 테스트 목적 테스트 기능 일례로요 사용자 아이디와 패스워드 검증 관련되어진 테스트 사례인데 로그인 테스트예요. 입력하는 데이터는 사용자 아이디와 패스워드야 그리고 테스트의 단계는요 사용자가 아이디하고 패스워드 없이 로그인을 시도하게 되면 예상되는 출력치는 오류 메시지가 띄워줘야 돼요. 사용자가 아이디만 입력했을 때도 오류 메시지 비밀번호 입력 안 했다. 와 같은 이러한 세부적인 단계별 예상 출력치를 기재를 하고요. 테스트 환경은 이러한 환경이야 그리고 전제조건은 어떠한 부분이다. 라는 부분이 포함되어집니다. 테스트 케이스 양식의 예였습니다.

14:01
테스트 케이스를 작성하는 절차입니다. 먼저 테스트 계획 검토 및 자료 확보 크게 보겠습니다. 테스트 계획 검토 및 자료 확보 두 번째 위험 평가 및 우선순위 결정 네 결함 해결을 위해서 상대적 중요성과 테스트에 대한 초점을 결정을 하는 게 위험 평가 및 우선순위 결정이고요. 세 번째 테스트 요구사항 정의 시스템 요구사항이라든지. 테스트 대상 재검토나 테스트할 특성 조건 기능 같은 것들을 식별료 분석합니다. 그리고 테스트 구조 설계 및 테스트 방법을 결정합니다. 그다음에 테스트 케이스를 정의하고요. 마지막으로, 테스트 케이스 타당 확인 및 유지보수 순으로 테스트 케이스를 작성을 합니다. 자 관련해서 테스트 오라클이라는 용어가 있는데요.

14:51
테스트 오라클이라고 하는 부분은 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의되어진 참값을 입력하여 비교하는 기법 및 활동을 테스트 오라클이라고 하는데요. 종류는 참 오라클 샘플링 오라클 휴리스틱 오라클 일관성 검사 오라클이 있는데, 참 오라클이라고 하는 부분은 모든 입력값에 대해서 기대하는 결과를 생성을 한다. 그래서 이 케이스 같은 경우에는 굉장히 정밀하게 테스트를 해야 되는 케이스들 항공기 임베디드 발전소 소프트웨어 같은 것들은 차모라클 방식으로 테스트를 적용을 시키고 그렇지 않고 샘플링이나 휴리스틱 같은 경우에는 샘플링은 말 그대로 몇 개의 입력값만 샘플링 해가지고 뽑아가지고, 해당 결과를 제공하는 오라클이고 휴레스틱은 추정입니다.

15:48
샘플링 오라클을 통해서 특정 입력값에 대한 걸 제공하고 나머지 값에 대해서는 추정으로 처리하는 오라클 방식이 휴레스틱이고요. 일관성 검사는 애플리케이션의 변경이 있을 때 수행 전 후 결과값이 동일한지를 확인하는 오라클이 되겠습니다. 테스트 레벨인데요. 테스트는 본인 모델이라고 하는 부분 자체는 소프트웨어 개발 방법론 중에 하나인데 폭포수 모델을 어 폭포스 모델에 테스트 절차를 추가시킨 모델입니다. 요구사항 분석 기능명세 분석 설계 개발 이 순서로 진행되어지는데 개발 단계에서의 테스트가 단위테스트가 진행이 됩니다.

16:37
개발단계에서는 그다음에 설계에서의 내용적인 부분이 제대로 반영이 됐는지는 언제 통합 테스트에서요 밸리데이션하고 밸리피케이션은 틀리다 말씀을 드렸죠 밸리데이션은 확인입니다. 사용자 입장에서의 확인이고요. 그다음에 베리케이션은 개별자 입장에서의 테스트죠 그다음에 시스템 테스트에서는 기능 영세 분석인데 기능적인 부분뿐만 아니라 비기능적인 부분도 제대로 해당 갖추는지를 테스트하는 게 시스템 테스트 인수 테스트는 다 개발하고 사용자한테 넘겨줘서 사용자가 실제 운영해보면서 테스트하는 게 인수 테스트가 되겠습니다. 단계적인 부분 자체는요 이 순서대로 진행되어집니다. 단위 테스트 통합 테스트 시스템 인수 테스트 순입니다. 테스트 단계별 기능 점검 사항인데요. 검증 사항인데요. 단위 테스트는 프로그램의 기본 단위 모듈 위주로 테스트한다.

17:36
그리고 통합 테스트는 모듈과 모듈 간의 인터페이스 오류라든지 모듈 간의 상호작용 및 연계 동작 여부를 테스트하는 방식이고 시스템 테스트는 시스템 전체적인 측면에서 정상적으로 작동하는지를 보는데 단순한 기능적인 것뿐만 아니라 비기능적인 측면에 대한 명세도 확인을 한다는 부분을 좀 기억할 필요성이 있습니다. 마지막으로, 인수 테스트는 사용자가 시스템이 예상대로 동작하는지를 실제적으로 운용해보면서 테스트한다. 그래서 인수 테스트는 운영 테스트라고도 합니다. 자 퀴즈 문제 풀어보면요 소프트웨어 테스트 1 기본 원칙에 적절하지 않은 거 골라라 첫 번째 테스팅은 결함이 존재함을 밝히는 활동이다.

18:32
모든 소프트웨어는 결함이 존재한다라는 걸 전제로 하고 결함이 있는지 밝히는 활동 맞습니다. 완벽한 테스팅은 불가능해 아닌 것 같지만 맞습니다. 테스팅을 완벽하게 하는 건 불가능하다 체스팅은 개발 후반에 시작한다. 명백하게 틀렸죠 체스팅은 개발 초반부터 시작을 한다. 그래서 3번이 틀렸고 결함이 소수의 특정 모듈에 집중되어 존재한다. 다음 애플리케이션 테스트 케이스와 관련되어진 두 번째 퀴즈입니다. 테스트를 위한 설계 산출물로 응용 소프트웨어가 사용자 요구사항을 준수하는지 확인하기 위해 설계되어진 입력값 실행조건 기대 결과로 구성된 테스트 항목의 명세서는 무엇인가 테스트 케이스였죠 2번이 정답입니다. 다음 애플리케이션 테스트 시나리오 작성에 대해서 살펴보도록 하겠는데요.

19:32
테스트 시나리오에 대한 개념입니다. 테스트 시나리오는 테스트 수행을 위한 여러 테스트 케이스의 집합이고 테스트 케이스의 동작 순서를 기술한 문서인데 테스트를 위한 절차를 명세하고 있다. 마찬가지 통합 테스트 시나리오 양식 예제 하나 같이 살펴보면서 테스트 시나리오 파악해 보도록 하겠는데 테스트 시나리오에는요 보다시피 다양한 테스트 케이스가 여러 개가 포함되어 있어요. 그래서 번호 식별번호로 해서 1번은 메뉴 경로인데 테스트 케이스는 뭔데 검색 조건을 입력하고 조회 버튼을 클릭을 한다.

20:10
예상 결과는 검색 결과가 조회되어야 돼 또는 또는 신규 버튼을 클릭했을 때 또는 행 추가 버튼을 클릭했을 때 예상 결과는 조직 개편을 입력이 가능하고 이런 식으로 다양한 테스트 케이스가 포함이 되어 있고 그다음에 절차적인 측면적인 내용도 같이 포함이 되어 있습니다. 그래서 테스트 시나리오는 여러 케이스의 집합이고 테스트 케이스의 동작 순서를 기술한 문서다 이렇게 개념 잡을 수 있겠습니다. 테스트 시나리오를 작성할 때 주의사항입니다. 유의사항 테스트 항목을 하나의 시나리오를 모두 작성하지 말고 시스템별로 그리고 모듈별로 항목별로 테스트 시나리오를 분리해서 작성하는 것이 좋겠다.

21:02
둘째, 고객의 요구사항과 설계 문서 등을 토대로 테스트 시나리오를 작성하자 셋째, 텍스트 항목은 식별자 번호와 순서 번호 테스트 케이스 테스트 데이터 그리고 테스트 케이스 예상 결과 확인 등의 항목을 포함해서 작성한다. 마지막으로, 작성된 테스트 시나리오는 기본적으로 테스트 그룹 미디어의 검토 작업을 통해 수정하는데 필요에 따라서는 프로젝트 관리자나 품질 보정 개발 그룹의 검토를 거쳐서 수정 및 작성을 완료하는 경우도 있습니다. 테스트 환경에 대한 구축 개념입니다.

21:42
개발되어진 응용 소프트웨어가 실제 운영되는 시스템에서 정상적으로 작동하는지 테스트할 수 있도록 실제 운영 시스템과 동일하기 또는 유사한 어떤 사양의 하드웨어 소프트웨어 네트워크 등의 시설을 구축하는 활동이 테스트 환경 구축이 되겠고요. 테스트 환경 구축할 때 유의사항은요, 우선 테스트 환경을 분류하는 것이 좋겠다. 개발하고 있는 개발을 위한 개발환경과 테스트를 위한 환경을 같이 했을 때 혼용상에서 어떤 문제점이 생길 수 있으니까 개발을 위한 개발환경과 테스트를 위한 전용 테스트 환경은 물리적으로 분리하는 것이 좋겠다. 그런데 비용적인 부분이라든지.

22:29
이러한 것들이 부담될 수 있으니까 그 케이스는 가상머신의 서버나 클라우드 환경을 이용하는 것도 괜찮다 고려해보자 별도의 테스트 환경을 구축하기 어려운 경우는 가상머신 기반의 서버나 클라우드 환경을 이용해서 테스트할 때만 일시적으로 운영하는 것도 좋은 방법이 되겠습니다. 셋째로, 네트워크 분할과 공유디스크 관리인데요. 물리적인 환경 분리가 불가능하다면 vran과 같은 가상 line virtural len과 같은 소프트웨어를 사용을 해서 논리적으로 분할할 할 수도 있고 공유 디스크 이용 경우는 iosgragation과 같은 기법을 사용하는 것도 테스트 환경 구축할 때 고려하면 좋겠다.

23:18
마지막으로, 연동 시스템의 테스트 환경은요, 다른 시스템과 연동을 위한 시스템의 경우는 연동 시스템에 대한 테스트 환경이 별도로 구성을 하는 것이 바람직합니다. 자 마지막으로, 테스트 지식 체계인데요. 소프트웨어 테스트 관련되어진 국제 표준으로서는 iso ic 29119 모델이 있습니다.

23:44
구성된 내용을 보면 파트1은 개념과 정의 파트2는 테스트 프로세스 세 번째 파트는 테스트 문서화 내용 그리고 네 번째 파트는 테스트 기술 마지막으로, 키워드 기반 테스팅이 네 다섯 번째 포함되어 있는데, 세부 내용 간단하게 정리하면 개념과 정의라는 부분에는 어떤 게 전체 시리즈에 대한 가이드를 제공하는 부분인데 소프트웨어 테스트에 대한 개념과 조직 및 프로젝트 관점에서의 소프트웨어 테스팅에 대한 내용이 포함돼 있고 소프트웨어 생명 주기 모델에서의 일반적인 테스트 프로세스와 위험 기반 테스팅 그리고 테스트 서버 프로세스와 같은 내용이 포함돼 있습니다. 두 번째 파트인 테스트 프로세스 파트에서는 조직 테스트 관리 동적 테스트의 세 가지 수준의 다계층 프로세스 모델을 설명하고 있는데, 다계층 프로세스 모델 조직의 테스트 프로세스 테스트 관리 프로세스 동적 테스트 프로세스와 같은 내용이 포함되어 있습니다.

24:45
자 너무 깊게는 안 들어갈게요 테스트 지식 체계는 어떤 모델이야 이 정도만 이해하셔도 됩니다. 테스트문서와는 테스트 프로세스 단계별로 산출물에 대한 견본 제시 및 작성 방법에 대한 내용이 포함되어 있고요. 다섯 네 번째 테스트 기법은 저희가 생략하겠습니다. 앞단에서 저희가 테스트 분류적인 부분으로 먼저 살펴봤기 때문에 마지막 다섯 번째 키워드 주도 테스팅이 파트는 사전에 정의되어진 키워드의 모음으로 테스트 케이스를 만드는 것과 관련된 내용이 포함되어 있다. 이렇게 정리하겠습니다. 모의평가랑 문제풀이하면서 해당 학습했던 내용 정리하도록 하겠는데요. 첫번째 테스트 수행을 위한 여러 테스트 케이스의 집합이고 테스트 케이스의 동작 순서를 기술한 문서이면서 테스트의 절차를 명시한 문서는 뭔데 대상 문서는 테스트 시나리오가 되겠습니다. 4번이 정답이죠.

25:45
다음 다음 중 소프트웨어 테스트 기법의 분류에서 명세기반 테스트 기법이 아닌 것은 무엇인가 명세기반은 블랙박스 테스트 방식이었어요. 즉 소스를 보지 않고요. 테스트하는 방법 경계값 흐름 데이터 흐름 검사 자 여기서는 명세에 기반 테스트 기법이 아닌 걸 골라라 이렇게 돼 있습니다. 아닌 것은 경계값 분석 원인 결과 그래프 결정 테이블 테스팅은 맞고요. 데이터 흐름 검사는 아닙니다. 흐름에서는요 루프 검사도 있고요. 분기검사도 있고요. 조건검사도 있고 한데 제가 문제 구성을 뒤에 이어서 관련해서 다시 또 냈기 때문에 뒷문제에서 더 구체적으로 살펴보도록 할게요 우선은 명세기관 테스트가 아닌 거는 데이터 흐름 검사입니다.

26:39
그럼 얘는 뭔데 얘는 구조 기반 테스트 또는 화이트 박스 테스트에 해당되어집니다. 이어지는 문제가 이겁니다. 화이트박스 검사기법에 해당하는 것만 짝지어진 것은 골라라 이 말이에요. 6개 보기 항목이 제시되어져 있는데, 방금 저희가 살펴봤던 명세 기반 테스트에 해당되는 거 걸러내면 나머지가 화이트 기반 검사기법이 되겠죠. 동치분할 원칙분할검사 경계값 검사 원인효과 그래픽 기법 비교검사 이 네 가지는 명세 기반 즉 블랙박스 검사 기법에 해당되고 데이터 흐름검사와 루프검사 세부적으로는요 데이터 흐름검사를 상세화하면 루프 검사 조건검사 분기검사 이러한 것들이 여기에 해당되어집니다.

27:38
그래서 화이트박스 검사 기법에 해당되는 것은 두 가지 기역 니은 1번이 정답입니다. 4번입니다. 단계별 소프트웨어 테스트 진행 순서로 옳은 것은 통합 단위 시스템 돼 있으면 제일 작은 단위 단위 테스트부터 먼저 하고요. 그 다음은 통합 테스트 시스템 테스트 마지막에 인수 테스트 그래서 정답은 3번입니다. 4번입니다. 테스트 프로세스 중에 테스트 계획 단계 계획 단계 수행 단계 결과 이렇게 있었죠. 테스트 계획 단계에서 수행하는 활동이 아닌 것을 골라라 첫 번째 어떤 테스트 기법을 선정하여 시험할 입력값을 얻을 건지를 정한다 라고 하는 부분은 실제적으로 얘는 계획이 아니라 수행 단계입니다. 수행 단계이기 때문에 1번이 계획 단계 활동이 아니고요. 테스트 목표 수립 테스트 수행하는 데 소요되는 노력을 정의한다.

28:37
효율적인 테스트를 위한 전략 일정 등을 파악한다. 테스트 계획 단계가 되겠죠. 핵심 정리로 마무리하겠습니다. 애플리케이션 테스트 케이스 작성 다뤘던 내용 중에 테스트에 대한 기본 개념 그리고 테스트 기법 파악 테스트 케이스 작성하는 거 저희가 살펴봤고요. 그리고 소프트웨어 테스트 기법의 분류에서는 소프트웨어의 내부 구조 참조 여부에 따른 분류는 뭐였느냐 화이트 박스 블랙박스 이렇게 나눴었고요. 테스트 설계 권한에 따른 분류들도 있었고, 테스트 케이스 테스트 케이스에 대한 작성 방법에 대한 내용을 좀 더 구체적으로 살펴봤었어요.

29:25
애플리케이션 테스트 시나리오 작성에서는요 테스트 시나리오는 뭔데 개념적인 부분과 작성된 유의사항 살펴봤었고 그리고 테스트 환경 구축에 대한 개념과 유의사항 마지막으로, 테스트 지식체계로서 소프트웨어 테스트 관련 국제 표준인 isoic29119 모델에 대한 구성적인 부분까지 살펴봤습니다. 소프트웨어 개발 애플리케이션 테스트 관리 두 번째 애플리케이션 통합 테스트에 대해 살펴보도록 하겠습니다. 학습 목표는요 개발자 통합 테스트 계획에 따라 통합 모듈 및 인터페이스가 요구사항을 충족하는지 대한 테스트를 수행할 수 있다. 두 번째 개발자 통합 테스트 수행 결과로 발견된 결함에 대한 추이 분석을 통해서 잔존하는 결함을 추정할 수 있다.

30:18
마지막 세 번째 개발자 통합 테스트 결과에 대한 분석을 통해 테스트의 충분성 여부를 검증하고 발견된 결함에 대한 개선 조치 사항을 작성할 수 있다입니다. 세부 학습 내용은 두 파트로 나눠서 애플리케이션 통합 테스트 수행과 애플리케이션 테스트 결과 분석 살펴보도록 하겠습니다. 용어 사전으로서 에러 오류 결함 결정 버그 실패 문제 이렇게 있는데, 에러 오류라는 부분은 결함의 원인이 되는 것을 에러 오류라고 하고 에러 오류의 원인에 따라서 제품에 포함된 것이 결함 또는 결점버그고요. 그러한 결함이 있는 부분이 실행될 때 발생하는 현상이 실패 및 문제가 되겠습니다.

31:12
먼저 첫 번째 파트 애플리케이션 통합 테스트 수행의 통합 테스트 개요적인 측면에서 먼저 개념 정리부터 해보도록 하겠는데요. 통합 테스트는 뭔데 통합 테스트는 소프트웨어의 모듈 단위 모듈 있죠. 단위 모듈 간 인터페이스 다시 서로 통합할 때 인터페이스 관련된 오류나 결함이 있는지 찾아내기 위한 체계적 테스트 기법이 되겠습니다. 통합 테스트 수행 방법에 따라서 다시 나눠지는데 비점증적인 빅뱅 방식 이 빅뱅 방식이라고 하는 부분 자체는 한꺼번에 전체 프로그램을 테스트하는 전체 프로그램을 한꺼번에 테스트하는 방식이 되겠고요. 점증적이다.

32:02
점점 순차적으로 이제 테스트에 관한 방식으로 다시 상향식 통합과 하향식 통합으로 구분할 수 있습니다. 먼저 하향식 통합은 톱다운 방식인데요. 위에서부터 아래로 내려오는 부분입니다. 메인 제어 모듈로부터 아래 방향으로 제어 경로를 따라 이동하면서 하향식으로 통합하면서 테스트를 진행하는데 이 케이스에서 필요로 하는게 아직 작성되지 않은 하위 제어 모듈이 있다면 이 하위 컴포넌트를 대신해서 테스트하기 위해서 더미 모듈인 스톱을 필요로 합니다.

32:48
하향식 통합에서요 하향식 통합은 다시 깊이 우선 방식과 너비 우선 방식에 따라서요 순서 테스팅 순서가 달라지는데 하향식 통합에 대해서 살펴보게 되면 해당 제시되어져 있는 통합 자체에 대한 그래프인데요.

33:06
해당 계층 구조로 되어 있는데, 제일 상위가 해당 모듈 1 제어 모듈이 되겠고 그 다음 레벨의 모듈 2 모듈 3 하이 모듈 하이 모듈 밑에 차하위 모듈이 이렇게 있다라고 할 때 여기서 중요한 부분 자체는 가상적인 측면에서 하위 모듈이 만들어져 있지 않을 때 가상적으로는 스톱이라고 하는 부분을 설계해서 이용을 한다는 부분은 기억하시고 그다음에 더 세부적인 깊이로 들어갔기 때문에 중요도는 그렇게 높지 않은데 깊이 우선 방식의 순서는 제일 상위의 제어 모듈과 하위 모듈 간을 먼저 테스트하고요.

33:50
그다음에 제1모듈과 제2모듈 다음에 제1모듈 하위에 있는 최하위 모듈 중에서 모듈 4와 그리고 모듈 1 모듈 2 모듈 5 이렇게 순서로 테스트를 하고 그 다음에 모듈 3 마지막으로, 모듈 1 모듈 3 모듈 6 순으로 테스트하는 게 깊이 우선 방식이 되겠고요. 너비 우선이라고 하는 부분 자체는 나중에 여러분들 알고리즘 파트에서 탐색 기법이라는 부분이 있는데요. 그 파트에서 별도로 또 다룰 겁니다. 다루는데 너비 우선이라고 하는 부분 자체는 제 상의하고요. 밑에 어 자식 모듈이 있으면 첫 번째 1 2 모듈 테스트하고요. 그다음에 수평으로요 13 모듈 테스트하고요.

34:39
그다음에 2 모듈 하위에 있는 1 2 4 그다음에 1 2 5 그 다음에 1 3 6 이 순서로 테스트해 가는 것이 너비 우선이 되겠습니다. 상향식 통합인데요. 상향식 통합은 최하위 레벨의 모듈에서부터 위로 올라가서 묶음 단위로 테스트하는 것을 이야기합니다. 최하위 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어 경로를 따라 이동하면서 구축과 테스트를 시행하는 것을 이야기하는데 최하위 모듈 최하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈 기능을 수행하는 클러스터로 결합해서 테스트할 수 있고 이 케이스에 상위 모듈이 아직 만들어져 있지 않다 그런 경우에는 해당 가상의 더미 모듈인 드라이버를 작성을 해서요. 테스트할 수 있다.

35:36
그래서 드라이버는 상향식 통합에서 사용되어진다 시험에 자주 나옵니다. 이렇게 하고 넘어가도록 하겠고 마지막에 보면 테스트가 완료되면 해당 드라이버는 실제 모듈 또는 컴포넌트로 대체가 되어집니다. 네 그림으로 보게 되면요 4형식 통합은 아래쪽에서부터 위로 단계별로 올라가면서 통합 테스트를 수행한다. 테스트 순서는 네 제일 최하위에 있는 4와 5를 2와 통합을 한 다음 6과 3을 통합 테스트하고 마지막으로, 네 2와 3을 1과 통합 테스트 하는 순서다 다음 회귀 테스팅이 나오는데 이 회귀 테스팅도 중요합니다. 통합 테스트 방식으로서 회귀 테스트는 왜 하는가?

36:28
하면은 통합 테스팅 과정에서 오류를 제거하거나 수정되어진 수정한 프로그램이 새로운 형태의 또 오작동이나 오류를 일으킬 수 있으니까 그 여부 자체를 검증하는 목적으로 회계 테스트를 시행을 합니다. 회계 테스트는 모듈이나 컴포넌트의 변화로 인해서 의도하지 않은 오류가 생기지 않았다라고 하는 부분을 보정하기 위해 반복 테스트하는 것을 이야기합니다. 회귀 테스트할 때 회귀 테스트 케이스 선정은 변경에 의한 영향도가 가장 높은 애플리케이션 기능에 집중하고요. 또는 실제 수정이 발생한 모듈 또는 컴포넌트에서부터 시행을 합니다. 테스트 케이스를요 도출을 합니다. 네 테스트 자동화 도구에 대해 살펴보도록 하겠는데요. 네 테스트 자동화 도구에 대한 개념입니다. 테스트 도구를 활용을 해서요.

37:24
반복적인 테스트 작업을 스크립트 형태로 구현한 것을 이야기하고요. 해당 이 테스트 자동화 도구를 활용하게 되면 테스트 시간을 줄일 수 있고 또 인력 투입 비율을 낮출 수 있습니다. 그리고 또 장점은 운용 중인 시스템의 모니터링 또는 유저 인터페이스 ui가 없는 경우에도요 해당 테스트 자동화 도구를 이용하게 되면 정밀한 테스트 수행이 가능하다 라고 하는 장점이 있습니다. 테스트 자동화의 장점과 단점입니다. 장점은 앞서서 제가 일본어 정리를 해드렸는데 반복되는 테스트 데이터 재입력 작업을 자동으로 할 수가 있다.

38:06
그리고 사용자 요구 기능에 대한 일관성 검정이 검정에 유리하고 테스트 결과값에 대한 객관적 평가 기준 제공을 할 수 있고 테스트 결과의 통계 작업과 그래프 등 다양한 표시 형태 제공이 가능하고 ui가 없는 서비스 경우에도 정밀한 테스트가 가능합니다. 단점은요, 새로운 도구를 도입했기 때문에 사용법을 익혀야 되잖아요. 그렇기 때문에 해당 사용 방법에 대한 교육 및 학습이 필요하고 그리고 도구를 프로세스 단계별로 적용하기 위해서 추가적인 시간이나 노력 비용이 요구되기도 하고 상용인 경우에는 비용이죠. 구매 비용이 많이 높게 드는 경우 그러한 단점도 있을 수 있다. 라는 부분입니다.

38:53
테스트 도구 자동화 테스트 도구 유형 중에 정적 분석 도구 정적 분석 도구는 주 특징인 프로그램을 실행하지 않고도 분석할 수 있는 방법이다. 라는 부분이었고요. 반대가 동적 분석이었습니다. 뒤에 상세 내용 살펴보도록 할 건데 대부분의 경우에 소스 코드에 대해서 코딩 표준이나 코딩 스타일 그리고 코드 복잡도 및 남은 결함을 발견하기 위해 사용을 하고요. 테스트를 수행하는 사람이 작성된 소스 코드에 대한 이해를 기반으로 자동화되어진 도구 활용만 분석 수행이 가능합니다.

39:30
네 그 다음에 테스트 도구 테스트에 대한 실행 도구 네 테스트를 위해서 작성된 스크립트를 어 실행 하는데 작성된 스크립트는 각 스크립트마다 특정 데이터와 데이터 수행 방법을 포함을 하는데 방식은 두 가지로 나누면 데이터 주도 접근 방식과 키워드 주도 접근 방식이 있습니다. 데이터 주도 접근 방식은 스크립트 언어에 익숙하지 않은 테스트도 테스트를 수행하는 사람도 미리 작성된 스크립트에 테스트 데이터만요 추가해서 쉽게 테스트를 수행할 수 있다는 특징이 있고 키워드 주도 접근 방식은요, 키워드를 이용을 해서 테스트 수행 동작을 정의할 수 있다. 이렇게만 정리하도록 하겠습니다. 자 그다음에 성능 테스트 도구입니다.

40:18
퍼포먼스 테스트 툴 성능은요, 어떤 부분에 대해서 대상으로 하느냐면 애플리케이션의 처리되는 양 응답 시간 경과 시간 자원에 대한 사용률 에 대해서 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성했는지 확인할 수 있는 도구가 되겠습니다. 테스트통제도구 자동화 도구 유형 살펴보고 있습니다. 테스트 통제 도구는 테스트 계획 및 관리를 위한 테스트 관리 도구와 테스트 수행에 필요한 데이터와 도구를 관리하는 형상 관리 도구 그리고 테스트에 발생할 수 있는 결함에 대해 관리하는 결함 추적 관리 도구 등이 있고요. 조직의 요구사항에 최적화되어진 형태의 정보를 생산 관리하기 위해서 스프레시트 등 다른 도구와 연계하여 사용할 수도 있습니다. 자 그리고 테스트 장치인데요.

41:17
테스트 장치는 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경 일부분을 이야기하는데 테스트를 지원하기 위한 코드와 데이터를 말합니다. 단위 또는 모듈 테스트에 사용하기 위해서 코드 개발자가 작성을 하는데 구성 요소로서는 앞단에서 저희가 살펴봤던 해당 통합 테스트에서 보면 상향식 테스트에서 필요로 했던 게 하향식 테스트 상향식 테스트가 있었죠. 상향식 테스트에서 필요했던 게 드라이버였고요. 하향식 테스트에 필요했던 게 스톱이었습니다. 시험에 자주 나옵니다. 그리고 테스트 슈트는 대상 모듈이나 케이스 테스트 케이스의 집합이다. 테스트 케이스는 입력 실행 조건 기대 결과 모아놓은 명세서다 그리고 테스트 스크립트 자동화된 스크립트 실행 절차를 이야기하고 목 오브젝트는 행위를 조건부로 사전에 입력하는 것을 이야기한다.

42:17
자 테스트 자동화 도구에 대해 살펴보도록 하겠는데요. 테스트 단계별로 다양한 자동화 도구들이 있습니다. 개괄적으로만 살펴보도록 하겠습니다. 테스트 계획과 관련되어진 자동화 도구의 유형은 요구사항 관리와 관련된 부분으로 고객의 요구사항 정의 및 요구사항 관리를 지원을 하고요. 테스트 분석 및 설계 단계에서의 자동화 도구는 테스트 케이스 생성 그리고 테스트 수행 시 자동화 도구의 유형은 테스트 자동화 정적 분석 동적 분석 성능 테스트 모니터링 이 테스트 수행과 관련된 자동화 도구 유형이 되겠고 테스트 관리적인 측면에서는 커버리지 측정 테스트가 완료된 후에 테스트의 충분성 여부를 검증하는 파트가 되겠고요. 형상 관리 그리고 결함 추적 관리가 테스트 관리에 해당되는 자동화 도구가 되겠다.

43:11
구체적으로 자동화 도구의 종류를 한번 살펴보도록 하겠는데 소프트웨어 테스트 관리를 지원하는 도구로서요 실행된 테스트와 테스트 활동 관리를 지원하고 테스트 실행 도구나 결함 추적 도구 요구사항 관리 도구와의 인터페이스 역할을 한다. 결함에 대한 발견 분배 수정 확인 종료와 같은 결함의 생명주기로 관리하고 테스트 진행 상황에 대한 리포팅 생성과 발견된 결함의 정량적 분석을 지원할 수 있는데, 오픈소스는 얘는 무료라고 보시면 되겠구요. 유로가 상용소스입니다. 오픈소스 종류로서요 결함관리 도구는 멘티스 버그질라가 있고요. 이 부분은 좀 더 구체적으로 살펴보도록 할 겁니다.

44:09
저희가 테스트 케이스 관리 도구로서는 테스트 링크 형상관리도구 용어 꼭 기억하라는 말씀을 드렸죠 cvs svn z 이 세계는 꼭 기억하실 필요성이 있고요. 그 외 커뮤니케이션 관리도구는 미디어 위키나 이러한 것들이 있고 통합 프로젝트 지원 관리 도구로서는 트랙이나 gfls mfls 이런 것들이 있다. 그리고 버그 추적은 g라 tmtpms 기타 그리고 형상 관리 도구 커뮤니케이션 도구들이 있다. 체크해 드린 것만 우선은 중심으로 분간할 수 있으면 됩니다. 소프트웨어 정적분석지원도구 리뷰 프로세스에 관한 정보를 저장 그리고 리뷰 커맨드를 저장할 수 있는 도구들이 되겠고요. 동적 테스트를 하기 전에 결합을 발견할 수 있도록 지원하는 게 정적 분석 도구죠 코딩 표준을 지킬 것을 강제화하고요. 구조와 의존 관계를 분석할 수 있다.

45:06
소스 코드의 복잡도를 측정할 수 있는데, 오픈소스의 예로서는요 pmp 그리고 이름 자체는 varg 그린드 그다음에 파인드버그 여기서 pmd 파인드버그 이러한 것들은 좀 체크해 둘 필요성이 있고요. 상용수수는 이러한 것들이 있다. 그리고 세 번째 소프트웨어 테스팅 실행 및 로깅 지원 도구 스크립트 언어의 도움을 받아서 저장되어진 입력값과 예상 결과를 이용해서 테스팅을 실행하고 결과와 비교하는 도구가 되겠다. 그리고 테스트 대상이 실행되는 환경을 시뮬레이션하는 도구도 해당되고요. 그리고 추정하는 추정하고자 하는 특정 유형의 코드 구조 및 몇 %가 수행되는가를 측정하는 커버리지 측정 도구도 이 테스트 실행 및 로깅 지원 도구에 해당됩니다.

46:02
종류로서는요 오픈소스로서는 테스트 프레임워크과 관련되어진 도구로 엑스유닛 아까 엑스유닛은 ctest 도구가 엑스유닛이었죠. 그 외에 테스트 엔진 제임워크 구글목 이런 것들 그리고 지속적 통합 그리고 빌드 자동화적인 부분은 이번에 나중에 저희가 서버 프로그래밍 구현 파트에서 빌드 도구라고 해서 저희가 다룰 건데 엔트와 네이번 그다음에 실행 자동화 도구 종류가 많죠 그럼 이거 다 기억해야 되느냐 꼭 그렇지는 않기 때문에 우선은 크게 부담 없이 우선 한번 이렇게 개괄적으로 보고요. 문제적인 부분이 어떻게 나오는지는 집단에 제가 문제로 정리를 해드릴 테니까. 부담 너무 갖지 마시고 개괄적으로 보고 넘어가겠습니다. 로서는 hp 제품 이러한 것들이 있다. 넘어갈게요 다음 성능 및 모니터링 도구입니다.

47:00
소프트웨어가 실행 도중에만 발생하는 시간 의존송 그리고 메모리 누수와 같은 결함을 발견할 때 활용할 수 있고 소프트웨어 성능이나 부하 스트레스를 테스트 할 수 있다. 오픈소스 이외에는 이러한 것들이 있습니다. 상용소스는 이로드 로든 언어 웹노드 로봇이라는 것들이 있습니다. 다 기억할 필요는 없습니다. 자 문제로 정리해 보도록 할게요 애플리케이션 통합 테스트 수행과 관련된 퀴즈부터 살펴보면 첫 번째 변화로 인해 의도하지 않은 부작용이 전파되지 않았다.

47:40
라는 것을 보증하기 위해서 이미 수행을 했던 테스트 일부를 재실행하는 테스트는 뭔데 자 변화라고 하는 부분 자체는 단독으로 사용하던 단일 모듈에 다시 다른 모듈과 연계 통합이 됐다든지 이런 것도 하나의 변화죠 그 케이스에 혹시 부작용이 발생하지는 않았나 라는 부분을 체킹하는 건 회귀 테스트입니다. 이 회귀 테스트는 정확하게 개념을 좀 잡아 놓을 필요성이 있습니다. 다음 애플리케이션 테스트 결과 분석과 관련되어진 파트 살펴보도록 하겠는데요. 테스트에 대한 결과 분석으로서 먼저 소프트웨어에 대한 결함 결함과 관련되어진 용어는 용어 사진 파트에서 제가 살펴봤던 그대로입니다. 그래서 따라 나온 오류는 뭔데 결함의 원인이 되는 거야.

48:35
결함 결점 버그들로 인해서 실행 시 발생하는 현상이 뭔데 실패나 문제야 이렇게 정리하고 넘어갈게요 자 테스트에 대한 완료 조건을 저희가 계획 단계에서 정의해야 된다고 했었는데요. 테스트 완료 조건은 테스트 종류 단위 테스트 통합 테스트 시스템 테스트 인수 테스트 등 각 단계별 테스트를 언제 어떤 상황에서 이제 멈출까 종료할 것인가? 라는 것을 결정하는 것을 이야기하고요. 이 완료 조건은 프로젝트의 특성에 따라서 일정이나 비용이나 조직 등 제약들이 있기 때문에 그 특성에 맞춰서 최적의 완료 조건을 계획 시 수립합니다. 자 테스트 결함 관리입니다.

49:26
테스트 결함 관리는 각 단계별 테스트를 수행한 후에 발생을 한 발견을 한 결함을 재발하지 않도록 방지하기 위해서요. 유사결함 발견 시 처리시간 단축을 위해 결함을 추적하고 관리하는 활동이 테스트 결함 관리가 되겠고요.

49:47
결함 추적 관리 활동은 단계별로 착수 측정은 언제 하느냐 단위 테스트는 딱 정해져 있는 부분은 아니고 통합 테스트는 설계문서에 결함이 발견됐을 때 그리고 통합 테스트 평가가 완료됐을 때 시스템 테스트는 요구사항 명세서의 결함이 발견됐을 때 그리고 시스템 평가 시스템 테스트 평가가 완료됐을 때 운영 테스트는 마찬가지 요구사항 명세서 결함이 발견됐다든지 운영 테스트 평가가 완료되었을 때 착수를 하고 입력문은 테스트 활동 로그와 결함 관리 대장이 되고 종료 조건 및 산출물로서는 심각한 상위 수준의 결함 해결 여부 확인 그리고 산출물은 결함관리대장 테스트의 활동 로그 테스트 결과 보고서가 되겠습니다. 결함 관리되어진 도구의 유형인데요. 자동화 도구들 사례입니다.

50:43
오픈 소스로서는요 무료는요 버그질라나 트랙 그다음 멘티스 이런 것들이 있고요. 하위 세부 특징까지는 꼭 몰라도 될 것 같고, 개괄적으로 이러 이러한 프로그램들은 어떤 용도의 자동화 도구야 라고 했을 때 고를 수 있게끔은 익혀 놓으면 되겠습니다. 그리고 상용 도구는 큐시나 클릭 퀘스트나 지라 이러한 것들이 결함 관리 도구에 해당되어집니다. 결원관리 도구를 저희가 도입할 때 고려해야 될 사항인데요.

51:12
먼저는 웹 클라이언트 지원을 하고 있는지 확인할 필요성이 있고 그리고 운영체제 윈도우나 유닉스 등 다양한 플랫폼 해당 웹서버를 지원하는지 여부 그리고 프로세스 및 워크플로우 변경이 가능한지 결함 간에 연관 관계 정보를 제공하는지 결함 등록 및 상태 변경 시 담당자에게 이벤트 통보 기능이 있는지 그리고 각종 레포트나 차트 쿼리 구성 및 저장이 가능한지 결함 상태 변경에 대한 추적이 가능한가 그리고 다국어 지원이 가능한가 다중 프로젝트 지원이 가능한가 라는 부분을 결함 관리 도입 시 고려할 부분입니다.

51:59
자 해당 내용을요 네 애플리케이션 통합 테스트 수행의 퀴즈로 정리해 볼게요 다음 소프트웨어의 공통적인 특징은 뭔데 mentis 버그질라 지라 테스트 리액트는 좀 전에 제가 살펴봤던 결함관리도구였죠 결함관리 자동화 도구였습니다. 2번이 정답입니다. 네 살펴봤던 내용을 총괄적으로 모의평가를 통해 가지고 네 한 네 문제 정도 풀어보면서 정리하겠습니다. 첫 번째 테스트에 대한 설명으로 적절하지 않은 것은 개념적인 문제인데 첫 번째 1번 프로그램 결함이 없다는 것을 가정하고 발견하는 작업이야 이게 틀렸습니다. 프로그램에 결함이 있다고 가정하고요. 그 결함을 발견하는 작업이 테스트입니다.

52:53
품질 높은 제품을 만들고자 하는 것이 목적이야 시간 비용 등 제약사항에 따라서 제약사항이 있기 때문에 적절한 양의 테스트를 실시한다. 맞고요. 프로그램 특성과 프로젝트의 제약 조건 기반한 효과적인 테스팅이 중요한 이슈가 됩니다. 두 번째 테스트의 종류 중에 소프트웨어의 기능뿐만 아니라 비기능적인 속성도 만족하는지 검사하는 테스트 전략 또는 테스트 단계는 어떤 거야. 단위 테스트 통합 테스트 시스템 인수 테스트 중이 기능뿐만 아니라 비기능적인 측면에 대한 요구사항도 만족하는지 테스트는 시스템 테스트에서 합니다. 시스템 테스트 세 번째 테스트에 대한 설명으로 옳지 않은 거 틀린 거 골라라 첫 번째 1번 회귀 테스트는 이미 테스트했던 부분을 다시 실행해 보고 새로운 변화로 인한 부작용이 있는지 확인한다.

53:51
맞습니다. 두 번째 통계적 테스트에는 운용 프로파일을 반영하는 테스트 데이터 집합을 구성한다. 이것도 맞고요. 세 번째 상향식 통합 테스트에는 테스트 케이스 입출력을 조정하기 위한 스톱 프로그램을 추가 작성한다. 틀렸습니다. 상향식 통합 테스트에는요 스톱이 아니라 드라이버였죠 드라이버 프로그램을 추가로 작성한다. 문제가 내기 용이합니다. 그래서 정확하게 하향식이 스톱 상향식은 드라이버 이렇게 기억하시면 좋을 것 같고요. 스텔스 테스트는 강도 테스트죠 소프트웨어 한 개 설계 한도를 넘는 상황이 되도록 만들어서 시스템을 어떻게 처리하는지를 테스트하는 방식이 됩니다. 마지막 4번입니다.

54:45
다음 중 테스트 자동화 도구 중에 프로그램을 수행하지 않고 분석하는 도구 여기까지만 해도 바로 답을 구할 수 있겠죠. 정적 분석 도구가 되겠습니다. 나머지 보기 항목들은 동적분석도구가 되겠고 동적 분석 도구는 프로그램을 실행해 가면서요 분석하는 도구가 되겠죠. 성능 테스트 도구 커버리지 적정도구 자 핵심 정리 네 살펴보면서 마무리하겠습니다. 애플리케이션 통합 테스트 수행에서요 다뤘던 내용으로서는요 통합 테스트에 대한 개념 그리고 통합 테스트 수행 방법 상향식 하향식 이런 부분이 있었고, 테스트 자동화 도구와 개념 및 유형 살펴봤습니다.

55:34
다음 애플리케이션 테스트 결과 분석에서는 소프트웨어 결함과 관련된 용어들 그리고 테스트 완료 조건 마지막으로, 테스트 결함 관련되어진 개념 및 자동화 결함 관리 도구들에 대해서 살펴봤습니다. 네 이상으로 애플리케이션 통합 테스트에 대해서 마치도록 하겠습니다. 애플리케이션 테스트 관리 세 번째 애플리케이션 성능 개선에 대해 살펴보도록 하겠습니다. 해당 파트의 학습 목표는요 애플리케이션 테스트를 통해서 애플리케이션의 성능을 분석하고 성능 저하 요인을 발견할 수 있다. 두 번째 코드 최적화 기법 아키텍처 조정 및 호출 순서 조정 등을 적용하여 애플리케이션의 성능을 개선할 수 있다.

56:25
마지막 세 번째는 프로그래밍 언어의 특성에 대한 이해를 기반으로 소스 코드 품질 분석 도구 활용을 하여 애플리케이션의 성능을 계산할 수 있다. 입니다. 학습할 내용은 크게 두 파트로 되어있는데, 알고리즘 부분이 해당 학습 모듈에 포함되어 있지 않는 파트입니다. 그래서 ncs 학습 모듈에 없는 부분이기 때문에 기존의 데이터베이스 해당 그 시험 개편 전에 적용했던 부분에서는 비중도가 이십 문제 중에 두 문제씩 나왔던 부분입니다. 그래서 지금 설명드리는 이 알고리즘 부분 잘 숙지하시길 바라겠고요. 그리고 애플로케이션 성능 개선 이렇게 살펴보도록 하겠습니다. 먼저 영어 사전으로서 왜 알고리즘이 성형 파트에 뚝딱 키워놨을까?

57:20
알고리즘은 문제를 해결하기 위해 명령들로 구성된 일련의 순서화되어진 절차입니다. 그래서 알고리즘을 잘 한 경우에는 애플리케이션 성능을 더 높일 수 있다는 측면이죠. 자 세부적으로 살펴보겠습니다. 알고리즘 먼저 개요적인 부분에서요 알고리즘 개념입니다. 알고리즘은 좀 더 구체적으로 보면 수학과 컴퓨터 과학 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것이다. 라고 소개하고 있습니다. 알고리즘을 기술하는 방법은 여러 가지가 있는데요. 일반적으로 우리가 일상적으로 사용하는 평소의 언어 즉 자연어로 기술할 수도 있고 해당 프로그래밍 랭귀지는 아닌데 어이사 코드라고 해서요.

58:12
프로그램 언어처럼요 이러한 형식을 갖추어 가지고 표현하는 방법도 있고요. 어이사 코드 그리고 보편적으로 많이 표현하는 방식은 순서도죠 플롯 차트를 그려가지고 약속되어진 도형 사각형 박스는 처리야 분기는 마름모 이런 형태 그리고 프로그래밍 언어를 직접 코딩하는 방법이 있고요. 그리고 인터프리티오가 작업하는 제어 테이블 또는 유한 상태 기계의 상태도 등으로 표현할 수가 있습니다. 알고리즘을 기술하는 절차 순서적인 부분은요, 먼저 문제를 정의하고요. 그리고 모델 보안 명세 작성 설계 검증 분석인데 여기서의 분석은 요구사항 분석이 아닙니다. 요구사항 분석이 아니라 해당 소스 코드에 대한 복잡도예요.

59:04
알고리즘에 대한 복잡도 등을 분석하는 부분이고 그 후에 구현하고 테스트하고 문서화하는 순서로 개발이 진행되어집니다. 자 구체적으로 알고리즘 저희가 기존의 정보처리 기사 데이터베이스 파트에서 출제되었던 기초 문제를 분석을 했을 때 총 세 파트로 주로 출제가 되어지고 있습니다. 그래서 그 세 파트를 다 다루도록 하겠는데요. 우선은 정렬 알고리즘 그리고 그래프 알고리즘 마지막으로, 탐색 알고리즘 이렇게 세 파트에 대해서 다루도록하겠습니다. 먼저 시험에 많이 나오는 파티는 정렬 알고리즘입니다. 매일 시험에 한 문제씩은 꼭 나온다 이렇게 보시고 꼭 잘 익혀두세요. 정렬 알고리즘은 먼저 개념적인 측면에서 여러 요소로 구성되어진 리스트에서 이 원소들을 크기 순서대로 재배치하는 것이다.

1:00:03
크기 순서대로 재배치 이 재배치하는 방식은 작은 것부터 해당 숫자값이 큰 순서로 배치하는 오름차순 정렬이 있겠고요. 반대로 큰 순서를 앞에다 배치하고 점점 숫자가 작아지게끔 배치하는 내림차순 정렬이 있는데, 일반적으로 오름차순 정렬을 요구하는 문제가 많이 나오는 편입니다. 자 정렬 알고리즘은 다시 세 가지 저희가 살펴보도록 하겠습니다. 첫 번째 선택정렬이 있습니다. 선택 정렬 콕 집어가지고 얘를 이렇게 걸어가지고 배치 왼쪽에서부터 순차적으로 왼쪽에서부터 차근차근 순서대로 가장 작은 수를 찾아서요 해당 자릿수만 해당 자릿수만 교환하면서 정렬하는 방식이다.

1:00:57
문구상으로 잘 이해가 안 되는데 예제 보면서 설명하면 이해가 될 겁니다. 정렬되지 않은 데이터가 예를 들어서 저희가 심플하게 설명을 드리기 위해서 작게 네 개 숫자만 리스트를 했는데 나열을 했는데 순서가 15 그리고 10 1 3 이렇게 4개 수가 있는데, 얘를 작은 것부터 큰 순서로 내 오름사순을 정렬해보자 자 이때 이제 저희가 또 그 이해해야 될 용어들이 있는데, 여기에 보면 1회전이라고 돼 있어요. 문제에서 물어요. 회전이라는 표현도 쓰고요. 패스라는 표현도 씁니다. 패스 패스를 세 번 했을 때 정렬 결과로 옳은 걸 골라 이런 식으로도 나오기 때문에 회전에 의한 용어와 패스라는 용어는 같다 정렬되지 않은 데이터를 선택 종료를 이용해가지고 1회전을 하게 되면 어떻게 하느냐면 첫 번째 오전이요.

1:01:53
제일 첫 번째에 있는 수의 자리의 값 c 전체에 있는 수 중에 제일 작은지를 체킹하고요. 제일 작지 않아 그러면 전체 수 중에 4개의 수 중에 제일 작은 걸 꼽아요. 여기 1이 제일 작네, 그러면 이 1을 첫 번째 자리에 배치를 합니다. 아까 교환한다고 그랬죠 바꾼다는 말입니다. 그러면 첫 번째 있던 수는 제일 작은 수가 있던 위치로 위치가 바뀌어져요 그래서 11회전 한 결과는 15 13을 1회전하게 되면 1이 첫 번째 자리로 오면서 1 그 다음 수는 그대로 배치 10 1이 있던 자리에 15가 옮겨져 가고요. 3 이렇게 리스트가 되어져요 그래서 패스 1 패스 1 1 회전한 결과는 1 10 15 3이 되고요.

1:02:40
다음 두 번째 2회전을 하게 되면 1회전 한 결과에서요 이번에는 두 번째 자리에 있는 수 두 번째 자리에 있는 수가 어 수보다 남아있는 수 중에 작은 게 있는지를 따져요 있어요. 지금 10 15 3 이 세 개 중에 제일 작은 건 3이에요. 그러면 이 3을 두 번째 있는 이 10과 교환을 합니다. 그래서 2회전한 결과는 어 10자리에 3이 5니까 1 3 15 10 2회전하는 결과 이렇습니다. 자 같은 방법으로 이제 마지막요 네 세 번째 4개 세 번째하고 네 번째 수밖에 없으니까 세 번째 수를 따져요 2회전한 결과에서 2회전한 결과에서 세 번째 수가 15예요. 이 15하고 남아있는 수 네 10하고 미교했을 때 작은 수는 10이니까. 또 교환이 필요하죠.

1:03:38
그러면 1 3 10 15 해서 3회전한 결과는 이렇습니다. 기존 횟수 15 11 3을 오름산 정렬했을 때 1 3 10 15 맞죠. 선택정렬 방법 알아봤습니다. 다음 두 번째 정렬 알고리즘으로서 삽입정렬 넣는다란 말이에요. 자 이거는 설명 문구 보시면 왼쪽에서부터 오른쪽으로 순차적으로 해당 수를 파악해 가는데 모든 인접한 두 수를 비교를 한다. 이렇게 돼 있어요. 여기에 인접한 두 수가 아니라 모든이라고 하는 전제조건이 있습니다. 모든 인접한 두 수를 비교해서 적절한 위치에다가 삽입해 가면서 정렬하는 방식이야 자 그러면 동일한 예제의 네 개의 수인데 삽입정렬로 해보겠습니다.

1:04:33
먼저 순차적으로 첫번째 첫 번째 15 그 다음에 인접한 모든 수 두 번째 이 두 개를 비교해 볼게요 첫 번째와 두 번째 15와 10을 비교를 했습니다. 그중에서요 네 작은 거 네 10하고 15 비교하면 10이 작죠 10이 작으니까 이 10이요. 앞으로 가요 첫 번째 자리로 그러면 이 15는 밀려가지고 두 번째 자리로 이동을 합니다. 교환 방식은 아니구요. 네 자 그러면 일회전 한 결과는 이렇습니다. 살립 정렬의 패스 1 결과는 필류 회전한 결과는 10 15 뒤에 건 그대로 1 3 자 2회전 한 결과 넘어가 보도록 할게요 이번엔 2회전은 첫 번째 두 번째 가지고 비교해 가지고 삽입했으니까 이번에는 세 번째 수를 따져요 세 번째 수가 1이에요.

1:05:27
이 1은 앞에 있는 모든 수 모든 인접한 수 10하고 15하고 비교했을 때 위치를 적절한 위치를 찾아서 삽입시킨다. 제일 앞에 가야 되겠죠. 그러면 얘가 제일 앞쪽으로 이렇게 2회전 결과처럼 제일 앞쪽으로 이렇게 이동했어요. 그래서 1이 여기에 배치되고 기존에 있던 10과 12는 오른쪽으로 이동이 됩니다. 이동 밀려가지고 그래서 1 10 15 3 2에 전한 결과는 이렇습니다. 자 마지막으로요 제일 끝에 있는 2회전 한 결과에서 3회전으로 넘어갈 때는 마지막에 있는 수도 마찬가지 이 수가 앞에 있는 모든 수에서 어디에 위치하는 게 적절할까 1 10 15 3 앞에 세 수 중에 1 다음에 오면 되겠죠.

1:06:18
그러면 얘가 이렇게 십자리에 있는 쪽에 가고 나머지 얘들은 밀려요 오른쪽으로 그래서 이동됩니다. 그래서 결과적으로는 1 3 10 15 정렬이 완료되어집니다. 삽입 정렬은 왼쪽에서부터 순차적으로 모든 인집한 두 수를 비교해 가면서 적절한 위치에 삽입한다. 삽입을 하게 되면 기존에 있던 수들은 밀린다 다음 세 번째 정렬 알고리즘 버블 정렬입니다. 버블 물방울 뽀글뽀글 이렇게 설명 묻고 보면 왼쪽부터 순차적으로 두 수를 서로 비교한다. 두 개의 수를 서로 비교해 가면서 큰 수를 가장 뒤로 보면서 정렬한다. 여기 키포인트는요 이 뒤에 있는 거 큰 수를 가장 뒤로 보내 큰 수를 제일 오른쪽으로 보내 요게 키포인트입니다.

1:07:12
그리고 두 수끼리 서로 비교해 가면서 네 자 정렬하지 않은 동일한 네 개의 수가 있는데, 자 버블 정렬로 1회전 해보도록 하겠습니다. 앞서서 저희가 살펴봤던 해당 삽입정렬이라든지. 네 그런 부분들은 어 1회전 했을 때 한 번만 수행하고 딱 끝이었거든요. 자 그런데 이 버블 정렬은 뽀글뽀글합니다. 한 번만 하는 게 아니라 보세요. 4개의 수 15 10 11 3이 있는데, 먼저는 첫 번째와 두 번째끼리 비교해요. 비교해서요. 상호 작은 수와 큰 수를 서로 교환합니다. 교환 그래서 10이 작으니까 10 15 이렇게 해서 여기서 일을 지금 끝이 아니에요. 한 번 버블 했다. 한 번 뽀글뽀글했다. 이렇게 생각하시고 여기서 다시 이번에는 두 번째 세 번째하고 비교해요.

1:08:00
여기서 두 번째 하고 세 번째 이 두 개수 비교해가지고 이 두 수 간에 다시 작은 거는 왼쪽 큰 거는 오른쪽 하면 1 15니까 1이 왼쪽 15가 오른쪽으로 밀렸어요. 마지막으로요 세 번째 네 번째 수 두 수 비교합니다. 15하고 3하고 3이 작으니까 15 자리에 15가 3보다 크니까 제일 뒤 그래서 11 3 15가 되어진 게 이게 패스 1이에요. 1회 전환 1회 회전한 결과입니다. 1회전한 결과 단순 한 번만 비교해서 뚝딱이 아니라 뽀글뽀글해서 제일 큰 수를 제일 뒤로 미뤘을 때 회전이 한 번 완료됐다. 자 아직까지 정렬이 완료가 안 됐잖아요.

1:08:51
전체 수 4개의 수에서 11 3 15 이 순서니까 그래서 1회전한 1회전 한 결과 완전하게 정렬되지 않은 데이터를 다시 2회전으로 넘어갑니다. 동일하게 앞에서부터 순차적으로 첫 번째 두 번째 비교해서 작은 거 앞쪽 큰 거 뒤쪽 이렇게 했죠. 그다음에 35 그대로고요. 두 번째하고 세 번째하고 비교를 해요. 비교해가지고 어 3이 10보다 작으니까 1 3 10 15 이렇게 됩니다. 마지막으로요 네 세 번째하고 네 번째 하고를 비교를 하는데 현재 오름차순 그대로예요. 그럼 여기서 멈춰요 이게 정렬완료한 결과입니다. 그래서 1 3 c c 9 이렇게 구해졌죠 버블 정렬 개념 설명을 드렸고 두 번째 알고리즘은 그래프 알고리즘입니다.

1:09:48
그래프 알고리즘은 저희가 앞단에서 자료 구조 파트에서 그래프에 대한 개념을 먼저 익히긴 했는데 다시 한번 복습해 보겠습니다. 그래프는 뭔데 그래프는 단순히 노드 노드는 밑에서는 용어가 정점이라고 돼 있거든요. 같다고 보시면 돼요. 동그라미 동그라미를 말한다 라고 보시면 되겠고 단순히 노드와 그 노드를 연결하는 간선 링크선인 이 말입니다. 링크선 을 하나로 모아놓은 자료 구조야 연결하고 연결되어 있는 객체 간의 관계를 표현할 때 사용한다. 자 여기서 시험에 나오는 것만 좀 뽑았습니다. 정점이 n개인 즉 노드 동그라미가 n개 예를 들어 4개다 경우에 무방향 그래프 방향 그래프 또 그래프의 종류는 두 가지가 있다.

1:10:38
방향이 있는 그래프와 방향이 없는 그래프 방향 없는 그래프가 무방향 또는 무지향 그래프라고도 합니다. 무방향 그래프에서는 해당 연결하는 이 연결선 간선의 개수가 몇 개일까? 최대 간선의 수 최대 간선의 수는 몇 개일까? 이게 시험에 좀 나왔어요. 그렇기 때문에 이해가 필요하기 때문에 설명을 드리는 겁니다. 자 해당 간선수를 구하는 공식인데 n 갈로 n 마이너스 1 나누기 2 이렇게 돼 있어요. 어 정말 그럴까 이게 맞는지 한번 확인해 볼까요? 밑에 밑에 지금 현재 노드가 네 개 저 정점이 동그라미가 4개가 있는 그래프인데 해당 각각 노드 간에 다 연결돼 있어요. 그래서 이게 지금 최대 관전수가 그려진 케이스인데 구두가 4개일 때 2공식을 대입해보겠습니다. 네 대입해보면 4 곱하기 4 마이너스 1 하면 이거는 3이죠.

1:11:36
나누기 2 하게 되면 4 곱하기 3은 12 12 나누기 2는 6개 이렇게 되네요. 6개 맞나요? 하나 둘 셋 넷 다섯 여섯 개 맞네요. 자 그래서 정점이 n개인 무방향 그래프의 최대 관선수는 공식이 n 갈로 n 마이너스 1 나누기 2다 근데 방향이 있다. 방향이 있는 그래프는요 방향이 단방향이 아니고 양방향이에요. 그래서 얘를 방향이 있는 그래프로 그려본다면 경우의 수가 어 제로가 입력된 노드에서 1쪽으로의 방향이 있는가 하면 반대 방향도 있겠죠. 반대 방향 1에서 0으로 가는 방향 그렇게 따지면 개수가 노드와 노드 간에 간선의 수가 두 개씩 나오겠죠.

1:12:23
그렇기 때문에 방향 그래프의 최대 관선수는 무방향 그래프에 최대 관선수에다가 곱하기 2를 했을 때 구해지니까 분모 2가 날라가고 남는 거는 최대 관선수 방향 그래프의 최대 관선수는 n 곱하기 n 마이너스 1이 된다. 자 그래프에서 탐색 방법이 시험에 자주 나옵니다. 두 가지 방법이 있어요. 그래프에서요 해당 노드에서요 여기 그래프 내에 있는 모든 노드들을 다 찾아 방문하는 방문하는 방법으로서 깊이 우선 탐색이라고 해서 depse perst 서치 머릿걸만 떼내면 dfs depseperst 서치 방법이 있고요. 그다음에 깊이 우선이 아니라 너비어 브레드 브레드스 퍼스트 서치라고 해서 네 bfs 방법 너비우션 방법 이렇게 두 가지가 있어요.

1:13:21
시험에서는 깊이 우선 탐색 깊이 우선 탐색이 시험에 더 자주 나옵니다. 자 그러면 정확하게 이해를 해야 되니까. 깊이 우선 탐색이라는 부분은 그래프에서 깊이 우선 탐색이라는 부분은 보다 깊은 것을 우선적으로 탐색하는 알고리즘이야 이 경우에 사용하는 자료 구조는요 스택 자료 구조를 사용합니다. 스택이라고 하는 부분 자체는 한쪽이 막혀 있고 자료를 놓고 빼고 하는 부분이 한쪽만이었죠. 한쪽만이었습니다. 그래서 해당 이 스택 자료 같은 경우에는 마지막에 넣은 게 제일 먼저 나온다 이것도 순서가 있죠.

1:14:02
넣는 순서가 a b c 이렇게 넣었다 넣었을 때 빼는 거는 마지막에 넣은 거가 제일 먼저 나와 이게 특징이었고 자 깊이 버전 탐색 그래프 밑에 있는 예제 가지고 해볼게요 탐색 순서는 제일 첫 번째 노드에서부터 시작하고 상단 노드에서 시작하고 그리고 인접한 다른 노드를 재귀적으로 탐색해가 라고 돼 있습니다. 끝까지 탐색을 하면 다시 위로 와서 다음을 탐색해서 검색해 예제 보면서 설명드릴게요. 자 먼저 스타트는 a부터 시작합니다. a 그 다음에 밑에 b c d가 서로 연결되어 있어요. 자 이 중에서는요 우선적으로는 순서를 따집니다. 그래서 a 다음에 b로 가겠습니다. 순차적으로 b b로 간 다음에 c로 가는 게 아니라 c로 가는 게 아니라 얘는 깊이 우선이에요.

1:14:54
그래서 트리 같은 경우에 이렇게 다리가 이렇게 나눠져 있다고 하면 한쪽을 다 파고 들어간 다음에 두 번째 이렇게 됩니다. 근데 그래프 같은 경우에는 얘가 다시 서로 연결이 돼 있다 보니까 a b 그다음에 밑으로 내려가요 밑으로 깊이 위주로 해서 오른쪽이 아니라 밑으로 위주로 내려가요 그래서 b 그다음에 c 그다음에 f 여기까지 지금 현재 다 들어갔어요. 여기까지 다 들어가고 다시 c나 d 중에 가야 돼요. 이 케이스 같은 경우에는 탐색 결과는 a b e f까지 가고 난 다음에 그다음에 다시 붕괴될 때는 작은 거 먼저 빠른 거 c부터 갔다가 c 그러면 이 케이스 같은 경우에는 스택 구조로 되어 있으면 f까지 넣었어요. f까지 넣고요. 그다음에 c를 넣었다가 c를 넣었어요. c를 놓고 다시 빼요 c를 빼고 그다음에 d를 놓으면 다 탐색하죠. 그래서 순서는 abfcd 이 순서가 되겠습니다.

1:15:52
디퓨전 탐색 뒤에 예제 문제 가지고 다시 연습할게요 다음 노베우전 탐색은 브레드스 퍼스트 서치가 되어 있는데, 이거는 시험에 잘 안 나옵니다. 왜냐 너무 쉬워서 자 더비를 우선으로 탐색하는 알고리즘이다. 이렇게 돼 있습니다. 여기서 적용하는 자료 구조 방식은 q입니다. q는 터널과 같다 들어가는 입구 하나 나오는 입구 하나 여기에 1차선으로 순차적으로만 들어갈 수 있어 그래서 먼저 들어간 게 먼저 나온다 a b c d 이렇게 가면 a b c d 이렇게 나와요. 자 그래서 개념적인 측면에서는 제 상단에서 시작했다 라고 할 때 얘는 탐색 방식 자체가 너비 위주에요. 가로 횡단위 위주예요.

1:16:51
이렇게 같은 레벨들을 이렇게 왼쪽에서 오른쪽으로 순차적으로 하니까 a b c d e f 이 순서입니다. 그래서 순차적입니다. 그냥 a b c d e f 이렇게 되기 때문에 너무 쉬워서 시험에 잘 안 나오고 오히려 디피고션 탐색이 주로 나옵니다. 마지막 알고리즘입니다. 탐색알고리즘 마지막 알고리즘 탐색 알고리즘 서체 알고리즘은 개념 기억 공간에 저장된 데이터나 주어진 입력 데이터 자 기업 공간에 저장된 데이터나 주어진 입력 데이터 집합에서 어떤 조건이나 성질을 만족하는 하나의 데이터를 데이터 집합에서 찾는 알고리즘입니다.

1:17:34
찾아내는 자 여기서는 이제 우선은 경우의 수로서는 먼저 데이터가 전혀 정렬되지 않고 막 섞여 있는 거 경우 정렬되지 않는 데이터 정렬되지 않은 데이터 네 찾는 방식과 우선 정렬이 되어 있는 경우에 찾는 방식으로 다시 나눌 수 있는데, 첫 번째 저희가 살펴볼 선형 탐색은 정렬되지 않은 경우에 정렬되지 않은 검색에 사용되고 그 케이스에 가장 유용하다 자 검색 대상에서요 처음부터 순차적으로 하나하나 찾는 거를 비교해 가면서 검색해요. 그래서 선령탐색의 평균 검색 횟수는 n개 지금 현재 이 케이스 같은 경우에는 네 개의 수입니다. 4개의 수가 있는데, 이 중에서 10을 찾으려고 한다 라고 한다면, 처음에 첫 번째 거가 10이야 라고 비교한 거죠.

1:18:33
아니네 그럼 두 번째 왔어요. 두 번째 게 10이야 맞니 그러면 끝 이렇게 됩니다. 그래서 이렇게 경우의 수를 따졌을 때 평균적인 검색 횟수는 어떻게 되느냐 하면 수의 개수 더하기 1 나누기 2회 4개다 그러면 4 더하기 1 나누기 2 하면 2.5회 정도 평균으로 해당 찾고자 하는 걸 찾을 수 있다. 자 이렇게 정리하고 넘어가도록 하겠구요. 선형 탐색 너무 쉽죠 다음 이진 탐색이 있는데요. 이진 탐 탐색은 바이너리 쇼치에요. 정렬된 얘는 전제조건이 정렬이 돼 있어야 돼요. 정렬되어 있어야 가능하고요. 정렬된 데이터 집합을 미분화한다. 라는 말은 나눈다 이 말입니다. 분할시킨다. 두 개씩 두 토막씩 이분하면서 탐색하는 방법인데 탐색의 효율이 좋고요.

1:19:22
탐색 시간이 적게 소요되어진다 이진 탐색의 평균 검색 횟수는요 로그 2n 이렇게 구해져요 자 일례로 검색 대상을 5개를 제가 제시를 했고 1 3 7 10 15인데 찾는 값은 10이야 그러면 어떻게 찾냐 하면 앞에서부터 순차적으로 비교 안 하고요. 5개야 5개 중에 제일 중간에 있는 수는 뭐야? 5개 중에 제일 중간에 있는 수는 세 번째 있는 수가 중간에 있는 수죠 이 수하고요. 비교해요. 찾는 값하고 이렇게 반으로 나눠 가지고 중간에 있는 즉 중간에 위치한 7과 찾고자 하는 값이 일치합니다. 비교하니까 찾고자 하는 값은 10이에요. 근데 비교 대상은 7이에요.

1:20:07
어느 게 더 크다 10이 더 크죠 찾고자 하는 값이 더 크니까 어떻게 하느냐면 분할한 분할한 왼쪽이 아닌 오른쪽에 남아있는 부분에서 찾아요. 오른쪽에 남아있는 10과 15에서 다시 두 개를 중간에 나눴을 때 두 개밖에 안 되니까. 이케이스 같은 경우에는 이제 어 두 번째 있는 수하고 비교가 얘가 10이야 아니야. 그럼 마지막에 있는 얘가 10이야 라고 이렇게 차려지겠죠. 그래서 개념적으로 정리 얘는 어떠한 뭐 맵패스의 결과를 구하라 이렇게 안 나와요. 개념 문제로 나옵니다. 네 개념 문제로 나오는데 정렬되어진 데이터 집합을 2분할 두 토막씩 나눠가면서 찾고자 하는 값이 더 크면 큰 그룹에서 다시 또 분할 두 토막 나눠 가지고 이렇게 비교해 가면서 찾는 방식입니다. 자 그럼 영어 알고리즘 부분에 대해서요.

1:21:06
퀴즈로 한번 정리해 보도록 하겠습니다. 첫 번째 다음 자료에 대해서요. selection shooting 자 영어로도 나올 수 있습니다. 저희는 한글로 읽혔는데 선택정렬입니다. 선택정렬 선택 정렬로 오름차순 정렬한 결과 패스 3이다. 그러면 3회전 했을 때의 결과 이렇게 이해하셔야 돼요. 패스 3의 결과는 어떻게 돼 자 선택 정렬은 어떻게 돼 있냐면 콕 집어가지고 서로 교환한다. 이렇게 했죠. 순차적으로 해야 된다. 자 그러면 83497이라고 5개의 수가 있는데, 첫 번째부터 순차적으로 합니다. 첫 번째에 있는 수가 전체 수 중에 제일 작아 아니야. 그러면 제일 작은 건 뭔데 제일 작은 거는 3이네, 그러면 얘하고 바꿔요 교환합니다. 교환 그러면 1회전 옆에다가 이렇게 써가면서 하시는 게 쉬울 것 같고요. 1회전한 결과는 3하고 8하고 위치 바꿔가지고 38497이 1회전 결과치구요.

1:22:06
자 이 1회전한 결과에서 다시 2회전 패스2요 패스2는 두 번째 위치한 이 수가 첫 번째 거 빼고요. 첫 번째 빼고 남아있는 수 중에 제일 작아 아니야. 그러면 제일 작은 건 뭐야? 4네요. 4면 6하고 이거 하고 또 교환해요. 위치를 그래서 패스 2한 결과는 3일 4에 8일 9의 7이 됩니다. 마지막 문제에서 묻고 있는 건 패스 3일 때 결과니까 이제 답이 구해지겠는데 그러면 이번에는 세 번째 세 번째 수 순차적으로 비교해 가니까 첫 번째 번째 두 번째 세 번째 세 번째 수가 나머지 수 중에 제일 작아 아니면은 네 작은 수 하고 바꿔 안 잡고 7이 제일 작으니까 얘하고 바꿔요 위치를 그러면 앞에 있는 거 그대로 적어주고 3 4 7 8이 정답입니다. 찾아보세요. 3 4 7 9 8 3 4 7 9 8 1번입니다. 네 그래서 정답은 1번 이렇게 풀면 되겠습니다.

1:23:05
선택 정렬 다음 다음 그래프에서요 정점 a를 선택을 하여 여기서 네 선택해서 깊이 우선요 데프트 퍼스트 서치 깊이 우선 탐색으로 운행한 결과는 세로 열 단위별로 깊게 들어가라 a b f 아까 예제에서는 여기까지만 했거든요. 근데 하나 더 있어요. 여기까지도 들어가요 지 e fg 자 사제삼답형 객관식이잖아요. 여기까지 혹시나 골라서 바로 정답이 나올 수도 있습니다. abc ab e 아니네 abc 아니네 ab e f g 네 사 번 이렇게도 구할 수 있고 자 지까지 왔어요. 끝에까지 왔어요. 스택으로 지금 현재 한다.

1:23:59
그랬죠 그러면 음 지를 다시 빼내고 그다음에 씨를 놓고 씨 탐색했다가 또 씨 빼내고 디 탐색 이렇게 하면 되겠죠. 그래서 정답은 사 번이 되겠습니다. 자 네 다음 리니어 서치 a 평균 검사의 개수는 어떻게 되느냐 리니어 서치는 순차적으로 하나하나 비교해 가면서 찾고자 하는 걸 찾는다고 말씀드렸죠 개수 플러스 1 나누기 2였습니다. 2번이 정답입니다. 자 다음 파트로요 네 애플리케이션 성능 개선에 대해 살펴보도록 하겠습니다. 먼저 소스 코드에 대한 최적화 살펴보도록 하겠는데 먼저 소스 코드 최적화는 읽기 쉽고 변경 및 추가가 쉬운 크레인 코드를 작성해 가는 것을 이야기한다. 소스 코드 품질을 위해서 기본적으로 지켜야 할 원칙과 기준을 정해 정해놓는다 자 클린코드는 좋은 코드고요.

1:24:55
반대가 나쁜 코드 베드코드인데 베드코드는 뭔데 자 여러분들이 소스코딩을 하고 난 다음에 뭔가를 만들었어요. 그 만든 걸 본인이 혼자 끝까지 유지보수까지 다 실제 실무에서는 잘 안 합니다. 개발자 능력이 뛰어난 사람은 신규 프로젝트를 계속 투입을 하고요. 유지 보수는 실제적으로 수입하고 연계성이 약하니까 이제 다른 사람들이요. 어떤 운영적인 측면에서 문제가 생기면 그건 좋지 않은 부분이거든요. 그래서 내가 작성한 코드를 다른 사람이 볼 수 있다라는 걸 전제로 해서 해당 소스를 보기 쉽게끔 만든 게 클린코드라고 보시면 되고요. 나만 알 수 있게끔 네 만든 게 나쁜 코드예요. 왜 그런지 보세요. 다른 개발자가 로직을 이해하기 어렵게 작성을 해 놓았어요. 대표적인 예로 처리 로직의 제어가 정제되지 않고 서로 막 얽혀 있어요.

1:25:51
그래서 스파게티 현상이라고도 이야기하는데 스파게티는 꼬여 있잖아요. 실타리 현상이라고도 합니다. 실이 막 꼬여 있을 때 풀 때 어려운 것처럼 스파게티 코드로 변수나 메소드에 대한 이름 정의도 제대로 알 수 없게끔 코딩 돼 있고 동일한 처리 로직이 중복되어 작성된 코드 를 이야기한다. 나쁜 코드는 그래서 이 케이스 같은 경우에 문제점은 스파게티 코드의 경우에는 잦은 오류가 발생할 가능성이 높고요. 그리고 소수 코드 이해가 안 되어서요 계속 덧붙이게 하게 되면 코드가 더 복잡하게 되는 그러한 문제가 생길 수 있습니다. 자 반대로 클린코드 좋은 코드는요 어떤 경우냐면 잘 작성돼 있어서 가독성이 높아요. 읽기가 쉬워요 네 그리고 단순하고요. 또 의존성이 낮아요.

1:26:41
의존성을 줄이고 그리고 중복을 최소화해서 깔끔하게 잘 정리된 코드다 다른 개발자들을 봤을 때도 소스가 이해하기 쉽게끔 되어 있는 이 케이스의 효과성은 중복 코드 제고로 어플리케이션의 설계를 개선할 수 있고 가독성이 높기 때문에 어플리케이션 기능에 대해서 쉽게 이해가 가능하고 그리고 버그를 찾기도 쉬워요 문제가 있는 것도 해결하기 쉬워요 그래서 프로그램 속도가 프로그래밍 속도가 빨라질 수 있다. 클린코드의 작성 원칙입니다. 네 원칙 해당 그 내용만 이해할 수 있으면 될 것 같아요. 가독성은 이해하기 쉽다 단순성은 한 번에 한 가지만 처리 수행하게끔 최소 단위로 분류해 놓은 거야. 의존성은 영향도를 높인 게 아니라 낮춘 겁니다. 영향도를 최소화한 거야. 다른 코드의 변경이 충분히 영향이 없게끔 응집도는 높이고 소프트웨어 관련 개발 파트에서 모듈 구현 파트에서도 저희가 했었고요.

1:27:35
응집도 내부 구성 요소의 응집도는 높이고 모듈 간의 결합도는 어떻게 낮춘다 이게 좋은 좋게 만든 결과야 좋은 모듈이야 네 의존성은 낮춘다 중복성은 최소화시켜야 되겠죠. 네 중복된 코드는 제거하고 추상화 메스워드나 클래스 메스워드 함수에 대해 동일한 수준으로 추상화되어진 게 좋다. 다음 소수 코드 최적화 기법인데요. 저희 시험은 어떻게 필기는 객관식 사지선답형입니다. 그래서 보기가 4개가 나와 있는 것들이 문제로 4개가 용이에요. 여기 보기 4개 나와 있습니다. 소수 코드 최적화 기법에 대한 설명 좀 틀린 거 골라 이렇게 나오기 쉬운 대상이 됩니다. 볼게요 소스 코드 최적화 기법은요, 클래스 분할 배치 기법이다.

1:28:27
클래스는 하나의 역할 책임만 수행할 수 있도록 언급도는 높이고 크기는 작게 두 번째 너슨한 결합 기법이야 결합은 낮춰 내림 그래서 응집도는 높이고 결합도는 낮추는 다음 세 번째 코딩 형식 기법으로서는요 소스를 보기 쉽게 네 코딩 줄 바꿈 개념으로 구분 줄 바꿈으로 개념을 구분하고 네 종속함수를 사용한다. 그리고 호출하는 함수는 나중에 아니라 먼저 앞쪽에 배치한다. 호출하는 함수는 먼저 배치 호출되는 함수는 나중에 배치 그리고 변수 전원은 먼저 해줘요 아 그래서 현재 이게 변수구나 라는 게 이해가 되게끔 변수 전원은 지역변수 변수 또는 외치는 각 함수별 맨 처음에 선언한다. 그리고 변수의 이름도 구분하기 쉽게끔요 명령 규칙을 정하고 정의된 이름을 사용한다.

1:29:22
마지막으로요 주성문 사용을 습관화한다. 이 말은 무슨 말이냐면은 소스 내에 설명 문구들을 설명하는 내용들을 적어 나가라 이 말입니다. 나 혼자만 보는 소스가 아니야. 다른 사람이 보더라도 이해가 되게끔 이 부분은 이 부분이에요. 라고 주석은요, 소스 내에서는 기록이 되어지지만 실행되지 않습니다. 다음 소스코드 품질 분석 도구에 대해 보도록 하겠는데 소스코드 품질 분석 도구란 소스코드에 대한 코딩 스타일이나 설정된 코딩 표준 코드의 복잡도 코드 내에 존재하는 메모리 누스 현상이나 스트라이드 결함 등을 발견하기 위해 사용하는 분석 도구를 이야기하고요. 종류는 정적 분석 도구와 동적 분석 도구로 나눌 수가 있습니다.

1:30:13
정적 분석 도구는 프로그램에 대한 실행 없이 즉 소스 코드를 실행시키지 않고 코드 자체만으로 코딩 표준 준수 여부나 코딩 스타일 적정 여부 잔존 결함 발견 여부 등을 확인하는 코드 분석 도구가 되겠습니다. 자 전적 분석 도구를 통해서요. 사전에 결함을 발견하고 예방을 하게 되면 전체적인 측면에서 해당 품질도를 높여갈 수 있겠죠. 성능도 그렇고 다음 동적분석도구입니다. 동적 분석 도구는 정적 분석 도구와 반대로 애플리케이션을 실행시키면서요 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고 발생한 스레이드 결함 등을 분석하는 도구이다.

1:31:01
자 표에 보면 소스코드 품질도구 종류별로 예시되어 있는데, 정적분석도구는 4가지 도구 프로그램입니다. pmd cpp chake sonaq 책 스타일 이렇게 네 가지가 있는데, 해당 도구 설명을 보면 특징인데 pmd는 자바나 타 언어 소스 코드에 대한 버그나 데드코드 분석 지원을 하고 환경도 리눅스라는 유닉스 윈도우 다 지원되고 개발 도구 지원은 이클립스나 냅빈에서 이용할 수 있다. cpp책은요, c++c나 c++code에 대한 활용할 수 있는 정적 분석 도구이고요. 이 케이스는 윈도우에서만 지원을 합니다. 그다음에 소나 큐브 그다음에 책 스타일 이런 것들이 딱 넘어가도록 하겠습니다. 그리고 크로스 플랫폼이라고 하는 부분은 리눅스 윈도우 다 지원된다. 이 말입니다.

1:31:55
다음 코드 복잡도에 대한 분석 도구로서는 ccm 그리고 코베르투 코베르투라 이러한 도구들이 있는데, 동적 분석 도구는 두 개입니다. 아발란치 그다음에 발그린듀 이렇게 있거든요. 네 개 두 개 작은 거 위주로 혹시 정적 분석 도구가 아닌 거 골라 또는 반대로 동적 분석 도구인 거 골라 이렇게 나올 수 있으니까 작은 거 위주로 명확하게 보세요. 익혀 놓는 걸 추천드립니다. 다음 퀴즈인데요. 클린도구의 작성 원칙 중에 코드의 변경이 다른 부분에 영향이 없게 작성하는 건 어떤 건가 가독성 읽기 쉽게 이해하기 쉽게끔 단순성은 아까 함수라든지 이런 것들을 단위별로 한다. 이렇게 했고 의존성이 이 질문에서 묻는 거죠. 근데 의존성을 높이는 게 아니라 의존성을 낮춰야 된다 라고 했었죠.

1:32:53
클린코드 작성 원칙은 자 모의평가로 정리하겠습니다. 첫 번째 다음 자료를 버블 정렬한다. 뽀글뽀글 버블 정렬을 이용하여 오름차수를 정렬할 경우인 패스 1의 결과를 골라라 이렇게 돼 있습니다. 법을 정렬한 한 번만 바꾸고 끝이 아니었고요. 가장 큰 값을 제일 뒤쪽에 배치했을 때 한 사이클이 끝나요? 한 패스가 끝났어요. 그 개념을 알고 있으면 굳이 안 해봐도요 보기에서 답이 뚝딱 구해져요 일렬로 보기에서 보니까 제일 끝에 있는 거 보세요. 제일 마지막에 구예요. 제일 큰 게 9예요. 얘가 정답이에요. 이렇게 풀어도 된다. 이 말입니다. 버블정렬은 패스 1패스가 끝나면 이 숫자 중에 제일 큰 게 제일 뒤로 가 있어야 돼요. 그 다음에 2 패스가 끝나면 두 번째 큰 값이 네 뒤쪽으로 가 있어야 되는 다 완성을 했을 때 네 이 케이스 같은 경우 버블 1이죠.

1:33:50
다시 해볼게요 과정적인 부분을 첫 번째 두 번째 비교해서 작은 거 왼쪽 큰 거 오른쪽 다음 두 번째 세 번째 비교에서 작은 거 왼쪽 큰 거 오른쪽 그렇게 됐죠 그 다음에 네 번째 네 세 번째 네 번째 비교해서 작은 거 왼쪽 큰 거 오른쪽 6 7 3 9 5 마지막 네 번째 다섯 번째 비교해서 작은 거 왼쪽 큰 거 오른쪽 하게 되면 6 7 3 5 9가 1패스의 결과입니다. 4번이 정답입니다. 다음 다음 자료에 대하여 삽입정렬 기법을 사용을 하여 옳은 사전 정렬하고자 한다. 1회전 패스원 결과로 옳은 걸 골라라 이 말입니다.

1:34:45
삽입정렬은 순차적으로 하는데 모든 인접한 거 와 비교해서 적절 위치에 배치한다. 이렇게 돼 있는데, 패스 1이라서요 네 얘는 첫 번째 하고 두 번째 이거 두 개 중에 네 작은 거를 첫 번째 배치 그러면 5 4 4가 늘 작으니까 4 5 3 2 1 이게 패스 1의 결과예요. 너무 뚝딱 나왔죠 네 그래서 정답은 4 5 3 2 1 정답은 3번입니다. 2회전 했다고 치면 2회전 했다고 치면 1회전한 결과 값과 앞에 있는 걸 다 비교 해서 적절 위치 제일 앞에 가야 되네, 그러면 3 그다음 나머지를 밀어요. 오른쪽으로 그래서 4 5 2 1 이거는 패스 2 회전한 결과 근데 문제에서는 1회전으로만 물으니까 이렇게 구하면 되겠습니다.

1:35:44
다음 3번입니다. 이진 검색 알고리즘 이진 검색 알고리즘을 어떻게 개념적으로 분할했습니다. 토막 냈죠 이진 검색 알고리즘에 대한 설명으로 들린 것을 골라라 탐색 효율이 높고 탐색 시간이 적게 소요된다. 검색할 데이터가 반드시 정렬되어 있어야 돼요. 이거 중요합니다. 맞습니다. 피고노츠 수열에 따라서 다음에 비교할 대상을 선정하여 검색한다. 이거는 피보노츠 수열 해당 그 검색하는 방법을 설명한 거고, 얘는 이진 검색 알고리즘에 대한 설명이 아닙니다. 네 번째 비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터가 반씩 줄어든다. 분할해 가지고 검색 대상이 반씩 줄어들죠 맞습니다. 틀린건 3번 4번입니다. 소프트웨어 정적 분석을 위한 자동화 도구에 해당하는 것은 정적 분석 자동화 도구 아까 4개 있었어요.

1:36:42
pmd 네 그 다음에 씨피 시피피 책 그 다음에 책 스타일 네 자 나머지 보기에서 정리해 드릴까요? 어 지라라고 하는 부분 자체는요 이건 결합 결합 네 결함 코드를 분석하는 자동화 도구고요. svn은요, 이거는 형상관리 버전관리 형상관리 버전 관리 같은 말입니다. 자동화 도구고요. 버그질란 앞에 버그가 붙었잖아요. 이것도 버그 결함 체킹하는 툴입니다. 그래서 정적 분석 자동화 도구는 체크 스타일 1번이 정답입니다. 자 마지막 5번입니다. 네 소스코드 최적화 기법에 관한 설명 중 가장 올바 가장 올바르지 않은 거 골라라 틀린 거 골라라 소스코드 최적화 기법 첫 번째 클래스는 하나의 역할 책임만 수행할 수 있도록 응집도는 높이고 크기는 작게 맞습니다.

1:37:42
주성문은 코딩이 명확하다면 생략을 해도 돼 틀렸습니다. 주성문은 해당 그 코드에 대한 설명인데 본인이 끝까지 책임지지 않는다. 다른 사람이 다른 개발자가 볼 수 있다라는 걸 전제로 해서요. 주성문을 다릅니다. 생략하는 게 아니라 클래스의 자료구조 메스워드 추정화할 수 있는 인터페이스 클래스를 이용하여 클래스가 어느 정도를 최소화시킨다. 맞고 코딩할 때 줄바꿈을 확실히 시켜가지고, 잘 이렇게 이해하기 쉽게끔 코딩하자 맞습니다. 자 학습했던 내용의 핵심 정리인데요. 알고리즘 부분에서는요 시험에 자주 나오는 부분이기 때문에 학습 모듈에 포함되지 않는 내용입니다. 꼭 잘 익히세요. 많이 나오면 두 문제까지도 나옵니다. 알고리즘은 수학과 컴퓨터와 언어학 또는 관련 분야에서 어떤 문제를 해결하기 위하여 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것이다.

1:38:37
정렬 알고리즘의 종류로 세 가지 살펴봤습니다. 선택정렬 삽입정렬 버블 정렬 그래프 탐색은 깊이 우선 탐색이 시험에 자주 나온다고 그랬고요. 너비우전 탐색도 있다. 마지막으로, 탐색 알고리즘은 선형 탐색 하나하나 비교 순차적으로 이진 탐색 분할해 가면서 탐색하는 방법이 있었습니다. 애플리케이션 성능 개선입니다. 네 파티에서 저희가 학습했던 내용 정리합니다. 성능 계산에서 소스 코드 최적화를 저희가 다뤘죠 소스 코드 최적화는 읽기 쉽고 변경 및 초과가 쉬운 클린코드를 작성하는 것이었다. 네 클린코드의 작성 원칙 그리고 소스 코드 최적화 기법에 대해 살펴봤었고 소스 코드 품질 분석 도구들 네 저희가 살펴봤는데 정적 분석 도구 4개 동적 분석 도구 pmd cppe chick sona kube chack style 동적 분석 도구 아발렌치 발그린드 이러한 것들이 있었습니다. 이상으로 애플리케이션 성능 개선에 대해서 살펴봤습니다.

728x90
반응형
posted by 아이윤맨
:
728x90
반응형

https://youtu.be/c49l-ewZ0xk?si=bMFo3TohkTey15wq

1. 소프트웨어 패키징

1-1. 소프트웨어 패키징 개요
- 신규 개발, 변경, 개선된 제품 소프트웨어의 모듈화하여 패키징함
- (중요) 릴리즈 후, 변경, 개선 사항을 포함한 릴리즈 노트 작성함
- 저작권 보호를 위해 암호화 보안 기능을 제공하는 패키징 도구 활용함
- 제품 소프트웨어 설치, 배포 파일 생성함
- 애플리케이션 패키징, 배포, 모니터링 도구를 포함한 소프트웨어 빌드 이해함

1-2. 애플리케이션 패키징
- 모듈 소프트웨어 설계 단계에서 기능 단위로 분해, 추상화하여 재사용 및 공유 가능한 수준으로 만듦
- 소프트웨어 성능 향상, 시스템 디버깅, 통합, 수정 용이하도록 설계함
- 소프트웨어 빌드는 소스코드 파일을 실행할 수 있는 제품소프트웨어 단위로 변환함
- (중요) 사용자 중심의 애플리케이션 패키징을 통해 판매 제품의 고객 편의성 고려함
- 신규 및 변경 개발 소스를 식별하고, 모듈화하여 상용제품으로 패키징함

1-3. 패키징 세부 사항
- 사용자 실행 환경을 이해하고, 특수 환경이 아닌 보편적인 넓은 범용 환경에서 사용 가능하도록 패키징함
- (중요) 사용자 시스템, 운영체제, CPU, 메모리, 하드웨어적 측면 등을 고려한 실행 환경을 사전에 정의함
- 여러 종류의 실행 환경에 맞는 배포본을 분류하여 패키징 작업을 수행함
- (중요) 패키징은 지속적인 서비스 형태로 제공하여 관리가능한 매니지드 서비스로 제공함
- 모듈 단위 분류, 기능별 사용자 환경 테스트, 패키징 적용을 위한 시험을 통해 사용자 편의성 확인함

2. 애플리케이션 패키징과 모니터링

2-1. 애플리케이션 패키징의 특징
- 애플리케이션 패키징은 사용자 중심으로 진행해야 함
- (중요) 신규 및 변경 소스를 식별하고 무료화하여 상용 제품으로 패키징
- 고객의 편의성을 위해 신규 변경 이력을 확인하고 버전 관리
- 지속적인 관리를 통해 버전을 지속적으로 관리
- 특정 환경에서 사용할 수 있도록 특수 배포 형태로 분류

2-2. 애플리케이션 배포 도구
- 애플리케이션 배포 도구는 패키징 도구로도 이야기가 됨
- 디지털 콘텐츠의 제적재산권 보호가 중요
- 패키징 도구는 디지털 콘텐츠의 직접 책상권 보호 관리 기능 제공
- (중요) 안전한 유통과 배포 보장이 필요
- 불법 복제로부터 디지털 콘텐츠에 대한 지적 재산권 보호가 필요

2-3. 저작권 관리의 구성 요소
- 저작권 관리 대상자는 콘텐츠 제공자, 분배자, 유통요, 소비자, 관리자로 구성
- 저작권 관리 구성 요소에는 암호화, 보안 컨테이너, 키 관리, 사용자 인증 등이 포함
- (중요) 암호화는 콘텐츠와 라이센스를 암호화하고 전자서명 가능
- 키 관리는 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
- 사용자 인증은 콘텐츠에 대한 식별 체계 표현 기술로 활용

3. 애플리케이션 패키징

3-1. 애플리케이션 패키징 개요
- 애플리케이션 패키징은 완성된 소프트웨어를 고객에게 전달하기 위한 형태로 패키징을 함
- 패키징 내에는 설치 및 사용에 대한 매뉴얼과 소프트웨어 업그레이드를 위한 버전 관리가 포함됨
- 사용자 관점에서는 애플리케이션 패키징 고려 사항과 순서를 이해해야 함
- 애플리케이션 배포 도구는 패키징 도구로, 데이터 콘텐츠를 보호하고 안전한 유통과 배포를 보호하는 기능을 제공함
- 애플리케이션 모니터링 도구는 제품 소프트웨어 사용자 환경에서 기능 및 성능을 파악하는 도구임

3-2. 제품 소프트웨어 매뉴얼 작성
- 제품 소프트웨어 매뉴얼은 사용자가 제품 소프트웨어를 설치하고 사용하는 데 필요한 가이드를 제공함
- 설치 매뉴얼은 개발자 기준이 아닌 사용자 기준으로 작성하며, 이해도가 쉽도록 이미지와 설명으로 함께 제공함
- 설치 매뉴얼에는 목차, 개요, 세부 내용, 설치 도구 구성, 기본 사항 등이 포함됨
- (중요) 설치 매뉴얼 작성 시 사용자 환경, CPU, 메모리, OS, 응용 프로그램, 업그레이드 이전 버전 등 환경 체크 항목을 고려해야 함
- 제품 소프트웨어 설치 매뉴얼에는 제품 소프트웨어의 개요, 업그레이드 이전 버전 확인, 백업 폴더와 데이터 저장 폴더 확인, 동기화 등이 포함됨

3-3. 제품 소프트웨어 매뉴얼 구성
- 제품 소프트웨어 매뉴얼에는 목차, 개요, 세부 내용, 설치 방법 순서 등을 포함함
- 목차는 전체 매뉴얼에 대한 내용을 순서대로 요약한 것으로, 포함되는 내용은 핵심임
- 개요 부분은 설치 매뉴얼 작성 시 고려해야 할 기본 사항과 내용을 제공함
- 세부 내용 부분은 설치 도구 구성, 기본 사항, 제품 소프트웨어와 관련된 설명 등을 포함함
- (중요) 설치 후 결과 기록을 위한 로그 파일에 대한 설명도 포함됨

4. 제품 소프트웨어 설치 매뉴얼

4-1. 제품 소프트웨어 매뉴얼 작성 순서
- 제품 소프트웨어 기능 식별하고, 사용자 인터페이스 분류함
- 화면 단위로 작성될 'UI' 분류하고, 백업 파일 확인함
- (중요) 설치 시 메시지와 오류 발생 시 조치 방법 설명함
- 최종 매뉴얼 적용 순서로 작성 및 수정할 수 있는 기술 안내함
- 소프트웨어 고객 지원 방법 안내함

4-2. 사용자 매뉴얼 구성요소
- 개발된 제품 소프트웨어 고객에게 전달하기 위한 매뉴얼 작성함
- 제품 소프트웨어 기능, 구성 객체 목록, 메소드와 파라미터 설명함
- 사용자 매뉴얼 작성 시, 제품 등록, 기록, 웹사이트 URL 제공함
- 사용자 매뉴얼에 대한 주석과 기록 보관 방법 안내함
- (중요) 제품 등록과 관련한 기록과 도움이 필요한 추가 정보 제공함

4-3. 사용자 매뉴얼 작성 항목
- 목차, 서문, 문서, 제품 번호, 제품 소프트웨어 모델명 포함함
- 기본 사항, 설치 매뉴얼과 유사한 내용 포함하며, 제품 소프트웨어 사용 시 주의 사항 포함함
- 제품 소프트웨어 동작 시, 애플리케이션 충돌 가능성과 그 대책 안내함
- 제품 소프트웨어 설정, 기본값, 장치 연동, 네트워크 정보 제공함
- 환경 파일과 환경 파일 경로, 변경 금지, 필수 파일 설명함

5. 제품 소프트웨어 매뉴얼의 구성과 적용

5-1. 제품 소프트웨어 매뉴얼의 필요성과 특징
- 제품 소프트웨어 매뉴얼은 설치, 사용, 테스트 등을 위한 기술 가이드임
- 사용자의 컴퓨터 환경에 적합한 소프트웨어 설치를 돕는 매뉴얼임
- 설치 매뉴얼은 소프트웨어를 설치하고 올바르게 사용하기 위한 가이드를 제공함
- 사용자 매뉴얼은 사용자의 환경에 따라 최적화된 사용 환경을 제공함
- (중요) 제품 소프트웨어 매뉴얼의 중요성은 제품 품질 보증과 유지 보수에 있음

5-2. 제품 품질 표준과 프로세스 품질 표준
- 제품 품질 표준은 제품의 품질 특성을 측정하고 평가하는 기준을 제공함
- 국제 표준으로서 제품 품질 표준은 ISO 인증 모델을 포함함
- (중요) 프로세스 품질 표준은 소프트웨어의 라이프 사이클, 즉 프로세스 개선을 위한 모델을 제공함
- ISO 14598 모델은 제품 품질 평가 프로세스를 제시하고, ISO 12119 모델은 소프트웨어 패키지에 대한 내용을 담고 있음
- 이 모델들은 제품의 품질 평가, 라이프 사이클 관리에 필요한 기준을 제공함

5-3. 제품 소프트웨어 매뉴얼 작성의 중요성
- 제품 소프트웨어 매뉴얼 작성은 제품 품질 보증과 유지 보수에 필수적임
- (중요) 매뉴얼 작성은 제품 설치, 사용, 테스트 등의 전 과정에 걸쳐 이루어짐
- 제품 소프트웨어 매뉴얼의 내용은 제품의 명칭, CPU, 메모리 등 사용 환경에 따라 달라짐
- 제반 절차와 환경 등을 포함하는 사용자 매뉴얼은 매뉴얼 작성의 참고 자료가 됨
- 개발자 기준이 아니라 사용자 기준으로 작성되어야 함

6. 제품 소프트웨어의 버전 관리와 이에 대한 국제 표준

6-1. 제품 소프트웨어 매뉴얼 작성 및 품질 관리
- 제품 소프트웨어 매뉴얼 작성 단계 및 작성 항목을 고려함
- 국제 표준 제품 품질 특성에 따른 제품 품질 프로세스 표준을 고려함
- 소프트웨어 제품에 대한 품질 관련 국제 표준에 대해 고려함
- (중요) 제품 소프트웨어 매뉴얼 작성 시 제품의 품질 표준과 프로세스 품질 표준을 고려함

6-2. 제품 소프트웨어 버전 관리
- 제품 소프트웨어 버전 관리의 중요성 및 관리 도구의 필요성을 강조함
- 버전 관리 도구를 활용한 버전 현황 관리와 소스 관련 자료 백업의 중요성을 강조함
- 버전 관리 도구의 유형 및 사용 방법을 학습함
- (중요) 버전 관리 도구의 효과적 사용을 위한 유의점을 설명함

6-3. 버전 관리 도구의 적용 사례와 중요성
- 버전 관리 도구의 적용 사례로서 알n, 암드웨어 라이프 사이클 매니지먼트를 예시로 듦
- (중요) 버전 관리 도구를 통한 제품 소프트웨어의 신규 개발, 변경, 개선에 대한 이점을 강조함
- 시장에서 사용되는 다양한 버전 관리 도구의 특징 및 사용 순서를 학습함
- 버전 관리 도구 사용 시 유의점과 주의점을 설명함

7. 소프트웨어 버전 관리와 빌드 자동화 도구

7-1. 소프트웨어 버전 관리 도구의 필요성
- 소수 조정이 불가능한 사용자는 개발자와 배포자 외에 불필요한 사용자 제한 필요
- (중요) 동일 프로젝트 파일에 대해 여러 개발자가 동시에 개발 가능하도록 제한 필요
- 오류 발생 시 최대한 빠른 시간 내에 복구 가능하도록 관리 도구가 필요
- 제품 소프트웨어 버전 관리 도구를 활용하여 버전 유지 및 관리 가능

7-2. 버전 관리 도구의 활용방향과 백업 정책
- (중요) 제품 소프트웨어 개발 조직에서는 버전과 기존 제품 버전을 동시에 유지 관리
- 백업 및 복구 작업과 공동 솔루션 기반의 작업들이 통합되어 현황 관리
- 백업 정책을 설정하여 자주 백업하며, 임시 신규 요청 또는 중지 요청 시 별도 절차를 따름
- 백업 결과를 주기적으로 점검하고, 그 결과를 관리 도구에 반영

7-3. 빌드 자동화 도구의 필요성과 기능
- (중요) 소프트웨어 개발 업무에서 빌드 자동화 도구는 필수
- 빌드 자동화 도구는 주로 안드로이드 환경에서 사용되며, 실시간 피드백과 분산 빌드 가능
- 다양한 프로젝트를 하나 이상의 프로젝트로 구성하고, 하나 이상의 테스크들로 관리
- 저장소 부하를 줄이기 위해 사용되는 매뉴얼을 활용하여 개발 진행

00:02
네 소프트웨어 개발 제품 소프트웨어 패키징에 대해 살펴보도록 하겠는데요. 자 첫 번째 이름이 똑같습니다. 네 제품 소프트웨어 패키징 학습목표입니다. 신규 개발 변경 개선되어진 제품 소프트웨어와 소스들로부터 모듈들을 빌드하고 고객의 편의성을 고려하여 패키징할 수 있다. 이전에 릴리즈 이후에 배포 이후 변경 개선 사항을 포함을 하여 신규 패키징한 제품 소프트웨어에 대한 릴리즈 노트를 작성할 수 있다. 저작권 보호를 위해서요. 암호화 보안 기능을 제공하는 패키닉 도구를 활용을 하여 제품 소프트웨어의 설치 배포 파일을 생성할 수 있다. 입니다. 학습할 내용은요, 세 파트로 나와서 살펴보도록 하겠는데 애플리케이션 패키징 애플리케이션 배포 도구 마지막으로, 모니터링 도구 이렇게 살펴보도록 하겠습니다.

01:03
용어 사전으로서는요 모듈 모듈과 소프트웨어 빌드 정리돼 있는데, 자 모듈 소프트웨어 설계 단계에서 기능 단위로 분해 추상화되어 재사용 및 공유 가능한 수준으로 만드는 단위가 된다. 모듈화는 소프트웨어의 설계 기법 중에 하나다 소프트웨어 성능을 향상시키거나 시스템 디버깅 시험 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법이다. 마지막으로, 소프트웨어 빌드는 소스코드 파일을 컴퓨터에서 실행할 수 있는 제품소프트웨어 단위로 변환하는 과정이다. 내용 보도록 하겠습니다. 첫 번째 애플리케이션 패키징에 대한 개요부터 개념 정리하겠습니다. 애플리케이션패키징개념 개발이 완료되어진 소프트웨어를요 고객 구매자 구매자한테 전달하기 위한 형태로 패키징하는 거야. 묶는다 이렇게 보시면 되겠고요.

02:02
자 설치하고 사용하는데 필요로 하는 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성을 해야 됩니다. 매뉴얼 작성은 종류 설치 매뉴얼 사용 매뉴얼 이렇게 두 가지로 나눠서 작성을 합니다. 소프트웨어에 대한 그리고 추가적인 패치 개발이나 추가적으로 배포한 그 소프트웨어에 대한 개선이라든지. 성능 향상 이러한 부분들 추가 설치해야 될 것 또는 업그레이드를 위한 버전 관리 수행하는 능력도 포함이 되어 있습니다. 다음 애플리케이션 패키징의 특징인데요. 애플리케이션 패키징은 개발자가 아닌 사용자 중심으로 진행을 해야 됩니다. 개발자가 아닌 사용자 중심으로 진행 그리고 신규 및 변경 개발 소스를 식별하고 이를 모듈화하여 상용제품으로 패키징한다. 상용제품은 판매 제품이죠. 고객의 편의성을 위해서요. 신규 및 변경이력을 확인하고요.

03:01
이를 버전 관리 및 릴리즈 노트를 통해서 지속적으로요 컨티뉴어스 지속적으로 관리해 갑니다. 사용자의 실행 환경을 이해하고요. 범용 환경에서 사용 가능하도록 특별한 특수 환경이 아니라 보편적인 넓은 범용 환경에서 사용 가능하도록 일반적 배포 형태로 분류해서 패키닝을 진행을 합니다. 다음 사용자 실행 환경에 대한 이해인데요. 고객 편의를 위해서 사용자가 실행하는 환경을 우선적으로 고려해서 패키징을 진행합니다. 그 내부 대상은요, 사용자의 사용하는 컴퓨터의 운영체제 os부터 실행 환경 그리고 시스템 사양 하드웨어적인 측면에 대한 cpu 메모리 용량 하드디스크 용량 이러한 그리고 고객의 사용 방법까지 상세 분류해서 실행 환경을 사전에 정의를 해야 합니다.

04:01
여러가지 실행환경이 나오게 된다면 해당 경우에 맞는 배포본을 분류해서요. 패키징 작업을 여러 번 수행할 수도 있습니다. 여러분들 인터넷에서 무료 프로그램 다운로드 받을 때 보면 네이버에서요 요즘은 32비트용 64비트용 이렇게 운영체제비트에 맞는 거 다운로드 받아라 이렇게 되죠. 그것처럼 경우에 맞는 배포본을 분류해서 패키징 작업 배포한다. 다음 사용자 관점의 애플리케이션 패키징 할 때 고려사항입니다. 이런 부분들이 문제화해서 나오기가 좀 수월하죠. 그래서 자 세부 살펴보겠습니다. 먼저 사용자 시스템 운영체제나 cpu나 메모리와 같은 수행 최소 환경을 정의한다.

04:49
이 프로그램을 설치하기 위해서는 어떤 운영체제 그리고 해당 시스템 사양은 이 정도 돼야 돼 라고 최소 설치할 수 있는 환경 정의 그리고 사용자가요 바로 직관적으로 확인할 수 있는 ui는 사용자 인터페이스죠 제공을 하고 매뉴얼과 일치시켜서 패키징 적용한다. 그다음 애플리케이션은 하드웨어하고 통합 적용될 수 있도록 패키징은 매니지드 서비스 형태로 제공한다. 이게 무슨 말이냐면 지속적으로 관리해 가는 서비스 형태로 제공한다. 이렇게 이해하시면 되겠습니다. 마지막으로, 패키징의 변경 및 개선사항을 고려해서 패키징을 배포한다. 다음 패키징 순서입니다. 기능식별 모듈과 빌드 진행 사용자 환경 분석 패키징 적용 시험 패키징 변경 개선인데 기능 식별에서는 먼저 신규 개발 소스의 목적 및 기능을 식별하고요.

05:48
입출력 데이터 그리고 전체적 기능 정의 및 데이터 활용을 식별한다. 두 번째 모듈 단위를 분류하고 모듈화를 순서에 맞게 진행한다. 개요적으로 이렇게 보겠습니다. 모듈화를 하게 되면 얻을 수 있는 이점적인 부분은 재사용성이라든지. 공유와 재활용 단위를 분류를 한다. 빌드지닝 애플리케이션은 빌드 도구를 활용을 해서요. 빌드를 단위별로 진행한다. 빌드라는 건 실행할 수 있는 파일로 만들어가는 과정을 말씀을 드렸죠 신규 개발 소스 및 컴파일 결과물 준비하고 정상 기능 단위 및 서비스 분류와 빌드 도구 확인 및 빌드 수행을 한다. 그리고 사용자 환경분석 고객 편의성을 위해서 사용자 요구사항 및 사용 환경을 사전에 분석하고요. 최소한 이렇게는 되어야지 이용 가능해 라고 하는 최소 사용자 환경을 사전에 정의합니다. 그리고 모듈 단위로 여러 가지 기능별 사용자 환경 테스트를 수행합니다.

06:45
패키징 적용 시험 최종 패키징에 대해서 사용자 입장에서 불편한 점이 없는지 체크하는 과정이고요. 사용자 환경과 똑같은 상황에서 소프트웨어 테스팅을 수행합니다. ui 및 시스템상의 편의성을 체크합니다. 그리고 패키징 변경 개선 사용자 입장을 반영해서 패키징에서 변경 또는 개선해야 될 사항이 있으면 그걸 진행을 하고요. 그리고 패키징 적용할 때 변경점도 도출하고 최소 사용자 환경에서 서비스 가능한 수준을 개선 모듈 및 빌드 수정을 통한 개선 버전의 재배포를 실습합니다. 다음 애플리케이션 릴리즈 노트인데요. 릴리즈 릴리즈 노트라는 부분은 개념을 보면 애플리케이션이 최종 사용자에게 전달될 때 제품에 대한 정보를 공유하는 하나의 방식인데 릴리즈 정보에는 제품의 수정과 변경 또는 개선되는 정보가 포함되어 있습니다.

07:44
그래서 릴리즈 노트로 나중에 버전 관리를 할 수가 있겠죠. 어떤 어떤 사항이 이렇게 변경이 돼 가지고 배포한다. 세부 릴리즈 노트의 구성 사항이라든지. 이러한 부분들 뒤에 바로 살펴볼게요 릴리즈 노트의 작성 순서는 모듈 식별 릴리즈 정보 확인 릴리드 노트 개요 작성 영양도 체크 정식 릴리드 노트 작성 추가 계산 항목 식별 순으로 진행을 합니다. 릴레이즈 노트의 작성 항목이에요. 헤드 영역 부분에는요 문서의 이름 제품 이름 번호 버전 번호 릴리즈 날짜 노트 버전이 표시가 되어지고 개요 부분은 네 개요적인 사항이에요.

08:26
제품 변경에 관한 간략한 개요 목적 왜 이거 릴리즈 하는지 릴리즈 버전에 어떤 기능이 새로 추가됐느냐 새로운 기능 목록 그리고 리즈 노트의 목적 이런 것들이 포함이 되어지고 그리고 이슈 요약 버그에 대한 간단한 설명 또는 릴리즈 추가 항목 요약 간단하게 보겠습니다. 재현 항목 그리고 수정 개선 내용 사용자의 영향도 소프트웨어 지원의 영향도 그리고 노트는 소프트웨어 하드웨어 설치 항목 제품 문서를 포함한 업그레이드 항목을 메모하고 면책 조항 프리어다 무료 사용해도 되죠. 네 그 다음에 불법 복제 뭐 안 된다. 이러한 부분 고지 그리고 연락 정보 네 사용자 지원 및 문의 관련되어진 연락 정보가 릴리즈 노트 작성 항목에 포함되어져야 된다. 근데 이게 포함 안 돼도 된다. 이렇게 문제화해서 나올 수 있어요. 자 퀴즈입니다.

09:18
다음 중 애플리케이션 패키징의 특징에 관한 설명 중 옳지 않은 것은 애플리케이션 패키징 특징입니다. 첫 번째 애플리케이션 패키징은 개발자가 아닌 사용자 중심으로 진행해야 돼 중요한 사항입니다. 맞습니다. 사용자중심적으로 진행합니다. 두 번째 신규 및 변경 소스 식별을 하고 이를 무료화하여 상용 제품으로 패키징한다. 맞구요. 세 번째 고객의 편의성을 위해서 신규 변경 이력을 확인하고 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해 갑니다. 네 컨티뉴어스 매니지먼트 맞습니다. 특정한 환경에서 사용할 수 있도록 특수 배포 형태로 분류하여 패키징을 진행한다. 틀렸는데 뭐가 틀렸느냐 특정한 환경이 아니라 범용 환경이었어요. 많은 보편적인 환경 그리고 특수 형태의 배포가 아니라 일반적 배포 형태 그래서 4번이 틀렸습니다.

10:20
다음 두 번째 파트인 애플리케이션 배포 도구에 대해 살펴보도록 하겠는데요. 애플리케이션 배포 도구는 패키징 도구로도 이야기가 되어집니다. 애플리케이션 패키징 도구 애플리케이션을 배포하기 위한 패키징 시 디지털 콘텐츠의 제적재산권 보호 이게 중요하죠. 열심히 공들여가지고 애플리케이션 만들었어요. 소프트웨어를 만들어 가지고 100% 하는데 저작권을 제대로 보호받지 못하고 대표적인 건 뭐예요? 디지털 상품이니까. 불법복제 이러한 것들이 난무하면 한 카피 사가지고 10명이 설치해버린다든지 이러면 개발자 입장에서는 제대로 저작권을 보호받지 못하잖아요. 그렇기 때문에 패키징 도구에서 중요한 부분은 디지털 콘텐츠의 직접 책상권 보호 관리하는 기능이 꼭 제공돼야 되고요.

11:10
이를 통해서 안전한 유통과 배포 보장하는 것이 필요하다 패키징 도구는 불법 복제로부터 디지털 콘텐츠에 대한 지적 재산권을 보호해주는 사용 권한 제어 기술과 패키징 기술 라이센스 관리 권한 통제 기술 등이 포함되어져야 합니다. 패키징 도구 활용할 때 고려사항입니다. 반드시 암호화와 보안을 고려하자 다음 추가로 다양한 이기종 연동도 고려하자 여러 가지 이기종 콘텐츠 및 단말기관 drm 바로 살펴볼 건데요. 디지털 라이트 매니지먼트입니다. 디지털 권한관리 자 사용자 편의를 위한 복잡성 및 비효율성 문제도 고려를 해야 되겠다.

12:02
그리고 마지막으로, 애플리케이션 종류에 적용을 시키자 애플케이션 종류에 맞는 암호화 알고리즘을 선택하여 배포시 법령 소송에 지장이 없도록 합니다. drm 디지털 어라이스 매니지먼트인데 뭔데 랩스트가요 2001년도에 mp3 네 mp3 음악을 저작권 보호하기 위해서 채택한 게 최초구요. 디지털 콘텐츠의 디지털 콘텐츠의 무단 사용을 막아서 제공자의 권리와 이익을 보호해주는 기술과 서비스를 통칭해서 trm이라고 합니다. 불법 복제와 변조를 방지하는 기술 등이 제공이 되어져야 됩니다.

12:48
디지털 저작권 관리의 특징 저작권과 저작권자와 콘텐츠 유통업자 사이에 거래 구조 투명성을 제공할 수 있고요. 사용 가능 횟수나 유효기간이나 사용 환경 등에 대한 사용 규칙을 제공하고 이메일이나 디지털 미디어 네트워크를 통한 자유로운 상거래를 제공할 수가 있겠습니다. 저작권 관리 흐름입니다. 저작권 관리와 관련된 대상자는 네 파트로 나눌 수 있는데, 콘텐츠 제공자 그리고 분배자 분배자 유통 유통요 그다음 소비자 그리고 해당 키 관리나 라이센스 발급을 관리하는 클리어링 하우스 이렇게 네 파트 관련된 저작권 관리 대상자들인데 콘텐츠 제공자는 말 그대로 콘텐츠를 제공을 하죠.

13:46
제공을 할 때요 콘텐츠와 메타 데이터를 묶는 패키지죠 형태로 패키지 형태로 제공을 하고요. 그리고 이거를 유통 분배자는 거래 콘텐츠 상거래를 통하고 소비자는 해당 그거를 구매를 하겠죠. 그 케이스에 해당 저작권 권한적인 부분에 대한 암호화라든지 이런 보안적인 부분에 대한 관련 키를 클레잉 하우스로부터 받아가지고, 나는 구매했기 때문에 나는 사용할 수 있게끔 해줘 자 전반적인 저작권 관리 흐름 저작권 관리의 구성 요소입니다. 네 저작권 관리 구성 요소는 내 파트 외에 좀 구체적으로 또 나와 있는 게 또 일부 있죠. 볼게요 콘텐츠 제공자는 콘텐츠를 제공하는 저작권자 분배자는 쇼핑몰 등 암호화되어진 콘텐츠를 제공을 하고 패키지원은 묶는다 뭐를요 콘텐츠하고요. 메타 데이터 함께 묶어가지고 배포 가능한 단위로 묶는 기능이고요.

14:40
보안 컨테이너는 원본을 안전하게 유통할 수 있도록 하기 위한 전자적인 보안 장치를 뜻하고 drm 컨트롤러는 배포되어진 콘텐츠 이용 권한을 통지 클리어링 하우스는 키 관리 및 라이센스 발급을 담당합니다. 아무 소화와 보안 기능 관련되어진 패키닝 도구의 구성 요소인데요. 여러 가지 있는데, 개념적으로만 정리하시면 될 것 같아요. 암호화는 콘텐츠 및 라이센서를 암호화 전자서명할 수 있는 기술이에요. 종류로는 뭐 파블로키 공개키 방식이라든지. 대칭키 비대칭키 암호화 방식 디지털 서명 이런 것들이 있다.

15:19
키 관리 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술 그리고 암호화 파일 형 생성 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술 식별 기술은 콘텐츠에 대한 식별 체계 표현 기술 identifier 디지털 오브젝트 아이덴티 파이어나 url은 유니폼 리소스 아이덴티 파이어 식별 식별입니다. 구분요 그다음에 저작권 표시 표현 그다음에 정책 관리 크랙 방지 크랙에 의한 콘텐츠 사용 방지 기술 그리고 인증 권한 있는 사람이냐 라이센스 발급 및 사용 기준으로 된 사용자 인증 기술 등이 있습니다. 퀴즈입니다. 다음 중 패키징 도구 구성 요소에 대한 설명 중 올바르지 않은 것은 암호화는 콘텐츠 및 라이센스를 암호화하고 전자서명할 수 있는 기술이야 맞고요. 키 관리는 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술이야 맞고요.

16:19
인증 어센티케이션은 콘텐츠에 대한 식별 체계 표현 기술이야 식별 체계는 아이덴티피케이션이에요. 인증은 라이센스 발급 및 사용자 기술에 기준이 되는 사용자 인증 기술이고 식별 기술은 콘텐츠에 대한 식별 체계 표현 기술이다. 그래서 3번이 틀렸습니다. 저작권 표현에는 이러한 것들이 있어 xrml이나 npg 21 뭐 rl 이러한 것들이 있다. 넘어갈게요 자 다음 애플리케이션 모니터링 도구입니다. 마지막 파트인데 애플리케이션 모니터링 도구는 뭔데 제품 소프트웨어를 사용자 환경에 설치하고 나서 기능 및 성능 운영에 대한 현황을 파악할 수 있는 도구가 되겠습니다. 필요성은요, 애플리케이션 성능을 모니터링해서 제품의 장애를 미리 예방할 수가 있겠죠.

17:12
애플리케이션 모니터링 도구의 기능적인 측면과 도구의 예입니다. 애플리케이션 변경 관리의 예는 체인지 마이너나 그 다음에 애플리케이션 성능은 제니퍼나 앤몬 있고요. 애플리케이션 정책 분석 앞단에서 살펴봤던 pmd나 cpp 체크 이러한 것들이 있고요. 그 다음 애플리케이션 동적 분석은 아발란치 발그린드 이런 것들이 있습니다. 자 모의평가를 정리하도록 하겠습니다. 1번 애플리케이션 패키징 시 고려사항으로 거리가 먼 것은 1번 애플리케이션 개발자의 개발 환경 성향 유지보수 등을 고려하여 패키징한다. 틀렸습니다. 왜 틀렸느냐 개발자 중심이 아니라 사용자 중심의 환경을 고려해서 패키징합니다. 직관적인 화면을 고려하여 매뉴얼과 일치하여 패키징한다.

18:10
사용자 운영체제와 시스템 사용의 최소 사용 환경을 고려해야 되고 애플게이션 패키지 변경 및 개선 관리를 위해 변경사항을 기록한다. 다음 2번입니다. 다음에서 설명하는 패키징 활동은 어떤 활동인가 최종 패키징에 대하여 사용자 입장에서 불편한 점을 체크하고요. 사용자 환경과 동일한 환경에서 패키징 적용 시험을 해보고요. 화면 사용 및 시스템 상의 사용자 편의성을 체크한다. 빌드 진행 패키징 적용시험 패키징 변경 개선 모듈로 보기에서 내용 사항이 있었어요. 패키징 적용시험이 정답입니다. 패키징 활동 다음 3번 애플리케이션 패키징 릴리즈 노트에 대한 설명으로 옳지 않은 것은 변경 사항이 있는 부분을 포함한 정보를 포함하죠. 헤드는 문서 이름과 제품 이름 버전 번호 릴레이즈 날짜 노트 버전을 포함한다.

19:09
맞고요. 사용자 지원 및 문의 연락처는 별도로 표기하지 않는다. 틀렸습니다. 사용자 지원 및 문의 연락처도 포함을 합니다. 노트 내용에는요 소프트웨어 및 하드웨어 설치 항목 제품 문서 포함한 업그레이드 항목을 메모하고 이슈 요약은 버그의 간단한 설명 또는 릴리즈 추가한 항목을 요약한다. 맞습니다. 4번입니다. 다음 중 drm 디지털 권리관리 권한관리 및 구성요소에 해당하지 않은 것 네 가지 대상자들이 저작권 흐름에 포함이 되어 있었죠. 콘텐츠 개발자가 아니라 콘텐츠 제공자입니다. 제공자 그리고 소비자 그다음에 분배자가 있었죠.

20:02
분배자 콘텐츠 분배자 마지막으로, 클리어링 하우스 이렇게 구성요소는 네 파트였습니다. 다섯 번째 애플카이션 패키지 등에서요 drm을 사용하는 목적에 해당하지 않는 거고, dram은 저작권 권한 보호잖아요. 관리잖아요. 자 볼게요 저작권자와 콘텐츠 유통업자 사이의 거래구조 투명성 유지 맞죠. 제품 소프트웨어를 무단 불법 사용하지 못하게 제어해야 된다. 그렇죠. 소프트웨어 개발자로 하여금 안전한 구현 및 보안 코딩을 강화하기 위해서다 라는 부분은 개발 내의 과정적인 측면이고 drm과의 관련성은 좀 떨어집니다. 건전한 소프트웨어 유통시장을 형성할 수 있어 맞구요. 네 핵심 내용 정리하고 클로징 하겠습니다. 애플리케이션 패키징 개념은 개발이 완료되어진 소프트웨어를 고객에게 전달하기 위한 형태로 패키징 하는 거야.

20:57
그 패키징 내에는 설치 및 사용에 대한 매뉴얼도 포함이 되어지고 그리고 소프트웨어 패치 개발과 업그레이드 위한 버전 관리도 포함되어집니다. 사용자 관점에서요 애플리케이션 패키징 고려 사항과 그리고 애플리케이션 패키징 순서에 대해서 살펴봤었고요. 그리고 애플리케이션의 변경 정보가 포함되어지는 릴리즈 노트라는 부분도 저희가 살펴봤고 작성 항목에 대해서 이해하시면 되겠습니다. 그리고 애플리케이션 배포도구요. 애플리케이션 배포 도구는 패키징 도구가 배포 도구입니다. 애플리케이션을 배포하기 위한 패키징 할 때 데이터 콘텐츠에 대한 원료 지적재산권을 보호 관리하는 기능이 꼭 제공되어져야 되겠고 안전한 유통과 배포를 보호하는 도구이자 솔루션이 되겠습니다. 패키징 도구 활용할 때 고려사항과 저작권 보호 측면 패키징 도구 drm 디터라이트 매니지먼트에 대한 개념과 특징 살펴봤었죠. 그리고 저작권 관리 흐름과 구성요소에 대한 이해가 필요합니다.

21:57
마지막으로, 애플리케이션 모니터링 도구요. 모니터링 도구는 제품 소프트웨어를 사용자가 사용자 환경에서 설치하고 그 후에 기능 및 성능 운영 현황을 파악하는 도구였고요. 변경 관리 성능 관리 정적 분석 동적 분석 도구 등이 있었습니다. 이상으로 제품 소프트웨어 패키징에 대해 살펴봤습니다. 제품소프트웨어 패키징 두 번째 내용으로서요 제품 소프트웨어 매뉴얼 작성에 대해 살펴보도록 하겠습니다. 학습목표입니다. 사용자가 제품 소프트웨어를 설치하는 데 참조할 수 있도록 제품 소프트웨어 설치 매뉴얼의 기본 구성 수립 작성할 수 있다. 두 번째는 제품 소프트웨어 사용자 매뉴얼의 기본 구성을 수립하고 작성할 수 있다.

22:47
세 번째는 사용자와 제품 소프트웨어를 설치하고 사용하는 데 필요한 제품 소프트웨어의 설치 파일 및 매뉴얼을 배포용 미디어로 제작할 수 있다. 입니다. 세부 내용은요, 제품 소프트웨어 매뉴얼 작성과 국제표준 제품 품질 특성에 대해 살펴보도록 하겠는데 해당 ncs 학습 모듈에 포함되지 않은 내용입니다. 국제표준제품 품질 특성 그래서 이 ppt 위주로 익히시길 권해드립니다. 네 제품 소프트웨어 매뉴얼 작성입니다. 먼저 종류를 살펴보면 종류는요 크게 두 가지 설치 매뉴얼과 그리고 사용자 매뉴얼로 나눌 수가 있습니다. 설치 매뉴얼은 해당 사용자가요 제품을 구매한 다음에 설치하는 과정상에서 참조해 볼 수 있는 매뉴얼이 되겠고요.

23:45
제품 소프트웨어 소개 설치 파일 설치 절차 등이 포함이 되어집니다. 그리고 설치 매뉴얼 작성의 기본 사항인데요. 설치 매뉴얼은 개발자 기준이 아니라 사용자 기준으로 작성을 해야 합니다. 그리고 최초 설치 실행부터 완료까지 순차적으로 진행 과정을 담는데 이해도가 쉽도록 해당 화면 자체를 캡처 위주로 이미지로 제공을 하면서 설명하는 게 이해도가 좋겠죠. 그리고 설치 중간에 이상 발생 시 해당 메시지 및 에러에 대한 내용도 분류하여 설명을 하는 것이 좋겠습니다. 다음 제품 소프트웨어 설치 매뉴얼에 대한 작성 항목입니다. 세 파트로 다룰 수 있는데, 목차 및 개요 자 목차는 매뉴얼 전체에 대한 내용을 순서대로 요약한 것이고.

24:36
개요는 설치 매뉴얼의 주요 특징에 대한 내용 정리와 설치 매뉴얼에 대한 구성 설치 방법 순서 등을 기술한 부분입니다. 서문에는 문서 이력 정보가 포함되어지고요. 그리고 설치도구 구성으로서요 다양한 설치 파일들과 관련되어진 설명이 포함되어지는데 실행파일 exe나 다이내믹 링크 라이브러리나 정보파일 도움말 파일 등 설치 관련되어진 파일에 대한 설명 그리고 폴더 및 설치 프로그램 실행 파일에 대한 설명 설치 이후 설치 결과를 기록하는 로그폴드에 대한 설명이 설치도구 구성에 포함이 되면 되겠습니다. 그리고 마지막으로, 기본사항으로 기본적인 제품소프트웨어와 관련되어진 설명내용들이 포함이 되어집니다. 자 제품 소프트웨어 설치 환경의 체크 항목입니다. 간단하게 체험해 낼 수 있는 부분이 되겠고요.

25:32
제품 설치와 관련하여 아래에 환경 체크 항목을 공지해야 한다. 첫 번째 사용자 환경 사용자의 cpu 메모리 os의 적합 환경 포함을 시키고요. 그리고 응용 프로그램 설치하기 전에 다른 응용 프로그램은 종료하게끔 안내를 하고요. 업그레이드 버전 설치하고자 하는 프로그램이 이전 버전이 해당 컴퓨터에 설치가 되어 있는지에 대한 여부도 체크해야 돼요. 업그레이드 이전 버전에 대한 존재 유무 확인 ms 오피스 같은 경우에 최신 버전을 설치하게 되면 기본으로 보면 이전 버전을 지우고 설치가 있고요. 유지하면서 설치하는 그런 부분이 있거든요. 그래서 업그레이드 이전 버전이 있는지 없는지 존재 여부 확인하고 백업 폴더를 확인 데이터 저장 폴더를 확인해서 설치할 때 폴더를 동기화한다. 다음 제품 소프트웨어 설치 매뉴얼에 대한 기본 사항입니다. 제품 소프트웨어 설치와 관련해서요.

26:32
설명해야 될 기본 항목들인데 어떤 종류들이 있느냐 먼저 제품 소프트웨어에 대한 개요입니다. 제품 소프트웨어의 주요 기능 및 ui 설명 ui 및 사용 화면상의 버튼이나 프레임 등을 도식화하여 설명을 하고요. 설치 관련되어진 파일에 대한 안내 제품 소프트웨어 설치하기 위한 관련 파일 설명요 그리고 설치 절차 그리고 설치 아이콘 그리고 설치를 했다가 삭제하는 경우가 있잖아요. 해당 소프트웨어를 삭제할 때 삭제하는 방법에 대한 설명 그리고 설치 환경에 대한 안내 cpu 메모리 os 이런 것들 그리고 설치 버전 및 작성자 그리고 자주 설치할 때 질문하는 내용에 대한 faq 질의응답 요약 정리한 것을 포함시키는 게 좋겠습니다. 설치 매뉴얼 내용에 대한 상세 가이드입니다.

27:29
설치 화면 및 ui는요 설치 실행은 일반적으로 exe 실행 파일을 더블클레이해서 설치되게끔 exe 등 인스톨 파일을 실행하도록 화면에 첨부를 하라 그리고 설치 이상 시 메시지 설명요 설치가 잘못됐다든지 잘못된 환경일 경우에 메시지를 알려서 사용자가 인식되게끔 그리고 설치 완료 및 결과 정상 설치가 완료됐을 때 최종 메시지 출력과 정상 결과 및 사용에 대한 안내를 함으로써 설치가 잘 됐다는 것을 알 수 있게끔 통제할 필요성이 있겠죠. 그리고 faq는 설치 시 자주 발생하는 어려움들을 faq로 정리해가지고요.

28:11
제품이 설치되지 않을 때를 대비하는 것이 좋겠고 설치할 때 점검 사항으로서는요 설치 전에 사용자 환경에 맞추어서 점검할 내용들을 설명을 하고 계정이나 설치 권한에 대한 확인 그리고 설치 중간에 발생할 수 있는 에러 이러한 부분에 대한 경우적인 부분을 좋겠습니다. 그리고 네트워크적인 부분에 대한 어떠한 요구 조건이 요구되는 경우에는 설치할 때 네트워크 문제로 인해서 오류가 발생하지 않도록 사전에 연결성을 체크를 하라는 부분을 안내를 하고요. 그리고 보안 및 방화벽 등 문제로 설치가 안 될 경우에 대비해서 환경을 체크할 수 있도록 가이드할 필요성이 있겠습니다. 제품 소프트웨어 고객 지원 방법에 대한 내용이 포함되어 질 필요성이 있는데, 연락 다양한 국가나 웹사이트 주소 그리고 전화번호 네 그리고 이메일과 같은 설치 관련되어진 기술적 지원이나 제품 서비스 원하는 경우에 아래 표 참조하거나 해당 구입사로 문의하라 라고 해서요.

29:10
이렇게 안내하면 좋겠고 마지막으로, 준수해야 될 정보나 제한되어지는 사항들 시리얼 보존이나 불법 등록 사용 검지와 금지와 같은 주주 사항을 권고하고 저작권 관련되어진 정보 안내할 필요성이 있겠습니다. 제품 소프트웨어 설치 매뉴얼 작성 순서인데요. 먼저 기능을 식별하고요. 그리고 사용자 인터페이스 유저 인터페이스를 분류합니다. 화면 단위로 작성할 작성될 ui로 분류하고요. 그리고 설치 백업 파일머의 확인 그리고 언인스트롤 설치를 다시 삭제하는 절차 안내 그리고 어떤 설치 진행 상황에서 이상 메시지 오류가 있을 때 조치할 수 있는 방안을 기술하고 최종 매뉴얼 적용 순서로 설치 매뉴얼을 작성합니다. 제품 소프트웨어 사용자 매뉴얼에 대해 살펴보도록 하겠습니다.

30:04
두 번째 매뉴얼 종류죠 사용자매뉴얼은요, 개발이 완료되어진 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고 설치와 사용에 필요한 제반 절차 및 환경과 전체 내용을 포함하는 매뉴얼을 작성을 합니다. 그리고 제품 소프트웨어에 대한 패치 개발 업그레이드를 위한 버전 관리도 수행이 필요하고요. 개발되어진 컴포넌트를 사용할 때 알아야 하는 내용을 기술하고 패키지의 기능이나 패키지의 인터페이스 그리고 포함되어 있는 메소드나 오퍼레이션 메소드와 파라미터 등에 대한 설명을 포함을 합니다. 사용자 매뉴얼에 대한 작성 단계인데요. 먼저 작성 지침에 대해서 정의를 하고요. 그리고 사용자 매뉴얼에 대한 구성요소를 정의합니다.

31:02
일례로 제품 소프트웨어의 기능이나 구성 객체 목록 객체별 메소드의 파라미터 및 설명 실제 사용 예제 사용자 환경 세팅 방법과 같은 사용자 매뉴얼 구성요소 정의 그리고 구성요소별 내용 작성 그리고 사용자 매뉴얼 검토 순으로 진행을 하고요. 사용자 매뉴얼의 작성 항목으로는 세 파트로 목차 및 개요 그리고 서문에는 문서 이력 정보와 사용자 매뉴얼에 대한 주석 그리고 기록 보관과 관련해서는 이러한 항목들이 포함되어질 수 있는데, 제품 등록과 관련한 기록에 대한 내용 그리고 향후 필요한 경우 도움이 되는 추가 제품 정보 받기 위한 내용 기재 그리고 인터넷을 이용한 지원이 가능하도록 웹사이트나 url 기재 제품 소프트웨어 cd롬을 통해 우편 또는 팩스로 지원할 수 있는 양식을 제공을 합니다.

32:00
사용자 매뉴얼에 대한 작성 항목으로서요 매뉴얼 기록 항목은 제품의 명칭 모델명 문서 번호 제품번호 그리고 구입 날짜 구입 날짜는 일반적으로 사용자가 직접 기재하도록 빈 공란으로 공급 처리하는 것이 좋겠고 마지막으로, 기본 내용 기본 사항 제품 속도와 관련되어진 설명 항목들을 포함을 합니다. 자 사용자 매뉴얼에 대한 기본사항인데요. 기본 사항에는요 설치 매뉴얼과 마찬가지로 비슷하게 구성이 되어지는데 제품 소프트웨어에 대한 개요적인 내용과 그리고 제품 소프트웨어에 대한 사용 이 제품 소프트웨어 사용 부분에서는요 제품 소프트웨어를 사용하기 위한 최소 환경 그리고 pc사양 os 버전을 명시하고 최초 소프트웨어 제품 소프트웨어 최초 동작을 위한 설명 기타 주의사항을 포함시킵니다.

32:56
그리고 제품 소프트웨어 관리적인 부분에서는 사용 종료 및 관리 등에 대한 내용을 기재하고 모델 버전별 특징과 기능 그리고 인터페이스 특징 제품 기능 및 인터페이스 특징을 간단하게 기술하고 제품 소프트웨어 구동 환경을 포함을 시킵니다. 제품 소프트웨어의 사용자 매뉴얼 내용에 대한 상세 가이드인데요. 설치 화면 및 ui는 주의사항 부분은 사용자 반드시 숙지해야 될 중요한 정보를 지속 표시하고 참고사항 부분은 특별한 사용자 환경 및 상황에 대한 내용을 주속 표시합니다. 주요 기능 분류로서 설명할 기능을 포함할 화면을 첨부를 하고요. 동작하는 기능을 화면 순서대로 차례로 분류를 하고 기능 동작식 참고사항 주의사항들을 메모로 추가합니다. 응용 프로그램 및 설정인데요.

33:51
제품 소프트웨어가 동작할 때 함께 동작해야 하는 애플리케이션이 있다. 그런 경우에는 그 자체를 안내를 해야 되고 또 오히려 해당 이 애플리케이션은 충돌이 발생할 수 있는 애플리케이션이 있으면 그 자체를 반드시 안내를 해야 됩니다. 소프트웨어 관련되어진 인터럽트가 있죠. 소프트웨어 인터럽트는 충돌에 의해서 아도베의 포토샵과 아래한글 제품이 자바스크립트 엔진 충돌이 있거든요. 그래서 설치 순서가 고려가 되어야 되는 그런 케이스 처럼 제품 소프트웨어 동작할 때 충돌이 될 수 있는 원유 프로그램이 있으면 그걸 안내를 합니다. 제품 소프트웨어 동작할 때 사전에 또 실행을 해야 하는 애플리케이션이 있으면 그것도 반드시 포함을 시켜가지고, 안내를 하고요. 제품 소프트웨어 설정과 관련된 사항이나 기본값에 대한 내용도 설명을 합니다. 그리고 장치 연동인데요.

34:49
제품 소프트웨어가 임베디드 하드웨어 내에 내장되어서 지은 그러한 제품일 경우에는 해당 디바이스는 어떤 것이고. 또 연동되는 디바이스는 무엇인지를 설명을 하고요. 네트워크 환경 제품 소프트웨어와 관련되어진 네트워크 정보를 표시시시키고 네트워크에 정상 연결됐는지 또 이를 위한 관련 설정값은 무엇인지를 기술하고요. 그리고 프로필 설명으로서요 제품 소프트웨어 구동할 때 체크해야 되는 환경 파일과 환경 파일의 경로 변경 이동 금지를 안내하고 그리고 필수 파일에 대한 내용을 간략하게 설명하면 됩니다. 자 퀴즈로서 내용 정리해 보도록 하겠습니다. 다음 중 제품 소프트웨어 설치 매뉴얼 포함되는 내용으로 올바르지 않은 거 설치입니다. 저희가 두 가지 살펴봤어요.

35:34
설치 매뉴얼 사용자 매뉴얼 설치 매뉴얼에 포함되지 않는 거 사 설치를 위한 설치를 위한 환경 체크 항목 사용자 pc의 cpu나 메모리 운영체제 등 적합환경 설치를 위함입니다. 맞죠. 제품 소프트웨어 사용절차 및 사용화면은 설치 매뉴얼이 아니라 사용자 매뉴얼요 사용자 매뉴얼에 포함이 되어야 될 내용입니다. 그래서 얘가 맞지 않고 문서 이력 정보 공통적으로 다 포함이 됐고 설치 파일 및 설치 위치 다음 두 번째 파트로서 국제 표준 제품의 품질 특성에 대해 살펴보도록 하겠는데 ncs 학습 모듈이 없는 부분입니다.

36:27
국제 표준 제품의 품질 특성을 두 가지로 분류를 하겠는데 제품 품질 표준과 프로세스 품질 표준으로 나눠서 살펴보도록 하겠습니다. 먼저 제품 품질 관련되어진 국제 표준으로서는요 즉 소프트웨어 제품 품질과 관련된 국제표준 iso 국제표준화기구의 ic 구아나 이륙 모델이라고 지칭하겠습니다. 여기서는 어떤 내용을 담고 있느냐면은 9126은요, 품질 특성 및 측정 기준을 제시하는데 기능성 신뢰성 사용성 효율성 이식성 유지보수 용이성에 대한 해당 기준을 제시하고 있습니다. 다음 지금 현재 살펴보고 있는 이 파트와 관련해서 제품 소프트웨어 매뉴얼 제품 소프트웨어와 관련해서요.

37:16
조품 소프트웨어와 관련되어서 어 제품 품질과 관련되어진 국제 표준 두 가지를 저희가 위주로 뒤에 더 살펴볼 건데 세부적으로 그 첫 번째가 isoic 14598 모델입니다. 소프트웨어 제품의 평가 프로세스 및 평가 모듈을 제공합니다. 기타 세부적 내용을 스킵할게요 그리고 두 번째 isoic 12119 네 이해하기 쉬워요 끝에 119 끝나니까 위험한 위험하다 뭐 이렇게 네 119 자 소프트웨어 패키지에 대한 내용을 다루고 있습니다. 소프트웨어 패키지 그래서 지금 현재 저희가 다루고 있는 파트하고 관련된 부분이죠. 패키지 소프트웨어에 대한 품질 사항 및 테스트와 관련되어진 표준을 담고 있습니다. isoi ec25000 모델도 있고요.

38:14
품질 모형 품질 매트릭스 품질 요구사항 품질평가 다음 프로세스에 관련되어진 부분인데 소프트웨어 프로세스 품질 관련되어진 국제표준 isoic9천 모델 품질경영과 품질보증에 관련된 국제규격이 되겠고요. isoic12207은 소프트웨어의 라이프 사이클 프로세스에 대한 표준을 제시하고 있습니다. 소프트웨어 기본 지원 조직 생명 주기로 구분해서 각각 수행하는 프로세스를 규정하고 있고요. 그다음에 isoic 15504 모델은 프로세스 표준모델이 되겠고 그리고 15288 모델은 시스템 생명주기 프로세스에 대한 내용을 담고 있고요.

39:06
마지막으로, cmmi 소프트웨어와 시스템 기술의 프로세스 개선 통한 모델을 담고 있는 국제 표준입니다. 자 세부적으로 두 가지 더 구체적으로 살펴보도록 하겠는데 iso와 ic 12 119 주로 패키지 소프트웨어에 대한 품질 평가에 적용되어지는 국제 표준 기준이 되겠고요. 평가 절차는요 제품설명서에 대한 시험 제품설명서에 관한 요구사항이나 권고사항 수행 시험과 일관성 제품 소개 명시 내용 그리고 특성 내용 시험과 같은 내용을 담고 있고요. 사용자 문서 지침 개괄적으로 보겠습니다. 실행 프로그램에 대한 시험 그리고 시험 기록 시험 보고서 작성 평가절차적인 부분에 포함이 되어 있습니다.

40:00
두 번째 iso is 14598은요, 개발자에 대한 소프트웨어 제품 품질 향상과 구매자의 제품 품질 선정 기준을 제공하는데 특징적인 부분에서는요 반복성 재현성 공정성 객관성이 있는데, 해당 상식선에서 매칭시킬 수 있기 때문에 구체적으로 보지 않고 뒤에 문제 풀면서 내용 정리하겠습니다. 다음 설명 퀴즈입니다. 다음 설명에 해당하는 제품 소프트웨어의 국제품질 표준은 무엇인가 소프트웨어 패키지에 대한 소프트웨어 패키지에 대한 국제 품질 표준이냐 이것만으로도 고를 수 있죠. 1 2 1 1 9 소프트웨어 패키지에 대한 국제 품질 표준이란 제품 설명서 사용자 문서 프로그램과 데이터에 대한 품질 평가 기준을 제시한다.

40:56
자 모의평가 문제 다섯 문제 풀면서 내용 정리하겠습니다. 첫 번째 다음 중 제품 소프트웨어 설치 환경 체크 항목 제품 소프트웨어 설치 환경 체크 항목에 해당되지 않는 것은 첫 번째 업그레이드 이전의 버전이 존재하는지 여부를 확인하라 맞죠. 사용자의 cpu와 메모리와 os의 환경을 점검하자 맞죠. 설치의 최소 사항이 있으니까 거기에 부합되지 않는 경우에 설치가 안 되죠. 설치 전에 다른 응용 프로그램을 점검하여 종료한다. 맞고요. 개발자의 개발환경은 사용자가 설치할 때와 관련성은 없어요. 그래서 사용자 중심적인 환경에서 점검을 하는 거지 개발적 중심적인 환경에서 점검하는 건 아닙니다.

41:49
다음에서 설명하는 매뉴얼은 무엇인가 개발 완료되어진 소프트웨어를 고객의 전달을 위한 형태로 패키징하고 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 메뉴를 작성하며 제품 소프트웨어에 대한 패치 개발 업그레이드를 위한 버전 관리도 수행을 합니다. 관련되어진 매뉴얼 저희는 두 개를 살펴봤어요. 설치 매뉴얼 사용자 매뉴얼 여기서는 사용자 매뉴얼이 해당되겠습니다. 2번이 정답입니다. 다음 3번입니다. 다음 중 제품 섭취와 사용자 매뉴얼 작성 항목으로 올바르지 않은 거 틀린 거 골라 음 사용자 메뉴 작성 항목이에요. 사용환경 제품소프트웨어를 사용하기 위한 최소 pc환경으로 cpu 메모리 등을 포함한다. 맞죠.

42:45
구동환경 개발언어 및 호환 os와 설치 마법사 이후에 사용자 구동환경을 설명한다. 네 맞습니다. 세 번째 제품명칭 소프트웨어 제품소프트웨어의 고유명칭 빌드 환경 제품 소프트웨어 소스를 빌드하여 실행 환경으로 만들기 위한 환경 설명에 의한 4번은 사용자 매뉴얼 작성 항목에 포함되지 않습니다. 빌드 환경은요, 사용 환경 구동 환경 제품 명칭 제품 번호 이러한 것들이 사용자 매뉴얼 작성 항목에 포함되는 부분입니다. 네 4번입니다. 다음 중 국제 표준 제품 국제 표준 제품 품질 특성에 대한 설명으로 옳지 않은 거 골라 틀린 거 isoic 1 2 1 1 9 제품 소프트웨어 패키지에 대한 품질 요구사항 등등이야 맞죠.

43:36
iso isa 1 2 2 0 7 소프트웨어 라이프 사이클 프로세스 표준을 제시해 기본 지원 조직 생명 주기로 이루어진다 세부적으로 안 살펴봤는데 맞습니다. iso 14598 저희 두 가지는 세부적으로 살펴봤어요. 소프트웨어와 시스템 기술이 프로세스 개선 통합 모델을 제시한다. 이 설명은 iso 14598이 아니라 cmmi에 대한 설명이에요. 소프트웨어와 시스템 기술의 프로세스 개선 통합모델 그래서 3번이 틀렸습니다. 4번 isyc 15288 시스템 생명주기 프로세스 표준이야 네 맞습니다. 마지막 5번입니다.

44:20
다음 중 isyc 14598에 대한 설명 중 옳지 않은 것을 골라라 첫 번째 시스템 생명주기 프로세스 표준을 나타내니 자 방금 전에 마지막 보기 항목이 시스템 생명구조계 프로세스 표준이었죠. isoic 15288이었어요. 그래서 1번이 14598에 대한 설명으로 옳지 않다 그래서 골라냈고요. 자 맞는 거 한번 보겠습니다. isoic 14598 모델은 소프트웨어 제품 평가 프로세스 및 평가 모듈을 제공해 그리고 소프트웨어 획득자와 개발자 사이에서 소프트웨어 개발 과정 또는 개발되어진 제품의 품질에 대한 객관적 평가 표준과 프로세스를 제공한다. 패키지 소프트웨어와 isr이요. sr 시스템 통합 개발 소프트웨어에 있어서 개발 과정 또는 개발 완료된 제품의 품질에 대한 평가 표준과 프로세스를 제공한다. 맞습니다.

45:20
핵심정리입니다. 제품 소프트웨어 매뉴얼 작성과 관련해서는요 설치 매뉴얼과 사용자 매뉴얼 중심적으로 양분화해서 저희가 살펴봤었고요. 설치 및 사용자 매뉴얼은 모두 다 개발자 기준이 아니라 사용자 기준으로 작성해야 된다. 라는 특징이 있었고요. 설치 및 사용자 매뉴얼의 작성 단계 및 작성 항목에 대해 살펴봤습니다. 다음 국제 국제 표준 제품 품질 특성으로서요 제품에 대한 품질 표준과 프로세스에 대한 품질 표준으로 나눠서 살펴봤었는데 소프트웨어 제품에 대한 품질 관련 국제 표준으로서는요 ic9126 1514598 12119 25000 모델이 있었고, 소프트웨어 프로세스에 대한 품질 관련 국제 표준으로서는 9천 1220071550415288 cmmi가 있었습니다. 이상으로 제품소프트웨어 매뉴얼 작성에 대해 살펴봤습니다.

46:19
제품소프트웨어 패키징 마지막 세번째 제품소프트웨어 버전 관리에 대해 살펴보도록 하겠습니다. 자 학습목표인데요. 형상관리 지침을 활용하여 제품 소프트웨어에 신규 개발 변경 개선과 관련되어진 버전을 등록할 수 있다. 두 번째 형상 관리 지침을 활용하여 제품 소프트웨어의 신규 개발 변경 개선과 관련되어진 버전 관리 도구를 사용할 수 있다. 버전 관리 도구를 활용하여 제품 소프트웨어에 대한 버전 현황 관리와 소스 관련 자료에 대한 백업을 수행할 수 있다. 입니다. 자 학습 내용은 두 파트로 나눠서 살펴보도록 하겠는데요.

47:09
소프트웨어 버전 관리 도구와 빌드 자동화 도구는 시험 세부 출제 기준에 추가되어진 부분입니다. 학습 모듈에서는 안 다루고 있는 내용이에요. 자 용어 사전으로서요 제품 소프트웨어 버전 관리는 뭔데 제품 소프트웨어 버전 관리라는 부분은 소프트웨어 개발과 관련된 코드와 라이브러리 관련 문서 등 시간의 변화에 따른 변경을 관리하는 전체 활동을 의미합니다. 소프트웨어 버전 관리 도구에서요 버전 관리 도구 개념 먼저 살펴보도록 하겠습니다. 학습 목표에서 제시되었던 바와 같이 형성 관리 지침을 활용하여 제품 소프트웨어의 신규 개발과 변경과 개선 관련되어진 수정 내역을 관리하는 도구가 되겠고요.

48:01
버전관리도구를 활용해서 시장에 출시되어진 제품 소프트웨어의 버전과 변경 개선 내역을 히스토리로 관리할 수가 있습니다. 그리고 버전관리도구를 이용한 사례로서는요 aln 네 약어들이 지금 네 원어를 보면 이해가 될 겁니다. 애플리케이션 라이프 사이클 매니지먼트다 응용 응, 응용 프로그램에 대한 생명주기 관리죠 전체 라이프 사이클을 관리하는 방향으로 진행 중이다. 무슨 말이냐면 해당 소프트웨어 버전 관리 자체가요 소수 일부 하위 내용이 아니라 전체적인 측면에서요 해당 버전 관리에 대한 기능적인 부분 자체가 더 확대되어지고 있다.

48:51
이렇게 이해를 한 사례들인데 일부가 아니라 전체 라이프 사이클을 관리하는 방향으로 진행 중이고 그리고 소프트웨어뿐만 아니라 하드웨어까지도 전체적 서비스 관점에서 버전 관리를 하고 있다. 마지막으로, 전산 it 거버넌스의 한 부분으로 정의가 되어 비즈니스 영속성을 유지하기 위한 방향으로 통합되어지고 있다. 그냥 이용 사례니까 이렇게만 보고 넘어가겠습니다. 다음요 버전관리도구의 유형별 특징인데 이 파트는 제가 볼 때 시험에 내기 쉬운 부분입니다. 시험에 문제와 내기 쉽기 때문에 꼭 익혀놓기를 권해드리고요.

49:30
버전관리도구의 유형은요, 세 가지로 구분되는데 공유 폴더 방식 그리고 클라운트 서버 방식 그리고 분산 저장소 방식 거기에 각각 해당되어지는 해당 툴이 밑에 포함되어 있는 rcs sccs는 공유 폴더 방식이에요. 이 공유 폴더 방식이라는 부분은 pc에서요 매일 개발 완료되어진 파일을 약속된 위치 및 공유 폴더에 담당자 한 명이 여러 명도 아니고 담당자가 매일 공유 폴더의 파일을 자기 pc로 복사하고 컴파일하고 에러 확인한 다음에 정상 동작 여부 확인하고 얘를 배포하는 거예요. 정상 동작되면 개발자들이 동작 여부 확인할 수 있게끔 하는 방식 pc 중심적인 방식입니다.

50:23
공유 포일러 방식 rcs s ccs 도구가 해당되어지고 클라이언트 서버 방식 우선적으로는요 이렇게 발전해 왔다고 보시면 돼요. 공유 포일러 방식에서 클라이언트 서버 방식 그리고 분산 저장소 방식 순으로 발전해 왔다 클라이언트 서버 방식은요, 중앙에 버전 관리 시스템이 항상 동작을 하고요. 개발자들의 현재 작업 내용과 이전 작업 내용을 축적하기에 용이하고 그리고 서로 다른 개발자가 같은 파일에 대한 작업을 할 수가 있어요. 없다가 아니요. 할 수 있습니다. 그리고 종류는요 cvs svn 클리어 케이스가 해당되어집니다.

51:06
cvs s를 시작하니까 sv 이름 약간만 바꾸면 이렇게 묶어가지고 개념적으로 cvs sv 거꾸로 n 이렇게 뒤에 더 상세하게 약어니까 풀어가지고 설명해 드릴 건데 이렇게 개념적으로 익히면 이해하기 쉬울 거예요. 다음 분산 저장소 관리 방식의 대표는 zit입니다. git 그리고 비트키퍼 등이 있구요. 로컬 저장소와 원격 저장소 구조로 되어 있고요. 중앙에 저장소에서 로컬에 로컬이 한 pc입니다. pc에 복사한 순간 개발자 자신만의 로컬 저장소가 생성이 되어지고요. 개발 완료되어진 파일 수정한 이후 로컬 저장소에 커밋을 하면 다시 원격 저장소에 반영하는 방식 된다. 이렇게 보겠는데 뒤에 더 보도록 하겠습니다.

52:02
현업에서 사용되어지는 현업에서 쓰이는 다양한 버전 관리 도구별 특징인데요. csv는 컨커런트 버전 시스템의 약어입니다. 머릿결만 따내가지고 cvs 이렇게 돼 있거든요. 클라이언트 서버 방식이죠. 서버와 클라이언트로 구성되어 있고 다수의 인원이 동시에 법령적인 운영체제로 접근 가능하며 하여 버전 관리하는 것이 가능해 얘는 1990년에 먼저 출시됐고요. svn은 10년 후인 2천년도에 출시되어진 서비스인데 cvs의 장점을 이어받고 단점을 개선해서 2천년도에 발표했다. 사실상 업계의 표준은 svn 서버전의 약어입니다. 사용되어지고 있다. 업계 표준으로 gnu의 버전 관리로도 svn이 사용되어지고 있습니다.

52:59
gnu는 유닉스의 호환 운영체제 만들어진 부분입니다. 무료로 모든 프로그램은 무료로 모든 사람들이 이용할 수 있어야 돼 라는 프리소프트웨어 운동 일환으로요 rcs 리비전 컨트롤 시스템의 약어입니다. rcs는 앞서서 이건 피싱 운영 방식이었어요. 공유 폴더 방식이었어요. csv와 달리 소스 파일을 수정한 수정을 한 사람만으로 제안을 하여 다수의 사람이 파일 수정을 동시에 할 수 없도록 파일을 잠금하는 방식으로 버전 컨트롤을 수행한다. 비트키퍼는 아까 분산 저장소 방식이었어요. svm과 비슷한 중앙통제방식의 버전 컨트롤 툴인데 대규모 프로젝트에서 빠른 속도로 되도록 개발이 되어졌다 이어지는 짓입니다. 짓에 대한 특징이 굉장히 많이 이렇게 돼 있죠. 짓은 리눅스 있죠.

53:57
운영체제 리눅스 운영체제의 리눅스 커널의 버전 컨트롤을 하니 하기 버전 컨트롤하는 비트 키퍼를 대체하기 위해서 나온 새로운 버전 컨트롤로 현재는 이 리눅스는 이것을 통해서 버전 컨트롤이 되고 있다. 속도에 중점을 둔 분산형 버전 관리 시스템이고요. 대형 프로젝트에 효과적이고 유용합니다. 그다음 클리어 케이스는 ibm에서 만든 유료입니다. 유료 버전 cc나 이런 것들은 무료예요. ibm에서 제작한 클리어 케이스는 복수 서버 복수 클라이언트 구조이고요. 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있다.

54:40
버전 관리 도구에 대한 사용 순서 버전 관리 도구 유의사항 확인하고 그리고 동작 원리를 학습한 다음 버전 관리 도구를 실행시켜서 버전 관리 도구의 기능별 동작 다음 형상 관리 개념 공유 버전 관리 도구 유의사항 공유 순으로 버전 관리 도구를 사용할 수 있다. 다음 소프트웨어 버전 관리 도구 사용할 때 유의점입니다. 네 유의점도 보기 항목이 4개입니다. 객관식으로 4개가 수월하죠. 자 소프트웨어 버전 관리 도구의 유의점 사용 시 첫 번째 형상관리 지침에 의거해서 버전에 대한 정보는 언제든지 접근이 가능해야 돼 가능이 있고요. 불가능이 있어요. 그러니까 이것만 바꾸면 가능을 불가능으로 이렇게 제시하면 보기 틀린 보기를 내기가 쉽겠죠. 버전에 대한 정보는 언제든지 접근이 가능해야 됩니다.

55:36
그리고 두 번째 개발자와 배포자 이외에 불필요한 사용자들은 소스 수정은 불가능하게끔 막아야 돼요. 누구든지 소수 조정이 가능하게끔 해버리면 여기 예시처럼 만일 신입사원이 조건에 의해서 허가 없이 수정을 할 수 있다고 한다면, 그동안 개발되었던 소수 버전 자체가 엉뚱하게 수정될 위험성이 있다는 거죠. 그렇기 때문에 소수 버전에 대한 수정은 허가된 사람만 이용 가능하게끔 개발자와 배포자 그리고 세 번째 동일한 프로젝트 파일에 대해서는 여러 개발자가 동시에 개발할 수 있도록 해야 한다. 다음 에러 발생이 될 때 최대한 빠른 시간 내에 복구가 되어야겠죠. 소프트웨어 버전의 오류가 발생을 하면 개발자가 신속하게 알게 하고 과거 버전의 소스를 가지고 최대한 빠르게 복구할 수 있어야 합니다. 다음 제품소프트웨어 버전 관리 도구에 대한 활용방향인데요.

56:36
제품 소프트웨어 개발 조직이나 기입 배포되어진 기배포된 제품이 있는 조직에서는 기존에 보유하고 있는 제품에 대한 버전과 그리고 새로 개발된 버전을 동시에 유지하고 관리 이 부분도 틀린 보기로 내기가 수월할 것 같아요. 그래서 기존의 보유 제품 버전과 새로 개발된 버전은 동시에요. 하나만이 아니라 동시에 유지 관리한다. 활용성 중심적으로 버전 관리 도구의 상세 기능을 활용하여 새 버전을 유지하고 기존 버전의 관리도 함께 수행하자 이를 위해서는 백업 및 장애 복구 등 추가적 사항도 케이스별로 고려할 필요성이 있겠습니다. 다음 버전관리도구를 활용한 통합버전 현황 관리인데요.

57:28
앞서서 저희가 살펴봤던 것처럼 기존과 신규 공통적으로 관리한다. 봅시다 기존에 버전관리 이 버전별 공동 작업 이외에 백업 및 복구 작업과 그리고 공동 솔루션 기반의 여러 가지 작업들이 통합되어 현황 관리가 돼야겠다. 그래서요 관리 작업을 버전 관리 백업 및 복구 그리고 동일 버전 공동 작업 여러 버전 솔루션 작업으로 분할해서 활용 사례 제시해 놓았는데 우선은 통합 버전 현황 관리의 대상은 뭔데 버전 관리 백업 및 복구와 동일 버전 공동 작업 그리고 여러 버전 솔루션 작업이 되겠다. 이렇게 정리하시면 되겠습니다. 다음 버전 관리 도구 활용할 때 자료 백업 정책 및 방법입니다. 정책이라는 건 파울리시죠.

58:21
이렇게 하자 라고 제한되어진 어떤 방향성을요 이렇게 정하는 부분이 되겠고 방법은 구체적인 사항입니다. 자 백업 정책 사례 및 방법인데요. 네 백업 정책이 일례로 버전 관리 라이브러리에 대한 백업 파일은 버전 관리 라이브러리가 저장되어진 디스크하고 분리된 디스크에 저장해야 해 디스크 백업은 하루에 한 번씩 해야 돼 그리고 cd 백업은 일주일에 한 번씩 실시 뭐 이런 식으로요 네 정책적으로 정해놓은 부분이 있겠고요. 구체적인 방법적인 부분은요, 변경된 부분만 백업하는 경우에는 편리해 보이긴 하지만 복구할 때 복잡한 과정을 거쳐야 되니까. 정분 백업 일부 변경 부분만 백업하는 경우에 문제가 발생하는 경우 어려울 수도 있다.

59:10
그래서 버전 라이브러리 백업은 빠른 복구를 위해서 풀백업을 하자 다 백업을 하자 일부만이 아니라 그리고 백업 작업에 대한 임시 신규 요청 또는 중지 요청은 절차에 따라 실시하자 그리고 백업 결과는 버전 관리를 담당하는 체인지 매니지먼트 오피스업 cmo가 주기적으로 점검하고 그 결과를 버전 관리 정기 보고 시 함께 보고할 필요성이 있겠다. 자 퀴즈입니다. 다음 중 소프트웨어 버전 관리 도구 설명으로 올바르지 않은 거 첫 번째 svn svn은 클라이언트 서버 방식이었죠. 동일한 파일을 서로 다른 개발자가 동시에 수종할 수 없도록 제어한다 라고 돼 있는데, 수정할 수 있습니다. 클라이언트 서버 동시에 여러 사람이 접속할 수 있죠. 그래서 얘가 틀렸고 rcs는 이거는 공유 폴드 방식이었죠.

1:00:06
pc 네 단위로 메일 개발 완료 파일은 약속된 위치 공유 폴드 복사 gsn 네 분산 네 로컬 저장소와 원격 저장소로 구성돼 있어 맞고 cvs와 svn인 클라우드 서버 방식이고 중앙에 버전 관리 시스템이 항시 동작해야 된다. 다음 빌드 자동화 도구 파트입니다. 빌드 자동화 도구 파티는 해당 학습 모듈에는 빠져 있는 부분이에요. 출제 개념이 추가되어 있기 때문에 다뤄 드립니다. 빌드 자동화 도구 개념이 뭔데 자 빌드 자동화 도구는요 제품 소프트웨어 실행 파일 생성을 자동적으로 되도록 자동화하기 위해 저장소에 있는 소스를 자동으로 읽어서 빌드로 하여 실행 파일을 만드는 실행 파일을 만드는 도구가 되겠습니다. 빌드 자동화 도구는요 지속적 통합과 일맥상통한다. 지속적 통합이라는 건 컨티뉴어스 인테그레이션을 이야기합니다.

1:01:04
지속적으로 통합해 가는 거 자동적으로 빌드하는 이 부분과 지속적 통합은 맥이 상통한다. 같은 의미다. 이렇게 보아도 되겠고 수없이 반복해서요. 최종 결과물을 만들어내야 하는 소프트웨어 개발 업무에서는요 이 빌드 자동화 도구는 반드시 갖추어야 할 부분입니다. 수없이 반복해서 최종 결과물을 만들어내는 소프트웨어 개발 업무에서는 빌드 자동화는 반드시 갖추자 자 종류 두 가지 살펴보도록 하겠습니다. 먼저 온라인 빌드 자동화 도구 젠킨스입니다. 온라인 빌드 자동화 도구 젠킨스 빌드 자동화 도구로서요 가장 많이 활용되고 있는 도구이고요. 자바 기반의 오픈 소스로 지속적 통합 관리를 가능하게 합니다.

1:01:59
그리고 아파치 통켓과 같은 서블릿 컨테이너 서버 기반으로 동작하는 시스템이고요. 아파치는 웹서버이고요. 통켓도 웹서버인데 얘는 jsp 자바 기반 서블릿 네 웹 애플리케이션적인 부분을 만드는 부분이라고 보시면 돼요. 네 cvs와 svng 다 뭐였어요. 형상관리도구 버전 관리 도구였죠 cvsvng 등 다양한 버전 관리 도구를 지원한다. 그리고 엔트와 메이븐 기반의 프로젝트뿐만 아니라 임의의 셀 스크립트와 윈도우 배치 명령까지도 실행 가능하다 배치는 일괄처리 모아서 처리 다음 온라인 빌드 자동화 도구인 젠킨스에 대한 특징입니다. 개괄적으로 한번 볼게요 우선 설치가 쉽다 젠킨스는 w ar 파일 제공해서요.

1:02:55
자바 명령을 이용해가지고 이렇게 쉽게 설치가 가능하고 gur 환경이 친숙하다 웹 기반의 gi를 통해서요. 쉽게 전체적 설정 변경이 가능하다 그리고 저장소 부하가 감소된다. 버전 관리 도구에서 빌드에 사용될 목록만 따로 추출해서 변경 생성할 수 있는 기능을 제공하기 때문에 전체 빌드로 인한 저장소 부하를 감소시킬 수 있다. 다음 실시간 피드백이 가능하다 그리고 분산 빌드 여러 대의 컴퓨터를 통해서 분산 빌드나 테스트가 가능하고 서드 파티 플러그 다양한 외부 플러그 이렇게 norse 통합 지원을 할 수 있다.

1:03:36
타 도구의 통합 지원인데 데이터베이스나 개발도구 eclibs와 통합도 가능하고 테스트 도구인 j유닛과도 통합이 가능하다 두 번째 네 빌드 자동화 도구로서요 안드로이드 환경에 적합한 도구인 그레이드를 살펴보도록 하겠는데 자 c나 c+4 언어에서는 보통은요, 빌드 관련해서는 메이크 파일이나 잡아낸 엔트나 메이븐과 같은 빌드 단어와 도구를 주로 사용하는데 오픈 소스인 그래드는 여러 가지 언어의 빌드 환경 구성이 가능하다 근데 특히 어디에서 주로 사용되어지느냐 안드로이드 개발 환경 즉 안드로이드 개발 환경이라는 부분은 안드로이드 운영체제는 스마트 운영체제죠 구글에서 만든 즉 안드로이드 폰 그래서 안드로이드 스튜디오나 이런 앱을 만드는요 앱을 만드는 개발 환경에서 이 그레이들이 빌드 자동화 도구로 사용되고 있습니다.

1:04:33
그래드 스크립트는 그루비를 사용을 해서 만든 dsl 도메인 스페시픽 랭귀지이고 모든 그래드 스크립트는 프로젝트하고 그다음 태스크 두 가지 개념으로 구성되는데 하나 이상의 프로젝트 모든 그래드 빌드는 하나 이상의 프로젝트로 구성되고 각 프로젝트에는 다시 하나 이상의 테스크들로 구성된다. 이 정도로만 개념 잡아도 될 것 같습니다. 자 모의평가 문제 다섯 문제 풀면서 정리하도록 하겠습니다. 첫 번째 다음 중 소프트웨어 버전 관리 도구 기능으로 거리가 먼 것은 소프트웨어 버전 관리 도구 첫 번째 소스코드에 대한 형상관리를 할 수 있어요. 맞죠. 버전 관리 형상 관리 같은 의미예요. 그다음 소스에 대한 백업들 그리고 소스에 대한 원래대로의 복구 원복 관리 이 세 가지가 버전 관리 기능이고요.

1:05:32
네 세 번째 오류 관리는 네 버전 관리 도구와는 관련성이 없습니다. 두 번째 제품 소프트웨어 버전 관리 도구를 활용하는 방법과 거리가 먼 것은 틀린 거 첫 번째 동일 버전의 소스를 두 명 이상의 개발자가 공동 개발 및 작업할 수 있어야 돼 맞습니다. 소스코드의 오류 추적 및 디버깅에 활용할 수 있다. 앞서서 1번 문제하고 유사한 문제죠 오류하고 버전 관리하고는 연관성이 떨어집니다. 얘가 틀렸고 버전 관리 도구를 활용하여 제품 소프트웨어의 백업 그리고 제품 소프트웨어의 복구 활용할 수 있다. 맞습니다. 3번입니다. 다음 중 소프트웨어 버전 관리 도구 사용 시 유의점으로 올바르지 않는 거 틀린 거 골라라 첫 번째 시스템 안정성을 위하여 에러 발생하면 빠른 복구보다 형상 유지가 우선으로 한다. 이게 틀렸어요.

1:06:29
실사 안정성을 위해서는 에러가 발생하면 빠르게 복구를 해야죠 틀렸고 개발자 배포자 및 불필요한 사용자가 수수에 접근할 수 없어야 되죠. 동일한 프로젝트 파일에 의해서는 여러 개발자가 동시 개발이 가능해야 되고 형상관리 지침에 의거 버전에 대한 정보를 언제든지 접근할 수 있어야 됩니다. 다음 4번입니다. 다음에서 설명하는 빌드 자동화 도구는 무엇인가 자 빌드 자동화 도구로 가장 많이 활용되어진다 이 특징만으로 바로 젠킨스를 뽑을 수 있는데, 자바 기반의 오픈 소스로 지속 통합 관리 가능하고 csv나 svn 집과 같은 다양한 버전 관리 도구를 지원한다. 5번입니다. 다음 중 빌드 자동화 도구의 주요 기능으로 올바른 걸 골라라 빌드 자동화 기능의 주요 기능은 빌드죠 소스빌드 자동화 및 cin 컨티뉴어스 지속적 통합 지원 1번이 정답입니다.

1:07:30
정리하겠습니다. 네 소프트웨어 버전 관리 도구에서요 저희가 살펴봤던 핵심 내용은 형상 관리 지침을 활용해서 버전 관리 도구는 제품 소프트웨어 신규 개발 변경 개선과 관련되어진 수정 내용을 관리하는 도구였고요. 소프트웨어 버전 관리 도구의 유형 요거는 시험에 나오기가 네 가능성이 높아요. 자 공유 폴더 방식은 rcs와 sccs 클라엔서 방식은 cvs와 svn 아까 제가 요거 연관해 가지고 cvs 거꾸로 하면 svc인데 svn 이렇게 하면 쉽게 외울 수 있다. 말씀드렸죠 분산 저장터 방식은 zit과 비트키퍼 등이 있었습니다. 다음 빌드 자동화 도구 빌드 자동화 도구는 실행 파일 생성을 자동화하기 위해서 저장소에 있는 소스를 자동으로 읽고 빌드에서 실행 파일을 만드는 도구였고요. 두 가지 살펴보셨어요.

1:08:28
온라인의 빌드 자동화 도구 젠킨스 그리고 안드로이드 환경에 적합한 도구 그래들에 대해 살펴봤습니다. 네 이상으로 제품 소프트웨어 버전 관리에 대해 마치도록 하겠습니다.

728x90
반응형
posted by 아이윤맨
:
728x90
반응형

https://youtu.be/68dbddmzmZM?si=TgPOxj1_t8mVsvHX

1. 통합구현과 단위모듈

1-1. 통합구현과 단위모듈 개념
- 통합구현은 모듈 간의 연계를 구현하는 것임
- 단위모듈은 통합구현에 필요한 단위 컴포넌트를 뜻함
- 단위모듈 구현은 통합구현에서 단위모듈 구현을 포함함
- 단위모듈 구현 시 모듈 간의 응집도를 높이고, 모듈 간의 결합도를 낮추는 것이 중요함
- (중요) 모듈 내 오류 체크 로직을 포함하여 개별 단위 모듈보다 공통 모듈을 먼저 개발하는 것이 바람직함

1-2. 단위모듈 테스트의 개념과 방법
- 단위모듈 테스트는 소스 코드의 모듈이 의도된 대로 작동하는지 검증하는 절차임
- 단위모듈 테스트 방법은 주로 화이트박스 테스트를 사용함
- 메소드 기반 테스트는 메소드의 파라미터 값을 변경하여 다양한 테스트를 수행함
- 화면 기반 테스트는 화면 단위로 직접 데이터를 입력하여 테스트 수행함

1-3. 단위모듈 테스트의 세부내용
- 공통 모듈의 예는 날짜 계산, 주소 정보 체크, 주민등록번호 정합성 체크 등임
- 단위모듈 구현 시, 응집도를 높이고, 모듈 간의 결합도를 낮추는 것이 중요함
- 예외 처리 로직을 포함하여 모듈의 오류를 체크하는 것이 좋음
- 공통 모듈을 먼저 개발하고, 개별 단위 모듈에 공통 모듈을 적용할 수 있음
- (중요) 모듈의 오류 체크 로직을 포함하여 개별 단위 모듈을 먼저 개발하는 것이 좋음

2. 테스트 기법과 유닛 테스트

2-1. 테스트 기법 이해
- 단위 모듈 테스트의 다양한 기법이 존재함
- 스톱과 드라이브를 활용한 단위 모듈 테스트의 개념을 이해함
- (중요) 통합 테스트에서 상향식과 하향식 테스트를 설명함
- 소스 코드 커버리지는 테스트 수행 정도를 측정하는 도구로 사용됨
- 소스 코드 커버리지의 유형은 범위용역이 작은 구문 커버리지부터 넓은 다중 조건 커버리지까지 있음

2-2. 단위 모듈 테스트의 기법
- 자바 기반의 단위 모듈 테스트인 제이유닛과 씨플 플러스 언어 기반의 단위 테스트인 CPP를 알아봄
- 단위 모듈 테스트의 기법에는 탑다운과 바텀업 하향식이 포함됨
- 통합 테스트 기법에서는 상향식과 하향식 테스트를 수행함
- 테스트의 세부 방법 중 하나는 모듈 내부의 소스를 보면서 수행하는 화이트박스 테스트임
- 테스트 방법 중 하나는 메스워드 기반 테스트로, 파라미터 값을 변경하면서 다양한 테스트를 수행함

2-3. 단위 모듈 테스트의 적용
- 단위 모듈 테스트의 주요 사용 사례는 사용자 로그인 모듈, 비즈니스 트랜잭션 로그 기록 모듈 등임
- 단위 테스트는 일반적으로 구현 프로그래머가 수행하며, 블랙박스 테스트 방식을 주로 사용함
- 공통 모듈에는 비즈니스 로그 기록, 사용자 로그인, 주문 접수 화면 등이 포함됨
- (중요) 테스트는 모듈 구현 후, 화면 단위로 직접 데이터 입력을 통해 수행함
- 단위 모듈 테스트의 각 기법은 테스트의 세부 방법과 별개로 이해해야 함

3. 소프트웨어 개발 모듈 구현과 통합 관리

3-1. 소프트웨어 개발 모듈 구현의 중요성
- 소프트웨어 개발 모듈 구현이란, 비즈니스 컴포넌트, 네이웨이브 컴포넌트, 데이터베이스 접근 모듈 등을 통합하는 작업임
- 모듈 구현 시, 고려해야 할 주요 사항은 오염 최소화, 결합도 최소화, 공통 모듈 먼저 구현 등임
- (중요) 재사형성과 예외 처리 로직을 고려하여 문제가 있는 것을 알 수 있게끔 해야 함
- 화이트 박스 테스트, 메소드 기반 테스트, 스톱과 드라이브 활용한 테스트 등이 단위 테스트의 핵심 방법임

3-2. 소프트웨어 개발 도구의 종류와 특징
- 아이디 도구는 소프트웨어 개발 도구로, 통합 개발 환경 제공, 컴파일 및 디버깅 기능 제공, 외부 연계 모듈과의 통합 기능 제공 등을 함
- (중요) 아이디 도구는 사용 환경이 다양하며, 무료로 이용 가능함
- 다른 협업 도구에 비해 아이디 도구는 통합 개발 환경 지원, 컴파일 및 디버깅 기능 제공, 외부 연계 모듈과의 통합 기능 제공 등을 중점으로 함

3-3. 협업 도구의 중요성과 기능
- 협업 도구는 여러 사람과 함께 작업하는 데 필요한 도구로, 협동 작업을 위한 통합 구현 관리 기능 제공
- 문서 공유 도구, 소스 공유 도구, 마인드맵 등의 기능을 제공
- (중요) 협업 도구를 통해 개발자 간의 협업을 지원하며, 유대감 형성과 지속적인 커뮤니케이션을 돕는 역할을 함

4. 소프트웨어 협업 도구의 이해

4-1. 협업 도구의 기능과 활용
- (중요) 협업 도구는 개발자 간 커뮤니케이션을 지원하고 일정 및 이슈 공유를 지원함
- 집단지성을 활용하여 개발자 간의 아이디어 공유를 가능하게 함
- 소프트웨어 개발 도구로 사용되는 도구들은 암기할 필요 없음
- 향후 문제 풀이 시 협업 도구의 기능을 다시 정리할 예정

4-2. 형상관리 도구의 개념과 종류
- 형상관리 도구는 소프트웨어의 변경사항을 체계적으로 관리하는 것을 목표로 함
- (중요) 형상관리 도구 종류에는 체크아웃, 체크인, 커밋 등이 있음
- 체크아웃은 소스 코드를 다운로드 받고, 체크인은 소스 코드를 업로드하는 기능
- 커밋은 업데이트된 소스 코드가 형상관리 서버에 반영되도록 하는 기능

4-3. 형상관리 도구의 활용과 시험 준비
- 형상관리 도구는 소프트웨어 개발 과정에서 중요한 역할을 함
- 형상관리 도구를 활용하면 소프트웨어의 전체 비용을 줄이고 개발 과정에서 문제를 최소화할 수 있음
- 형상관리 도구의 종류는 이클립스, MS, 가볍게개발 도구 등이 있음
- (중요) 이클립스는 스마트 커머스에서 개발이 가능하며, MS는 다양한 운영체제를 지원함


728x90
반응형
posted by 아이윤맨
:
728x90
반응형

https://youtu.be/mmhTxJpH_Qk?si=Otvxm4FJ_Hpnj3-g

1. 소프트웨어 개발과 데이터 입출력 구현

1-1. 소프트웨어 개발의 다섯 가지 직무능력 단위 중 데이터 입출력 구현에 대한 이해
- (중요) 데이터 입출력 구현은 논리 데이터 저장소 확인, 논리 데이터 모델 개요, 논리 데이터 모델 검증의 3가지 요소로 구성됨
- 자료 구조는 시험에 자주 출제되며, 논리 데이터 저장소 확인 부분은 학습 모듈 내에 포함되지 않음
- 논리 데이터 모델링은 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델로, 중복성을 최소화하여 정보의 일관성을 보장함

1-2. 자료 구조의 종류와 그 특성
- 자료 구조는 선형 구조와 비선형 구조로 나누어짐, 선형 구조에는 리스트, 연결 리스트 등이 있음
- (중요) 비선형 구조에는 트리와 그래프가 있으며, 트리는 데이터를 계층화시키며, 노드와 간선으로 구성됨
- 선형 자료 구조의 예시로는 배열, 연결 리스트, 스택, 큐 등이 있음

1-3. 비선형 자료 구조의 구체적인 종류와 특성
- 비선형 자료 구조에는 트리, 연결 리스트의 개념이 포함되며, 이들은 모두 노드와 간선으로 구성됨
- 트리는 노드와 간선에 대한 이해가 필요하며, 각각의 노드는 관계를 가지는 특정 데이터를 저장함
- 연결 리스트는 임의의 기억 공간에 기억하며, 각 노드의 추가나 삭제가 속도에 따라 다름
- (중요) 스택은 큐와 마찬가지로 푸시와 팝 등의 연산이 가능하며, 큐의 양쪽에서 삽입과 삭제가 가능함

2. 트리와 이진트리의 이해와 활용

2-1. 트리의 개념과 종류
- 트리는 하나의 그래프 형태로, 각 노드가 연결된 선의 수에 따라 노드의 차수가 결정됨
- 트리의 레벨은 해당 노드까지 도달하는 간선의 수로 정의됨
- 트리의 차수는 트리의 깊이를 나타내며, 노드의 차수 중에서 제일 큰 차수를 가짐
- (중요) 트리의 높이는 노드에서 루트까지 도달하는 간선의 수를 의미함

2-2. 이진트리의 개념과 종류
- 이진트리는 트리의 특성을 기반으로, 왼쪽 또는 오른쪽만 가지는 자식 노드를 가짐
- 이진트리의 노드 수는 해당 트리의 차수에 따라 달라짐
- 이진트리는 왼쪽과 오른쪽 두 자식 노드만을 가질 수 있는 형태로, 이들의 합이 전체 트리의 차수가 됨
- (중요) 이진트리의 순회 방법에는 전위 순회, 중위 순회, 후위 순회, 포스트 오더 후위 순회 등이 있음

2-3. 이진트리의 순회 방법과 자료 구조의 종류
- 이진트리의 순회 방법에는 전위 순회, 중위 순회, 후위 순회, 포스트 오더 후위 순회 등이 있음
- 전위 순회는 먼저 부모 노드를 방문하고, 중위 순회는 중간 노드를 방문 후, 왼쪽과 오른쪽으로 이동함
- 후위 순회는 왼쪽과 오른쪽을 순차적으로 방문하며, 포스트 오더 후위 순회는 가장 마지막에 방문한 노드의 자식 노드들을 순회함
- 자료 구조의 종류에는 완전 이진트리, 부분 이진트리, 불완전 이진트리 등이 있음
- 이진트리의 순회 방법은 문제에서 자주 출제되므로 꼼꼼히 이해하고 암기해야 함

3. 자료구조와 데이터베이스

3-1. 자료구조의 종류와 특징
- 자료구조는 선형, 비선형 자료구조로 나뉨
- 비선형 자료구조는 트리와 그래프로 나뉨
- 트리는 아부터 시작해 가까운 노드부터 간선을 통해 연결됨
- 그래프는 꼭짓점(노드)과 간선(엣지)으로 구성됨
- 각 노드에는 연결된 다른 노드들(자식 노드)이 있음

3-2. 트리의 특징과 차수
- 트리의 차수는 루트에서부터 몇 개의 간선을 거쳐 연결되는지 나타냄
- 전위 순회를 할 때, 중 왼우 순으로 이루어지며 부모 노드로 시작함
- 부모 노드의 왼쪽과 오른쪽을 순차적으로 읽어야 함
- 서브 트리의 순서는 부모와 자식 노드로 나타냄
- (중요) 각 노드에 연결된 다른 노드들의 순서에 따라 트리의 차수가 결정됨

3-3. 데이터베이스 입출력 구현
- 데이터베이스 입출력 구현은 데이터 저장소의 데이터를 읽고 쓰는 방법을 배우는 것
- 데이터 저장소로부터 데이터를 읽어오는 프로시저를 작성해야 함
- 데이터 변경, 신규 입력 등 다양한 데이터 조작을 위한 프로시저를 작성해야 함
- 구현된 데이터 조작 프로시저를 테스트하기 위한 테스트 케이스를 작성해야 함
- 단위 테스트를 위한 테스트 조건을 명세화해야 함

4. 데이터베이스와 목표 달성을 위한 프로그래밍 언어 이해

4-1. 데이터베이스와 프로그래밍 언어의 개요
- 데이터 조작어를 통한 데이터베이스 조작 및 테이블 생성 등을 위해 특수 목적의 프로그래밍 언어 필요함
- (중요) 데이터 정의어, 데이터 조작어, 데이터 제어 등의 용어가 프로그래밍 언어에서 사용됨
- 데이터 조작어의 활용은 크게 데이터 정의어, 데이터 조작어, 데이터 제어로 나뉨
- 데이터 제어는 사용자별 권한 부여 및 제어에 사용되며, 롤 및 트랜잭션 제어로 명령어가 동작함

4-2. 데이터 검색어 및 주요 명령어 이해
- 데이터 검색어는 데이터베이스에 존재하는 데이터를 뽑아내는 명령어임
- (중요) 셀렉트 명령어, 디스팅크트, 옵션 등이 데이터 검색어의 문법적 측면에서 사용됨
- SQL 응용과 활용에서는 다양한 연산자와 조건문, 그룹핑 등을 활용함
- 불릿 포인트에 따라 복잡한 데이터를 처리하고 이를 관리하는 데 필요한 프로그래밍 언어임

4-3. 플러스 플로어의 특징 및 사용법
- 플러스 플로어는 오라클 기반의 모든 프로시즈 작성에 사용되는 언어임
- 컴파일 과정 없이 스크립트 생성 및 변경 후 바로 실행 가능함
- (중요) 에러 처리 및 성능 향상을 위한 예외 처리 부여함
- 플러스 플로어 프로그래밍 가이드를 통해 구체적인 프로그래밍 방식을 학습할 수 있음

5. 저장형 객체와 플로우 형식의 SQL

5-1. 저장형 객체 활용과 코드 가독성
- 코드의 가독성을 높이기 위해 계층 구조 형태로 작성하는 것이 좋음
- 저장형 객체의 네 가지 종류로 스토어드 펑션이 있음
- (중요) 스토어드 펑션은 수행 후 결과 값을 반환하며, 반환 값의 데이터 타입을 선언함
- 스토어드 프로시저는 반복적으로 사용 가능하며, 특정 작업을 수행한 후 결과를 반환하지 않음

5-2. 저장형 객체의 테스트 방법
- 저장형 객체에 대한 테스트를 위해 트리거를 사용함
- 트리거는 테이블과 별도로 데이터베이스에 저장되어지는 특징이 있음
- (중요) 데이터 조작 테스트는 데이터 저장소에 연결하고, 데이터 조작 프로시저를 작성하고, 데이터 검색 프로시즈를 작성함
- 이 과정을 통해 데이터 조작 프로시저를 작성하고, 테스트를 통해 프로시저의 작동 여부를 확인함

5-3. 플로우 형식의 SQL과 기능
- 플로우 형식의 SQL은 데이터를 저장하고 처리할 수 있는 객체를 생성함
- 플로우 형식의 SQL은 대표적으로 오라클 데이터베이스에서 제공하는 데이터 조작 테스트를 활용함
- 이는 오라클 DB에서 데이터를 저장하고 처리할 수 있도록 도구를 제공하는 방법임
- (중요) 이 과정에서 시험에 나올만한 불릿 포인트를 최대 1개 까지 표시할 것

6. 데이터베이스 구축과 SQL

6-1. 데이터베이스 구축과 테스트 환경
- 데이터베이스 구축 과정에서 SQL의 중요성을 강조함
- SQL이 데이터베이스 관리 시스템에서 데이터 조작의 핵심 언어임을 설명함
- (중요) SQL의 관계형 데이터베이스 관리 시스템 설계를 위해 필수적인 기능을 설명함
- 데이터베이스 테스트 환경인 '설로우'와 '서로우'의 차이를 이해시킴
- 오라클의 '설로우'가 한정된 자원을 효율적으로 사용하도록 지시함

6-2. SQL 문장의 구조와 의미
- SQL 문장의 구조와 의미를 분석하는 것이 중요함을 강조함
- SQL은 올바른 구문 작성과 올바른 실행 계획을 통해 올바른 결과를 도출함을 설명함
- (중요) SQL 문장의 사용 여부를 확인하고, 사용된 문장이 데이터베이스에 처음 사용된 경우와 이전에 사용된 경우를 구분함
- 구문 분석 단계에서 SQL 문장의 올바른 사용을 확인하고, 실행 계획을 작성함
- 실행 단계에서는 캐시 영역을 확인하여 처리 속도를 높임

6-3. 데이터 조작 프로시저 테스트
- 데이터 조작 프로시저 테스트 환경인 '설로우'와 '서로우'를 소개함
- '설로우'가 한정된 자원을 효율적으로 사용하도록 지시함을 설명함
- '서로우'가 모니터링 작업을 통해 데이터의 변환과 정의를 관리함을 강조함
- 데이터 조작 프로시저 성능 개선을 위해 병목 현상을 파악하고 조치할 것을 권장함
- 테스트 결과를 바탕으로 데이터 조작 프로시저 성능에 영향을 주는 요소를 파악할 것을 조언함

7. 데이터베이스 성능 최적화와 SQL

7-1. 데이터베이스 성능 최적화의 이해
- (중요) 데이터의 추출, 선택, 업데이트 단계에서 성능 최적화의 중요성을 설명함
- 데이터 버퍼 캐시 영역의 활용을 통해 사용자 요청에 빠르게 대응함
- (중요) 성능 최적화를 위해서는 실행 계획 수립과 관리가 중요함
- SQL 작성 시, 옵티마이즈의 실행 계획을 잘 작성해야 함

7-2. 오라클의 성능 최적화 도구, PK
- 오라클의 성능 최적화 도구인 'PK'에 대해 설명함
- PK는 오라클이 제공하며, 개발자에게 가이드를 제공함
- (중요) PK는 트랜스코널 프로필(PTP)과 API(세션 레벨 추적)을 함께 사용함
- 결과를 통계적으로 분석하여 효율적인 사용을 권장함

7-3. 데이터베이스 성능 최적화의 유틸리티
- 데이터베이스 성능 최적화의 유틸리티를 두 가지로 나눠 설명함
- 첫 번째는 '인스턴트 레벨 추적', 두 번째는 '션 레벨 추적'임
- 트랜스코널 프로필을 통해 트랜스 성능을 분석하고, 효율적인 성능을 도출함
- 세션 레벨 추적은 임시 설정 방법으로, 특정 프로세스별로 추적 파일을 생성함

8. SQL 성능 개선과 성능 모니터링 도구 활용

8-1. SQL 성능 모니터링 도구의 기본 개념
- SQL 성능 모니터링 도구는 DB의 성능 문제를 파악하고 개선하는 데 도움을 줌
- 사용자는 사용자명과 비밀번호를 입력하여 DB에 접속하여 사용함
- (중요) 파라미터 설정값을 확인하거나 명령어를 실행하는 등 다양한 기능을 제공함
- 특정 명령어를 활용하여 다양한 옵션을 지정하고 실행할 수 있음
- 이를 통해 DB의 성능을 측정하고 개선할 수 있음

8-2. 익스플레인 플랜의 활용
- 익스플레인 플랜은 사용자에게 에스큐엘의 액세스 경로를 제공하고, 성능 계산을 돕는 도구임
- 익스플레인 플랜을 준비 단계에서 사용자로부터 플랜 테이블 생성을 요청함
- 플랜테이블 생성은 전제 조건으로, 실행 계획 수립과 테이블 저장을 지원함
- 실행 단계에서 익스플레인 플랜은 준비 단계에서 생성된 플랜테이블에 저장됨
- (중요) 익스플레인 플랜은 플랜테이블의 변경, 조회, 저장 등을 지원함

8-3. SQL 성능 개선 순서와 최적화 통계 확인
- 최적화 통계 확인은 성능에 문제 있는 SQL을 식별하고 수정하는 데 도움을 줌
- 데이터 딕셔너리의 변경, 인덱스 재구성, 실행 계획 재검토 등을 통해 성능을 개선함
- 드라이빙 테이블을 사용하여 데이터 검색 속도를 높이고, 연산량을 조절함
- (중요) 연산자의 방식을 변경하여 처리량을 조절하고, 비용 중심의 옵티마이즈를 수행함
- 최적화 통계 확인을 통해 효율적인 SQL 작성과 실행 계획 수립을 도와줌

9. 성능 개선을 위한 인덱스와 소스코드 인스펙션

9-1. 인덱스의 중요성과 관리
- 인덱스는 데이터베이스의 검색 및 논리적 순서를 제공함
- 범위 처리는 서브 커리에 리그시스트를 사용하여 불편한 검색을 피함
- 실행 계획은 비정상적 실행 계획을 수립하고, 처리가 이상적일 수 있도록 관리함
- (중요) 인덱스 재구성은 속도적 측면을 고려하여 재구성함
- 인덱스 추가 시, 다른 SQL의 심각한 영향을 고려해야 함

9-2. 실행 계획의 유지 관리와 모니터링
- 실행 계획이 유지되고 있는지 모니터링하는 것이 중요함
- 데이터베이 버전 업그레이드나 시스템 환경 변화 시, 실행 계획을 관리해야 함
- (중요) 데이터 시스템 이동 시, 시스템 환경의 변화에 따른 문제를 예방하기 위해 실행 계획을 수정함
- 불필요한 인덱스 제거를 통해 성능을 향상시킴

9-3. 소스 코드 인스펙션의 필요성과 방법
- 소스 코드 인스펙션은 데이터베이스 성능 향상을 위해 프로세스 코드를 분석함
- 소스 코드 인스펙션은 스트라트 프로시즈 소스 확인, 유저언더바 소스 확인으로 진행함
- (중요) 사용되지 않는 변수 삭제, 과거 데이터 타입 사용 등으로 인한 문제점을 발견하고 수정함
- 강화된 호환성을 위해 과거 데이터 타입을 사용하지 않아야 함

10. 데이터베이스 성능 향상을 위한 SQL 분석

10-1. SQL 분석의 필요성과 기본 개념
- SQL 문장은 데이터베이스 사용 순서에 따라 처리됨
- (중요) 데이터 조작 프로시저 최적화를 위한 SQL 작성 시 고려 사항 이해 필요
- 개발자는 SQL 특성을 충분히 이해하고 적절하게 사용해야 함
- 개발자는 원하는 실행 계획으로 동작되도록 조정이 필요함
- 옵티마이즈가 비정상적으로 동작할 경우, 개발자는 조정이 필요함

10-2. SQL 분석 도구와 관련된 고려 사항
- 익스플레인 플랜, 오토 트레이스 등의 도구는 성능 측정에 필요
- (중요) 트랜스 설정이 충분히 생성되어야 함
- 오토 트레이스 모드는 일정 시간 후에 자동으로 전환되며, 수동으로 변경 필요
- 소프트웨어 인스펙션은 소프트웨어 실행 전에 수행
- 소프트웨어 인스펙션은 분석 단계에서만 수행됨

10-3. SQL의 성능 개선과 인스펙션
- 성능 개선과 자원 효율 향상을 위해 성능 분석 필요
- (중요) 문제 발생 시 SQL의 성능 개선 순서는 문제 있는 SQL 식별, 옵티마이즈, 통계 확인, 실행 계획 검토, SQL문 재구성, 인덱스 재구성 순
- 소스 코드 인스펙션은 데이터베이스 성능 향상을 위해 수행됨
- 이때 불필요한 변수 사용, 불완전한 데이터 타입 등 문제점을 찾아냄

00:02
ncs 정보처리 기사 두 번째 과목인 소프트웨어 개발 파트로 넘어가도록 하겠습니다. 소프트웨어개발의 다섯 가지 직무능력 단위 중에서 첫 번째 해당되는 데이터 입출력 구현부터 살펴보도록 하겠는데요. 데이터입출력 구현은 4가지 능력 단위 요소로 구성이 되어집니다. 그중에서 첫 번째 논리 데이터 저장소 확인하기에 대해 살펴보도록 하겠습니다. 살펴볼 학습 내용은 세 파트로 저희가 살펴보도록 하겠는데요. 자 여기서 주의해야 될 사항은 논리 데이터 저장소 확인 ncs 학습 모듈 내에 포함되지 않는 내용으로서 자료 구조라는 부분 자체가 시험의 세부 출제 대상으로 포함되어 있어 가지고 여기가 추가되어 있습니다. 그렇기 때문에 자료 구조는 ncs 학습 모듈이 없기 때문에 제가 설명 드린 내용을 잘 듣고 숙지하시면 좋을 것 같고요.

01:02
자 자료 구조 그리고 두 번째 논리 데이터 모델 개요 세 번째 논리 데이터 모델 검증 순으로 살펴보도록 하겠습니다. 먼저 용어 사례입니다. 데이터 모델링이란 기업의 정보 구조를 실체와 관계 중심으로 명확하고 체계적으로 표현하여 문서화하는 기법이다. 둘째, 논리 데이터 모델링은 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델이 된다. 자 모델과 모델링은 차이가 있는데요. 모델링은 ing죠 과정이라는 말이고요. 모델은 그 과정을 통해서 만들어진 결과를 뜻합니다. 정규화 데이터베이스에 있어서요 핵심 키포인트인데 논리 데이터베이스 설계 파트에서요 이상현상을 제거한다. 원인이 되어진 게 뭔데 중복입니다.

01:58
그래서 중복성 때문에 발생하는 이상의 현상을 제거하여 중복성을 최소화하면서 정보의 일관성을 보장하기 위해 데이터베이스를 설계하는 과정을 정규화라고 합니다. 자 첫 번째 자료 구조부터 살펴보도록 하겠습니다. 자료 구조의 이해입니다. 자료 구조는 뭔데 개념 컴퓨터에서 자료를 효율적으로 표현하고 저장하고 처리할 수 있도록 만들어진 논리적인 틀을 자료 구조라고 이야기를 하고요. 자료 구조는 분류를 해보면 크게 선형 구조와 비선형 구조로 나눌 수 있는데, 선형 구조는 다시 리스트 스택 큐 데크로 나눌 수 있고요. 리스트는 다시 선형 리스트와 연결 리스트로 나눌 수가 있습니다. 비선형 구조는 트리와 그래프입니다.

02:53
자 개수가 몇 개 큰 파트 두 파트 선용 구조 비선용 구조 이 중에서 작은 거 비선용 구조는 2개 선형 구조는 4개 2개만 익히면 될 것 같고요. 네 2개 비선용 구조는 트리와 그래프야 시험에서요 다음 중 선형 자료 구조가 아닌 거 골라 이렇게 아니면 성격이 나는 자료 구조 골라 이렇게 보기 4개 제시하는 문제로 자주 나옵니다. 선형자료구조부터 보도록 하겠습니다. 선형자료구조는 먼저 선형리스트가 있는데요. 리스트는 다시 두 개 선형리스트 그다음에 연결 리스트 선형 리스트는 자료가 연속되는 기억 장소에 저장되어진다 자료가 이어지는 기억 장소에 저장되는데 선형 리스트의 대표적인 게 뭔데 배열입니다. array 가장 간단한 자료 구조이고요. 그래서 접근 속도가 빠릅니다.

03:47
자료에 대신 자료를 추가적으로 사유한다든지 또는 기존에 있는 걸 삭제한다든지 라고 할 때 기존에 저장되어 있던 자료가 이동해야 하는 번거로움이 발생할 수는 있습니다. 개념도 이렇게 보셔가지고, 이해하시면 될 것 같고요. a b c d e f가요 a b d e f가 저장되어 있는데, 얘를 c를 3번 여기 번지에다 넣으려고 해요. 그러면 기존에 있던 게 밑으로 공간이 만들어져야 되니까. 밑으로 한 칸씩 이렇게 이동하고 만들어진 공간에 c가 삽입되어서 a b c d e f 로 됐는데 이게 또 기존에 있던 걸 삭제하려고 한다 그러면 삭제하게 되면 만들어진 공간에다가 뒤에 있던 번지의 내용들이 다시 앞으로 이렇게 이동해서 정렬되어진다 다음 자 연결 리스트인데요. 네 연결 리스트는 방금 살펴봤던 선형 리스트가 가지고 있는 자료 이동의 번거로움을 네 해소한 케이스가 됩니다.

04:46
자료를 선형 리스트처럼 연속적으로 배열시키지 않고도요 기억할 수 있도록 즉 임의의 기억 공간에 기억시키고 각 노드의 포인터를 이용을 해서요. 서로 연결되게끔 한 겁니다. 그래서 이름에 연결이라고 즉 링크드 리스트 연결이라는 이름이 들어갑니다. 노드에 추가 살림이나 삭제 작업이 굉장히 쉽습니다. 연결을 위한 포인트가 추가로 필요하고요. 대신 연결을 위한 포인트가 추가로 필요하고 포인트를 찾는 시간이 필요하기 때문에 앞서서 저희가 살펴봤던 선형 리스트보다는 속도가 느리다 라는 게 단점이긴 합니다. 개념도 보시고 정리하도록 하겠고요. 여기 옆에 보면 단순 번지 내 데이터뿐만 아니라 해당 연결에 필요한 포인트가 추가되어져서 순서 자체가 이 포인트를 통해서 이동되어지게끔 연결되어지게끔 그렇게 되어 있습니다.

05:43
그래서 삽입이나 삭제했을 때 해당 데이터의 이동이 불필요합니다. 포인트 단위별로 이동하니까 다음 두 번째 선형 리스트 선형 자료 구조 중에 두 번째 스택입니다. 스택은 시험에 자주 나와요. 이 스택은 제일 쉽게 개념 잡으시면요 긴 자루가 있다고 생각하시고요. 거기 안에다가 해당 자료를 꽉 채울 수 있는 뭔가 물건을 이렇게 하나씩 하나씩 넣는다 보다시피 개념도 보다시피 이렇게 긴 자루나 아니면 뭔가 박스 같은 게 있단 말이에요. 여기다가 책을 이렇게 넣는다 영어책 국어책 수학책 이렇게 넣는다고 할 때 하나씩 명언이 꽉꽉 찬다 라고 하면 순서대로 넣어야 된다는 거죠. 자 이 스택은 먼저 넣는 게 먼저 나오질 않고요.

06:41
밑에 깔려있으니까 그래서 일례로 abc라고 하는 3개의 어떤 물건을 넣으려고 해 라고 하면 순서를 a b c 넣었어요. 할 때는요 제일 위에 있는 것부터 꺼낸단 말이에요. 그러면 마지막에 넣은 게 먼저 빠져나온다 그래서 후입선출이라고 해서요. 라스트 인 퍼스트 아웃 리포 방식이다 라고 이야기를 합니다. 다음 큐 큐는요 앞서서 살펴왔던 스택과 달리 들어가고 나갈 수 있는 해당 출입구가 두 개예요. 양쪽에 있습니다. 양쪽에 있어서 얘는 하나의 터널이라고 생각하시면 돼요. 터널 같은 경우에 1차선 터널이에요. 그러면 자동차가 먼저 들어간 게 먼저 나오죠. 그래서 먼저 들어간 게 퍼스트 인 한 게 퍼스트 아웃한다라고 해서요. 피포 방식이라고 이야기를 합니다. 자 두 개 개념 비교하시면 될 것 같고요.

07:40
들어가는 부분 자체를 인큐라고 이야기를 하고요. 나가는 부분 자체를 dq라고 이야기합니다. 그리고 앞서서 제가 스택에서 넣고 빼는 거 용어는요 넣는 거는 푸시라고 이야기를 하고요. 푸시 그다음 빼는 걸 팝이라고 이야기합니다. 다음 세 번째 선형자료구조 데크입니다. 데크는 q에서 살펴봤던 것처럼 양쪽에 있었죠. 들어가고 나갈 수 있는 게 있었는데, 이 데크는요 q의 양쪽 끝에서 들어가기만 나가기만이 아니라 들어가고 나가는 것도 가능하다 q의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조입니다.

08:24
두 개 포인트를 사용해서 양쪽에서 삭제와 삽입도 가능해 q와 스택의 장점을 합친 형태인데 데크는 다시 종류가요 입력의 한쪽에서만 발생하고 출력은 양쪽에서 일어나는 입력 제한하는 데크를 스크롤이라고 하고요. 입력은 양쪽에서 일어나는데 출력은 한쪽에서만 일어나는 출력 제한 데크를 셀프라고 이야기를 합니다. 이제 비선형 자료 구조로 넘어가겠습니다. 비선형 자료 구조에서 먼저 살펴볼 내용은 트리입니다. 시험에서는 주로 트리와 관련된 문제가 자주 나왔습니다. 또 나올 겁니다. 자료 구조에서 트리의 개념과 관련 용어인데요. 트리는 데이터들을 계층화시켰다 부모 자식 관계가 이렇게 해당 수직 관계로 이렇게 있는데, 여기서 용어가요 노드라는 용어가 있는데, 동그라미 동그라미 결절들이 노드이고요.

09:19
그다음에 연결하는 선 연결선을 링크 또는 간선이라고 이야기를 합니다. 자 구조 자체를 보니까 제일 상위에서요 a라는 게 제일 상위에 있는 해당 노드야 루트 로드라고 이야기를 하고요. 레벨 수준이 있는데, 얘는 1수준 그다음에 a로부터 파생되어서 밑에 나온 b와 c가 있는데, 이 b와 c는 a하고의 관계성에서 얘들은 자식이 되는 거고요. a가 부모가 되는 겁니다. b에 또 b가 또 부모 역할을 하면서 또 가지를 뻗었어요. de 같은 경우는 de는 b의 자식이 되는 거고, a 입장에서 보면 다 자손이 되는 거죠. 자손 노드들이 되겠습니다. 용어 복귀예요. 형제 단위 형제라는 건 같은 부모를 가지는 노드를 이야기해 비의 형제는 씨가 되겠죠. 같은 부모를 에이라는 같은 부모를 가지는 네 노드는 c가 되겠죠.

10:17
노드의 크기다 네 크기라고 하는 부분은 사이즈인데 자신을 포함한 모든 자손 노드의 개수가 어떻게 돼 b의 노드의 크기는 어떻게 돼 자신을 포함을 해서 자신의 자손을 포함한 p의 자소는 이 d하고 e니까 몇 개에요. 총 3개 노드의 깊이입니다. 네 루트에서요 이 루트 제일 상단에 있는 이 루트에서부터 선택한 노드까지 도달할 때까지 도달하기까지 거치게 되는 간선 이 선 연결선 연결선의 개수가 몇 개야 그게 노드의 깊이입니다. 예를 들어서 d라고 하는 노드는 깊이가 어떻게 돼 루트인 a로부터요 d까지 오려면 거치게 되는 선이 몇 개 a b 연결선 하나 db 연결선 해서 총 2개죠 그래서 해당 노드의 깊이는 이야 노드의 레벨입니다.

11:15
네 레벨은 좀 전에 제가 설명하면서 말씀을 드렸어요. 트리의 특정 깊이를 가지는 노드의 집합인데 a가 1 b가 2 그리고 세 번째 네 d e f가 레벨 3이 되겠습니다. 그리고 노드의 차수다 네 노드의 차수는 디그리 서브 트리의 개수 또는 간선의 수다 이렇게 되어 있습니다. 자 a a의 차수 자 a 입장에서의 차수는 어 밑에 있는 연결되어진 이 선이 몇 개야 b하고 c 두 개가 연결돼 있죠. 그래서 이 연결 수 가지고도 차수를 따질 수 있고요. 얘를 이제 서버트리라고 하는 부분 자체는 얘를 끊었을 때 밑에 다시 해당 트리가 만들어지는 개수가 몇 개야 이렇게 따질 수도 있는데, 간선수를 따지는 게 소홀합니다.

12:03
a는 밑에 연결되어져 있는 게 b하고 c니까 네 노드의 차수는 2개 자 트리의 차수는요 이 전체적인 측면에서의 차수인데 전체적 차수 측면에서의 차수는 해당 노드의 차수 중에서 노드의 차수 중에서 제일 차수가 큰 거 네 예를 들어서 b가 자손 수가 3개다 라고 하게 되면 b의 차수는 b 노드의 차수는 3개죠 그러면 트리 전체적인 측면에서 차수가 제일 큰 거 그러면 이 전체적인 측면에서는 이렇게 b에다가 하나의 노드를 더 추가시킨 모양으로 꾸몄다면 이 해당 트리는 차수가 3개가 되는 겁니다. 마지막으로요 트리의 높이입니다. 루트 노드에서 가장 깊숙이 있는 노드의 깊이 이렇게 돼있는데요.

12:52
해당 아까 그 높이라고 했던 건 노드 노드에서요 노드적인 부분에서 그 노드가 루트에서부터 도달할 때까지 몇 개의 간선을 거치느냐 이렇게 말씀을 드렸죠 제일 이 루트에서부터요 제일 이 마지막에 있는 깊이 들어가 있는 해당 노드까지 가기까지 거치는 간선의 수라고 보시면 돼요. 그래서 루트 노드에서 가장 깊이 있는 노드의 깊이 다음 이진트리의 개념과 종류입니다. 이진트리라고 하는 부분은 해당 노드가 상위에 있는 부모가 자식을 제한을 했어요. 인구 제한으로 2명까지만 나 맥시멈 그래서 이제 해당 트리의 모든 노드들이 자식을 즉 차수를 2개 이하 최대가 2개까지만 제한을 해서 만들어진 트리가 이진 트리입니다.

13:50
그래서 전체 트리의 차수가 2가 2 이하가 되도록 정의한 부분이고요. 자 그래서 모든 노드들은 왼쪽과 오른쪽 두 명만 있으니까 왼쪽 자식 노드와 오른쪽 자식 노드 두 개만 가진다 그래서 이 노드가 n개인 노드가 n인 이진트리는 간선의 수가 몇 개냐 항상 n마이너스 1개를 가집니다. 네 무슨 말이냐 네 노드의 개수가 이렇게 노드가 이렇게 3개 있단 말이에요. 네 3개가 이렇게 있어요. 근데 이 왼쪽과 오른쪽 이렇게 연결돼 있어요. 그러면 노드의 수는 동그라미가 하나 둘 세 개잖아요. 3개인데 선수 성능의 개수 몇 개다 얘 노드 개수가 3이고 마이너스 1 하면 이 간소리의 수가 나온다 이 말입니다.

14:32
높이가 h1 높이는 아까 루트에서부터요 마지막 곡이 노드까지 가 어 까지 도달할 때까지 거치는 간선수라고 이야기했었죠. 노드가 에이치 이진트리가 가질 수 있는 노드의 개수는 해당 네 최소 에이치 플러스 1개고 네 그리고 최대는 2에 에이치 플러스 1승 마이너스 1개다 이건 찬찬히 따져보면 그렇게 시험에서는요 노드 수료를 너무 많이 주진 않습니다. 1.5초 만에 1분 30초 이내 풀 수 있는 문제들로 안으로 구성되니까. 그래서 많이들 안 지워지기 때문에 천천히 따져가지고, 보셔도 돼요. 자 이진트리의 종류입니다.

15:20
이진트리의 종류는요 제일 앞에 있는 게 이진트리 일반 모양이고 그 다음 편향트리단 왼쪽 또는 오른쪽만 가지는 개편향트리 그다음에 포아트리단 해당 부모가 가질 수 있는 자식의 수는 둘이라고 했잖아요. 밑에 있는 할아버지의 자식으로 네 부모 그럼 부모가 다시 자식을 낳았어요. 3대에 걸쳐가지고 그렇게 되면 이 모양이 나오는 거죠. 예를 들어서 a부터 b c b는 또 d e c는 또 f의 꽉 차 있는 포화되어진 이진트리이고 완전 이진트리라고 하는 부분 자체는요 해당 이쪽은 안 가져도 돼요. 이쪽 부분을 마지막에 있는 전체적인 측면에서 2 이하다 이렇게 되어 있었으니까 꼭 두 개를 다 둘씩 다 자신을 가져야 돼 그거는 포화 이진트리고요. 왼쪽 여기 앞에 하고 차이 나는 부분은 여기는 왼쪽이 없잖아요.

16:19
왼쪽이 없고 오른쪽만 있잖아요. 얘는 그냥 이진트리고 완전히 이진트리는 부모 자식에서 왼쪽 트리까지 왼쪽 노드까지 가지는 거 넘어가겠습니다. 자 이진트리의 순회 방법이라고 하는 부분이 문제에 좀 자주 나오는 편입니다. 이진트리의 순회 방법은 몇 가지가 있느냐 세 가지가 있습니다. 전위 순회 프리오더 중위 순회인 오더 후위 순회 포스트 오더가 있는데, 전위순위 순회라고 하는 부분 자체는 전위순회는 먼저 부모 노드 부모 노드를 첫 번째로, 방문을 합니다. 그래서 중간 노드를 먼저 방문하고 그 다음에 왼쪽 오른쪽 왼쪽 오른쪽 이렇게 됩니다. 그래서 중 왼 오 이렇게 중 왼 오 는 전위 중2 순회는요 내일 왼 중 5입니다.

17:17
네 왼쪽 중간 오른쪽 왼중우가 중 중간에 중이 들어가 있어요. 네 중위순회 자 그 다음에 후위순회는요 왼쪽 오른쪽 중간 이렇게 됩니다. 네 왼중우 왼쪽 오른쪽 왼 오 중 중이 제일 마지막에 가요 중이 어디에 오느냐 앞에 오느냐 전위 중간에 오느냐 중이 마지막에 오느냐 후위 왼쪽 오른쪽으로 순차적으로 해서 a b c d e 첫 번째 전위 순회로 얘를 방문했다고 하게 되면 전위는 중이 제일 앞에 오죠 그래서 a 그 다음에 중 왼 우 이렇게 되니까. 중 왼으로 가서 b를 갔는데 b가 밑에 자식을 가지고 있어요. 가지고 있으면 얘는 이렇게 꺼내가지고요. 서버트리로 만들어가지고 얘가 중이 된다고 치고 중 다시 왼 우 이렇게 되니까.

18:12
전체적인 측면에서는 a 전체적인 측면에서는 a 그 다음에 b b에서 다시 d 그 다음에 oe 하면 얘가 왼쪽은 다 갔어요. 그러면 a가 중 왼쪽 부분에 서브티리를 다 방문해서 그다음에 오른쪽 서브티리로 넘어가서 c한테 가고요. 중 왼 오 왼은 없으니까 네 오 에프 자 이러한 순서의 규칙적인 측면인데 뒤에 저희가 또 내일 해당 문제에서 다시 복습해서 짚어드릴 테니까. 요거 찬찬히 한번 보세요. 우선은 요렇게 외우시는 게 좋습니다. 전위야 중을 기준으로 해서 전위순회다 그러면 중이 제일 앞에 간다 중위순회다 중이 제일 중간에 간다 후위순회다 중이 제일 마지막에 간다 이렇게 기억하시면 될 것 같습니다.

19:13
자 비선형 자료 구조의 마지막 그래프 개념 및 종류인데 그래프는 해당 노드들이 서로 다 이렇게 연결되어져 있는 형태인데 단순히 노드와 그 노드를 연결하는 간선을 하나로 모아놓은 자료 구조이고 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료 구조인데 종류는 무지한 그래프와 방향이 있는 화살표 방향이 있는 방향 그래프로 나눌 수 있고 더 깊게는 설명 안 드리고 개념 이 정도만 정리하고 넘어갈게요 자 자료 구조 퀴즈입니다. 비선형 자료 구조에 해당하는 것은 자 자료 구조는 선형 자료 구조와 비선형 자료 구조에 있다. 말씀드렸고 선형 자료 구조는 크게 네 가지 비선형 자료 구조는 두 가지 두 가지만 기억하세요. 그 두 가지가 뭔데 트리와 그래프였죠 그러면 종류 찾아보세요. 트리와 그래프 아 이번 그래프가 있네 나머지 큐 데크 스택은 선형 자료 구조입니다. 두 번째 퀴즈입니다.

20:13
순서가 a b c d로 정해진 자료를 스택에다가 입력을 하였다고 할 때 출력한 결과로 옳지 않은 종류는 뭔데 이렇게 돼 있어요. 스택은 이렇게 해당 상자 또는 긴 자료에다가 내용물을 넣는다고 말씀드렸는데 이 순서를 따져요 예를 들어서 a b c d를 다 순차적으로 넣었다 a 들어갔고 b 들어갔고 c 들어갔고 d가 들어갔으면 꺼냈을 때의 경우의 수는 d 꺼내고 그다음에 c 꺼내고 b 꺼내고 a 꺼내겠죠. 근데 이 보기가 지금 보기에는 없어요. 자 두 번째 보기 badc 이게 맞느냐 경우의 수가 이 케이스 같은 경우에는 a 넣고요. b 넣었어요. 이 상태에서 넣었다가 다시 뺀 거예요. 그러면 b 뺐을 때 ba 비어있는 상태에서 싹 비어 있는 상태에서 다시 c 넣고 d 넣었어요.

21:11
그래서 다시 뺄 때 나중에 들어간 게 먼저 나와야 되니까. da 그러면 bada 이 경우가 만들어지는 거죠. abcd는 어떻게 되는데 a 넣었어요. a 뺐어요. b 넣었어요. b 뺐어요. 이렇게 하면 abcd도 출력의 결과가 해당되고요. dabc는 d가 먼저 나오는 거는 아까 제가 순서 앞에 제일 첫 번째 거 말씀드린 a b c d 그러면 빼면 d cba가 되죠. 얘가 틀렸습니다. cbad도 마찬가지 a b c 넣었다가 빼면 cba 텅 비어 있는데, d를 넣었다가 빼면 제일 마지막에 d 이렇게 경우의 수가 만들어질 수 있습니다. 자 해당 내용을 정리하는 이제 모의평가 문제 풀어보면서 정리하겠습니다. 다음 그림에서 트리의 차수는 어떻게 트리의 차수는 트리 전체적인 부분을 이야기합니다.

22:09
제일 마지막에 있는 노드까지 가기 위해서 루트에서부터 몇 개의 간선 연결선을 거쳐야 되느냐 하나 둘 셋 세 개죠 그래서 이 트리의 차수는 3입니다. 루트에서부터 몇 개의 간선을 거쳐야 되느냐 연결선 다음 다음 트리를 전위 순회한 결과는 어떻게 돼 이렇게 돼 있습니다. 전 중이 먼저 와야 된다. 중이라고 하는 부분은 부모 부모 부모 그 다음에 왼 우는 순차적이다. 이렇게 했죠. 중 왼 우 이 순서대로 전체 트리의 전위 순회니까 이 트리 중에 제일 부모는 제일 상단에 있는 루트 노드인 입력된 값은 뭔데 플러스 그다음에 이 루트 노드의 왼쪽으로 오니까 별이 있어요.

23:03
별 여기까지만이면 왼쪽 다 읽었는데 얘 밑에 또 자식 노드에 자식 노드가 있으면 이렇게 꺼내 나가서 이렇게 이해하시면 되거든요. 그래서 얘 자식 노드가 있으면 자식 노드의 왼쪽을 읽어요. 이렇게 되어 나가요 그러면 또 별 입력된 데이터가 이 밑에 또 있네요. 슬러시 또 이것도 밑에 있네 보세요. 얘를 끊어버렸다고 따지면 끊어버렸다고 따지면 여기에 서버트리 내에 중 왼 5 이 순 이렇게 따져나가야 된다고요. 그래서 여기서 또 슬러시 다음에 또 밑에 왼쪽이 있으니까 얘가 부모 노드 로저 왼쪽은 a잖아요. 입력 데이터 이렇게 찾아 들어갔어요. 그래서 a 자 그러면은 왼쪽 다 읽었어요. 왼쪽 다 읽었으니까 그 다음에는 오 오른쪽 읽어야 되죠.

24:00
제일 루트를 기준으로 해서 이 왼쪽 부분에 있는 왼쪽은 달겠다는 거죠. 그 다음에 오른쪽은 순자적으로 제일 마지막에 서브 트리에 의해서 오른쪽은 b죠 b가 입력돼 있고요. 그 다음에 위로 또 올라와요. 별표의 오른쪽은 c d e 이렇게 됩니다. 찬찬히 따져보면 이렇게 나열되어진 결과 골라보면 플러스 별표 별표 슬러시 a b c d e 4번이 정답입니다. 전위수뇌 다음 포스트 픽이라고 돼 있습니다. 포스트는 후위입니다. 후위 후위 후위는 후 제일 마지막에 있다. 뭐가요 중간이 그 다음에 왼 오 이렇게 개념 잡으면 수월하게 혼동되지 않고 개념 잡을 수 있습니다. 포스트 픽으로 표현되어진 연산식의 연산 결과로 옳은 걸 골라 이렇게 돼 있습니다.

24:58
이거 잘 이해 못 하실 수도 있는데, 삼사 별표 별 5 6 별표 플러스 이렇게 돼 있어요. 웬 오 중 이렇게 돼 있잖아요. 이게 웬 오 중이야 3 하고 4 3 4 3이 왼쪽 4가 오른쪽 그 다음에 중간엔 부모라는 말입니다. 별표가 이 위에 이렇게 표시할 할 수 있고요. 네 그 다음에 또 5 6 별표 이렇게 돼 있어요. 5 왼 6 5 그 다음 별표가 중 이렇게 됐고 이 전체가 왼 이 전체가 꾸러미가 5 제일 위에 플러스 이렇게 제일 위에 플러스 해서 이렇게 연결시킨 다음에 계산을 해 가보면 3 곱하기 4 하라는 말입니다.

25:40
이걸 계산하면 3 곱하기 4죠 3 곱하기 4의 결과 3 곱하기 4 그다음 5 곱하기 6인데 그 사이에 더하기로 이렇게 이렇게 한 거예요. 1수식이 나옵니다. 1수식 342 더하기 56에 30 곱하기 먼저 계산해야 되잖아요. 플러스 마이너스 곱하기 나누기는 곱하기 나누기가 먼저 계산 플러스 나누기 플러스 마이너스는 나중에 계산해야 되죠. 그렇게 해서 결과는 42가 구해집니다. 그래서 이 문제의 정답은 42입니다. 핵심정리로 정리하고 마치겠습니다. 자료구조는 컴퓨터에서 자료를 효율적으로 표현하고 저장하고 처리할 수 있도록 만들어진 논리적 트리아 자료구조는 크게 선형자료구조와 비선형자료구조가 있는데, 개수가 작은거죠.

26:37
네 트리 그래프 두 개만 있는 게 비선형 구조 이거 좀 명확하게 익히면 섞어 놓더라도 문제화 하더라도 고를 수 있겠죠. 데이터베이스 입출력 구현 네 세 번째 학습 능력 단위 요소 데이터 조작 프로시저 작성에 대해 살펴보도록 하겠습니다. 학습목표는요 응용 소프트웨어 설계와 물리 데이터 저장소 설계에 따라서 데이터 저장소의 연결을 수행하는 프로시저를 작성할 수 있다. 데이터 저장소로부터 데이터를 읽어오는 프로시저를 작성할 수 있다. 데이터 변경 내용 또는 신규 입력된 데이터를 데이터 저장소에 저장하는 프로시저를 작성할 수 있다. 마지막으로, 구현된 데이터 조작 프로시저를 테스트할 수 있는 테스트 케이스를 작성하고 단위 테스트를 수행하기 위한 테스트 조건을 명세화 할 수 있다. 입니다.

27:32
세부적으로는요 학습 내용 두 가지 파트로 구분해서 살펴보도록 하겠는데 데이터 조작 프로시즈 개발과 데이터 조작 프로시즈 테스트가 되겠습니다. 사전 용어 사전으로서 데이터 정의어라고 하는 부분 자체는 ddl이다. 약어를 쓰는데 data deponition language 약어 풀어서 설명하면 데이터 정의어입니다. 데이터를 저장하기 위한 테이블 등 구조를 생성하고 변경하기 위해 사용하는 명령어가 되겠고 크레이트 만들다 드롭 삭제 리네임 이름 변경 홀터 수정 트렁크케이트 와 같은 것들이 데이터 정의어고 데이터 조작어 dml 데이터 매니플리케이션 랭귀지 데이터베이스에 저장되어 있는 데이터를 변경하거나 검색하기 위해 사용하는 명령어들을 이야기하는데 인서트 업데이트 딜리트 여기까지는 수정이고요.

28:30
수정 삭제 뭔가 변화가 있는 거고, 셀렉트는 저장된 거 가지고 와 데이터 조작어 데이터 제어가 있다. 데이터 컨트롤 랭귀지 약어로 dcl 사용자로부터 데이터베이스에 접근할 수 있는 권한을 부여하거나 회수하는 명령어인데 롤 그랜트 리보크 등이 있습니다. 자 데이터 조작 프로세스 개발 살펴보겠는데요. 먼저 sql 개념과 분류입니다. sql이라고 하는 부분 자체는요 스트럭처드 구조화된 쿼리 지리 language입니다. 데이터 조작을 위해서요. 사용하는 특수 목적의 프로그래밍 언어입니다.

29:10
데이터베이스 내에 저장되어 있는 데이터를 조작하기 위한 또는 테이블을 만든다든지 일정한 데이터 집합으로부터 보다 쉽게 자료를 검색하고 입력 수정 삭제와 같은 조작할 수 있도록 고안되어진 언어이야 세 가지 기능에 따라서 데이터 정의어 데이터 조작어 데이터 제어는 용어에서 미리 설명했기 때문에 넘어가겠습니다. 주로는 데이터 조작어가 많이 사용되어진다 에스큐엘 분류로서요 데이터정의어 데이터를 저장하는 테이블 등 구조를 생성 변경하기 위해 사용하는 명령어들입니다.

29:49
명령어 수행이 되면 이전 상태로 복귀할 수 없기 때문에 신중하게 사용할 필요가 있고 종류로는 생성 크레이트 삭제 드롭 이름 변경 리네임 구조변경 올터리 그리고 자름 트랜케이트 데이터 조작어 데이터베이스에 있는 데이터를 변경하거나 검색어 위에 사항하는 명령어이며 트랜잭션 제어를 활용해서 실행정 상태로 복귀 가능한 명령어이기도 하다 디렉션은 상호 처리라는 말이잖아요. 변화가 있는 걸 이야기합니다. 변화 있는 거 그래서 데이터 입력기에 인서트 추가 수정에 기존에 저장되어 있는 거 업데이트문 삭제하라 딜리트 네 문법 적용 예시 이렇게 돼 있는데, 데이터베이스 구축이라고 하는 네 저희 과목이 세 번째 과목에서 저희가 다룰 겁니다.

30:46
네 거기서 상세하게 sql 문도 sql 응용이라는 직무능력단위가 있고요. sql 활용이라는 또 직무능력 단위가 있습니다. 그쪽에서 주로 다룰 겁니다. 개괄적으로만 인서트는 인서트 인투 그다음에 이건 뭔데 테이블 이름 그다음에 얘는 필드 이름 그다음에 입력할 값 업데이트 테이블명 세트 어떤 필드의 값을 이걸로 해 외워야 조건절 그다음 딜리즈 삭제하라 해당 조건 웨어로 조건을 줄 수도 있습니다. 데이터 제어요. 사용자별로 데이터베이스에 접근할 수 있는 권한을 부여하거나 회수하는 명령어들이다. 권한 부여는 롤 그랜트 그다음에 리보크는 오히려 삭제해요. 뺏는 거고, 커뮤니티 롤백 트랜잭션 제어가 되겠습니다.

31:44
오라클에서 일반적으로 많이 사용하는 권한은 커넥트 데이터베이스 접속 그리고 리소스 오브젝트 생성 권한 그리고 dba 모든 권한을 다 주는 게 dba입니다. 트랜잭션 제어인데요. 트랜잭션 제어라는 것은 트랜잭션의 dml 작업 단위를 제어하는 명령어인데 트랜잭션을 완료 변경하라 반영하라 컴미트 그리고 롤백 이전 상태 돌려라 그다음에 특정 지점으로 롤백하라 세인트 포인트 세이브 포인트가 있습니다. 트랜잭션이란 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위이다. 문제로 요렇게 출제가 된 케이스도 있습니다. 데이터베이스 상태를 변화시키기 위하여 논리적 기능을 수행하는 하나의 작업 단위는 무엇인가 보기 항목 1 2 3 4 거기에서 트랜잭션을 고르는 문제도 출제가 됐습니다.

32:40
트랜잭션 제어로서 컴미티는 트랜잭션을 완료하여 데이터 변경 사항을 최종적으로 반영하는 것을 이야기한다. 얘는 이전 상태로 데이터 복구가 안 돼요. 그리고 모든 사용자가 변경된 결과를 볼 수 있고 관련 행위에 대해서는 잠금이 풀리고 다른 사항들의 조작이 가능하다 롤백은 데이터 변경 사항이 이전 상태에서 되돌려지는 것을 이야기합니다. 롤백된 dml 문장은 메모리 사항의 버퍼에만 영향을 미치기 때문에 복구가 가능하고요. 관련된 행위에 대한 잠금이 풀린다 세이브 포인트는 특정 지점으로 지정된 특정 시점까지 롤백 할 수 있는 명령어가 세이브 포인트입니다. 자 데이터 검색어입니다. 네 데이터 검색어란 데이터베이스에 하나 또는 그 이상의 테이블에서 데이터를 뽑아내는 195는 명령어고 주명령어가 셀렉트 명령어입니다.

33:37
데이터 검색의 문법적인 측면에서 해당 셀렉트문은 옵션으로 디스팅크트 중복된 행을 제거하라 라는 옵션이나 테이블에 별표라고 하는 건 모든 컬럼들 테이블 내에 있는 모든 컬럼들을 다 가지고 와 엘리어스는 해당 컬럼에 다레늄을 부여할 때 사용할 수도 있고 테이블 1은 웨어 이하 조건 조건을 만족하는 행렬만 뽑아오게끔 네 컨디셔닝은 컬럼이나 표현식 상수 및 기타 연산제가 들어갈 수도 있고 그룹 바이는 그룹 단위로 묶어 가지고요. 그룹핑해서 처리할 때 그리고 그룹 단위로 묶은 부분에 대해서 다시 조건을 줄 때는 해빙 해빙을 사용하고 오드바이는 정렬 순서입니다. sql 응용 sql 활용 파트에서 반복해서 할 겁니다.

34:25
네 다른 저희 학습 영역 단위에서 데이터베이스 구축 파트에서요 다음 절차형 데이터 조작 프로시저 pl sql은 오라클 기반의 모든 프로시즈 작성에 사용되어지는 부분이고요. 프로그래밍 언어의 특수성을 수용한 sql의 확장 기능을 제공을 합니다. 장점은 컴파일 과정이 필요 없어요. 스크립트 생성 및 변경한 다음에 바로 실행이 가능합니다. 컴파일은 변환 과정이죠. 랭귀지 언어 같은 경우에는 컴파일 과정을 거쳐서 일반적인 프로그램 소스는 영어 숫자로 되어 있으니까 사람들이 알 수 있는데, 컴퓨터는 실제적으로 이해를 못 해요. 그래서 컴퓨터가 이해할 수 있는 언어 컴파일 과정을 거쳐서 기계어로 변환하는 과정을 뜻합니다.

35:12
프로그램 개발의 모델화가 가능하다 식별자 선언을 할 수 있는데, 변수나 상수 등을 선언하여 해당 식별자를 sql과 절차적 프로그램에서 사용 가능하다 절차적 프로그램 언어 구조로 된 절차적 언어 구조로 된 프로그램을 작성할 수 있다. 에러 처리가 가능하다 exception 처리로 성능 향상을 기대할 수 있다. 와 같은 plsql의 장점입니다. plsql 구조입니다. 네 디클라어 선언부가 있고 신용부가 있어요. 크게 보면 선언부 실행부 예외 처리부 이렇게 나눌 수 있습니다. 디콜라이어 부분에서 실행부에 참조할 변수 상수 커스 exception 이런 것들을 선언할 수 있는 부분이고요. 그다음에 실제 실행하는 부분은 비긴과 앤드 요 사이에 비행과 엔드 사이에 실행할 내용을 기술을 하고 데이터베이스 처리를 위한 sql문과 pl sql 블록을 기술을 합니다.

36:03
예외처리문은 실행하는 과정 중에 뭔가 오류가 생겼을 때 오류가 생겼다 라는 부분을 해당 보여줄 수 있게끔 다음 pl sql 처리 절차입니다. pl sql로 작성되어진 블록을 오라클 서버로 보내면 pl sql 엔진이 sql과 non sql로 구분하고요. non sql은 pl sql 엔진에서 해석해서 처리를 하고요. sql은 그냥 sql 스테이트먼트 엑스큐트가 처리한다. non sql은 클라이언트 환경에서 sql문은 서버에서 실행이 되고 따라서 plsql을 사용하게 되면 서버의 작업량을 줄이게 되기 때문에 네트워크 부하를 감소시켜서 수행능력 향상시킬 수 있다.

36:58
다음 pl sql 프로그래밍 가이드로서요 plsql 시험에서는 pl sql에 대한 상세 내용까지는 묻기가 좀 힘듭니다. 특정 제품에 너무 국한돼서 묶게 되면 보편성이 결여되기 때문에 데이터베이스 관리 시스템이 꼭 오라클만 있는 게 아니죠. 오라클 외에 마이 sql이라든지. db2라든지 sql 서버라든지 다양한 것들이 있기 때문에 특정 제품만 해당되는 건 문제에 있어서 잘 안 불어요. 많이 깊게 들어가진 않습니다. 우선 개괄적으로만 plsql 프로그래밍 가이드 plsq의 블록 내에서는 한 문장 끝날 때 세미콜론을 기술하고 핸드 뒤에도 세미콜론을 사용해서 블록이 끝났다는 것을 명시한다. plsql 실행은 뭘 사용하느냐 슬러시를 사용해서 plsql을 실행시켜 네 성공했으면 성공했다라고 하는 메시지 출력을 시키구요.

37:50
그리고 plsql 블록의 작성은 편집기를 통해서나 sql 플러스에서 발효작성에서 실행할 수 있고요. plsql 실행할 때 발생한 에러는 쇼 에러라고 하는 명령을 이용해서 확인할 수 있고 plsql 블록을 개발할 때 명확한 코드 생성과 유지보수를 위해서 프로그래밍하는 가이드를 정의하고 준수하고 수행하는 것이 좋겠다. 그리고 코드는 가독성을 높일 수 있도록 내부적으로 이렇게 계층 구조 형태로 해서 들여쓰기를 하는 것도 좋겠다. 다음 pnsql을 활용한 저장형 객체 활용 이 저장형 객체로서요 네 가지가 소개가 되어집니다. 스튜어드 펑션이라고 돼 있어요. 스토어드 펑션은요, 얘는 뭔가를 수행하고 난 다음에 특징이 결과값을 반환을 합니다. 보통 값을 계산하고 결과를 반환하기 위해 반환될 값의 데이터 타입을 리턴문에 선언을 한다. 라는 게 특징이고요.

38:49
스토어드 프로시저도 특정 작업을 수행할 수 있는 이름이 있는 plsql 블록인데 매개 변수를 받고 반복적으로 사용할 수 있는 오브젝트인데 펑션과 달리 얘는 수행하고 끝이에요. 뭔가 반환하는 건 없습니다. 주로요 반복 실행된다든지 또는 처리 절차가 복잡한 트랜잭션을 plsql 블록으로 해당 db에 저장해 가지고 얘 실행시켜 그러면 그 처리 절차가 순차적으로 후다닥 이렇게 처리가 되어지니까. 다음 스토어드 패키지는요 개념적으로만 오라클 데이터베이스에 저장되어 있는 서로 관련 있는 plsql 프로시즈와 함수들의 집합이 스토어드 패키지고 선언부와 본문 두 부분으로 구성되어지는데 개괄적으로 보고 넘어가도록 하겠습니다.

39:43
다음 트리고 마지막으로, 네 번째 pl sql 지금 살펴보는 건 뭔데 pl sql을 활용한 저장형 객체 종류 4가지 트리거 트리거는 인서트 업데이트 딜리트문을 수행할 때 묵시적으로 수행하는 프로시스가 된다. 트리거는 테이블과는 별도로 데이터베이스에 저장되어지는 특징이 있습니다. 자 데이터 조작 프로시저 개발하기 순서상으로 데이터 저장소에 연결하고 데이터 저장소를 정의하고 데이터 조작 프로시저를 작성하고 데이터 검색 프로시즈를 작성하고 절차형 데이터 조작 프로시즈를 작성한다. 이 순서로 진행이 되어집니다. 데이터 조작 프로시즈 개발 파트에서요 퀴즈 다음 중 sql에 대한 설명으로 옳지 않은 거 틀린 거 골라라 기능에 따라서 sql문은 정의어 조작어 제어로 나뉜다 맞습니다.

40:42
데이터 정의어는 테이블을 생성 시 권한을 부여한다. 권한 부여어는 정의어에 해당되지 않습니다. 얘는 제어하는 부분에 해당되어서요 그래서 이번이 틀렸고 조작어는 테이블에 저장된 데이터를 수정한다. 제어는 데이터를 보호한다. 다음 두 번째 섹션 데이터 조작 풀시즈 테스트입니다. 오라클의 sql 플러스 활용을 한 데이터 조작 풀시 테스트 sql 플러스는 뭔데 오라클 데이터베이스 관리 시스템에서 제공하는 데이터 조작 풀시즈에 대한 테스트 도구입니다. 자 이 파트는 실습 실기 파트에서도 저희가 실습 형태로 저희가 다룰 거예요. 그래서 개요적으로만 필기 파트는 다루겠습니다.

41:32
sql과 sql 플러스의 차이점은요, sql은 데이터를 조장하는 표준 언어인데 sql 플러스는 이러한 sql을 데이터베이 서버에 전송하여 처리할 수 있도록 하는 오락 클래스를 제공하는 도구가 되겠습니다. sql 플러스 명령어의 유형으로서는 파일명령 편집명령 실행명령 환경명령 형식명령 대화명령이 있는데, 세부 내용까지 다 암기하기는 힘들다 그래서 오히려 문제 저희가 필기 준비할 때는 어떻게 익히느냐 개념중심적으로 익힙니다. 그래서 sql 플러스가 뭔데 이 정도로 세부 명령어까지는 필기해서 잘 묶기가 힘듭니다. 특정 제조사 위주로는 접근하면 보편성이 떨어진다 말씀드렸죠 그래서 개요적으로 한번 보세요.

42:23
다음 pr sql 테스트 dbms 언더바 아웃풋 패키지로 활용을 하는 방법으로 메시지는 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스를 제공하는 패키지가 dbms 언더바 아웃풋인데 이것을 코드에 포함을 합니다. 패키지 제공하는 이 패키지가 제공하는 메서드로서는요 동작적인 부분에서는요 디세이블 뭔가 못하겠다. 이건데 버퍼 내용을 삭제하는 팩 유 어 dbms 아웃풋 패키지 메소드 종류 디세이블은 메스 메시지 버퍼 내용 삭제 이 네이버는요 메시지 버퍼 내용 할당 풋은요, 메시지 버퍼를 저장되는 메시지 마지막 라인 끝에 추가시킨 메시지 라인 끝에 새로운 라인 문자가 추가되게끔 한다. 이 말입니다. 메시지 버퍼에 저장입니다.

43:20
메시지버퍼에 저장 풋 언더바 라인은요, 풋과 달리 메시지 끝에 새로운 라인 문자가 추가된다. get 언더바 라인은 한 번 호출일 때마다 하나의 라인을 읽어오고 getline은 여러 개겠죠. s가 붙어있으니까 dbms 아웃풋 패키지 활용 예시입니다. 넘어갈게요 상세하게 설명을 제가 안 드리겠고 여기 하이폰 하이폰의 주석입니다. 주석 설명문 전체적인 구조적인 부분만 보도록 하겠습니다. 여기 보면 실제 실행하는 건 뭔데 여기에 해당 sqm을 실행하는 것도 있고요. 그다음에 얘 인에이블 해놨죠 할당한 거죠. 얘는 그 다음 어 패키지 실행 방법은 plsql 처리 결과를 화면에 출력하기 위해서 서버 아웃풋을 온 시키고요.

44:14
서버 아웃풋을 온 시키고 실행하고자 하는 pl sql 블록 또는 저장 객체명을 호출합니다. 그래서 이제 해당 sql을 명령어로 해서 셋 서버 아웃풋 온 이렇게 하고 엑시큐트 타입 텍스트 얘 실행시켜 하니까 결과치가 이렇게 떴죠 이 케이스에 오류가 발생하게 되면 어떤 오류인지를 확인할 때는 쇼 에어로즈 영역을 이용해 가지고 오류 내용을 확인하고 조치할 수가 있습니다. 저장 객체 테스트로서 스토아운드 펑션에 대한 테스트 방식은 이 케이스 얘는 함수의 반환값을 가진다고 말씀드렸죠 함수의 반환값을 저장할 변수를 선언하고요. 그리고 엑시큐트문을 이용해서 함수를 실행시키고요. sql에서 선언된 변수의 출력은 프린트문을 사용하고 함수의 반환값을 저장한 변숫값을 확인하는 절차로 진행을 합니다. 테스트를 합니다. 변수 선언이고요.

45:09
var 네 그리고 엑시큐트 네 얘 실행시키고 출력해 스트라우드 프로시저 저장 객체에 대한 테스트 실행하기 전에 프리셋을 실행한 후에 변경된 이전 값을 확인하고 액시큐텀을 이용해서 실행시키고 실행 후에 프로시저 처리되는 대로 관련 데이터가 수정됐는지 여부를 확인을 하는 과정으로 진행을 합니다. 셋 서버 아웃풋 온 시키고 그다음에 해당 이프로시저 실행시켜 실행할 때 값 넘겨줘야 될 게 있으면 이 파라미터로 값 지정해가지고 그리고 스튜어드 패키지 패키지 실행은 패키지 스트라우드 함수명 이용해가지고 기술을 하고요. 그다음 얘가 라인 이쪽에 출력을 하기 위해서는 온 시키고 수행 결과를 확인한다.

45:58
트리거 저장 객체 테스트는 마찬가지로 dbms 아웃풋 풋 언더바 라인을 출력하기 위해서는 서버 아웃풋을 폰 시키고 트리그가 처리되어질 조건에 부합하는 sql을 실행하고 데이터의 처리 결과를 확인해 볼 수 있겠습니다. 자 데이터 조작 풀실 테스트 파트에 대한 퀴즈 다음 중 에스큐엘 테스트에 대한 설명으로 옳지 않은 것은 sql은 데이터를 저장하는 표준 언어이고 sql 플러스는 sql을 dbms에 전송 언어 dbms 오라클 dbms에 전송하여 처리할 수 있도록 하는 도구야 맞습니다. plsql의 스톤어드 펑션은 반환값을 가지기 때문에 반환값을 저장할 변수를 선언해야 된다. 맞고요. pn sql에서 수정하는 프로시즌은 반환값을 가지지 않습니다. 네 그래서 반환값을 저장할 변수 선언은 안 합니다.

46:53
3번이 틀렸고 단문 형식의 sql은 ddl dml dc의 뭐 selectume을 저장으로 테스트한다. 네 자 해당 저희 다루는 네 문제 풀이로 정리하겠습니다. 모의평가 다음 중 에스큐엘에 대한 설명으로 옳지 않은 것은 크레이트는 테이블 생성이야 브랜트는 권한 부여예요. 컴미티는 트랜잭션을 수행 완료했다. 딜리티는 테이블 삭제 다 혼돈될 수 있는데, 딜리티는 테이블 내에 테이블 내에 특정 레코드를 삭제하는 거예요. 테이블 전체를 삭제하는 게 아니라 테이블 전체 삭제는 드랍이라는 명령어를 사용합니다. 그래서 틀린건 4번 다음 두 번째 다음 중 에스큐엘 문장 중 옳지 않은 걸 골라라 에스큐엘문은 실제적으로 이 파트보다는 나중에 데이터베이스 구축 파트에 있는 에스큐엘 활용 에스큐엘 응용 이 파트에서 많이 다룰 겁니다.

47:51
자 인서트 구문 인서트 인투 테이블명 괄호 필드 그리고 밸류 입력할 값 맞고요. 그다음에 업데이트문은요, 테이블명 그다음에 업데이트 할 내용인데 여기 하나가 추가돼야 되는 게 셋이 추가되어야 돼요. sat 그래서 이게 틀렸고요. 딜리트 삭제하라 가지고 와라 모든 거 다 가져와 언어 테이블로부터 조건은 커스트 언더바 넘버 값이 재료들이 1위에 해당되어지는 거 가지고 와 맞구요. 다음 3번 다음 중 plsq의 설명에 대해서 옳지 않은 걸 골라라 프로그램 개발의 오류화가 가능하다 에러 처리가 가능하다 스크립트 생성한 다음에 컴파일을 통해서 실행된다. 이게 틀렸습니다. 컴파일 없이도 실행이 된다는 게 특징이었죠. 변수전환이 가능하다 맞고요. 다음 중 plsql로 작성할 수 있는 저장형 객체 4가지 저희 살펴보셨어요.

48:48
아닌 거 골라 스토어드 펑션 스토어드 프로시저 필히고 스토어드 매크로는 없었고 빠진 건 스토어드 패키지 스토어드 패키지 이렇게 네 가지였죠 네 틀린 건 4번 다음 5번입니다. 프로시저 단위 테스트 도구 중에 sql 플러스의 dbms 언더바웃풋 이거에 대한 설명 중 옳지 않은 걸 골라라 해당 dbms 아웃풋 패키지는 메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어보기 위한 인티페이스를 제공한다. 그리고 메서드 종류 묻고 있는데, 이에도 g7은 메시지 버퍼의 내용을 삭제한다. 맞고요. 겟 어 언더바 라인은 한 번 호출될 때마다 하나의 라인을 읽어온다 하나의 라인을 읽어온다 그리고 마지막 풋은 넣는다는 의미인데 메시지 버퍼의 내용을 할당한다.

49:45
할당한다라고 하는 분은 인에이블이었어요. 인에이블이라고 빠르게 넘어갔기 때문에 잘 이해 못할 수도 있는데, 이렇게 정리하겠습니다. 마지막 핵심 포인트 데이터 조작 프로시에서 개발 sql은 관계형 데이터베이스 관리 시스템에 데이터를 관리하기 위해 설계된 특수 목적의 프로그램 언어이다. 데이터 정의어 조작업 제어 기능에 따라서 세 파트로 구분되어졌고요. pl sql은 오라클에서 개발한 데이터 조작 언어인데 프로그래밍적인 측면에 대한 특성을 포함하고 있어서 sql 기능을 확장시킨 거다 plsql로 작성할 수 있는 저장형 트리고의 종류는 4가지가 있었는데, 저장형 객체예요. 저장형 객체는 4가지가 있었는데, 트리고 스튜어드 펑션 스튜어드 패키지가 있었다. 데이터 조작 프로시즈 테스트는 오라클 dbms는 모든 데이터 조작 프로시즈에 대해 테스트 환경으로 skl 플러스 도구를 사용할 수 있었습니다.

50:44
이상으로 데이터 조작 프로시즈 작성 내용 마치도록 하겠습니다. 데이터 입출력 구현 마지막 학습 능력 요소인 데이터 조작 프로시저 최적화에 대해 살펴보도록 하겠습니다. 학습목표인데요. 프로그램 언어와 도구에 대한 이해를 바탕으로 응용 소프트웨어 물리 데이터 조작 설계와 운영 환경을 고려하여 데이터 조작 풀시저의 성능을 예측할 수 있다. 업무분석가에 의해 정의된 요구사항을 기준으로 성능 측정 도구를 활용하여 데이터 조작 프로시즈의 성능을 측정할 수 있다. 실데이터를 기반으로 테스트를 수행하여 데이터 조작 프로시즈 성능에 영향을 주는 병목을 파악할 수 있다. 많이 막히는 거죠. 그걸 파악해서 조치하는 거죠.

51:37
테스트 결과가 정리된 요소 사항을 기준으로 데이터 조작 프로시스 성능에 따른 이슈 발생 시 이에 대해 해결할 수 있다. 학습 내용은 데이터 조작 프리시스 성능 개선이고요. 소스 코드 인스펙션이라고 하는 부분 자체는 세부 출제 기준에 추가되어 있어서 학습 모듈 내에는 없습니다. 그래서 설명 드린 내용으로 정리하겠습니다. 용어 사전으로서 튜닝 성능 개선이죠.

52:06
시스템이 제공하는 한정된 자원을 이용해서 시스템의 성능을 최적화시키는 작업이야 옵티마이저도 최적화적인 부분이긴 한데 개발자가 작성한 에스큐엘은 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해 주는 데이터베이스의 핵심 프로세스로 가장 빠르게 실행하는 방법을 비용 위주로 계산해서 선택하는 cost 베이스 옵티마이즈 비용 기반과 미리 정해져 있는 규칙에 따라서 가장 빠른 실행 방법을 결정하는 룰 베이스 옵티마이즈 rbo cbo 이런 것들이 있다. 파서 파서는 sql문을 sql문의 구문구조와 의미를 분석하는 것으로 sql문은 올바르게 작성되었는지 검사하는 구문구조분석과 데이터베이스 객체나 sql도 문법이 있거든요.

53:01
sql 정해져 있는 문법이 맞느냐 그리고 데이터베이스 객체와 참조 객체나 참조된 객체들이 올바른지 검사하는 의미 분석이 있습니다. 자 세부 내용으로 첫 번째 섹션 데이터 조작 프리시즈 성능 개선인데 첫번째 자 이 성능이라고 하는 부분 자체는 전체적인 측면에 대한 성능을 이야기해요. 운영 체제적인 측면에 대한 성능 그다음 데이터베이스적인 부분에 대한 물리적 또는 해당 이러한 에스큐엘에 대한 구문적인 측면에 대한 것도 그래서 먼저는 apm이라는 부분도 저희가 고려해야 되는데 apm이라고 하는 부분은 애플리케이션 퍼포먼스 매니지먼트를 이야기합니다. 애플리케이션성능관리 시스템의 안정적 운영을 위한 부하량과 접속자 파악 및 장애 진단 등을 목적으로 하는 성능 모니터링 도구가 있고요. 도구가 되고요.

53:58
apm 유형은요, 두 가지로 리소스 모니터링 대상 자원으로서는 cpu 메모리 네트워크 디스크 등이 대상이고 대표적인 오픈 소스들은 이러한 것들이 있다. 그리고 앤드 투 엔드 모니터링 같은 경우에는 해당 실제적으로 이용하는 최종 사용자라든지 아니면 비즈니스 트랜잭션 관리 및 최종 사용자 등과 같은 앤드 투 엔드 모니터링 방식이 있습니다. 제품적인 측면에서는 오픈소스로서 비주얼 vm이라든지. 상용으로서는 제니퍼나 파우스 시스 마스터 이런 툴들이 있습니다.

54:36
다음요 sql 처리 흐름에 대한 이해가 필요하겠는데 sql 처리 흐름도를 보게 되면 sql 구문을 작성을 해서 실행을 시키게 되면 sql 해석 단계에서요 해당 참조하는 데이터베이스에 대한 통계라든지 이러한 것들을 참조하고 또 실행 계획 작성 다음 실행 해석 최종 출력 sql 해석과 실행 계획 작성 실행 이걸 묶어가지고 옵티마이저가 처리한다. 이렇게 보면 되겠습니다. sql 처리 흐름 첫 번째 구문 분석 단계 sql 문장에 대한 사용 여부 확인한다. 사용자가 요청한 sql문이 데이터베이스에 처음 사용한 문장인지 아니면 이전에 사용했던 문장인지 어디에서요 공유 풀 영역을 검색해서 확인합니다.

55:28
그래서 처음 사용을 하지 않고 이전에 한번 사용했던 거다 그러면 이 구문 분석하는 파싱 작업은 하지 않고요. 처음 사용한 경우는 구문 분석 작업을 수행을 합니다. 문법 확인합니다. 작성된 sql이 문법에 정상적으로 잘 작성됐느냐 그리고 오브젝트 확인 sql 내에 포함되어진 테이블이나 뷰 등이 데이터베이스 내에 존재하는 오브젝트가 맞느냐 실행계획확인 sql문을 가장 빠르게 데이터를 검색해 줄 수 있는 실행 계획을 찾는 과정을 구문 분석 단계에서 수행하고요. 실행 단계에서는요 캐시 영역을 확인을 하는데 캐시라고 하는 부분은 처리 속도적인 부분입니다.

56:13
인터넷 같은 경우도요 예전에는 속도가 느릴 때 캐시라는 서버를 별도로 두고 예에서 특정 자주 이용하는 서버의 문서 읽었던 걸 캐시 서버에 저장했다가 사용자들이 여기서 바로 불러오게끔 또는 cpu 내에도 보면 캐시 메모리라고 해서 랩 메모리로부터 자주 가지고 처리하는 데이터를 캐시 메모리에다가 저장해서 여기서 바로 불러오는 자 에스큐엘 같은 경우도 마찬가지 캐시 영역이다.

56:41
네 구문 분석이 정상적으로 실행된 다음에 서버 프로세스가 메모리 영역의 데이터 버퍼 캐시 영역 에 담기는데 그걸 검색을 해서 해당 테이블에 데이터가 다른 사용자의 다른 에스큐엘 문에 의해서 이미 데이터 퍼포 캐시 영역에 존재하는지 하면 테이블에 해당 데이터 파일로부터 데이터를 읽지 않고 사실상 캐시 영역의 데이터를 그대로 네 이용을 하는 그런데 데이터 버퍼 캐시에 존재하지 않는 거는 그건 정의된 테이블에 가서 해당 데이터 파일로부터 테이블을 읽어와서 데이터 버퍼 캐시 영역에 저장해서 처리를 하게끔 합니다. sqr 문화 업데이트나 딜리트나 인서트인 경우에는 데이터 버퍼 캐시 영역에서 새로운 데이터로 변경 삭제 또는 입력할 수 있습니다.

57:35
자 마지막 추출 단계 추출 단계는 사용자의 요청에 대응한다. 실행 단계가 끝나고 나서 서버 프로세스가 데이터 버퍼 캐시 영역에서 관련 테이블 데이터를 읽어서 사용자가 요청한 클라이언트로 보내고 셀렉트물을 실행하는 경우에는 이 추출 단계는 select문을 실행하는 경우에만 추출 단계가 진행된다. 대표적인 게 select입니다. select 가지고 와 이 말이죠. 다음 자 sql 처리 어려움으로서요 sql 작성을 할 때 고려해야 될 사항 정리한 부분인데 시험에 출제하기가 좀 용이할 것 같아요. 이 파트 내용이 개발자는 sql의 특성을 이해하고 있어야 되겠죠. 충분히 이해해서 sql문을 적절히 구사할 수 있는 기본적 능력을 갖춰야 되겠다. 처음에 여러분들이 sql문을 처음 접하면 어렵습니다.

58:29
왜 문법이라는 게 정해져 있기 때문에 그걸 숙달하지 않으면 계속 오류가 발생할 겁니다. 뭔가 잘못됐어요. 근데 그게 반복 숙달되면 그 다음부터는 내 거가 되거든요. 그래서 나중에 저희가 sql도 실기를 준비하면서도 저희가 반복 연습하는 절차 진행할 겁니다. 사용자가 sql 작성할 때 옵티마이즈가 실행 계획을 수립한 후 실행하는 일련의 과정을 이해하고 작성해야 되겠다. 그리고 구문 분석 단계 시 옵티마이즈가 수립한 실행 계획에 따라서 엄청난 어떤 속도 차이가 발생할 수 있다. 그래서 실행 계획을 잘 작성해야 된다. 이 말입니다. 특정 sql이 실행될 때 옵티마이즈에 의해 수립된 실행 계획은 제어하기 어렵지만 옵티마이즈가 비정상적으로 동작이 되면 얘를 추적해 가지고 개발자가 원하는 실행 계획으로 동작할 수 있도록 조정할 수 있는 과정도 필요합니다.

59:27
그리고 무엇보다 개발자는 옵티마이즈가 정상적인 실행 계획을 수립할 수 있도록 종합적이고 전략적인 포인트를 sql에 부여해서 작성을 해야 되고 추출되는 결과를 추론해서 sql을 집합적으로 접근하여 작성해야 좋은 sql이 되겠다. 라는 부분입니다. 다음 sql 성능 최적화 유틸리티에 대해 살펴보도록 하겠는데 크게 두 가지를 저희가 다루도록 할 겁니다. 오라클에서 제공하는 오라클 데이터베이스 관리 시스템을 기준으로 저희가 다루도록 하겠는데 ss 학습 모델에서는 오라클 위주로 해놨어요. 근데 오라클은 주로 대기업군에서 좀 많이 쓰고 중소기업군은 마이에스큐엘도 많이 쓰긴 하거든요. 그러다 보니까 특정 제품에만 국한되는 부분을 묻기는 힘들어요. 그래서 필기 파트에서는 너무 깊게 안 들어간다 다시 한번 말씀드립니다.

1:00:23
개념 위주의 내용들로 정리해도 됩니다. 에스큐엘 성능 최적화 유틸리 종류로서 pkpr5f 그냥 pk 프라프라고 읽고요. 그다음에 익스플레인 플레인 도구 두 가지가 있는데, 자 용도가 약간 차이가 있어요. pk 프라프 도구는 sql문이 적절히 작성되지 않아서 전반적인 처리 효율성이 떨어지는 경우에 처리 성능에 대한 통계 정보를 파악하고자 할 때 이용하고요. 익스플린 플랜 도구는 sql을 사용하는 엑세스 경로를 파악하기 위해서 활용을 하는데 이 두 가지를 같이 겸해가지고 활용하는 것이 좋겠습니다.

1:01:08
먼저 tk 프라프 활용한 커리 성능 측정 pk 프라프라는 약어인데 트랜스코널 프로필 이거 약어로서 pk 프라프 오라클에서 데이터베이스 업체 중에 대표가 오라클이죠. 오라클이 마이에스큐엘도 인수했어요. my sql도 오라클 겁니다. 오라클에서 실행되는 sql 문장에 대해 분석 정보를 제공하여 개발자가 특정 sql 문장을 어떻게 사용해야 할 것인지에 대한 가이드라인을 제공을 한다. 피켓 프라프로 결과 피켓 프라프 결과로 분석해서 결과로 파악할 수 있는 분석 정보 내용은 뭔데 자 이거는요 실제적으로 수행한 결과는 이렇게 볼 수 있어요. petfrap를 실제적으로 실행을 한 결과 화면이거든요. 이 결과 화면의 구성 요소들을 여기 위에다가 정리해 놓은 겁니다.

1:02:03
그래서 여기 보면 순서상으로 보면 콜 부분에 보면 파스 엑시피트 패치 확대해서 보여드릴까요? 이렇습니다. 자 이 결 이 내용은요, ncs 학습 모듈에 있는 예제 그대로 하고 약간 틀릴 겁니다. 네 그래서 우선 구성 요소만 보세요. 파스 엑시큐트 패치 그 다음에 카운트 cpu 일랩스 디스크 쿼리 쿼런트 룰 이러한 것들이 있네 자 그러면 세부적으로 한번 보면요 네 결과를 파악할 수 있는 분석 정보 내용입니다. 파스는 깊게는 안 들어간다 말씀드렸어요. 파스는 커스를 파싱하고 실행 결과를 생성하는 통계 정보를 알 수 있는 내용이고 엑시큐티는 커스의 실행 중에서 인서트 업데이트 딜리트 수정이 되는 dml문들이죠.

1:03:02
에 대한 통계 그리고 패치는 얘는 셀렉트문이에요. 레코드를 실제로 가지고 오는 거 패치 가지고 오는 거에 대한 통계 카운트 파스나 엑시큐트나 패치 각 단계 수행 횟수 그리고 cpu는 현재 커스가 각 단계에서 사용한 cpu의 시간을 초단위로 나타내고요. 엘렙스는 현재 커스가 각 단계 시작에서부터 종료까지 총 경과되어진 시간 디스크는 각 처리 단계별 물리적 디스크 블록을 읽은 횟수로는 각 처리 단계별 읽은 총 행수를 네 출력치로 보여줍니다. 자 이 피켓 프라프에 대한 이거에 대한 트랜스 유형인데요. 두 가지 방식이 있는데, 인스턴트 레벨 추적과 세션 레벨 추적이 있다. 인스턴트레벨추적은 지속적인 설정 방법이라서 모든 sql 수행에 대한 크레이스 파일을 생성을 하는데 보아가 많이 발생할 수 있다 라고 하는 고려사항이 있어요.

1:03:57
세션 레벨 추적은 임시적 설정 방법으로 특정 프로세스별로 추적 파일을 생성을 합니다. 자 트레이스 유형 활용을 어떻게 하느냐면은 실제 이 인스턴트 레벨로 모든 에스큐엘을 트레이스하는 경우는 거의 없어요. db 응용 프로그램을 사용하는 특정 에스큐엘에 대해서만 트레이스하는 이 세션 레벨이 일반적으로 많이 활용되어지고 있습니다. 트랜스를 인에이블 하는 것은 디비 부하가 수반되기 때문에 필요할 때만 사용하고요. 평소에는 디세이블로 해놓자 트랜스 관련되어진 파라미터 설정으로서 pk 프라프를 통해서 트랜스를 시작하겠다.

1:04:45
그러면 온 그러면 유저 언더버 디스크 파라미터로 지정되어진 서브 리렉트 밑에 확장자가 trc 인 파일로 생성이 되어집니다. 그리고 tando 언더버 스태틱스 디폴티크 폴스 같은 경우에는 cpu 시간 실행시간 등 시간에 관련된 정보를 표시하기 위해 사용되어지고 맥스 언더바 덤퍼 언더버 파라 언더버 사이즈는 트레이스 파일의 최대 크기를 얼마까지 저장시킬 수 있게끔 하자 유즈 언더버 덤프 언더버 데스크는 트레이스 파일이 생성되어진 큐렉토리를 지정을 하는 파라미터입니다. 네 그리고 시스 어 관련 파라미터 설정에 대한 확인은요, 해당 사용자로요 dba 커넥트 할 때 sql 플러스 슬러시 에즈 시스DDBA렇게 하고요. sql 모드에서요 숏 파라미터 또는 파라미터 쇼 파라미터 파라미터 원더먼 네임으로 해서요.

1:05:37
각 파라미터 설정값을 확인할 수가 있습니다. 티켓 프라프 활용법입니다. 적용명령은 명령어 적용은 이렇게 할 수 있는데, 티켓프라프라는 명령 외에 다양한 옵션들을 지정을 뒤에 추가할 수 있는데, 개괄적으로만 살필게요 티켓 프라프 명령어 활용 예시는 이렇습니다. 티켓프라프 그다음에 해당 트레이스 파일 이름값 그다음에 아웃풋 파일 네임 그다음에 익스플레인 같은 경우는 사용은 누가 하는 거야.

1:06:12
사용자명과 여기 보면 사용자 이름과 비밀번호 이렇게 해가지고 엔트키 눌러가지고 해당 어 피켓 플랫폼 명령을 실행시킬 수 있다는 부분인데 다양한 옵션들에 대해서 정리한 표가 이렇게 명령어 옵션이라고 해서 옵션별 각 기능을 쭉 정리해 놓았는데 세부적으로 여기까지 접속해서 이거를 묶기에는 조금 애로사항이 좀 있을 겁니다. 그렇기 때문에 피켓 프라프를 활용을 해서 뭘 하는데 에스큐엘 쿼리에 대한 성능을 측정할 수 있어 이 정도로 개념 정리만 명확하게 하시고 해당 명령 옵션까지 하나하나 다 이렇게 이해가 안 되면 이거 문제 틀릴 거 아니니까 염려하지 마시기를 바랍니다. tk 플러플 활용법은 관련 정보 파악 절차로서요 데이터 딕셔너리 변경은 이렇게 한다.

1:07:07
애널라이즈 애널라이즈 테이블 테이블 온 이름 sdmatit staticity 환경변수 점검은 쇼파라미터 명령을 이용해 가지고 파라미터 이름값 그다음에 해당 sql과 관련되어진 인덱스 정보 파악은 selectomer를 이용해서 할 수 있다. 정도 두 번째 에스큐엘 성능 측정 도구로서요 익스플레인 플랜 사용자들이 에스큐엘의 액세스 경로를 확인을 해서 성능 계산을 할 수 있도록 돕는 툴인데 에스큐엘을 분석하고 해석 하여 실행 계획을 수립하고 관련 테이블에 저장이 되도록 지원하는 도구입니다. 단계는 준비 실행 단계에 준비 단계는 익스플레임 플랜 준비 단계는 해당 사용자로 db에 접속해서 플랜 테이블을 먼저 생성해야 됩니다. 자 테이블에 저장한다.

1:08:06
이렇게 말씀드렸죠 그래서 얘는 전제조건이에요. 먼저 얘 이용하려면 해당 사용자로 db에 접속해서 플랜테이블 생성부터 먼저 합니다. 당시에는 이렇게 플러스 트레이스 롤 생성으로서요 에스큐엘 플러스 그다음에 해당 네 사용자 이름으로 접종한 거고요. 그다음에 해당 플레이 스트레이스 롤 생성 스크립트 이게 그거고요. 그다음에 사용자한테 플러스 트레이스 권한을 부여해 가지고 그랜트 플러스 트레이스 2 누구한테 예상적 이름입니다. 네 자 그다음에 실행입니다. 준비가 끝났고 그 다음에 실행 해당 사항들을 db에 접속한 다음에 오토 트레이스 모듈을 온으로 전환을 합니다.

1:08:48
그래서 셋 명령을 이용해 가지고 셋 오토 트레이스 온 기본적으로는요 오프할 수도 있고 옵션은요, 온은 에스큐레인 실행 결과 실행 계획과 통계 정보를 보여주는 옵션이고 오픈은 이 오토 트레이스를 해제하는 옵션이고 트레이스 온 있는 실행 계획과 통계 정보만을 제공하는 옵션이다. 빨갛게 줄 표시해 놓은 건 뭐다 해당 예의 명령어 사용하기 전에 반드시 플랜 테이블을 먼저 생성을 해야 돼 아까 주의사항 말씀드렸죠 그리고 모듈 오프로 전환할 때까지 플랜테이블에 계속 라이트가 되어집니다. 볼 때는요 쇼 오토 트레이스 이렇게 그리고 플랜 테이블 확인은 셀렉트머니를 이용해가지고요. 해당 필드 프람 테이블명 웨어 이하 조건을 사용해서 확인할 수가 있습니다.

1:09:46
자 플랜트 에이블의 결과 항목 의미 이렇게 돼 있는데요. 뒤에 출력 결과치가 이렇게 제시가 되어져 있으니까 해당 이 출력 결과치에 대한 해석 이게 뭘 뜻하는데 라는 부분을 정리한 부분입니다. 여기도 마찬가지 꼼꼼하게 이거 하나하나 다 모르면 안 되나 그렇게 크게 염려 안 하셔도 되니까. 개괄적으로 먼저 저희 살펴볼게요 익스플레인 플랜 오토트레이스 결과한 화면 예시인데 얘가 셋 오토트레이스 온 하고 난 다음에 에스큐엘 문을 이렇게 실행시켰어요. 그럼 실행된 에스큐엘 문이 이렇게 보이죠. 네 보이고 밑에 하단부에 보면은 이러한 통계 정보들이 이렇게 쭉 숫자값과 이렇게 제시가 되어 있다.

1:10:31
이건 뭐 뜻하느냐 리커시티보 콜은 재개 호출의 횟수 db 블록켓은 현재 블록이 요구되는 횟수 자 이 부분은 네 저희 ncs 학습 모듈에 해당 배포 내용에 그대로 정리돼 있으니까 여기까지 세부 내용까지 꼭 몰라도 저는 된다고 생각을 합니다. 참조하시면 될 것 같고, 건너뛰겠습니다. 다음 sql 성능 개선 순서입니다.

1:11:00
sql 성능 개선 순서 첫 번째 문제에 있는 sql이 있는가 식별 문제 있는 sql을 식별하기 위해서는 sql 성능을 관리하거나 모니터링하기 위한 툴인 apm 등을 활용을 하자 그리고 오라클인 경우는 pk 프라프 또는 에스큐엘 언더버 트레이스와 같은 유틸리티를 사용해서 성능에 문제 있는 sql을 확인해 보자 두 번째 옵티마이즈 통계 확인 세 번째 실행 계획 검토 sql문 재구성 인덱스 재구성 마지막으로, 실행 계획 유지 관리 순으로 sql 성능 개선을 단계별로 두 번째 단계 옵티마이즈 통계 확인은 개발자가 작성한 sql을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해 주는 데이터베이스 핵심 모듈이다. 오라클은 두 가지 모드로 비용 중심적인 옵티마이즈와 룰 기반의 옵티마이즈를 지원한다고 했고요.

1:11:59
이 중에 비용 기반적인 cbo 모드를 기본으로 지원을 합니다. 자 일례로 애널라이즈 하고 난 다음에 이 형식인데요. 애놀라이즈 오브젝트 타입 오브젝트 이름 오퍼레이션 스태틱시틱 이렇게 돼 있는데, 오브젝트 타입으로 입력할 수 있는 대상은 테이블이나 인덱스나 클러스터 중에 여기다가 대상으로 분석 대상으로 입력해 줄 수 있고 그다음에 operation 파트에서는 컴퓨터 에스터메이트 딜리트와 같은 것을 이용할 수 있는데, 컴퓨터는 정의되어진 오브젝트 이름에 대해서요. 통계 정보를 정확하게 계산하는 방법이다. 가장 정확한 통계를 얻을 수 있지만 처리 속도가 가장 느리다 라는 특징 단점도 있습니다. 에스드메이트는 추측이잖아요. 얘는 계산 얘는 추정이잖아요. 에스드메이트 자 데이터 딕셔너리의 값과 데이터 샘플링 정보를 기반으로 해서 통계적 측면에서의 통계치를 예상하는 방법이다.

1:12:54
컴퓨터보다는 덜 정확하지만 처리 속도가 컴퓨터보다는 훨씬 더 빠르다 딜레이트 삭제 해당 모든 통계 정보를 삭제하는 것을 이야기한다. 예시가 이렇게 돼 있고 다음 다음으로, 실행 계획 검토한다. 세 번째 sql 성능 개선 순서 순차적으로 세부 내용 살펴봅니다. 세 번째 단계 실행 계획 검토 드라이밍 케이블이 최상의 필터를 가지고 있는가 라는 것을 중심으로 검토하자 처리량이 작은 테이블을 드라이빙 테이블로 지정하자 드라이빙 테이블은 뭔데 드라이빙 테이블은 밑에 설명 조인이 발생할 때 첫 번째로, 액세스하는 테이블이 드라이빙 테이블입니다. 드라이빙 테이블 순서에 따라서 데이터를 억세스하는 양이 대폭 늘거나 줄어들 수도 있기 때문에 어떤 테이블을 먼저 드라이빙 하는지는 중요합니다. 가장 작은 데이터를 추출할 것으로 예상되는 테이블을 먼저 드라이빙 하는 것이 바람직합니다.

1:13:54
네 번째 단계 sql문 재구성 웨어절에 대한 사용 웨어절이라는 건 조건을 두는 겁니다. 셀렉트 가지고 와야 모든 거 프라임 테이블 이렇게 해버리게 되면 해당 그 테이블에 저장되어져 있는 필드의 조합인 레코드들을 몽땅 다 가져와요. 이중에서 이 중에서 제한을 두는 거예요. 예를 들어서 나이필드의 입력값이 예를 들어서 30대 이상인 거 이렇게 하면 이제 20대 30대 미만인 건 싹 줄고 30대마다 추출이 되죠. 웨어저를 사용을 해서 범위를 줄여서 처리 속도를 빠르게 구성할 수가 있다. 컬럼 변경 연산자를 활용할 수도 있다. 네 웨어절의 컬럼에 연산자 방금 제가 말씀드렸잖아요. 이상인 거 나이필드의 값이 30 이상 이런 식으로 네 컬럼 어 웨어절의 컬럼에 연산자를 사용해서 컬럼 변경이 발생을 하게 되면 인덱스를 활용하지 못하게 되니까. 컬럼 변경 연산자는 쓰지 않는 게 좋겠죠.

1:14:49
범위 안정 사용 부분 범위 처리의 경우는 서브 커리에 리그시스트를 사용하여 불편한 검색을 하지 않도록 하자 힌트 실행 옵티마이즈가 비정상적 실행 계획을 수립해서 처리가 된다면 힌트로 사용 옵티마이즈의 액세스 경로 및 조인 순서를 제어하는 것이 좋겠다. 자 이 문구 중에는 일부 이해가 좀 안 되는 것들이 일단 어 이거 놓치면 뒤에 내용 못 듣는가 전혀 부담 안 가져도 됩니다. 중요한 건 제가 이걸 반드시 알아야 돼요. 라고 짚어드릴 테니까.

1:15:23
다음 인덱스 재구성 인덱스라는 건 아까 뭐였죠 이거는 속도적인 부분 자체를 고려했던 측면인데 성능의 중요한 인덱스 경로를 고려해서 인덱스화하자 실행 계획 검토하는데 실행 계획을 검토해서 기존의 인덱스의 열 순서를 변경하거나 추가할 수도 있겠고 뭐죠 지금 sql 성능 개선적인 측면에서 인덱스는 이러한 걸 고려해서 재구성해야 낫다 이 말입니다.

1:15:52
관련된 sql을 검토하자 인덱스 추가할 때 정상적으로 처리되고 있던 다른 sql에 심각한 영향을 줄 수도 있으니까 관련된 주요 sql 질의 결과도 함께 고려를 하자 코드 테이블 확인 한 가지 인덱스로만 한 가지 인덱스로 읽기만 하는 코드와 같은 테이블은 인덱스 하이퍼 오그나이즈드 테이블로를 작성하는 게 오히려 낫겠고 뭐 불필요한 인덱션 제거하자 다음 실행 계획 유지 관리 실행 계획이 유지되고 있는지 모니터링하고 관리하자 언제 데이터베이 버전이 업그레이드 된다든지 데이터 시스템이 이동된다든지 시스템 환경의 변화가 발생하는 경우에 해당 섹션에 대한 퀴즈입니다. 문제 유형 이렇게 나온다는 부분입니다. 성능 개선을 위한 척정 도구의 성격이 다른 건 뭐야? 이렇게 묻고 있어요. 다 저희가 다뤘던 용어들이긴 해요.

1:16:50
apn pk 프라프 익스플린플랜 에스큐엘 언더바트 트레이스라는 용어도 일부 나오긴 했어요. 네 자 크게 예 3개는 에스큐엘 성능 sql 성능을 측정하는 도구이고 apm은 애플리케이션이잖아요. 애플리케이션 퍼포먼스를 매니지먼트 하는 거잖아요. 그래서 성격이 다른 건 첫 번째 자 두 번째 섹션입니다. 네 소스 코드 인스펙션이라고 하는 부분 자체는 실제 시험 고 출제 기준에 포함돼 있고 학습 모듈은 없어요. 자 우선은 명칭적인 부분은 인스펙션이라고 하는 부분 자체는 저희가 요구사항 파트에서요 네 요구사항 검토 기법 중에 인스펙션이라는 게 있었거든요. 전문가들이 제대로 됐는지를 검토하는 거 소스 코드 인스펙션 자 소스 코드 인터펙션 개념입니다.

1:17:38
데이터 조작 프로시스에서 소스 코드 인터펙션은 데이터베이스 성능 향상을 위해서 프로시스 코드를 보면서 성능 문제점을 개선해 나가는 활동을 말한다. 자 대상으로 스트라프리시저 소스 확인하는 방법 skl 플러스에서요 스트라 프로시즈 소스 확인하는 유저 언더바 소스 2차 사전을 이용을 할 수 있는데, 유전더 소스 데이터 사전을 이용하면 사용자가 만든 모든 프로세저를 볼 수가 있다. 그래서 셀렉트문을 이용해 가지고요. 해당 타입 자체가 프로시저인 곡을 유저 언더버 소스라고 하는 부분은 데이터 사전 테이블인데 여기로부터 디스탱크는 중복성 제거한 이름값들 쭉 뽑아보라 이 말입니다.

1:18:28
프로시드 소스 확인 프로세스 소스는 유전드버스 소스의 텍스트 조회를 통해서 확인할 수 있는데, 넘어갈게요 자 sql 코드에 대한 인스펙션 sql 코드 인스펙션의 대사는 네 가지 첫 번째 사용되지 않는 변수 사용이 안 돼요. 풀시에서 선언됐지만 본문에 전혀 사용되지 않는 게 있으면 얘는 그대로 두기보다는 얘를 찾아가지고, 삭제하자 이 말입니다. 없애는 게 낫다 괜히 쓰지도 않는데 사용되지 않는 서브 컬이 컬럼이 선언됐지만 외부 컬에는 참조되지 않는 거 얘도 불편한 거잖아요. 에스큐레코드에서 얘 오히려 빼자 널 값과 비교하고 있는 게 있느냐 너울이라는 건 뭐예요? 비어있는 건데 대상 자체가 구체화 안 된 거예요. 그래서 넣을 값과 비교하는 프로세스 소스가 있으면 이것도 불필요입니다.

1:19:22
과거 데이터 타입을 사용하고 있는 거 데이터 타입이 바뀌었지만 과거 타입을 그대로 쓰고 있는 소스가 있으면 이것도 수정이 좀 필요하죠. sql 코드에 대한 인스펙션 절차입니다. 계획부터 하자 문제가 되는 sql 코드 선별 문제점 인식 및 인스펙션 참여자 선정 개괄적으로 보자 sql 코드 문제점을 공유 실행 시간이냐 네 사용량 같은 자원 못하네요.

1:19:51
자원 사용량 등 그리고 계획 및 방법 공유 준비 각자 sql 소스 코드 분석 문제점 확인 검사 공식적으로요 sql 인스펙션을 수행해서 문제점들을 토의하자 제작업 네 해당 소스 코드 인스펙션을 통해가지고 찾아진 어떠한 어떤 문제점 같은 것들은 코드 수정 및 실행시간 재측정하고 추적하자 개선의 효과가 있냐 이 순서로요 계획 개관 준비 검사 제작 추적 자 소스코드 인스펙션 섹션에 대한 퀴즈 프레시저 소스코드 인스펙션의 결과로 가장 바람직하지 않은 거는 첫 번째 사용하지 않는 변수를 삭제하는 게 좋겠다. 굳이 사용하지 않는데 두면 뭐합니까? 지우는 게 좋겠다. 사용하지 않는 서브 쿼리는 삭제하는 게 좋겠다. 호환성 강화를 위해서 과거의 데이터 타입을 사용한다.

1:20:51
이건 아니죠. 데이터 타입이 바뀌었는데 굳이 옛날 걸 굳이 쓸 필요는 없겠다. 넣을 값과 비교하는 건 제대로 피하자 자 정리 문제로 정리하겠습니다. 모의평가 다음 중 sql에 대한 설명으로 옳지 않은 것은 이 문제는요 어 문제가 잘못됐는데 해당 이 sql 순서적인 부분을 묻고 있는 겁니다. sql에 대한 프로시저의 처리 순서요 처리순서 나열로 옳은 것을 골라라 이 문제입니다. 첫 번째 가 에스큐엘 구문이 sql 부분이 데이터베이스에 사용된 적이 있는지 확인한다. 아까 저희가 앞부분에 다뤘던 sql 처리 흐름이라는 부분이 있었죠.

1:21:45
그 부분은 문제가 됐는데 제가 제목이 타이틀이 잘못됐습니다. sql 처리 순서로 올바르게 나열한 것은 처리 순서를 올바르게 나열한 것은 이렇게 문제 고치고 풀겠습니다. skl 구문이 데이터베이스에 사용된 적이 있느냐 없느냐 있으면 해당 캐시버퍼에서 바로 가져가 쓴다 이렇게 했었죠. 구문 파싱이나 이런 것도 안 해도 된다. sql 문장이 포함되어진 테이블이 데이터베이스 있는지 확인한다. sql문의 경우는 메모리 영역을 검색해서 데이터가 존재하는지 확인한다. sql문의 경우에 요청자에게 데이터를 보내준다. 이게 제일 마지막이겠다. 라가 제일 마지막이다.

1:22:25
라가 제일 마지막이고 그러면 첫 번째 가 나 다 나 네 가 나 다 중에 어느 건데 라는 걸로 딱 결정되겠는데 데이터베이스 구문이 데이터베이스 사용되지 않느냐 문장 내에 포함된 테이블이 있느냐 일차적으로는 1번이 제일 먼저 해야 될 것 같고, 나머지는 순차적으로 진행하는 게 바람직한 처리 순서로 보여집니다. 스킬 구분이 데이터베이스에 사용되어 있느냐 그리고 해당 문장 내에 포함되어진 테이블이 데이터베이스에 있느냐 셀렉트문의 경우에 메모리 영역을 검사해서 데이터가 존재하는지 확인하고 마지막에 해당 요청자에게 데이터를 보내준다. 두 번째 데이터 조작 프로시저 최적화를 위한 sql 작성 시 고려 사항으로 옳지 않은 거 개발자는 sql 특성을 충분히 이해하고 sql물을 적절히 구사할 수 있는 능력을 갖추어야 해 sql 작성 시 고려 사항입니다.

1:23:22
개발자는 sql문 충분히 이해하고 갖춰야 되죠. 구사할 수 있는 능력 sql 작성 시 옵티마이즈가 실행 계획을 수립한 후에 실행되는 일련의 과정을 몰라도 돼 몰라서 되는 건 아니겠죠. 리보이가 틀린 것으로 파악되어지고 구문 분석 단계 시 옵티마이즈가 수립한 계획 실행 계획에 따라 수행 척도가 많이 발생하니까 실행 계획 수립 잘해야 된다. 옵티마이즈가 비정상적으로 동작된다면 개발자는 원하는 실행 계획으로 동작되도록 조정하는 것도 필요해 맞죠. 티켓 프라우드에 대한 설명 중에 옳지 않은 것은 실행되는 sql 문장에 대해서 분석 정보를 제공하여 개발자가 특정 sql문을 어떻게 사용해야 할 것인지에 대한 가이드라인을 제공해야 해당 정의문에서 언급됐던 문장 그대로입니다. 인스턴트 레벨 추적은 모든 sql에 대해서 크레이스 파일을 생성하여 많은 부하가 발생한다.

1:24:22
세션 레벨 추적은 임시적 설정이라서 특정 프로세스별로 추적 파일을 생성한다. 맞습니다. 일반적으로 트랜스 설정은 인에이블로 하여 충분한 트랜스파일이 생성되도록 한다. 필요할 때만 인에이블하고 일상 측면에서는 디세이블로 해두자 그래서 4번이 틀렸습니다. 4번입니다. 익스플레인 플랜 sql 성능 측정 도구 설명 중 가장 거리가 먼 거 틀린 거 골라 네 sql의 엑센스 경로를 확인을 해서 성능 계산을 할 수 있도록 sql문을 분석하여 분석하고 해석 실행 계획을 수립하고 관련 테이블 저장하는 도구야 설명문구에서 그대로 나온 문구입니다. 익스플레인 플랜을 실행하기 전에는 반드시 플랜테이블이 생성되어져야 된다.

1:25:21
이거 중요하다 말씀드렸죠 맞고 셋 오토 트레이스 온을 하면 스큐리 문의 실행 결과와 실행 계획과 통계 정보를 여기에다가 저장하게 되네 오토 트레이스 모드는 일정한 에스큐엘 시간이 경과되면 오토 트레이스가 5%로 전환된다. 자동으로 전환되지 않습니다. 자동전환은 아닙니다. 수동으로 해야 돼요. 그래서 4번이 틀렸습니다. 5번 다음 중 소프트웨어 인스펙션에 대한 설명으로 옳지 않은 것 인스펙션은 소프트웨어의 실행이 필요하므로 일반적으로 구현 단계부터 수행을 한다. 인스펙션은 저희가 먼저 살펴봤던 파트가 어디 있냐면 요구사항 부분이었어요. 이 요구사항 기법 중에 인스펙션도 있었습니다. 그러면 해당 구현 단계가 아니라 요구사항은 분석단계예요.

1:26:21
분석단계부터도 사용했던 방식이고 소프트웨어 실행이 꼭 필요하지는 않는다. 스텔링은 1번 산출물들을 검토하여 잠재적 오류나 이상을 사전에 찾는 걸 목표로 하고 소프트웨어 개발 단계에 어떤 산출물도 인스펙션 대상이 될 수 있다. sql코드 인스펙션 절차는 계획개관준비검사 제작업적으로 진행된다. 맞습니다. 자 핵심 정리하고 마치겠습니다.

1:26:50
데이터 조작 풀실 성능 개선은 성능 개선 및 자원의 효율적 사용을 위해서 성능 분석이 필요하다 성능 분석 도구로서는 리소스 및 성능 모니터링 목적으로는 apm 도구가 사용이 되어지고 spl 성능 측정으로서는 pk 프랍 익스프레임 플랜이 사용되어진다 그리고 모니터링 결과 문제시 되는 내용에 대한 확인 때 sql의 성능 개선 순서는 문제 있는 sql 식별 옵티마이즈 통계 확인 실행 계획 검토 sql문 재구성 인덱스 재구성 순으로 진행을 합니다. 마지막으로, 소스 코드 인스펙션 데이터베이스 성능 향상을 위해서 프로세스 코드를 보면서 성능 문제점 개선해 나가는 활동이었고요.

1:27:40
sql 코드의 인스펙션 대상으로서는 사용하지 않는 변수가 있지 않느냐 그리고 사용되지 않는 서브 코리는 널 값과 비교하면 프로시스 소스가 있느냐 과거 데이터 타입을 사용하는 것도 있는가를 보고 해당 사용하지 않는 변수는 삭제 사용하지 않는 서브티드도 삭제 도입값과 비교하는 프로시저 별로 필요 없고 과거 데이터 타입을 사용하는 건 안 맞죠. 이상으로 데이터 조작 프로시저 최적화에 대해서 살펴봤습니다.

728x90
반응형
posted by 아이윤맨
:
영상필기 2025. 5. 24. 08:19
728x90
반응형

https://youtu.be/vDqN_hkQac8?si=YUsnQVkUJvoDDpWi

1. 국어 성적 향상 전략

1-1. 국어, 능력이 아닌 태도
- 국어 성적이 안 나와서 두 번째 이유를 찾아봄
- 국어는 아이들이 많이 읽은 만큼 성적이 좋아짐
- 국어는 일상 언어와 시험 언어를 구별해야 함
- 시험은 교수들이 내시기에 아이들의 권위가 억압되어 긴장한 상태에서 읽히기 때문임
- 태도가 시험 성적에 미치는 영향을 인지해야 함

1-2. 국어, 어려워진 이유
- 국어가 어려워지는 심리적 요인과 환경적 요인을 파악해야 함
- (중요) 어른들이 국어를 어려워하는 태도를 가지고 있음
- (중요) 국어는 시험이 매번 다르기 때문에 공부에 흥미를 느끼지 못함
- (중요) 입시 변화 때문에 어려워지는 것이 아니라, 정부의 의도에 따라 어려워짐
- 지문의 어려운 해석을 위해서는 출제자의 의도를 이해해야 함

1-3. 태도 변화
- 입시 변화와 관계없이 자신의 태도를 기르면 시험이 어려워도 잘할 수 있음
- 국어의 경우, '지문이 아무리 어렵더라도, 결국은 정답의 판단 근거가 명확함'을 기억해야 함
- 수능은 완벽한 시험이며, 50만 명이 넘는 사람이 치게 될 수 있는 시험이기에 오답 논란이 없어야 함
- (중요) 수능 국어 문제에 나오는 지문의 의도를 찾고, 출제자의 의도를 이해해야 함
- 시험을 잘 보기 위해서는 투자와 집념이 필요함

2. 국어 시험 준비법

2-1. 국어 시험 이해하기
- 국어 시험은 독서 능력과 창의력, 사고력 등 언어 능력을 체득하는 것임
- (중요) 수능 국어 성적이 좋은 것은 독서를 많이 했기 때문이며, 독서 능력은 중학교 2학년 때까지 중요함
- 중학교 3학년 때부터는 입시용 독서와 교양용 독서를 나누며, 교양독서는 중3 때까지 읽어야 함
- 독서 시 목적과 방향을 설정하고, 생각을 나누며 읽는 것이 중요함
- 일반 독서는 절대 금지하며, 수능 공부와 문학 공부를 통해 자연스럽게 독서가 가능함

2-2. 독서 목표 설정하기
- 국어 1등급을 받은 학생들의 독서 방법을 모방하며, 효율적인 독서법을 익혀야 함
- 독서 목표를 설정하고, 문제를 풀 때와 지문을 읽을 때 사전 전략을 짜야 함
- 보기, 지문, 문제의 순서로 읽으며, 투두 리스트를 만들고 읽기 전 사전 태도를 갖춰야 함
- (중요) 비문학 지문일 경우, 위법성 조각설과 같은 키워드를 먼저 읽고, 관련 정의와 예시, 발례 등을 기억해야 함

2-3. 사전 공부 방법
- 독서 전, 문제집과 지문을 모두 읽고, 문제를 푸는 과정에서 지문을 잘 읽는 방법을 연습해야 함
- 수능 시험에서 지문을 읽을 때, 지문의 왼쪽은 보통 문제, 오른쪽은 지문이 위치함
- 문제를 풀 때, 지문을 위에서 내려다 보며 흐름을 읽고, 문제를 보기 전에 지문을 읽어야 함
- 문제를 풀 때, 문제의 어려움을 인지하고, 문제를 풀 때와 수업 중 다른 부분을 미리 생각해 둠
- 수능 국어 성적이 좋은 이유는 독서를 많이 했기 때문이며, 독서 능력은 중학교 2학년 때까지 중요함

3. 국어 시험 준비

3-1. 국어 시험 접근법
- 지문을 전략적으로 읽어야 함
- 문학 소설을 읽을 때 인물, 사건, 배경, 갈등, 서술 구조 등 5가지 요소를 중요하게 여김
- 국어 시험은 인물 중심의 문제를 풀도록 유도함
- 문제 풀이 시, 지문에서 중요한 요소를 빠르게 파악하는 연습이 필요함
- (중요) 지문을 다 읽었다고 복잡한 생각이 들면, 그 문제는 이미 풀려 있음을 기억함

3-2. 효율적인 독해 방법
- 국어 시험은 문장 단위로 시험을 봄
- 문장을 하나로 보는 선지 끊어 읽기 연습이 필요함
- 국어 역량을 향상시키기보다, 한 문장을 정확하게 해석하는 연습이 중요함
- 지문을 대충 읽고, 문제를 대충 해석하는 습관은 바뀌면 안 됨
- 국어 학습에서 태도의 변화가 중요함

3-3. 재수생의 조언
- 재수생들은 강한 충격이 왔을 때 태도가 변화함
- 재수생의 사례를 보면, 문제가 어려워도 점수가 안정감 있게 나오는 흐름이 나타남
- 국어는 성선설이므로, 품성에 치우치지 말고, 대화와 논리적인 생각을 연습해야 함
- 수능 1등급은 어렵지만, 2등급은 누구나 가능함
- 부모님의 지원과 격려가 필요함

00:00
컨설팅이나 설명회 때 늘 하는 말이 있어요. 100% 나와요. 그게 뭐냐면 딱 두 가지 중에 하나입니다. 우리 아이가 어렸을 때 책을 많이 읽었는데 왜 국어 성적이 안 나와요. 두 번째는 우리 아이가 어렸을 때 책을 많이 안 읽어서 국어 성적이 안 나와요. 그러면 이 두 가지 질문 다 위험해요. 왜냐하면, 안녕하세요. 교육대기자 티비 대기자 방종임입니다. 6월 모평 앞두고요. 수능 국어 대비법 나눠보겠습니다. 안녕하세요. 국어 강사 엄태욱입니다. 반갑습니다. 반갑습니다. 강사님 워낙 강연 많이 하시는 걸로 알려져 있잖아요. 어느 정도 아세요. 최근 한 3~400회는 넘게 했던 것 같아요. 강연 때 하는 오프라인 강연 때 만날 수 있는 그 엑기스를 오늘 좀 나눠주시면 감사하겠습니다. 이거는 사실 계기가 좀 있는데요. 나만 알고 싶은 국어 1등급의 비밀이라는 책을 내셨잖아요.

00:54
여기서 이 문구 국어는 능력이 아니라 태도다 여기서 강조하는 태도 왜 강조하시고 어떤 태도를 말하는 걸까요? 자 일단 기본적으로 국어는 능력이 아니라는 단어가 무슨 뜻이냐면 모국어로서의 국어를 활용한다는 거 그래서 아이들은 기본적으로 국어를 다 잘해요. 그런데 넌 왜 국어 성적이 안 나와 이렇게 얘기했을 때 그거는 태도 변화가 없어서 문제 풀이에 적합한 태도를 갖고 있어야 되는데 그거 없이 늘 일상 일상 언어로만 사용하는 국어를 생각하니까 그랬던 것 같아요. 저는 그래서 이거를 일상 언어와 시험 언어를 구별하고 있거든요. 책을 읽을 때도 내용 이해를 위한 독해가 따로 있고요. 그리고 문제 풀이를 위한 독해가 따로 있어요. 그래서 그 두 가지를 구별해서 해야 시험에 더 적합한 문제풀이가 되겠죠. 예를 들면 우리가 어렸을 때 책을 많이 읽으면 기본적으로 뭘 생각하게 되면 재밌다 감명 깊었다 아이들에게 그런 생각을 자꾸 하게 되잖아요.

01:49
실제로 수능에서 시험 내는 건 재미있었냐 감명 깊었냐를 물어보는 게 아니라 편집자적 논평이 있었니 너 이거 무슨 시점이니 혹은 공감각적 심상이 있었니 이런 걸 물어본단 말이야. 근데 우리가 책을 읽을 때 이런 걸 생각하면서 읽지 않아요. 애초부터 목적성을 갖고 그런 걸 생각하면서 읽어야 되는 태도가 필요하거든요. 그런데 그런 태도 없이 일단 읽히는 대로만 근데 더군다나 이 시험은 누가 냈냐면 교수님들이 내시기 때문에 그러한 권위의 아이들이 억압을 받아요. 억눌리다 보니까 긴장한 상태로 글을 읽으니까 눈이 안 들어오는 그 무슨 말이야. 이렇게 되는 거죠. 그렇죠.

02:29
이게 뭔 소리야 더군다나 전문 용어도 나오기 시작하고 그래서 그런 거에 자기 주체적인 입지를 확보한 상태에서 목적에 맞게 오늘은 문제가 인물 문제가 나왔으니까 인물을 중심으로 읽어볼래 시점을 물어보는 문제가 나왔으니까 시점을 중심으로 물어볼래 이렇게 문제를 분석하고 전략을 세우고 그거에 대해 피드백을 하는 그런 태도 형성이 중요하다 우리가 보통 태도에 대해서 이런 얘기를 하거든요. 넌 태도가 글러먹었어 아니면 뭐 넌 습관이 잘못 들었어 이 말 안에는 이미 원래는 제대로 갈 수 있었는데, 잘못 만들어졌다는 뜻이잖아요. 그래서 요런 생각을 자꾸 하게 되면 아이들은 난 국어는 안 돼 어 난 국어 힘들어 이미 끝났어 이런 생각을 하게 된단 말이죠.

03:08
그래서 그러한 인식을 바꾸고 나도 할 수 있어 어 나도 문제 풀이를 맨날 5번까지 안 보고 2번까지만 보고 정답을 찍었는데 이거를 5번까지 봤더니, 성숙이 올라가는 걸 경험을 하고 내가 지문 독해할 때 내 멋대로 읽는 게 아니라 어 보기에 있었던 내용을 잘 참고해서 읽었더니, 내가 똑같은 능력을 갖고도 점수가 더 잘 나오네 이제 그런 걸 깨닫게 되면 이제 공부가 알아서 되고 성적이 올라가는 사실 국어 같은 경우에 초 중등 때는 그래도 열심히 하다가 수능 국어라는 단어가 나오는 순간부터 학생들이 막히면서 수능 국어는 진짜 어려워 그전까지의 국어랑 전혀 다르게 인식을 하잖아요. 체감을 하실까요? 이들이 체감을 두 가지 측면에서 국어 공부를 어려워하는데요. 첫 번째는 심리적 요인이에요. 어른들이 많이 색안경을 끼고 봐요. 너희들은 기본적으로 문해력이 너무 딸려 유튜브를 너무 많이 봐 그러다 보니까 책을 너무 안 읽어 그래서 너는 국어를 못 할 거야. 이런 식의 어른들의 인식이 있다. 보니 기대감이 없잖아요. 그러니까 공부할 때 흥이 나지 않겠죠.

04:04
그래서 그것 때문에 공부가 더 어려워져요 나는 해도 인정도 못 받고 또 국어라는 과목이 당장 오늘 한다고 바로 다음 날 성과가 나는 게 아니다. 보니까 버틸 마음이 안 생기는 거죠. 결국 공부는 고통을 견뎌내는 힘이 단단해야 공부를 멀리할 수 있는 건데 오랫동안 할 수 있는 건데 그거를 잃어버렸죠 그게 첫 번째 심리적 요인 국어가 어려운 두 번째 요인은 환경적 요인이에요. 환경적 요인이라고 하면요 입시가 너무 자주 바뀌어요. 국어에서도 체감되는 부분이 있으세요. 국어는 제일 많이 바뀌어요. 최근 10년을 놓고 네 가장 등락이 심하고 그리고 체가 학생들이 느꼈을 때 갑자기 난도가 올라갔다가 낮아졌다가 이렇게 변하는 그 체감이 가장 강한 과목이 국어입니다. 갑자기 지문의 길이가 길어졌다가 바로 다음 연도에 어떤 교육부에서 발표를 하게 되면 한 3분의 2로 줄어들어요.

04:57
아주 직관적이고 쉽고 교과서에 나오던 시 중심으로 공부를 했는데 갑자기 교육과정 바뀌면서 난생처음 본 현대시 포스트 모더니즘 시 이런 것들이 나와버리면 아이들이 갈피를 못 잡겠죠. 사실 언어라는 게 시험이 좀 어려워도 다섯 문제 맞추던 애들은 시험이 어려우면 4개는 맞춰야 되잖아요. 그런데 실제로 이렇게 교육과정이 바뀌어 버리면요 다섯 문제 맞추던 애들도 두 문제밖에 못 맞춰요 그러니까 완전히 해석을 못해버리는 거예요. 해석한 걸 배워본 적이 없고 그렇다 보니까 입시라는 게 10년 동안 같은 경향으로 계속 어렵게 내면 대비가 되고 준비가 되고 내가 얼마만큼 투자를 하면 얼마만큼 아웃풋이 나온다가 나름대로 이제 정량화가 될 텐데 이거는 어쩔 때는 쉽게 나오니까 공부를 좀 소홀히 했다가 갑자기 어렵게 나오면 갑자기 더 열심히 했다가 그런데 중학교 때 쉬운 경향 때문에 중학교 내내 그 공부를 안 했는데 고등학교 올라오면서 갑자기 어려워져 버리면 아이들은 이게 뭐야?

05:51
그러면서 뭘 느끼냐면 배신감을 느끼죠 근데 강사님도 너무 잘 아시겠지만, 이 입시 변화는 내가 어떻게 준비를 할 수 있는 부분이 아니잖아요. 이건 정부에서 이러고 저러고 하는 건데 그거랑 상관없이 내 태도를 어떻게 기르면 되나요? 많이 불어도 뿌리가 깊으면 흔들리지 않죠 전 그 뿌리가 태도라고 생각해요. 지문이 아무리 어렵더라도 그것은 누군가의 의도에 의해서 만들어진 지문이거든요. 출제자의 의도죠 그래서 예를 들면 시 한 편을 보더라도 영역을 나눠볼 줄 알아야 돼요. 작가가 써놓은 공간과 출제자가 써놓은 공간을 분리해서 결국 오늘 출제자는 이러한 문제를 나에게 시어를 물어보는구나 라는 걸 캐치해서 그거 중심으로 글이 어렵더라도 결국은 정답의 판단 근거는 아주 명확하거든요. 수능은 완벽한 시험이에요. 이걸 인정하고 들어가야 돼요. 수능 국어 예산만 해도 수십억이거든.

06:46
그러니까 문제가 기껏해야 45문제밖에 안 되는데 예산이 수십억이라는 뜻은 한 문제의 가치가 5천만 원에서 1억이라는 뜻이에요. 쉽게 생각하면 직관적으로 그러면 그 시험에게 우리가 기대하는 거는 이걸로 인해서 오답 논란이 없었으면 좋겠다. 그리고 50만 명이 넘는 친구들이 모두 한 번호를 치게끔 완벽한 판단 근거를 주겠다. 그러한 의도가 들어가 있으니 그걸 찾으려고 끊임없이 노력하고 어떤 집착을 하고 투지와 집념을 보인다면 그게 태도로서 같이 정착돼 있다면 아이들이 시험이 어렵도 어려워도 방어를 잘하는 거죠. 그러니까 이 시험을 정확히 분석하고 들어가라는 말씀이시잖아요. 부모님들은 이런 상황을 전혀 이해를 못 하시잖아요. 다른 과목은 어려운 거 이해해 왜냐하면, 수능 수학 어려운 거 영어 어려운 거 본인도 체감을 하셨으니까 근데 국어는 모국어인데 왜 어렵냐를 잘 이해하는 게 어려움이 간극이 좀 있으신 것 같아요. 컨설팅이나 설명회 때 늘 하는 말이 있어요. 100% 나와요.

07:44
그 얘기가 뭐냐면 두 가지 중에 하나입니다. 우리 아이가 어렸을 때 책을 많이 읽었는데 왜 국어 성적이 안 나와요. 두 번째는 우리 아이가 어렸을 때 책을 많이 안 읽어서 국어 성적이 안 나와요. 그러면 이 두 가지 질문 다 위험해요. 책을 많이 읽었는데도 성적이 안 나와 이거에 갖고 있는 거는 책임론이 들어가 있는 거예요. 넌 어렸을 때 책도 많이 읽고 엄마가 도서관도 많이 데려갔고 엄마가 투자한 것도 많은데 왜 성적이 안 나오니 책임론 책임을 부담을 이만큼 지고 공부하는 아이들은 공부할 때 힘이 나겠어요. 공부가 흥이 안 나겠죠. 공부가 눈에 들어오지도 않을 거예요. 그래서 성적이 잘 안 나오고 국어가 점점 싫어지고 멀어지고 두 번째 아까 전에 말씀드렸던 것처럼 선생님 우리 아이가 어렸을 때 책을 안 읽어서 성적이 안 좋은 건가요? 독해력이 그래서 부족한 건가요? 문해력이 딸리는 건가요? 라고 얘기하면 저는 이건 낙인론이라고 봐요. 낙인 혹은 결정론이라고 생각을 하는데요. 그러면 아이들이 넌 안 돼 라는 한 번이라도 그 소리를 들었던 친구들이 공부할 마음이 안 생기겠죠.

08:43
그러니까 공부할 때도 대충대충 문제만 많이 풀면 된다. 이런 생각을 하고 하다 보면 늘겠지 그러면 여기서 부모님들 생각하는 거에 그 중심에는 독서가 있잖아요. 책이 있잖아요. 책과 수능 국어는 어떻게 보세요. 중학교 2학년 때까지 너무너무 중요해요. 왜냐하면, 독서를 통해서 어휘가 자연 체득이 되고요. 그리고 독서를 통해서 사고력 창의력 등등 올라가겠죠. 근데 거기까지예요. 중학교 3학년 때부터는 일본어 교양 독서를 하는 건 좋죠. 전 이걸 교양독서랑 입시독서를 나누는 편인데요. 입시를 위한 독서를 준비해야 될 단계가 늦어도 중3입니다. 그랬을 경우 글을 읽은 방향성과 목적성 다시 말하면 정보 중심 독해가 돼야 되는 건 입시 독서 흥미 중심의 독서가 돼야 되는 건 교양독서가 되겠죠. 사실 상관없습니다. 네 상관이 없어요. 대신에 그 책을 읽을 때도 그냥 마음대로 읽는 게 아니라 어떤 특정한 목적이 있어야 되겠죠.

09:41
내가 오늘은 이 안에서 주제를 찾겠다. 아니면 한 장을 읽을 때마다 잠깐 멈춰서 1장을 다시 음미해 보겠다. 뭐 그런 것도 아니면 문제집을 푸는 행위를 저는 독서라고도 보거든요. 문제집 안에 생각보다 아주 많은 정보가 들어가 있어요. 일반 독서로는 아이들은 현대시를 절대 보지 않아요. 정지용 선생님이 그 아름다운 작품을 누가 일반 독서로 봅니까 하지만 수능 공부를 하다 보면 혹은 문학 공부를 하다 보면 자연스럽게 읽게 되거든요. 그것도 독서죠 엄청 중요한 독서죠 그럴 때 감상하는 독서도 하되 어 오늘 정우정 선생님이 어떤 공감각적 짐상을 쓰셨나 혹은 역설법을 쓰셨나 시상 전개를 어떤 이미지를 중심으로 하셨나 이런 것들을 생각하면서 읽어보는 독서 그거는 그냥 아무 책이나 해도 상관없고요. 아니면 문제집 속에서 해도 상관이 없으니 그럼 입시 독서는 본인이 혼자 스스로도 할 수 있나요? 그 가이드가 있어야 되지 않을까요? 그래서 나만 하고 싶은 국어 1등급이다.

10:41
그러면 국어 1등급을 받은 친구들을 보니까 이런 방식으로 연습을 했던 거네요. 내재에 있었던 거죠. 이거를 언어로 규명할 수 없었지만 그냥 정답을 찾기 위해서 막 아무렇게나 읽히는 대로 읽는 게 아니라 어떻게 하면 조금 더 효율적으로 읽을 수 있을까? 어떻게 하면 표현법을 정확하게 찾을 수 있을까? 이러한 목적을 갖고 읽는 친구들이 생각보다 많았더라 그러니까 글을 읽을 때 그냥 마냥 읽지 말고 독해 독서의 목표를 설정하라는 말씀이신 것 같아요. 그걸 좀 구체적으로 알려주세요. 시험을 딱 보면요 문제집을 보면요 제일 먼저 우리 아이들이 뭘 하냐면 문제집을 펴죠 피고 뭐 하냐면 이렇게 물을 한 잔 마십시다. 그러고 이제 뭐 하냐면 심호흡 한번 하고요. 마지막으로, 핸드폰 한 번 더 봅니다. 그리고 이제 책을 펴고 뭐 하냐? 바로 문제를 풀어요. 그리고 지문을 바로 읽기 시작하죠. 왼쪽이 지문이 오른쪽이 보통 문제거든요. 이렇게 하면 망한 겁니다.

11:38
어떻게 해야 되는 거냐면 일단은 책을 피기에 앞서서 노트가 하나가 있어야 돼요. 이 노트는 뭐냐면 어저께 문제풀이하면서 적어놨던 오늘 해야 할 투두 리스트와 어저께 문제풀이 했을 때 내일은 하지 말아야지라고 적어놨던 나투두 리스트 그거를 적어야 됩니다. 적어놓은 걸 보죠. 그리고 오늘 문제를 풀기 전에 자 오늘은 난 이 행동은 반드시 할 거야. 투두 리스트를 한 5번 읽어요. 오늘 이 행동은 절대 하지 않을 거야. 이걸 태도로 설명드리면, 어저께 내가 문제 풀 때 5번까지 안 읽어 틀렸으니 오늘은 무슨 일이 있어도 5번까지 읽겠다. 어제 문제 풀 때 내가 보기 중심 독해를 안 했다. 보기의 키워드를 뽑지 않고 지문 독해에서 내가 논점을 잘못 잡아서 문제를 틀렸으니 오늘은 보기의 키워드가 abc가 나왔으니 abc를 끊임없이 생각하면서 시랑 문학 작품 혹은 어떤 내용을 이런 거를 사전에 미리 마음가짐을 가져야 돼요. 이게 가장 중요한 사전 태도입니다.

12:36
그리고 나서 이제 책을 피죠 책을 피면 왼쪽에는 지문이 있고 오른쪽에는 문제가 있을 텐데 바로 지문부터 읽는 게 아니라 두 번째가 뭐 하냐면 위에서 내려다 봐야 돼요. 위에서 보면서 어떠한 흐름으로 나왔는지를 보는 겁니다. 아 지문 길이가 이 정도 되니까. 아 이거는 지문 독해한테 한 5분 정도 걸릴 것 같아 문제가 내 문제가 있는 것 같고, 문제 안에 보기가 있으니 자 일단 내가 보기부터 먼저 읽어봐야 되겠어 혹은 지문 독해를 풀 때 내가 뭐 예를 들어 시험 볼 때도요 내가 평소에 경제에 굉장히 약한 사람인데 이 경제 지문이 나왔네, 그러면 이 녀석을 나중에 풀자 시작하자마자 풀면은 아직 머리가 회로가 독해 언어 능력이 신장되지 않았기 때문에 예열이 안 됐기 때문에 안 읽힐 수 있으니 내가 좋아하는 지문부터 먼저 풀어보고 열이 잘 돌아서 머리에 이제 기름이 쳐졌을 때 한번 시도를 한번 해보자 이러한 전략을 사전 전략을 짜는 거예요. 그다음에 지문을 읽기 전에 문제를 간략하게 보는 겁니다.

13:33
예를 들면 비문학 지문이라고 가정했을 때 1 2 3 4 5번 선지를 쭉 스캐닝을 하는데요. 스캐닝 했을 때 위법성 조각설 위법성 조각설 위법성 조각성이라는 단어가 계속 반복돼서 나와요. 그러면 지문 어딘가는 이 위법성 조각설이라고 하는 키워드에 대한 정의가 있을 거고, 예시가 있을 거고, 그거에 대한 구체적인 뭐 사례나 발례들이 있겠죠. 그 녀석을 내가 오늘 꼭 기억하고 정리할 거야. 라고 아직 지문 한 글자도 안 읽었어요. 먼저 마음을 먹는 거예요. 전략을 세우는 거예요. 지문 독해 할 때 문학 같은 경우는 우리가 보통 소설 하게 되면요 인물 사건 배경 소설 구성의 3요소 얘기하고 또 갈등과 서술자 다섯 가지 항목이 가장 중요한데요. 어느 게 오늘 출제가 될지 모르잖아요. 근데 나는 내 멋대로 인물 중심으로 읽었는데 오늘 인물 문제가 한 문제도 안 나오면 그러면 다시 읽어야 되잖아요. 그럼 우리 아이들이 문제 풀 때 어떻게 푸는 거냐 이 행동을 하게 됩니다. 맞아요. 계속 왔다 갔다 하죠.

14:33
이거를 5번을 하면요 한 문제를 푼 거예요. 문제를 푸는 게 아니고요. 시력 검사한 겁니다. 찾는 거예요. 그건 국어 시험이 아니거든요. 그래서 오늘은 인물 사건 배경 갈등 서술자 다섯 가지 요소 중에 인물 문제가 나왔으니 오늘 글을 읽으면서 인물에다 동그라미를 쳐보자 인물을 관계도를 그려가면서 읽어보자 라는 생각을 하는 거죠. 이게 먼저 전략을 짜고 그럼 독해를 하는 거예요. 독해를 하다가도 어 여기 아까 전에 내가 읽었던 3번 문제와 연결이 있네, 그러면 아이들은요, 이런 두려움이 있어요. 지문에서 눈을 못 떼요 까먹을까? 봐 근데 극제 상위권 친구들은요, 이거 눈을 잘 떼요 왜냐하면, 효율적으로 지금 읽고 바로 문제를 풀어야 기억이 생생하고 내용들이 지금 잘 연결이 되니까. 바로바로 풀어버리거든요. 그러면 실질적으로 지문을 다 읽었을 때요 5문제 중 이미 3문제는 풀려 있어요.

15:27
최상위권들은 그러니까 마음에 부담감이 없죠 두 문제만 더 풀어 근데 보통 중위권 이하의 친구들은요, 지문을 열심히 5분 동안 읽었어 그 눈에도 안 들어오는 걸 읽었는데 아직 문제가 다섯 문제가 있으니 근데 만약에 위에서 이렇게 조망을 했어. 이 시간이 너무 많이 걸리는 친구들은요, 그것이 조망에 하는 시간이 5초에서 10초예요. 이게 그러면 연습을 통해서 네 훈련을 해야죠 금방 보여져요 직관적으로 보여져요 모의고사 대비는 이런 체계적인 훈련 없이 아무렇게나 가서 본다고 되는 시험이 아니거든요. 우리가 한 문장을 읽을 때 한국 사람은요, 능력이 좋아서요 이거 저희 책 제목 같은 경우도 나만 알고 싶은 국어 1등급의 비밀이라는 단어를 딱 보는 순간 한 번에 들어오죠 모국어니까요? 문장 단위로 들어오죠 근데 실제 수능 혹은 내신 시험은요, 문장 단위로 시험을 내지 않아요. 단어 단위로 내요 엄태욱은 오늘 교육 대기자 티비에 출연했다라는 문장을 우리는 보통 한눈에 딱 볼 수 있지만 실제로 시험은 엄태욱 은을 은 대신에 엄태욱 도로 바꿔 놓고요.

16:27
거기에 대해서 얘기 물어보는 거죠. 조사 하나 바꿔 놓고요. 교육 대기자 tv냐 뭐 다른 팀이냐 이런 정보를 물어볼 수도 있고요. 그래서 기본적으로 이걸 보통 우리가 선지 끊어 읽기라고 하거든요. 문장을 하나로 보지 않고 오히려 자신이 갖고 있는 국어 역량을 업그레이드 시키는 개념이 아니라 다운그레이드 시켜서 한 문장을 읽을 수 있어도 이거를 나눠서 읽어주는 연습을 해야 내신 시험이든 입시 수능 시험이든 정확하게 출제 의도를 읽어서 판단할 수 있다는 거죠. 제가 제일 좋아하는 영화 중에 아바타가 있는데, 아바타 이런 표현이 있죠. ice you 이게 무슨 뜻이야 내가 너를 보았다. 이게 무슨 뜻이냐면 아이 위스펙트 유 알러뷰 유 아이 언더스 제인지 유 이거 뜻이거든요. 꼭 널 존경하고 제대로 봐 지문을 읽을 때 아 나 이거 풀기 싫어 아 국어 싫어 엄마가 하라고 하니까 하는데 학원 가야 되니까. 하는데 그런 마음으로는 이 문제가 저에게 응답해 주지 않아요.

17:20
그러니까 제일 먼저 뭘 대충 읽냐면 지문을 대충 읽고요. 그다음에 문제를 대충 읽고요. 선지를 대충 읽으면 충분한 능력을 갖고 있음에도 불구하고, 자기 역량도 채 발휘하지도 못하고 50%도 발휘하지 못하고 틀려요 그런데 이런 틀리는 습관이 계속되면 부정적 감정이 쌓이겠죠. 나는 해도 안 돼 그러면 앞으로 더 하기 싫어져요 국어 학습인데 태도를 강조하시는 분이 이색적이냐 그렇죠. 학생들이 그동안 많이 봐오셨기 때문에 그런 말씀을 해주시지 않을까 싶어요. 이런 근본적인 태도가 변화 없이 스킬과 요령으로 올라간 점수는요 3개월 이내에 다시 돌아와요. 그리고 시소 게임을 해요. 컨디션이 좋거나 나에게 잘 맞는 시험이 나오면 잘 나와요. 근데 시험이 조금 어렵거나 나랑 좀 안 맞거나 내 컨디션이 안 좋으면 갑자기 4등급 나와요.

18:14
이런 얘기 많이 들어보셨죠 평소에 1등급 계속 잘 나오다가 갑자기 4등급으로 수능을 망쳐서 재수하는 친구들요 재수생들 중엔 이런 애들이 정말 적거든요. 왜 그러냐면 재수생들이 이 태도가 장착이 되는 거예요. 그러니까 결국에는 사람은 잘 안 바뀌는데 언제 바뀌냐 외부에서 강한 충격이 왔을 때 한번 바뀌어요. 그때가 보통 재수할 때예요. 그러니까 내가 문제 풀 때 대충 읽었고 지문을 내 멋대로 읽고 시를 해석할 수 없는데 이거를 억지로 해석하던 습관이 있으니 이거를 출제자가 원하는 대로 한번 해석해 보자 문제를 끝까지 한번 읽어보자 이런 태도의 근본적인 변화 자기 성찰이 되고 반성이 되는 시기가 보통 재수할 때거든요. 그래서 점수가 안정감 있게 나오는 거예요. 태도를 기르는 데는 얼마나 시간이 필요한가요 만약에 아이가 금방 캐치를 했다. 그러면 한 두 달도 안 걸리는 것 같아요. 네 태도는요 뭔가 애가 잘못한 게 있는 게 아니에요. 그리고 뭔가를 배워야 되는 게 아니에요. 이미 가지고 있는 품성 같은 거거든요. 저는 사실 성선설을 믿어요. 국어는 성선설이에요.

19:12
왜냐하면, 모국어잖아요. 국어는 성선설인 게 한국어 저랑 이렇게 대화하고 제 수업을 들을 수 있을 정도의 이해 정도면 수능 1등급 받는데 아무런 지장이 없거든요. 그렇게 대단하게 높은 사고력과 추론력과 논리력을 요구하는 시험이 아니에요. 출제자가 원하는 걸 정확하게 읽으려고 노력하고 그거에 맞춰서 지문 독해 하고 문제 풀 때 최선을 다해서 맞추려고 집착하고 발악하고 치열하게 움직이고 그런 과정들이 있으면 누구나 일상적 대화가 가는 친구들이라면 누구나 다 1~2등급이 나오거든요. 솔직히 1등급까지는 저도 확신을 못 하겠어요. 기본적인 언어 역량 차이가 있으니까 하지만 2등급까지는 누구나 가능하다고 봅니다. 그러면 아이가 목표를 설정하고 이 지문을 이렇게 목표의식으로 보려면 이때 부모님이 도와줄 수 있는 부분이 있나요? 시험을 보고 오면요 엄마 의 마음이 만약에 1만큼 아프잖아요. 그럼 1만큼 아픈 게 얼굴 표정이 드러나겠죠.

20:10
그럼 아이들은 5만큼 아파요 근데 이 5만큼 아픈 걸 아이들은 내색을 안 해요. 점점 그 5만큼 엄마랑 거리가 멀어지거든요. 그러니까 항상 웃어주세요. 이 부분 연습하셔서 6모 부모 수능까지 원하는 성적 받았으면 좋겠습니다. 함께해 주셔서 감사합니다. 대기자 tv

728x90
반응형
posted by 아이윤맨
:
컴퓨터조립/PC 조립 2025. 5. 24. 00:06
728x90
반응형

https://youtu.be/tWGY3jpFbVs?si=cnMjJPlyP68MtoD_

728x90
반응형
posted by 아이윤맨
:
PC 사용팁 2025. 5. 24. 00:03
728x90
반응형

https://youtu.be/D8TvVCGOPPA?si=wpUmS1W5cP89B3JA

728x90
반응형
posted by 아이윤맨
: