반응형

1 애플리케이션 테스트 케이스 설계

1 애플리케이션 테스트 케이스 작성

1 소프트웨어 테스트

1 개념

개발된 응용 애플리케이션이나 시스템의 만족도와 결함을 찾는 활동

2 필요성

  • 오류 발견
  • 오류 예방
  • 품질 향상

3 원리

  • 테스팅은 결함이 존재함을 밝히는 것: 없다는 것 증명 불가
  • 완벽한 테스팅은 불가능: 완벽한 테스팅은 불필요
  • 개발 초기에 테스팅 시작: 재작업을 줄여 개발 기간 단축 및 결함 예방
  • 결함 집중: 적은 수의 모듈에서 대다수의 결함이 발견
  • 살충제 패러독스: 동일한 테스트 케이스은 새로운 버그를 찾지 못함
  • 테스팅은 정황에 의존적: 소프트웨어 성격에 맞게 테스트
  • 오류-부재의 궤변: 요구사항 부재 시 오류가 없더라도 낮은 품질

4 절차

  1. 테스트 계획
  2. 테스트 분석 및 디자인
  3. 테스트 케이스 및 시나리오 작성
  4. 테스트 수행
  5. 테스트 결과 평가 및 리포팅

5 산출물

  • 테스트 계획서: 테스트의 목적과 범위 정의
  • 테스트 케이스: 테스트 설계 산출물
  • 테스트 시나리오: 테스트 케이스 집합
  • 테스트 결과서: 테스트 프로세스 리뷰, 테스트 결과 평가

2 소프트웨어 테스트 유형

  • 프로그램 실행 여부에 따른 분류
    • 정적 테스트: 논리적 구조 분석
    • 동적 테스트
  • 테스트 기법에 따른 분류
    • 화이트박스(구조) 테스트: 내부 로직을 보면서 테스트
      • 제어구조 테스트: 논리적 복잡도 측정 후 수행 경로 집합 정의
      • 루프 테스트: 루프 구조에 국한해서 실시
    • 블랙박스(기능) 테스트: 요구사항 명세를 보면서 테스트
      • 동등 분할 테스트: 도메인별 대표값 테스트 케이스를 도출하여 테스트
      • 경계 값 분석 테스트: 등가분할 후, 경계값을 포함하여 테스트
      • 결정 테이블 테스트: 발생 조건과 행위를 조합하여 테스트
      • 상태전이 테스트: 이벤트에 의한 상태 전의 경우의 수를 테스트
      • 유스케이스 테스트: 유스케이스 모델링이 되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스 명세화
      • 분류트리 테스트: SW 일부 또는 전체를 트리 구조로 분석
        • 페어와이즈 테스트: 테스트 데이터를 최소 한 번씩 조합하여 테스트
  • 테스트 시각에 따른 분류
    • 검증: 과정
    • 확인: 결과
  • 테스트 목적에 따른 분류
    • 회복: 고의로 실패, 복귀 여부
    • 안전: 보안 결함 여부
    • 강도: 정보량 과부하시 정상 작동 여부
    • 성능: 성능 평가
    • 구조: 내부 논리 경로, 소스코드 복잡도 평가
    • 회귀: 오류를 제거하거나 수정한 시스템에서의 오류를 확인하는 반복 테스트
    • 병행: 변경된 시스템과 기존 시스템에 동일한 데이터를 입력하여 비교
  • 테스트 종류에 따른 분류
    • 명세 기반 테스트: 요구사항 명세서를 기반으로 테스트
    • 구조 기반 테스트: 소프트웨어 내부 논리 흐름에 따라 테스트
    • 경험 기반 테스트: 경험을 토대로한 직관과 기술 능력을 기반으로 테스트

3 테스트 케이스

1 개념

특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과 집합

2 작성 절차

  1. 테스트 계획 검토 및 자료 확보
  2. 위험 평가 및 우선순위 결정
  3. 테스트 요구사항 정의
  4. 테스트 구조 설계 및 테스트 방법 결정
  5. 테스트 케이스 정의
  6. 테스트 케이스 타당성 확인 및 유지보수

3 필요 항목

  • 공통 작성 항목 요소
    • 테스트 단계명, 작성자, 승인자, 작성 일자, 문서 버전 식별
    • 대상 시스템 식별
    • 변경 여부 식별
    • 테스트 범위 식별
    • 테스트 조직 식별
  • 개별 테스트케이스 항목 요소
    • 테스트 ID 작성
    • 테스트 목적 작성
    • 테스트할 기능 요약
    • 입력 데이터 작성
    • 기대 결과 작성
    • 테스트 환경 설정
    • 전제 조건 설정
    • 성공/실패 기준 설정
    • 기타 요소를 식별하여 설정

4 테스트 오라클

1 개념

테스트 결과의 참, 거짓을 판단하기 위해 사전에 정의된 참 값을 입력하여 비교

2 종류

  • 참 오라클: 모두 검사
  • 샘플링 오라클: 일부 검사
  • 휴리스틱 오라클: 샘플링 오라클 개선, 나머지 값에 대해서 휴리스틱(추정) 처리
  • 일관성 검사 오라클: 애플리케이션 변경이 있을 때, 전후 동일 여부 확인

2 애플리케이션 테스트 시나리오 작성

1 테스트 레벨

1 개념

함께 편성되고 관리되는 테스트 활동 그룹

2 종류

  • 단위 테스트 - 개발: 사용자 요구사항에 대한 단위 모듈, 서브 루틴 등을 테스트
  • 통합 테스트 - 설계: 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계
  • 시스템 테스트 - 기계 명세 분석: 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계
  • 인수 테스트 - 요구사항 분석: 계약 상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계

2 테스트 시나리오

1 개념

테스트 케이스 집합

2 작성 시 유의사항

  • 테스트 시나리오 분리 작성
  • 요구사항 기반 테스트 시나리오 작성
  • 필요 항목 포함

3 테스트 환경 구축

1 개념

테스트를 위하여 실제 운영 환경을 구축하는 활동

2 유형

  • 하드웨어 기반: 서버 장비, 클라이언트 장비, 네트워크 장비 설치
  • 소프트웨어 기반: 응용 소프트웨어 설치, 필요 데이터 구축
  • 가상 시스템 기반: 물리적으로 테스트 환경 구축이 힘든 경우

3 테스트 조건

  • 테스트 시작 조건
  • 테스트 종료 조건
  • 테스트 성공과 실패의 판단 기준

