728x90
● 트랜잭션
하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
● 트랜잭션 특성
- 원자성 : 트랜잭션이 실행에 실패하면
- 일관성 : 트랜잭션 실행 전 후가 같아야함
- 격리성 : 트랜잭션이 실행 중일 때, 다른 트랜잭션이 영향을 미치지 않는 성질
- 영속성 : 트랜잭션의 결과는 영속적으로 저장되어야 하는 성질
● 트랜잭션 제어어 ( TCL )
- Commit
- Rollback
- Checkpoint
● 데이터정의어 ( DDL )
- 대상
- 도메인 : 하나의 속성이 가질 수 있는 원자값들의 집합
- 스키마 : 데이터베이스의 구조
- 내부스키마
- 개념스키마
- 외부스키마
- 테이블 : 데이터 저장 공간
- 뷰 : 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
- 인덱스
- 순서 인덱스 : 데이터가 정렬된 순서로 생성되는 인덱스
- 해시 인덱스 : 해시 함수에 의해 직접 데이터에 키 값으로 접근하는 인덱스
- 비트맵 인덱스 : 0과 1로 변환하여 인덱스 키로 사용하는 인덱스
- 함수기반 인덱스 : 수식이나 함수를 적용하여 만든 인덱스
- 단일 인덱스 : 하나의 컬럼으로만 구성한 인덱스
- 결합 인덱스 : 두 개 이상의 컬럼으로 구성한 인덱스
- 클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터도 정렬되어 저장되는 방식(검색 빠름)
- 넌클러스터드 인덱스 : 인덱스 키만 정렬되고, 실제 데이터는 정렬되지 앟는 방식
- 명령어
- CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
- RESTRICT : 다른 객체가 제거할 요소를 참조중일 때는 제거를 취소
● 데이터조작어 ( DML )
- SELECT
- DELECT
- UPDATE
- INSERT
● 데이터제어어 ( DCL )
- GRANT
- REVOKE
● 데이터 분석 함수 종류
- 집계 함수 : 여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수
- 그룹 함수 : 소그룹 간의 소계 및 중계 등의 중간 합계 분석 데이터를 산출하는 함수
- 윈도 함수 : 데이터베이스를 사용한 오라인(?) 부식 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능
● 절차형 SQL
SQL언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어
● 절차형 SQL 종류
- 프로시저 : 쿼리들의 집합
- 사용자 정의 함수 : SQL 처리를 수행하고, 결과를 단일 값으로 반환할 수 있는 절차형 SQL
- 트리거 : 삽입,갱신,삭제 등의 이벤트가 발생할 때, 수행되는 절차형 SQL
● 쿼리 성능 개선 절차
- 문제있는 SQL 식별 -> 옵티마이저 통계확인 ->SQL문 재구성 -> 인덱스 재구성 -> 실행계획 유지관리
● 옵티마이저
SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈
- 규칙기반 옵티마이저(RBO) : 사전에 정의해둔 규칙에 다라 경로를 찾는 옵티마이저
- 비용기반 옵티마이저(CBO) : 각 DBMS마다 고유의 알고리즘에 따라 산출되는 비용으로 최적의 경로를 찾는 것
● 힌트
SQL문에 사전에 정보를 주어서 SQL문 실행에 빠른 결과를 가져오는 효과를 만드는 방법
옵티마이저의 실행 계획을 원하는 대로 변경할 수 있다
옵티마이저는 명시적인 힌트를 통해 실행 계획을 변경한다
● 개발 도구 분류
- 빌드도구 : 작성한 코드의 빌드 및 배포를 수행하는 도구 ( Ant, Maven, Gradle )
- 구현도구 : 코드의 작성과 디버깅, 수정 등과 같이 작업 시 사용되는 도구 ( 이클립스, InteliJ, VS )
- 테스트도구 : 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구 ( xUnit, PMD, Sonar )
- 형상관리 도구 : 산출물에 대한 버전관리를 위한 도구 ( Git, SVN, CVS )
● 서버 하드웨어 개발환경
- 웹 서버 : HTTP을 이용한 요청/응답을 처리(아파치 웹서버, 구글 웹서버)
- 웹 애플리케이션 서버(WAS) : 동적 콘텐츠를 처리하고 제공하기 위해 사용(Tomcat, Jeus, Resin)
- 데이터베이스 서버 : MySQL, Orcle, MS-SQL
- 파일 서버 : 파일 저장 하드웨어로 물리 저장 장치를 활용한 서버(HDD,SSD)
● 소프트웨어 개발 환경
- 운영체제
- 미들웨어
- DBMS
● 형상관리
소프트웨어 개발의 전체 과정에서 발생하는 변경사항을 관리하기 위한 활동
- 절차
- 형상식별(대상정의) -> 형상통제(버전관리) -> 형상감사(무결성) -> 형상기록(보고서)
● 소프트웨어 형상관리 도구 유형
- 공유폴더 방식 : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사하는 방식(RCS,SCCS)
- 클라이언트/서버 방식 : 중앙에 버전 관리 시스템을 항시 동작시키는 방식 (CVS, SVN)
- 분산저장소 방식 : 로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 방식 (Git)
● 소프트웨어 형상관리 도구별 특징
- CVS
- 서버와 클라이언트로 구성되어 있고, 다수의 인원이 동시에 범용적인 운영체제로 접근 가능한 형상관리 도구
- SVN
- 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 도구
- RCS
- 소스 파일의 수정을 한 사람만으로 제한하여, 다수의 사람이 파일 수정을 못하게 막는 파일 잠금 방식인 도구
- Bitkeeper
- 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 도구
- Git
- Clear Case
- 복수 서버, 복수 클라이언트 구조, 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있음
● 모듈 : 하나의 기능을 수행할 수 있는 독립된 실체
● 모듈화 : 기능 단위로 분할하는 기법
- 원리 : 정보은닉, 분할과 정복, 데이터 추상화, 모듈 독립성
● 응집도 (기순교절 시논우)
모듈 내부 구성요소 간 연관 정도 / 높을수록 좋음
- 기능적 - 순차적 - 교환적 - 절차적 - 시간적 - 논리적 - 우연적
- 강함(좋음) --------------------------------------------------약함(나쁨)
● 결합도 (자스제외 공내)
모듈 간 관련성을 측정하는 척도 / 낮을수록 좋음
- 자료 - 스탬프 - 제어 - 외부 - 공통 - 내용
- 약함(좋음) -----------------------------강함(나쁨)
● 공통 모듈 구현 절차
- DTO/VO -> SQL -> DAO -> Service -> Controller -> 화면구현
- DTO : 프로세스 사이에서 데이터를 전송하는 객체
- VO : 고정 클래스를 가지는 객체
- DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
● 팬인(Fan-In) 및 팬아웃(Fan-Out)
시스템 복잡도를 최적화하기 위해 팬인은 높게, 팬아웃은 낮게 설계 해야한다
● 공통 모듈 테스트
IDE 도구를 활용하여 개별 공통 모듈에 대한 디버깅을 수행
● 공통 모듈 테스트 종류
- 화이트박스 테스트 : 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트
- 메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 기반 테스트
- 화면 기반 테스트 : 화면 단위로 단위모듈을 개발 후에, 화면에 직접 데이터를 입력하여 테스트
- 테스트 드라이버/스텁 활용 테스트 : 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우
- 테스트 스텁 : 상위 모듈은 있지만, 하위 모듈은 없는 경우 사용 ( 하향식 통합 )
- 테스트 드라이버 : 하위 모듈은 있지만, 상위 모듈은 없는 경우 사용 ( 상향식 통합 )
● Junit
자바 프로그래밍 언어용 단위테스트 도구
● 배치 프로그램
사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어, 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
● 배치 프로그램 유형
- 이벤트 배치 : 사전에 정의해 둔 조건 충족 시 자동으로 실행
- 온디맨드 배치 : 사용자의 명시적 요구가 있을때마다 실행
- 정기 배치 : 정해진 시간에 정기적으로 실행
● 배치 스케줄러
일괄처리 작업이 설정된 주기에 맞춰, 자동으로 수행되도록 지원하는 도구
● 배치 스케줄러 종류
- 스프링 배치 : 오픈 소스 프레임워크
- 쿼츠 스케줄러 : 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공
● Corn 표현식
크론 표현식을 통해 배치 수행 시간을 시간 및 주기 등으로 설정
- 리눅스/유닉스 크론 표현식 : 분, 시간, 일, 월, 요일, 연도
- 쿼츠 크론 표현식 : 초, 분, 시간, 일, 월, 요일, 연도
● 제품 소프트웨어 패키징
개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 포장하는 과정
- 패키징 프로세스
- 기능 식별 -> 모듈화 -> 빌드 진행 -> 사용자 환경 분석 -> 패키징 적용 시험 -> 패키징 변경 개선
● 릴리즈 노트
고객에게 개발 과정에서 정리된 제품의 릴리즈 정보를 제공하는 문서
- 릴리즈 노트 작성 프로세스
- 모듈 식별 -> 릴리즈 정보 확인 -> 릴리즈 노트 개요 작성 -> 영향도 체크 -> 정식 릴리즈 노트 작성 -> 추가 개선항목 식별
● 제품 소프트웨어 패키징 도구
배포를 위한 패키징 시에 디지털 콘텐츠의 지적재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구
● 패키징 도구 활용시 고려사항
- 암호화/보안 고려
- 이기종 연동을 고려
- 사용자 편의성 고려
- 적합한 암호화 알고리즘 적용
● 저작권
창작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한
● 디지털 저작권 권리(DRM)
저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠 관리 및 보호 기술
● 디지털 저작권 관리(DRM) 구성요소
- 콘텐츠 제공자
- 콘텐츠 소비자
- 콘텐츠 분배자
- 클리어링 하우스 : 저작권에 대한 사용 권한, 라이선스 발급, 암호화된 키 관리 등을 수행하는 곳
- DRM 콘텐츠 : 암호화된 콘텐츠, 메타데이터, 사용정보를 패키징하여 구성된 콘텐츠
- 패키저 : 배포 가능한 단위로 묶는 도구
- DRM 컨트롤러 : 배포된 콘텐츠의 권한을 통제
- 보안 컨테이너 : 전자적 보안장치
● 패키징 도구 구성 세부 기술
- 암호화
- 키 관리
- 암호화 파일 생성
- 식별 기술
- 저작권 표현
- 정책 관리
- 크랙 방지
- 인증
● 제품 소프트웨어 매뉴얼
사용자 측면에서 패키징 이후 설치, 제품 소프트웨어를 사용하는 데 필요한 주요 내용을 기록한 문서
● 제품 소프트웨어 사용자 메뉴얼
사용자가 소프트웨어 사용에 필요한 내용을 포함한 문서
● 제품 소프트웨어 배포본
사용자가 사용하기 편하도록 배포 정보를 포함하여 개발된 컴포넌트 또는 패키지가 제품화된 형태
● 백업 유형
- 전체 백업
- 차등 백업 : 마지막 전체 백업 이후, 변경된 모든 데이터를 백업하는 방식
- 증분 백업 : 정해진 시간을 기준으로 그 이후에 변경된 파일만을 백업하는 방식
728x90
'정보처리기사' 카테고리의 다른 글
[정보처리기사] SQL 문법 종합 정리 (0) | 2022.05.06 |
---|---|
[정보처리기사] 정처기 헷갈리는 단어 정리 (0) | 2022.05.06 |
[정보처리기사] 구성요소, 프로세스(절차) 모음 (0) | 2022.05.04 |
[정보처리기사] 실기 정리 ( 3 / 3 ) (0) | 2022.05.03 |
[정보처리기사] 실기 정리 ( 1 / 3 ) (0) | 2022.05.02 |