본문 바로가기
정보처리기사

[정보처리기사] 실기 정리 ( 2 / 3 )

by 4thlee 2022. 5. 3.
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