2 애플리케이션 통합 테스트

1 애플리케이션 통합 테스트 수행

1 통합 테스트

1 개념

2 수행 방법 분류

  • 비점층적 방식
    • 빅뱅 방식: 모든 컴포넌트를 사전에 통합하여 테스트
  • 점층적 방식
    • 하향식 통합: 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 통합하면서 테스트
      1. 메인 제어 모듈은 아직 작성되지 않은 하위 모듈 제어
      2. 검사 초기에 시스템 구조 파악
      3. 스텁(더미 모듈) 개발
      4. 깊이/너비 우선 방식에 따라 실제 모듈 대체
      5. 각 모듈 통합
      6. 테스트가 완료되면 스텁이 실제 모듈로 작성
    • 상향식 통합: 최하위 레벨의 모듈로부터 위쪽 방향으로 제어의 경로를 따라 구축하면서 테스트
      1. 하위 레벨의 모듈들이 클러스터로 결합
      2. 상위 모듈에서 데이터의 입력과 출력을 확인하기 위한 드라이버(더미 모듈) 작성
      3. 각 통합된 클러스터 단위 테스트
      4. 클러스터는 프로그램의 위쪽으로 결합, 드라이버가 실제 모듈로 대체

2 테스트 자동화 도구

1 개념

테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현

2 장단점

  • 장점: 재입력 작업 자동화, 일관성 검증에 유리, 객관적인 평가 기준 제공, 정밀한 테스트 가능
  • 단점: 사용 방법 교육 및 학습 필요, 프로세스 단계별 적용 비용, 도구 비용

3 유형

  • 정적 분석 도구: 소스코드 결함
  • 테스트 실행 도구: 작성된 스크립트 실행
    • 데이터 주도 접근 방식
    • 키워드 주도 접근 방식
  • 성능 테스트 도구: 가상의 사용자를 생성하고 테스트
  • 테스트 통제 도구: 테스트 수행에 필요한 데이터와 도구를 관리하는 형상 관리 도구

4 테스트 단계별 테스트 자동화 도구

  • 테스트 계획
    • 요구사항 관리
  • 테스트 분석/설계
    • 테스트 케이스 생성
  • 테스트 수행
    • 테스트 자동화
    • 정적 분석
    • 동적 분석
    • 성능 테스트
    • 모니터링
  • 테스트 관리
    • 커버리지 측정
    • 형상 관리
    • 결함 추적/관리

3 테스트 하네스

1 개념

모듈을 테스트하는 환경의 일부

2 구성요소

  • 테스트 드라이버
  • 테스트 스텁
  • 테스트 슈트
  • 테스트 케이스
  • 테스트 스크립트
  • 목 오브젝트

2 애플리케이션 테스트 결과 분석

1 테스트 결과 분석

1 소프트웨어 결합

  • 에러/오류: 결함의 원인
  • 결함/결점/버그: 제거하지 않으면 실패하거나 문제 발생
  • 실패/문제: 결함 실행 시 발견

2 테스트 완료 조건

최적의 완료 조건 계획 필요

3 테스트 리포팅

  • 테스트 결과 정리:
  • 테스트 요약 문서
  • 품질 상태
  • 테스트 결과서
  • 테스트 실행 절차 및 평가

2 결함 관리

1 개념

테스트 수행 결함의 재발 방지와 유사 결함 발견 시 처리 시가나 단축을 위해 결함을 추적하고 관리하는 활동

2 결함 추적 관리 활동

  • 단위 테스트
  • 통합 테스트: 설계 문서 결함 발견 시
  • 시스템 테스트: 요구사항 명세서 결함 발견 시
  • 운영 테스트: 요구사항 명세서 결함 발견 시

3 프로세스

  • 에러 발견
  • 에러 등록
  • 에러 분석
  • 결함 확정
  • 결함 할당
  • 결함 조치
  • 결함 조치 검토 및 승인

3 결함 추이 분석

1 개념

테스트 결함의 관리 측정 지표 분석, 예상 결함 추정

2 유형

  • 결함 분포 분석: 각 모듈의 특정 속성에 대한 결함 수
  • 결함 추세 분석: 테스트 진행 시간의 흐름에 따른 결함의 수
  • 결함 에이징 분석: 등록된 겨함에 대해 특정한 결함 상태의 지속 시간

3 애플리케이션 개선 조치사항 작성

1 테스트 커버리지

1 개념

테스트 범위를 측정하는 테스트 품질 측정 기준

2 유형

  • 기능 기반 커버리지
  • 라인 커버리지: 단위 테스트 척도
  • 코드 커버리지
    • 구문 커버리지
    • 결정 커버리지
    • 조건 커버리지
    • 조건/결정 커버리지
    • 변경 조건/결정 커버리지
    • 다중 조건 커버리지

2 결함의 식별 및 관리

1 단계별 결함 유입의 종류

  • 기획 시 유입되는 결함
  • 설계 시 유입되는 결함
  • 코딩 시 유입되는 결함
  • 테스트 부족으로 유입되는 결함

2 결함 심각도별 분류

  • 치명적 결함: 기능이나 제품의 테스트를 완전히 방해
  • 주요 결함: 기능이 기대와 많이 다르게 동작
  • 보통 결함: 프로그램이 특정 기준을 충족하지 못하거나, 일부 기능 부자연스러운 결함
  • 경미한 결함: 불편함 유발
  • 단순 결함: 사소한 버그

3 결함 우선순위

  • 결정적
  • 높음
  • 보통
  • 낮음

4 결함 관리 항목

  • 결함 내용
  • 결함 ID
  • 결함 유형
  • 발견일
  • 심각도
  • 우선순위
  • 시정 조치 예정일
  • 수정 담당자
  • 재 테스트 결과
  • 종료일

3 애플리케이션 성능 개선

1 애플리케이션 성능 분석

1애플리케이션 성능 점검 개요

1 애플리케이션 성능 측정 지표

  • 처리량
  • 응답 시간
  • 경과 시간
  • 자원 사용률

2 유형별 성능 분석 도구

  • 성능/부하/스트레스 점검 도구
    • JMeter
    • LoadUI
    • OpenSTA
  • 모니터링 도구
    • Scouter
    • Zabbix

2 애플리케이션 성능 저하 원인

  • 데이터베이스 관련 성능 저하 원인
    • 데이터베이스 락
    • 불필요한 데이터베이스 패치
    • 연결 누수
    • 부적절한 커넥션 풀 크기
    • 확정 관련
  • 내부 로직으로 인하나 성능 저하 원인
    • 웹 애플리케이션의 인터넷 접속 불량
    • 특정 파일의 업로드, 다운로드로 인한 성능 저하
    • 정상적으로 처리되지 않은 오류 처리로 인한 성능 저하
  • 외부 호출로 인한 성능 저하 원인: 임의의 트랜잭션이 수행되는 동안 외부 트랜잭션이 장시간 수행되거나, 타임아웃이 일어나는 경우
  • 잘못된 환경 설정으로 인한 성능 저하: Heap Memory Full
  • 네트워크 장비로 인한 성능 저하

3 애플리케이션 성능 테스트 프로세스

  1. 애플리케이션 성능 테스트 케이스 작성
  2. 애플리케이션 성능 테스트 수행
    1. 성능 테스트 도구 설치
    2. 테스트 환경 설정
    3. 시나리오 생성
    4. 성능 테스트 실행 및 모니터링
  3. 성능 테스트 결과 분석

2 애플리케이션 성능 개선

1 소스코드 최적화 이해

1 나쁜 코드

  • 오염
  • 문서 부족
  • 의미 없는 이름
  • 높은 결함도
  • 아키텍처 침식

2 클린 코드

높은 가독성, 단순, 의존성 중복 최소화

  • 의미 있는 이름
  • 간결하고 명확한 주석
  • 보기 좋은 배치
  • 작은 함수
  • 읽기 쉬운 제어 흐름
  • 오류 처리

2 소스코드 품질 분석

1 개념

2 도구

  • 정적 분석 도구
    • pmd
    • cppcheck
    • SonarQube
    • checkstyle
  • 동적 분석 도구
    • Avalanche
    • Valgrind
  • 코드 복잡도 도구
    • ccm
    • cobertura

3 애플리케이션 성능 개선 방안

  • 소스코드 최적화 기법 적용
  • 아키텍처 조정을 통한 성능 개선
  • 프로그램 호출 순서 조정 적용
  • 소스코드 품질분석 도구 활용
    • 메모리 사용 최소화
    • 입출력 발생 최소화
    • 로거 사용
  • 애플리케이션 성능 현황 관리
반응형
반응형

1 UI 요구사항 확인

1 UI 요구사항 확인

1 UI 개념

사람이 접하게 되는 화면

* UX는 UI 포함

2 UI 유형

  • CLI: 정적 텍스트 기반 인터페이스
  • GUI: 그래픽 반응 기반 인터페이스
  • NUI: 직관적 사용자 반응 기반 인터페이스
  • OUI: 유기적 상호작용 기반 인터페이스

3 UI 분야

  • 물리적 제어 분야: 하드웨어 기반
  • 디자인적 분야: 전체적인 구성
  • 기능적 분야: 사용자 편의성 고려

4 UI 설계 원칙

  • 직관성
  • 유효성
  • 학습성
  • 유연성

5 UI 설계 지침

  • 사용자 중심
  • 일관성
  • 단순성
  • 결과 예측 가능
  • 가시성
  • 표준화
  • 접근성
  • 명확성
  • 오류 발생 해결

6 UI 요구사항

1 개요

사용자가 정보시스템을 구축하여 얻고자 하는 최종 목적

2 구분

  • 기능적 요구사항: 시스템의 입출력, 데이터, 연산에 관한 요구사항
  • 비기능적 요구사항: 품질, 시스템 환경, 프로젝트 계획에 관한 요구사항

3 확인

UI 표준 지침에 따른 요구사항 확인

2 UI 표준

1 개념

디자인 철학과 원칙 기반 하에 전체 시스템에 공통적으로 적용되는 화면에 대한 규약

2 구성

  • 전체적인 UX 원칙: 사용자 관점
  • 정책 및 철학
  • UI 스타일 가이드: 환경 및 레이아웃
  • UI 패턴 모델 정의: CRUD 방식 기반
  • UI 표준 수립을 위한 조직 구성

3 고려사항

  • 사용자 편의
  • 많은 업무 케이스 포함
  • 다양한 사용 상황 대처
  • 충분한 가이드와 활용 수단 제공
  • 관리 조직 수반

4 UI 스타일 가이드 구성

  • UI 구동 환경 정의
    • OS
    • 웹 브라우저
    • 모니터 해상도
    • 프레임세트
  • 레이아웃 정의
    • 화면 구조 정의
    • 상단 메뉴 구성 정의
    • 좌측 메뉴 구성 정의
    • 내용 구성 정의
    • 하단 메뉴 구성 정의
    • 사용자 환경에 맞춰 페이지 폭 정의
  • 메뉴 네비게이션 정의
  • 공통표준화면 정의
  • 기능 정의
  • 구성 요소 정의
    • 그리드
    • 버튼/컨트롤 타입
    • Page 요소
    • 팝업 요소
    • Alert 요소

5 UI 패턴 모델 정의

  • 업무 화면 클라이언트 정의
  • 서버 컨트롤러 정의
  • 서버 메시지 및 예외 처리 정의
  • 클라이언트-서버 간 데이터 변환 정의
  • 기업 포털 연계 정의
  • 보고서 정의
  • 외부 컴포넌트 연계 정의

6 UI 표준 수립을 위한 조직 구성

  • 조직 구성 및 역할 정의
  • 커뮤니케이션 방안 수립

3 UI 지침

1 개념

UI 표준에 따라 사용자 인터페이스 설계, 개발 시 지켜야할 가이드라인

  1. 목표 정의
  2. 프로젝트 계획
  3. 요구사항 정의
  4. 설계 및 구현
  5. 테스트
  6. 배포 및 관리

2 환경 분석

  • 사용자 트렌드 분석
  • 기능 및 설계 분석

3 UI 개발 목표 및 범위

  • 3C 분석: 고객, 자사, 경쟁사
  • SWOT 분석: 각점, 약점, 기회, 위협
  • 시나리오 플래닝
  • 사용성 테스트
  • 워크숍

4 사용자 분석 및 니즈 조사

  • 리서치 대상 선정 및 내용 설계
  • 리서치 진행
  • 리서치 결과 정리

5 사용자 요구사항 도출

  • 페르소나 정의: 가상의 사용자
  • 콘셉트 모델 정의
  • 사용자 요구사항 정의
  • UI 컨셉션

6 UI 상세 설계

UI 시나리오 문서 작성

7 UI 화면 디자인

UI 가이드 문서 작성

8 UI 시연을 통한 사용성 검토/검증

지속적인 UI 사용에 대한 평가와 UI 디자인 평가를 통한 개선사항 반영

9 테스트, 배포 및 관리

사용자 중심 소프트웨어 매뉴얼 작성

4 스토리보드

1 개념

  • 와이어 프레임: 화면 단위의 레이아웃 설계
  • 스토리보드: 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물
  • 프로토타입: 정적인 화면으로 설계된 와이어 프레임 / 스토리보드에 동적 효과를 적용하여 시뮬레이션할 수 있는 모형

2 절차

  1. 전체 개요 작성
  2. 서비스 흐름 작성
  3. 스타일 확정
  4. 메뉴얼 화면 설계도 작성 및 상세설명
  5. 추가 관련 정보 작성

3 유의사항

  • 일관된 기호
  • 공통 영역 정의
  • 영역별 세부 설계
  • 버전 업 관리

5 UI 프로토타입 제작 및 검토

1 프로토타입

1 개념

전체적인 기능을 간략한 형태로 구현한 시제품

2 의의

  • 추후 발생 가능한 오류를 사전에 방지
  • 비용 절감

3 유형

  • 아날로그: 펜을 활용한 스케치, 적은 비용
  • 디지털: 프로토타이핑 도구를 활용, 재사용

2 UI 프로토타입 고려 사항

  • 계획 시 고려사항
    • 목표 확인
    • 환경 확인
    • 일정 확인
    • 범위 확인
    • 인원 확인
    • 아키텍처 검증 확인
    • 이슈 및 해결
    • 가이드 확정
    • 개발 생산성 확인
    • 결과 시연
  • 작성 시 고려사항
    • 계획 작성
    • 범위 확인
    • 목표 확인
    • 기간 및 비용 확인
    • 산출물 확인
    • 유의사항 확인

3 제작 및 검토 프로세스

  1. 소프트웨어 아키텍처 설계 원리 확인
    • UI 표준 및 지침에 따라 소프트웨어 아키텍처 설계 원리 확인
    • 프로토타입 방식 결정
  2. 프로토타입 유스케이스 작성
    • UI 설계 원리를 바탕으로 프로토타입 유스케이스 작성
  3. UI 요구사항을 반영한 프로토타입 제작
    • 실직적인 제작에 앞서 UI 프로토타입 제작 단계 숙지
    • 프로토타이핑 초기 작성
    • 프로토타이핑 상세 수행
  4. UI 적정성 검토
    • 실행 차를 줄이기 위한 UI 적정성 확인
    • 평가 차를 줄이기 위한 UI 적정성 확인

2 UI 설계

1 UI 흐름 설계

1 UI 설계서 구성

  • UI 설계서 표지
  • UI 설계서 개정 이력
  • UI 요구사항 정의
  • 시스템 구조
  • 사이트 맵
  • 프로세스 정의
  • 화면 설계

2 UI 설계 원리

  • 실행 차를 줄이기 위한 UI 설계
    • 사용 의도 파악
    • 행위 순서 규정
    • 행위의 순서대로 실행
  • 평가 차를 줄이기 위한 UI 설계
    • 수행한 키 조작 결과를 사용자가 빠르게 지각하도록 유도
    • 키 조작으로 변화된 시스템의 상태를 사용자가 쉽게 인지하도록 유도
    • 사용자가 가진 원래 의도와 시스템 결고 간의 유사 정도를 사용자가 쉽게 파악하도록 유도

3 UI 흐름 설계 수행 절차

  1. UI 설계안의 적정성 확인
    • 실행 차를 줄이기 위한 UI 설계 원리
      • 사용 의도 파악
      • 행위 순서 규정
      • 행위의 순서대로 실행
    • 평가 차를 줄이기 위한 UI 설계 원리
      • 수행한 키 조작 결과를 사용자가 빠르게 지각하도록 유도
      • 키 조작으로 변화된 시스템의 상태를 사용자가 쉽게 인지하도록 유도
      • 사용자가 가진 원래 의도와 시스템 결과 간의 유사 정도를 사용자가 쉽게 파악하도록 유도
  2. 화면과 폼의 흐름 설계
    • 화면에 표현되어야 할 기능 및 비기능적 요구사항 검토
    • 화면의 입력 요소 및 유스케이스를 통한 UI 요구사항 확인
    • 유스케이스 설계
    • 기능 및 양식 확인

2 UI 상세 설계

1 UI 상세설계 절차

  1. UI 요구사항 최종 확인
  2. UI 구조 설계
  3. 사용자 기반 메뉴 구조 설계
  4. 화면 설계
  5. 하위 시스템 단위의 내외부 상세 화면과 폼 설계

2 UI 검토 및 보안

  • UI 검토 수행
  • UI 검토 보완
  • 사용성 검토 및 검증 수행

3 UI 설계 도구

1 개념

UI 설계 지원 도구

2 UI 개발 단계별 활용 가능한 설계 도구

  • 분석: UI 패턴, UI 모델링
  • 설계: UI 설계
  • 구현: 프로토타이핑 툴

3 유형

  • 화면 설계 도구
    • 파워 목업
    • 발사믹 목업
    • 카카오 오븐
  • 프로토타이핑 도구
    • UX핀
    • 액슈어
    • 네이버 프로토나우
  • UI 디자인 도구
    • 스케치
    • 어도비 XD
  • UI 디자인 산출물로 작업하는 프로토타이핑 도구
    • 인비전
    • 픽사에이트
    • 프레이머
반응형
반응형

1 인터페이스 설계 확인

1 외부내부 모듈 간 공통 기능 및 데이터 인터페이스 확인

1 인터페이스 설계서

1 개념

이 기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템의 정보가 정의된 문서

2 종류

  • 정적동적 모델을 통한 인터페이스 설계서
    • 다이어그램을 활용한 요구 조건 확인
    • 트랜잭션 확인
  • 데이터 명세를 통한 인터페이스 설계서
    • 인터페이스 서비스에 대한 상세 명세

2 내부외부 모듈 간 공통 기능 및 인터페이스 확인 방안

1 인터페이스 설계서의 내부외부 모듈의 기능 확인

  • 인터페이스 정의서를 통한 기능 확인
  • 정적동적 모형을 통한 기능 확인

2 공통적으로 제공되는 기능과 데이터의 인터페이스 확인

  • 인터페이스 설계서를 통한 공통 기능 확인
  • 인터페이스 설계서를 통한 데이터 인터페이스 확인

2 외부내부 모듈 연계를 위한 인터페이스 기능 식별

1 외부내부 모듈 연계 방법

1 EAI 방식

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 통합 가능하도록 해주는 솔루션

비즈니스 간 통합 및 연계성 증대 -> 효율성 및 확장성 증가

  • 포인트 투 포인트
    • 1:1 단순 통합 방법
    • 개발자 간의 커뮤니케이션을 통해서 통합 가능
  • 허브 앤 스포크
    • 중앙 집중식 방식
    • 허브 장애 시 전체 장애 발생
  • 메시지 버스
    • 미들웨어 통합 방식
    • 뛰어난 확장성과 대용량 데이터 처리
  • 하이브리드
    • 그룹 내는 허브 앤 스포크 방식 사용, 그룹 간에는 메시지 버스 방식 사용

2 ESB 방식

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처

버스를 중심으로 각 프로토콜이 호환할 수 있도록 애플리케이션 통합을 느슨한 결합 방식으로 지원

3 EAI vs ESB

구분 EAI ESB
수행 목적 기업 내부의 이기종 응용 모듈 간 통합 기업 간의 서비스 교환을 위해 표준 API로 통합
토폴로지 포인트 투 포인트, 허브 앤 스포크, 메시지 버스, 하이브리드 ESB의 분산형 토폴로지 구성
핵심 기술 어댑터, 브로커, 메시지 큐 웹 서비스, 지능형 라우터, 포맷 변환, 개방형 표준
통합 형태 애플리케이션 간의 단단한 통합 서비스 간의 느슨한 통합
적용 영역 기업 내부망 기업 외부 채널망

2 외부내부 모듈 연계를 위한 인터페이스 기능 식별 절차

  1. 외부내부 모듈 간 연계된 기능 식별
  2. 연계된 기능에 따른 인터페이스 기능 식별
    1. 외부 모듈과 연계된 기능을 통한 인터페이스 기능 식별
    2. 내부 모듈과 연계된 기능을 통한 인터페이스 기능 식별
    3. 외부 및 내부 모듈과 연계된 기능을 통한 인터페이스 기능 식별

3 외부내부 모듈 간 인터페이스 데이터 표준 확인

1 인터페이스 데이터 표준 확인

상호 연계하고자 하는 시스템 간 인터페이스가 되어야 할 범위의 데이터 형식과 표준 정의

2 송수신 시스템 간 인터페이스 데이터 표준 확인 절차

  1. 식별된 데이터 인터페이스를 통해 인터페이스 데이터 표준 확인
  2. 인터페이스 데이터 항목 식별
  3. 데이터 표준 최종 확인

2 인터페이스 기능 구현

1 인터페이스 기능 구현 정의

  1. 모듈 간 세부 설계서 확인: 컴포넌트 명세서, 인터페이스 명세서
  2. 일관되고 정형화된 인터페이스 기능 정의
  3. 정의된 인터페이스 기능 정형화

2 인터페이스 기능 구현

1 사전에 정의된 기능에 대한 구체적 분석

2 인터페이스 구현

  • 데이터 통신을 사용하는 인터페이스 구현
    • 인터페이스 객체 생성 구현
    • 인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환받도록 구현
  • 인터페이스 객체를 사용하는 인터페이스 구현
    • 송신 시스템의 인터페이스 테이블
    • 수신 시스템의 인터페이스 테이블

3 인터페이스 예외 처리 방안

1 데이터 통신을 사용하는 인터페이스에서 예외 처리 방법

  • 송신 측에서 예외 처리: AJAX 호출 후 반환 값을 받아 어떻게 처리할 지를 호출하는 부분에 사전 정의
  • 수신 측에서 예외 처리: 수신 측에서 받은 JSON 객체를 예외 처리하고 송신 측에 전달

2 인터페이스 객체를 사용하는 인터페이스에서 예외 처리 방법

  • 송신 인터페이스 테이블에서 예외 처리 방법
  • 수신 인터페이스 테이블에서 예외 처리 방법

4 인터페이스 보안 기능 적용

1 인터페이스 보안 취약점

  • 데이터 통신 시 데이터 탈취 위협: 스피닝
  • 데이터 통신 시 데이터 위/변조 위협

2 인터페이스 보안 구현 방안

  • 시큐어 코딩 가이드 적용
  • 데이터베이스 보안 적용
    • 알고리즘: 대칭 키 암호화, 비대칭 키 암호화, 해시 암호화
    • 기법: API 방식 - 애플리케이션 레벨, Plug-In 방식 - DB 레벨, Hybrid 방식
  • 중요 인터페이스 데이터의 암호화 전송: IPSec, SSL/TLS 활용

3 인터페이스 보안 기능 적용 절차

  1. 인터페이스 각 구간의 보안 취약점 분석
  2. 분석된 보안 취약점을 근거로 인터페이스 보안 기능 적용

3 인터페이스 구현 검증

1 인터페이스 구현 검증

1 도구

  • 단위 테스트: 인터페이스 세부 기능을 기능 단위로 테스트
  • 통합 테스트: 전체 인터페이스 흐름을 확인할 수 있는 시나리오를 통합 테스트

2 도구 종류

  • xUnit
  • STAF
  • FitNesse
  • Selenium
  • watir

3 필요 설계 산출물

인터페이스 설계 산출물 분석

4 절차

  1. 인터페이스 명세서를 통한 구현 검증에 필요한 요건 분석
  2. 구현 검증에 필요한 감시 및 검증 도구 준비
  3. 이터페이스 구현 검증 수행

2 인터페이스 오류 처리 확인 및 보고서 작성

  • 사용자 화면에서 오류를 인지하도록 구현
  • 인터페이스 오류 로그 생성
  • 인터페이스 관련 테이블에 오류 사항 기록
반응형
반응형

1 개발환경 구축

1 개념

개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해 필요

개발 도구와 서버 선정, 개발 도구의 사용 편의성과 성능, 라이선스 확인

2 분류

  • 구현 도구: 코드 작성과 디버깅, 수정을 지원하는 도구
    • Eclipse, IntelliJ, Sprint Tool Suite, NetBeans, Visual Studio
  • 테스트 도구: 코드의 기능 검증과 전체 품질을 높이기 위해 사용하는 도구
    • xUnit, PMD, Findbugs, Cppcheck, Sonar
  • 형상관리 도구: 버전 관리를 위한 도구
    • CVS, SVN, Git
  • 빌드 도구: 작성한 코드의 빌드 및 배포를 수행하는 도구, 의존성 관리 지원
    • Maven, Gradle

3 구성요소

1 하드웨어

웹 클라이언트 --요청--> 웹 서버 --처리 위임--> 웹 애플리케이션 서버 --결과 반환--> 웹 서버 --응답--> 웹 클라이언트

  • 서버 하드웨어 개발 환경: 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버로 구분
    • 웹 서버: 정적 콘텐츠(CSS, Javascript, Image) 처리
      • Apache 웹 서버, IIS 웹 서버, Google Web Server, Nginx
    • 웹 애플리케이션 서버: 동적 콘텐츠(Servlet, JSP)를
      • Tomcat, Weblogic, Jeus, Resin
    • 데이터베이스 서버: 데이터의 수집, 저장 용도로 사용
      • MySql, Oracle, MS-SQL, DB2
    • 파일 서버: 물리 저장장치를 활용한 서버
      • HDD, SSD
  • 클라이언트 하드웨어 개발 환경
    • 클라이언트 프로그램: 사용자와 커뮤니케이션
    • 웹 브라우저: 웹 사이트
    • 모바일 앱: 모바일 디바이스에 설치되어 활용되는 애플리케이션
    • 모바일 웹: 모바일에 최적화되어 제공되는 웹사이트

2 소프트웨어

  • 운영체제: 서버의 하드웨어를 사용자 과넞ㅁ에서 편리하고 유용하게 사용하기 위한 소프트웨어
  • 미들웨어: 컴퓨터 간 연결을 쉽고 안전하게 할 수 있도록 관리하는 소프트웨어
  • DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고, 관리하는 소프트웨어

3 형상 관리

소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리

절차

  1. 형상 식별: 형상 관리 대상 정의 및 식별
  2. 형상 통제: 통제 지원, 베이스라인 관리
  3. 형상 감사: 베이스라인 무결성 평가
  4. 형상 기록: 보고서 작성

목적

  • 제품의 무결성과 변경에 대한 추적성 확보
  • 프로젝트 변경사항 처리 메커니즘 제공

4 절차

  1. 통합 개발환경 설치
  2. 형상 관리 도구 설치
  3. 빌드 도구 설치

2 공통 모듈 구현

1 공통 모듈 구현

1 개념

기능을 분할하고 추상화하여 성능을 향상시키고, 유지보수를 효과적으로 하기위한 공통 컴포넌트 구현 기법

2 모듈

1 개념

독립된 하나의 스프트웨어 또는 하드웨어 단위

2 특징

  • 독립성
  • 재사용성
  • 결합도 감소, 응집도 증가

3 모듈화

모듈로 분해하는 설계 및 구현 기법

  • 루틴: 특정 동작을 수행
  • 메인 루틴: 프로그램의 주요 부분
  • 서브 루틴: 메인 루틴에 의해 필요할 때마다 호출되는 루틴

3 응집도

1 개념

모듈의 독립성, 하나의 모듈은 하나의 기능 수행

2 유형

  1. 우연적 응집도
  2. 논리적 응집도
  3. 시간적 응집도
  4. 절차적 응집도
  5. 통신적 응집도
  6. 순차적 응집도
  7. 기능적 응집도

4 결합도

1 개념

외부 모듈과의 연관도

2 유형

  1. 내용 결합도
  2. 공통 결합도
  3. 외부 결합도
  4. 제어 결합도
  5. 스템프 결합도
  6. 자료 결합도

5 절차

  1. DTO/VO
  2. SQL
  3. DAO
  4. Service
  5. Controller
  6. 화면 구현
  • DTO(Data Transfer Object): 프로세스 사이에서 데이터를 전송하는 객체
  • VO(Value Object): 고정 클래스 소유
  • DAO(Data Access Object): 특정 타입의 데이터베이스에 추상 인터페이스 제공

6 팬인 및 팬아웃

1 개념

모듈을 계층적으로 분석하기 위해 활용

구분 팬인 팬아웃
개념 어떤 모듈에서 호출하는 모듈 수 어떤 모듈에서 호출되는 모듈 수
모듈 숫자 계산 모듈이 들어오면 팬인 모듈이 나가면 팬아웃
고려사항 팬인 증가 -> 재사용 증가, 관리 비용 및 테스트 비용 증가, 단일 장애 발생 가능 팬아웃 증가 -> 불필요한 모듈 호출, 단순화 여부 검토 필요

2 공통 모듈 테스트

1 개념

통합 개발 환경을 활용하여 공통 모듈에 대한 디버깅 수행

화이트 박스 기법 활용

JUnit 활용

2 종류

  • 화이트박스 테스트: 응용 프로그램의 내부 구조와 동작 검사
  • 메서드 기반 테스트: 외부에 공개된 메서드 기반 테스트
  • 화면 기반 테스트: 화면단위로 단위 모듈을 개발 하여 테스트
  • 테스트 드라이버: 하위 모듈은 있지만 상위 모듈이 없는 경우 사용
  • 테스트 스텁: 상위 모듈은 있지만 하위 모듈이 없는 경우 사용

3 구현

  1. JUnit 생성
  2. JUnit 코드 작성
  3. JUnit 실행
  4. JUnit 결과 확인

주요 어노테이션

  • @Test: 테스트 메서드 선언
  • @Before: @Test 실행 전 실행되는 코드
  • @After: @Test 실행 후 실행되는 코드
  • @BeforeClass: @Test 메서드보다 먼저 한 번 수행되어야할 경우
  • @AfterClass: 마지막에 수행되는 경우
  • @Ignore: 테스트에서 제외할 메서드

assert 메서드

  • assertEquals(a, b); - 같은 값
  • assertEquals(a, b, c); - 오차 범위
  • assertSame(a, b); - 같은 객체
  • assertTure(a);
  • assertNotNull(a);
  • assertArrayEquals(a, b);

3 서버 프로그램 구현

1 개념

서비스 제공에 필요한 업무 프로그램 구현

2 절차

  1. DTO, VO 구현: 화면에서 전달받은 회원정보로 데이터베이스에 저장하는 객체 구현
  2. SQL문 구현
    1. VO에서 정의한 객체 정보에 맞춰 정보가 저장될 테이블 정보 생성
    2. 회원 이름 검색 및 입력을 위한 SQL문 작성
  3. DAO 구현
  4. 서비스 클래스 구현
  5. 컨트롤러 클래스 구현
  6. 입출력 검증 로직 구현: 회원가입 성공/실패 시 다른 메시지 출력

4 배치 프로그램 구현

1 배치 프로그램

1 개념

사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 일괄 처리

2 필수 요소

  • 이벤트 배치: 사전에 정의해 둔 조건 충족 시 자동으로 실행
  • 온디맨드 배치: 사용자의 명시적 요구가 있을 때마다 실행
  • 정기 배치: 정해진 시점에 정기적으로 실행

3 설계

  1. 배치 프로그램 관리대장 확인: 구현해야 할 배치 프로그램 기능 확인
  2. 배치 설계서 확인: 프로그램 관리 대장의 ID와 일치하는 배치 설계서 확인

2 배치 스케줄러

1 개념

일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

2 종류

  • 스프링 배치: 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리 스케줄러
  • 쿼츠 스케줄러: 작업과 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

3 Corn 표현식

배치 수행 시간 설정

순서

  1. 시간
  2. 요일
  3. 연도(생략 가능)

특수 문자 의미

  • *: 모든 수
  • ?: 해당 항목 미사용
  • -: 기간 설정
  • ,: 특정 기간 설정
  • /: 시작 시간과 반복 간격 설정
  • L: 마지막 기간에 동작
  • W: 가장 가까운 평일에 동작
  • #: 주, 요일 설정
반응형
반응형

1 연계 데이터 구성

1 연계 요구사항 분석

1 개념

연계 시스템과 관련된 요구사항을 분석하는 과정

  • 분석 기법
    • 인터뷰
    • 체크리스트
    • 설문지
    • 델파이 기법
    • 브레인스토밍
  • 분석 참고 문서
    • 코드 정의서
    • 테이블 정의서
    • 응용 프로그램 구성도
    • 시스템 구성도

2 참고문서

  • 개체 정의서: 데이터베이스 개념 모델링 단계에서 도출한 개체의 정보를 개괄적으로 명세화한 정의서
  • 테이블 정의서: 테이블을 구성하는 컬럼들의 특성, 인덱스, 업무 규칙을 문서화
  • 인터페이스 명세서: 인터페이스 상세 항목 작성
    • 인터페이스 ID
    • 최대 처리 횟수
    • 데이터 크기
    • 시스템 정보
    • 데이터 정보

3 절차

  1. 시스템 현황 확인
  2. 정의서 확인
  3. 체크리스트 확인
  4. 인터뷰 및 면담
  5. 연계 요구사항 분석서 작성

4 연계 시스템 구성

  • 송신 시스템: 연계할 데이터를 데이터베이스와 애플리케이션으로부터 연계 테이블 또는 파일 형태로 송신
  • 수신 시스템: 수신한 연계 데이터를 수신 시스템에서 관리하는 데이터 형식에 맞게 변환하여 데이터베이스에 저장하거나 애플리케이션에서 활용할 수 있도록 제공
  • 중계 서버: 송신 시스템과 수신 시스템 사이에서 데이터를 송수신하고, 현황을 모니터링

2 연계 데이터 식별 및 표준화

1 연계 데이터 식별

대내외 시스템 연계를 위해 송신 시스템과 수신 시스템 데이터에 대한 상세 식별 정보를 확인하여 데이터 표준화에 참고

2 연계 데이터 표준화

  • 공통부(고정): 인터페이스 표준 항목 포함(전문 길이, 시스템 공통, 거래 공통)
  • 개별부(가변): 송수신 시스템에서 업무 처리에 필요한 데이터 포함(데이터)
  • 종료부(고정): 전송 데이터의 끝을 표시하는 문자를 포함(전문 종료)

3 절차

  1. 연계 범위 및 항목 정의
  2. 연계 코드 변환 및 매핑
  3. 인터페이스 정의서 작성

2 연계 메커니즘 구성

1 연계 메커니즘 정의

1 개념

응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려한 연계방법과 주기를 설계하기 위한 메커니즘

2 연계 방식

  • 직접 연계
    • 장점: 연계 및 통합 구현이 용이, 개발 비용, 데이터 연계 처리 성능
    • 단점: 시스템 결합도, 암복호화 처리, 환경
    • 연계 기술: DB 링크, DB 연결, API, JDbc, 하이퍼링크
  • 간접 연계
    • 장점: 다른 네트워크 통합, 보안
    • 단점: 성능 저하 요소 존재, 기간
    • 연계 기술: 연계 솔루션, 웹 서비스, 소켓

4 절차

  1. 연계 데이터 추출 및 생성
  2. 코드 매핑 및 데이터 변환
  3. 연계 테이블 또는 파일 생성
  4. 로그 기록
  5. 연계 서버 또는 송수신 어댑터
  6. 전송
  7. 운영 DB에 연계 데이터 반영

2 연계 장애 및 오류 유형

  • 연계 시스템 오류
  • 연계 프로그램 오류
  • 연계 데이터 오류

3 내외부 연계 모듈 구현

1 연계 모듈 기능 구현

1 EAI/ESB 방식

1 개념

  • EAI: 기업에서 운영되는 서로 다른 플랫폼 간 정보 전달 솔루션
  • ESB: 기업에서 운영되는 서로 다른 플랫폼을 하나의 시스템에서 관리 운영할 수 있도록 통합을 지향하는 기술

2 절차

  1. 연계 DB 또는 계정 생성
  2. 연계를 위한 테이블 생성
  3. 연계 응용 프로그램 구현

2 웹 서비스 방식

1 개념

네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유

2 유형

  • SOAP: XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜
  • WSDL: 웹 서비스에 대한 상세 정보를 기술한 파일 XML 형식으로 구현
  • UDDI: WSDL을 등록하고 검색하기 위한 저장소

3 절차

  1. 송수신 파일 경로 및 파일명 정의
  2. 송신 연계 응용 프로그램 구현
  3. 파일 전송
  4. 수신 DB 반영 서비스 호출 처리
  5. 수신 연계 응용 프로그램 구현

2 연계 테스트

1 개념

데이터 정합성과 데이터 전송 여부에 대한 테스트

2 절차

  1. 연계 테스트 케이스 작성
    1. 단위 테스트 케이스
    2. 통합 테스트 케이스
  2. 연계 테스트 수행
  3. 연계 테스트 결과 검증
반응형
반응형

1 논리 데이터 저장소 확인

1 논리 데이터 모델

1 개념

비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법

2 특성

  • 정규화
  • 포용성
  • 완전성
  • 독립성

3 속성

  • 개체(Entity)
  • 속성(Attributes)
  • 관계(Relationship)

4 ER모델

1 개념

현실 데이터와 관계를 사람이 이해할 수 있는 형태로 표현

개체, 속성, 관계로 기술

2 ERD 기호

  • 개체: 사각형
  • 관계: 마름모
  • 속성: 타원
  • 다중 값 속성: 이중타원
  • 관계-속성 연결: 선

5 정규화

1 개념

관계형 데이터베이스의 설계에서 중복을 최소화

2 이상 현상

정규화를 하지 않았을 때 생기는 문제점

  • 삽입 이상: 부필요한 세부정보 입력
  • 삭제 이상: 원치 않는 다른 정보가 같이 삭제
  • 갱신 이상: 특정 부분만 수정되어 중복된 값이 모순

3 단계

  1. 1정규형(1NF): 도메인 원자값으로 구성
  2. 2정규형(2NF): 부분 함수 종속 제거
  3. 3정규형(3NF): 이행함수 종속 제거 - A->B & B->C => A->C
  4. BCNF: 결정자 함수 이면서 후보키가 아닌 것 제거
  5. 4정규형(4NF): 다치 종속성 제거
  6. 5정규형(5NF): 조인 종속성 제거

2 물리 데이터 저장소 설계

1 물리 데이터 모델

1 개념

2 변환 절차

2 물리 데이터 저장소 구성

1 참조무결성 제약조건

릴레이션 사이에서 참조의 일관성 보장

외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재

옵션

  • 제한: 참조무결성 원칙 위배 연산 거절
  • 연쇄: 참조되는 릴레이션에서 이 튜플을 참조하는 튜플도 함께 삭제
  • 널 값: 삭제된 튜플을 참조하는 튜플들의 외래 키에 NULL 값
ALTER TABLE EMPLOYEE ADD CONSTRAINT emp_dt_fk
FOREIGN KEY (deptno)
REFERENCES DEPARTMENT(deptno)
ON DELETE {RESTRICT | CASCADE | SET NULL};

2 인덱스 설계

1 개념

검색 최적화를 위해 열에 대한 정보를 구성한 데이터구조

2 적용 기준

인덱스 분포도가 10~15%

3 컬럼 선정

분포도가 좋은 컬럼 단독 선정

자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성

수정이 빈번하지 않은 커럶 선정

4 고려사항

  • 지나치게 많은 인덱스로 인한 오버헤드
  • 인덱스 저장 공간
  • 오버헤드

3 뷰 설계

1 속성

  • REPLACE: 뷰 재생성
  • FORCE: 본 테이블에 관계없이 뷰 생성
  • NOFORCE: 본 테이블이 존재할 때 뷰 생성
  • WITH CHECK OPTION: 서브 쿼리 내 조건을 만족하는 행만 변경
  • WITH READ ONLY: DML 작업 불가

2 고려사항

  • 수행속도
  • 최적의 액세스 경로

4 클러스터 설계

1 적용 기준

  • 인덱스 단점 해결(분포도가 넓을수록 유리)
  • 대량의 범위를 자주 액세스하는 경우 적용
  • 빈번한 조인이 있을 때 사용

2 고려사항

  • 검색 효율은 좋으나, 입력, 수정, 삭제 시 부하 증가
  • 처리 범위 문제 - 단일 테이블 클러스터링 고려
  • 많은 조인 문제 - 다중 테이블 클러스터링 고려

5 파티션 설계

1 종류

  • 레인지 파티셔닝
  • 해시 파티셔닝
  • 리스트 파티셔닝
  • 범위 분할 이후 재분할

2 장점

  • 성능 향상
  • 가용성 향상
  • 백업 가능
  • 경합 감소

6 디스크 구성 설계

  • 정확한 용량 산정을 통해 디스크 사용 효율 향상
  • 입출력 경합 최소화

3 데이터 조작 프로시저 작성

1 데이터 조작 프로시저 개발

1 프로시저 개념

SQL을 이용해 생선된 데이터를 조작하는 프로그램

  • 저장된 프로시저
  • 저장된 함수
  • 저장된 패키지
  • 트리거

2 PL/SQL

표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어

작성 절차

  1. 데이터 저장소 연결
  2. 데이터 저장소 정의: 생성, 수정, 삭제 방법
  3. 데이터 조작 프로시저 작성: 테이블 정보 입력
  4. 데이터 검색 프로시저 작성: 조건에 맞는 데이터 조회

2 데이터 조작 프로시저 테스트

1 PL/SQL 테스트

DBMS_OUTPUT 패키지 활용

2 저장 객체 테스트

  • 저장된 프로시저
  • 저장된 함수
  • 저장된 패키지
  • 트리거

4 데이터 조작 프로시저 최적화

1 쿼리 성능 개선

1 개념

프로시저 수정

2 절차

  1. 문제 있는 SQL 식별
  2. 옵티마이저 통계 확인
  3. SQL문 재구성
  4. 인덱스 재구성
  5. 실행 계획 유지 관리

2 옵티마이저

1 개념

SQL의 최적의 처리 경로(실행 계획)를 생성해주는 DBMS 내부의 핵심 엔진

2 유형

  • RBO: 규칙에 따라 질의 실행 계획 선택
    • 평가 기준: 인덱스 구조, 연산자, 조건절 형태
    • 장점: 사용자가 원하는 처리 경로 유도가 쉬움.
  • CBO: 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획 선택
    • 평가 기준: 레코드 개수, 블록 개수, 평균 행 길이, 컬럼 값 수, 컬럼 값 분포, 인덱스 높이
    • 장점: 성능 보장

3 역할

  • 쿼리 변환
  • 비용 산정
  • 계획 생성

4 힌트 사용

옵티마이저의 실행 계획을 원하는 대로 변경

3 SQL문 재구성

  • 특정 값 지정
  • 별도의 SQL 사용
  • 힌트 사용
  • HAVING 미사용
  • 인덱스만 질의 사용

4 인덱스 재구성

  • 자주 쓰는 컬럼 선정
  • SORT 명령어 생략
  • 분포도 고려
  • 변경 적은 컬럼 선정
  • 결합 인덱스 사용
반응형

+ Recent posts