반응형

1 논리 데이터 저장소 확인

1 자료 구조

1 개념

자료를 효율적으로 저장하기 위해 만들어진 논리적인 구조

2 분류

선형 구조

  • 배열
  • 연결 리스트
  • 스택

비선형 구조

  • 트리
  • 그래프

3 리스트

  • 선형 리스트: 배열, 빠른 접근, 삽입 삭제 시 기존 자료의 이동
  • 연결 리스트: 노드, 느린 접근, 노드의 삽입 삭제가 편리

4 스택 / 큐 / 데크

스택

LIFO 형식

PUSH, POP, TOP

FIFO 형식

ENQUEUE, DEQUEUE

데크

큐의 양 끝에서 삽입 삭제

5 트리

1 개념

데이터를 계층화시킨 자료 구조

노드 간 링크로 구성

2 용어

  • 루트 노드: 부모가 없는 노드
  • 단말 노드: 자식이 없는 노드
  • 레벨: 루트 노드로부터의 경로의 길이+1
  • 조상 노드: 루트에 이르는 경로상 모든 노드
  • 자식 노드: 다음 레벨의 노드
  • 부모 노드: 이전 레벨의 노드
  • 형제 노드: 같은 부모를 가진 노드
  • 깊이: 최대 레벨
  • 차수: 자식 노드 수

3 트리 순회방법

  • 전위 순회: Root -> Left -> Right
  • 중위 순회: Left -> Root -> Right
  • 후위 순회: Left -> Right -> Root

4 이진 트리

1 개념

차수가 2 이하인 노드로 구성된 트리

2 유형
  • 포화 이진 트리: 모든 레벨에서 노드가 꽉 채워진 트리
  • 완전 이진 트리: 마지막 레벨을 제외하고 노드가 채워진 트리
  • 편향 이진 트리: 노드가 한 방향으로만 존재하는 트리

6 그래프

1 개념

노드와 간선을 모아놓은 자료 구조

2 유형

  • 방향 그래프
  • 무방향 그래프

3 표현방법

그래프 G = (V, E)
V(G) = 정점(Vertices)
E(G) = 간선(Edges)

4 용어

  • 경로: 임의의 정점에서 다른 정점으로 이르는 길
  • 경로 길이: 경로상 있는 간선의 수
  • 단순 경로: 한 경로의 모든 간선이 다를 때의 경로
  • 사이클: 동일 정점에서 시작과 끝이 이어지는 경로

2 논리 데이터 저장소

1 개념

데이터를 추상화한 저장소

구조

  • 개체: 관리할 대상이 되는 실체
  • 속성: 관리할 정보의 구체적 항목
  • 관계: 개체 간의 대응 관계

2 검증 절차

  1. 개체 확인: 입출력 데이터 식별, 연계 데이터 식별, 신규 데이터 요구사항 식별
  2. 속성 확인: 데이터 속성, 공통코드 파악 수준 점검, 외부 연계 데이터 속성 파악 수준 점검
  3. 관계 확인: 개체 간 관계의 적절성 확인, 무결성 보장 여부 확인
  4. 데이터베이스 요구사항 확인: 데이터베이스 백업 및 복구 정책, 초기 데이터 구축 방안 요구사항 확인
  5. 데이터 흐름 확인: 프로세스별 입출력 데이터 정의 수준 확인
  6. 데이터 설계 기준 확인: 데이터베이스 설계 표준 지침 작성 여부 및 적절성 확인
  7. 데이터 접근권한 확인: 데이터 접근권한 및 통제 분석 적정성 확인

2 물리 데이터 저장소 설계

1 물리 데이터 저장소

1 개념

논리 데이터 모델을 데이터베이스 저장 구조로 변환하기 위한 데이터 저장소

2 모델 변환

절차

  1. 개체(Entity) -> 테이블
  2. 속성 -> 컬럼
  3. UID -> 기본키
  4. 관계를 외래키로 변환
  5. 컴럼 유형과 길이 정의
  6. 반 정규화(De-normalization)

반 정규화 수행 방법

  • 중복 테이블 추가
  • 테이블 조합: 1:1 관계 테이블 조합 / 1:M 관계 테이블 조합 / 슈퍼 타입 서브 타입 테이블 조합
  • 테이블 분할: 수직 분할 / 수평 분할
  • 테이블 제거: 접근하지 않는 테이블 제거
  • 컬럼 중복화: 조인 성능 향상

3 구성

  1. 테이블 제약조건 설계
    • 삭제 제약조건
      • 연쇄: 외부키와 일치하는 모든 Row 삭제
      • 제한: 외부키에 없는 것만 삭제 가능
      • 무효: 외부키와 일치한 것을 Null로 수정
    • 갱신 제약조건
      • 연쇄: 외부키와 일치하는 모든 Row 수정
      • 제한: 외부키에 없는 것만 수정 가능
      • 무효: 외부키와 일치하는 것을 Null로 수정
  2. 인덱스 설계
    • 인덱스 적용 기준
      • 조회 및 출력 조건으로 사용되는 컬럼인 경우 적용
      • 인덱스 자동생성 기본키와 Unique키의 제약조건을 사용할 경우 적용
    • 인덱스 컬럼 선정
      • 분포도가 좋은 컬럼은 단독적으로 생성
      • 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성
      • 수정이 빈번하지 않은 컬럼 선정
    • 고려사항
      • 지나치게 많은 인덱스는 오버헤드로 작용
      • 인덱스는 추가적인 저장 공간 필요
      • 넓은 범위 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드 발생 가능
  3. 뷰 설계
    • 뷰 속성
      • REPLACE: 뷰가 이미 존재하는 경우 재생성
      • FORCE: 기본 테이블의 존재 여부에 관계 없이 뷰 생성
      • NOFORCE: 기본 테이블이 존재할 때만 뷰 생성
      • WITH CHECK OPTION: 서브 쿼리 내의 조건을 만족하는 행만 변경
      • WITH READ ONLY: DML 작업 불가
    • 고려사항
      • 수행속도 문제
      • 뷰 SELECT 문의 조건은 최적의 엑세스 경로 사용
  4. 클러스터 설계
    • 적용 기준
      • 인덱스의 단점을 해결, 분포도가 넓을수록 유리
      • 액세스 효율 향상을 위한 물리적 저장 방법(액세스 기법 X)
      • 분포도 넓은 테이블의 클러스터링은 저장 공간의 절약 가능
      • 대량 범위를 자주 액세스하는 경우 적용
      • 여러 개의 테이블이 빈번하게 조인을 일으킬 때 활용
    • 고려사항
      • 입력, 수정, 삭제 시 부하가 증가
      • UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼은 검토 대상
      • 수정이 자주 발생하지 않는 컬럼은 검토 대상
      • 처리 범위가 넓어 문제가 발생하는 경우 단일 테이블 클러스터링을 고려
      • 조인이 많아 문제가 발생하는 경우 다중 테이블 클러스터링 고려
  5. 파티션 설계
    • 파티션 종류
      • 레인지 파티셔닝: 지정한 열의 값을 기준으로 분할
      • 해시 파티셔닝: 해시 함수에 따라 데이터 분할
      • 리스트 파티셔닝: 미리 정해진 그룹핑 기준에 따라 데이터 분할
      • 컴포지트 파티셔닝범위 분할 이후 해시 함수를 적용하여 재분할
    • 파티션 장점
      • 성능 향상: 데이터 액세스 범위 감소
      • 가용성 향상: 훼손 가능성 감소
      • 백업 가능: 분할 영역 독립적 백업 및 복구 가능
      • 경합 감소: 디스크 스트라이핑으로 입출력 성능 향상

      * 디스크 스트라이핑: 성능 향상을 위해 데이터를 1개 이상의 디스크 드라이브에 저장하여 병렬로 사용

  6. 디스크 구성 설계
    • 정확한 용량 산정 -> 효율 향상
    • 업무량이 집중되어 있는 디스크를 분리하여 설계
    • 입출력 경합 최소화 -> 데이터 접근 성능 향상

2 ORM 프레임워크

1 개념

관계형 데이터베이스와 객체지향 프로그래밍 언어 간 호환되지 않는 데이터를 변환하는 프로그래밍 기법

객체지향 언어에서 사용하는 객체를 관계형 데이터베이스로 변환하여 테이블을 구성하는데 활용

2 유형

  • SQL Mapping 기반 기술
    • iBatis: SQL에 기반한 데이터베이스와 자바, 닷넷, 루비 등을 연결시켜 주는 역할을 하는 개발 프레임워크
    • Mybatis: 자바의 관계형 DB 프로그래밍을 쉽게 할 수 있도록 도와주는 개발 프래임워크
  • OR Mapping 기반 기술
    • Hibernate: 자바 언어를 위한 객체 관계 매핑 프레임워크

3 매핑 기법

  • 객체 - 테이블
  • 속성 - 컬럼
  • 오퍼레이션 - 프로시저/함수

4 절차

절차

  1. 클래스 -> 테이블: 클래스의 인스턴스를 테이블의 레코드로 변환
  2. 애트리뷰트 -> 컬럼: 클래스 인스턴스의 애트리뷰트를 테이블 컬럼으로 변환
  3. 클래스 간 관계 -> 테이블 간 관계: 클래스 간 관계를 테이블 제약사항으로 변환

논리 데이터 저장소 구조

구분 부분적 ORM 완전 ORM
개요 SQL을 특정 이름으로 정의하여 사용 내부 엔진에서 SQL 자동생성
매퍼 사용 SQL Mapper Object Relation Mapper
방법 iBatis, MyBatis, Embeded SQL Hibernate
장점 데이터 전송 방식의 효율성 효율적인 매핑 기법

3 트랜잭션 인터페이스

1 개념

데이터베이스 트랜잭션의 골격 및 인터페이스를 정의

2 특징

ACID 원칙 기반

  • 원자성: 트랜잭션 연산을 모두 반영 or 모두 반영 X(All or Nothing)
  • 일관성: 트랜잭션이 성공적으로 완료 시 일관성 있는 데이터베이스 상태 유지
  • 독립성: 둘 이상 트랜잭션 동시 실행 시 한 개의 트랜잭션만 접근 가능(간섭 불가)
  • 영속성: 성공적으로 완료된 트랜잭션 결과는 영구 반영

3 설계

데이터 접근 방법 및 인터페이스를 절차적으로 명세

트랜잭션 인터페이스는 주로 프로그래밍 언어로 구현

사례: JDBC, ODBC


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

1 프로시저

1 개념

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

데이터베이스 내부에 저장, 일정 조건에 따라 자동 수행

2 절차형 데이터 조작 프로시저

Oracle PL/SQL

개념

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

장점

  • 컴파일 불필요
  • 모듈화 가능
  • 절차적 언어 사용
  • 에러 처리

구성

  • 선언부
  • 실행부
  • 예외부

활용

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

2 프로그램 디버깅

1 개념

프로시저에 대한 검증 작업

2 도구

SQL Plus

명령어

  • 파일 명령어
  • 편집 명령어
  • 실행 명령어
  • 환경 명령어
  • 형식 명령어
  • 대화 명령어

3 단위 테스트 도구

1 개념

구현된 프로시저의 적합성을 확인하는 도구

2 PL/SQL 테스트

DBMS_OUTPUT 패키지 활용: 메시지를 버퍼에 저장, 버퍼로부터 메시지를 읽어오기 위한 패키지

DBMS_OUTPUT 패키지 기능

  • DISABLE: 메시지 버퍼 내용 삭제
  • ENABLE: 메시지 버퍼 내용 할당
  • PUT: 메시지 마지막 라인 끝에 신규라인 문자 추가
  • GET_LINE: 호출 시 한 줄 읽기
  • GET_LINES: 지정된 라인 모두 읽기

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

1 쿼리 성능 측정

1 개념

프로시저에 있는 SQL 실행 계획은 분석, 수정 -> 최소 시간으로 원하는 결과를 얻오록 프로시저 수정

2 실행계획 기반 쿼리 성능 측정

SQL문을 분석 및 해석 -> 실행 계획 수립, 연관 테이블에 저장하도록 지원하는 도구

3 실행계획 실행

  1. 자동추적 모드 on
  2. 연관 테이블 확인
  3. 연관 테이블 결과 항목 정보

4 SQL 성능 개선 절차

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

2 소스 코드 인스펙션

1 개념

프로시저 코드를 보면서 성능 개선

2 SQL 코드 인스펙션 대상

  • 미사용 변수
  • 미사용 서브쿼리
  • Null 값 비교
  • 과거 테이터 타입 사용

3 SQL 코드 인스펙션 절차

  1. 계획
  2. 개관: 문제점 공유
  3. 준비
  4. 검사
  5. 재작업
  6. 추적
반응형
반응형

1 인터페이스 요구사항 확인

1 내외부 인터페이스 요구사항

1 개념

내외부 인터페이스에 대한 필수적인 요구사항

* 내외부 인터페이스: 조직 내외부에 존재하는 시스템들이 연동을 통해 상호 작용을 하기 위한 접속 방법이나 규칙

2 구성

  • 인터페이스 이름
  • 연계 대상 시스템
  • 연계 범위 및 내용
  • 연계방식
  • 송신 데이터
  • 인터페이스 주기
  • 기타 고려사항

3 분류

  • 기능적 요구사항: 소프트웨어가 가져야하는 기능적 속성에 대한 요구사항
  • 비기능적 요구사항: 성능, 용이성, 신뢰도, 보안성, 제약, 안정성 등과 관련된 요구사항

4 분석 방안

1 내외부 인터페이스 관련 요구사항 식별 및 분류

  1. 요구사항 식별
  2. 관련 명세서 및 현황 자료 준비
  3. 기능 요구사항 및 비기능 요구사항 분류

2 내외부 인터페이스 요구사항 명세서 구체화

  1. 요구사항 분해
  2. 요구사항 내용의 이해 및 수정
  3. 누락된 요구사항 신규 정의
  4. 요구사항 정리

2 요구공학

1 개념

사용자 요구사항을 구조화한 활동

2 목적

  • 이해관계자 사이에 효과적인 의사소통 수단 제공
  • 요구사항 누락 방지 및 불필요한 비용 절감, 변경 추적에 용이
  • 개발 비용과 시간 절약

3 분류

기능적 요구사항

  • 개념: 시스템이 제공하는 기능, 서비스에 대한 요구사항
  • 도출 방법: 특정 입력(상황)에 대한 시스템의 반응(동작)
  • 특성: 기능성, 완전성, 일관성
  • 사례: 온라인 쇼핑몰의 장바구니 기능, 여러 결제수단의 결제 기능

비기능적 요구사항

  • 개념: 시스템의 기능 이외의 사항
  • 도출 방법: 품질 관련, 제한 조건
  • 특성: 신뢰성, 사용성, 효율성, 유지 보수성, 이식성
  • 사례: 특정 함수 호출 제한시간, 가동률, 패치 및 업그레이드 지원

4 프로세스

1 요구사항 개발 단계(CMM Level 3)

  1. 요구사항 추출
  2. 요구사항 분석
  3. 요구사항 명세
  4. 요구사항 검증

주요 기법: 인터뷰, 델파이 기법, 롤 플레잉, UML, 모델링, 요구사항 명세서, 베이스라인, 요구사항 추적표

검증 항목: 명확성, 완전성, 검증 가능성, 일관성, 수정 용이성, 추적 가능성, 개발 후 이용성

2 요구사항 관리 단계(CMM Level 2)

  1. 요구사항 협상
  2. 요구사항 기준선
  3. 요구사항 변경 관리
  4. 요구사항 확인 및 검증

요구사항의 변경에 대해 일치성무결성을 제공하기 위해 일련의 관리를 수행하는 활동

산출물: 요구사항 변경요청서, 요구사항 변경승인서, 요구사항 추적표

5 요구사항 검증

요구사항 명세서에 사용자의 요구가 올바르게 기술되었는지 검토, 베이스라인을 설정

요구사항 검증 절차

  1. 요구사항 검토 계획 수립
  2. 요구사항 명세서 검토 및 오류 수정
  3. 요구사항 베이스라인 설정

요구사항 검증 방법

  • 프로토타이핑 활용: 주요 기능이나 일부분을 약식으로 개발
  • 테스트 케이스 활용: 테스트 케이스를 생성하여 요구사항이 현실적으로 테스트 가능한지 검토
  • CASE 도구 활용: 자동화된 일관성 분석을 제공하는 CASE 도구 활용
  • 정형 기술 검토(FTR) 활용
    • 동료 검토: 2~3명이 진행, 이해관계자들이 작성자의 설명을 들으면서 결함을 발견
    • 워크 스루: 검토 자료를 회의 전에 배포하여 사전검토, 오류 조기 검출 목적
    • 인스펙션: 저작자 외의 다른 전문가가 검사하여 오류를 찾아내는 방법

    * 가이드라인

    • 제품의 검토에만 집중
    • 의제를 제한하여 진행
    • 논쟁과 반박을 제한
    • 문제 영역을 명확히 표현
    • 참가자 수를 제한
    • 자원과 시간 일정을 할당
    • 검토 과정과 결과를 재검토

2 인터페이스 대상 식별

1 시스템 아키텍처

1 개념

시스템의 구조, 행위, 동작 원리를 설명하는 프레임워크

2 요구사항

  • 시스템 구성 및 동작 원리를 나타내고 있어야 한다
  • 시스템 구성요소에 대해 설계 및 구혀능ㄹ 지원하는 수준으로 자세히
  • 구성요소 간의 관계 및 시스템 외부 환경과의 관계 설명
  • 요구사항 및 시스템의 전체 생명주기 고려
  • 시스템 전체에 대한 논리적인 기능 체계와 구성 방식, 최적화 목표

cf) 라이브러리 - 소프트웨어 개발 시 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이 필요

3 설계 원칙

중점 고려사항

  • 기술적 제약사항
  • 기술 요구사항
  • 기존 운영상의 문제점 개선

설계 원칙

  • 대규모 트랜잭션 처리 및 온라인 성능 보장
  • 시스템 아키텍처 확장성 보장
  • 서비스 고가용성 보장
  • 운영관리 효율성
  • 시스템 보안 강화

4 물리 설계

  • 1-Tier 아키텍처: AP/DB 서버 1대 이상 구성
  • 2-Tier 아키텍처: AP 서버, DB 서버 2대 이상 구성
  • 3-Tier 아키텍처: 프레젠테이션 서버, AP 서버, DB 서버 3대 이상으로 구성

2 인터페이스 시스템

1 개념

서로 다른 두 시스템/장치/소프트웨어를 이어주는 접속 및 중계 시스템

2 구성

  • 송신 시스템: 연계할 데이터를 생성하여 송신
  • 수신 시스템: 수신한 데이터를 형식에 맞게 변환
  • 중계 서버: 데이터를 송수신하고, 송수신 현황 모니터링

3 분류 체계

기업 내부에서 사용하고 있는 시스템 분류 체계를 기반으로 식별자를 정의

4 식별 정보

  • 대내외 구분 정보: 기업 내부 시스템인지 외부 기관 시스템인지 구분
  • 기관명: 대외 기관일 경우 기관명
  • 시스템 ID: 시스템 식별 체계에 따라 부여된 식별 번호
  • 한글명, 영문명
  • 시스템 설명
  • 시스템 위치
  • 네트워크 특성: 네트워크 전송 속도, 대역폭, 유의사항 등
  • 전용 회선 정보
  • IP/URL
  • Port
  • Login
  • DB 정보
  • 담당자 정보

5 데이터 표준

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

송수신 전문 구성: 전문 공통부(전문길이, 시스템공통, 거래공통), 전문 개별부, 전문 종료부

6 처리 프로세스

송신 시스템 -> 연계 서버 -> 수신 시스템

3 인터페이스 상세 설계

1 내외부 송수신

1 개념

내외부 송수신을 위한 연계 방식과 연계 기술, 통신 유형의 선택은 성능에 큰 영향

2 연계방식

직접 연계 방식

  • 장점: 빠른 연계 처리 속도, 단순한 구현, 낮은 개발 비용, 짧은 개발 기간
  • 단점: 송수신 시스템 간 높은 결합도, 보안 작업 시 인터페이스별 작성, 통합 환경 구축

간접 연계 방식

  • 장점: 다양한 환경을 갖는 시스템을 연계 및 통합 관리, 인터페이스 변경 시 유연한 대처
  • 단점: 절차가 복잡하고 성능 저하, 길어지는 개발 및 테스트 기간

3 연계 기술

  • DB 링크: 수신 시스템에서 DB 링크를 생성하고 송신 시스템에서 해당 DB 링크를 직접 참조
  • DB 연결: 수신 시스템의 WAS에서 송신 시스템 DB로 연겷는 DB 컨넥션 풀을 생성하고 연계 프로그램에서 사용
  • API/Open API: 송신 시스템의 DB에서 데이터를 읽어서 제공하는 어플리케이션 프로그래밍 인터페이스 프로그램
  • JDBC: 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
  • 하이퍼 링크: 웹 애플리케이션에서 하이퍼링크 이용
  • 소켓: 서버는 통신을 위한 소켓을 생성하여 포트를 할당하고 클라이언트의 통신 요청시 클라이언트와 연결하고 통신

4 통신 유형

실시간

  • 단방향: 데이터를 이용하고자 하는 시스템에서 거래를 요청
  • 동기: 데이터를 이용하고자 하는 시스템에서 거래 요청을 하고 응답 대기
  • 비동기: 요청을 보내고 다른 작업을 하다가 데이터가 준비되었다는 신호를 받으면 다시 처리
  • 지연 처리: 순차 처리 및 지연 처리가 필요한 업무에 사용

배치

  • DB/File 거래: 정해진 시간에 통신을 수행

2 데이터 명세화

1 개념

인터페이스 요구사항 분석 과정에서 식별한 정보를 분석하여 필요한 데이터 명세를 만드는 작업

2 정보파악

인터페이스 요구사항 분석 과정에서 식별한 개체 정의서, 테이블 정의서, 코드 정의서를 분석하여 필요한 정보를 파악

  • 개체 정의서: 데이터베이스 개념 모델링 단계에서 도출한 개체의 정보를 개괄적으로 명세화한 정의서

    논리 DB명, 엔터티명, 주 식별자, 슈퍼타입 엔터티 명

  • 테이블 정의서: 논리 및 물리 모델링 과정에서 작성하는 설계 산출물

    물리 DB명, 테이블 소유자, 테이블 명칭, 테이블 유형, 관련 엔터티 명, 테이블 설명, 보존 기간, ...

  • 코드 정의서: 코드에 대한 명명 규칙을 정하고, 명명 규칙에 따라 어떤 코드를 사용할지 정의한 문서

3 송수신 데이터 명세 작성

연계하고자 하는 데이터 단위로 명세 작성

송수신 데이터 항목의 데이터 타입, 길이, 필수 입력 여부, 식별자 여부 정의

암호화 대상 컬럼 선정 및 적용 여부 정의

3 오류 처리 방안 명세화

1 인터페이스 오류 유형

  • 연계 서버: 연계 서버 다운, 송수신 시스템 접속 오류
  • 송신 시스템 연계 프로그램: 데이터베이스 접근 권한 오류, 예외 상황 미처리, 미등록 코드
  • 연계 데이터: 유효하지 않은 연계 데이터 값
  • 수신 시스템 연계 프로그램: 데이터 등록 및 갱신 오류

2 인터페이스 오류 처리 방법

절차

  1. 로그 파일에 에러 내용을 기록하도록 프로그램 작성
  2. 인터페이스 오류 발생
  3. 로그 파일을 확인하여 오류 원인 분석, 해결 방안 수립
  4. 연계 데이터 오류의 경우 데이터 보정, 재전송
  5. 송수신 시스템의 접속 오류의 경우 담당자를 통해 해결 후 재전송

인터페이스 오류 코드

  • 오류 코드
  • 오류 내용

3 오류 처리 방안 명세화 프로세스

  1. 오류 상황 식별 분류
  2. 오류 처리 방안 명세화
    1. 오류 발생 영역 정의
    2. 오류 그룹 번호 정의
    3. 오류 코드 부여, 오류 메시지 정의
    4. 오류 상세 기술
    5. 오류 해결 방법 기술

4 인터페이스 설계

1 인터페이스 목록 도출

송수신 시스템의 정보, 연계 방식, 통신 유형 등의 정보

인터페이스 목록 주요 항목

  • 인터페이스 ID
  • 인터페이스 명
  • 송신 시스템
  • 수신 시스템
  • 대내외 구분
  • 통신 유형
  • 처리 유형
  • 주기
  • 데이터 형식
  • 관련 요구사항 ID

2 인터페이스 정의서 작성

데이터 송수신 시스템 간의 데이터 저장소와 속성 등의 상세 내역

연계 방식에 따라 인터페이스 명세 항목이 다르다

인터페이스 정의서 주요 항목

  • 인터페이스 ID
  • 최대 처리 횟수
  • 데이터 크기
  • 시스템 정보
  • 데이터 정보

3 인터페이스 설계 프로세스

  1. 양식 준비
  2. 인터페이스 기본 정보 작성
  3. 송수신 시스템의 정보 작성
  4. 프로그램 명세서 확인 및 보완
  5. 송수신 데이터 항목 작성
  6. 코드 매핑 정보 작성
  7. 인터페이스 설계 내용 검토 및 보완

5 미들웨어 솔루션

1 개념

컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 관리를 도와주는 소프트웨어

2 유형

  • DB 미들웨어: DB 솔루션 업체에서 제공하는 애플리케이션과 DB 간의 원활한 통신을 목적
  • 원격 프로시저 호출(RPC): 응용 프로그램의 프로시저를 사용하여 원격 크로시저를 로컬 프로시저처럼 호출
  • 메시지 지향 미들웨어(MOM): 메시지 기반의 비동기형 메시지 전달
  • 트랜잭션 처리(TP): 모니터분산 트랜잭션을 처리하기 위한 미들웨어
  • 레거시웨어: 기존 애플리케이션이나 DB 기반에 새로운 업데이트된 기능 추가 시 사용
  • 객체 기반(ORB) 미들웨어: CORBA 표준 스펙을 구현한 객체지향 미들웨어
  • WAS: 웹 환경을 구현하기 위한 미들웨어

3 웹 애플리케이션 서버(WAS)

서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공, 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 연동 지원

* 웹 서버와의 차이점: 동적 서버 콘텐츠 수행

처리 프로세스

  1. 웹 브라우저가 웹 서버에 페이지 요청
  2. 요청된 페이지의 로직 및 DB와의 연동을 위해 애플리케이션 서버에 처리를 요청
  3. 웹 애플리케이션 서버는 DB와의 연동이 필요하면 DB와 데이터의 처리를 수행
  4. 로직 및 DB 작업의 처리 결과를 웹 서버에 응답
  5. 웹 서버가 결과를 웹 브라우저에 응답

4 EAI와 ESB

EAI(Enterprise Application Integration)

비즈니스 프로세스를 중심으로 기업 내 각종 애플리케이션을 통합

비표준 어댑터를 배포하여 통합

ESB(Enterprise Service Bus)

웹 서비스를 이용하여 메시징 / 웹 서비스 / 데이터 변형 / 인텔리전트 라우팅을 결합하여 연결과 상호작용을 지원

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

기술 및 토폴로지

  • 허브 앤 스포크 방식: 중앙 집중된 허브를 통해서 통합, 단위 애플리케이션의 업무 간의 재사용성 극대화
  • 어댑터: 다양한 애플리케이션을 연결하는 EAI의 핵심 장치
  • 브로커: 시스템 간 데이터가 전송될 때, 데이터 포맷과 코드를 변환
  • 메시지 큐: 비동기 메시지를 사용하는 다른 애플리케이션 간 데이터를 송수신
반응형
반응형

1 공통 모듈 설계

1 공통 모듈

 

1 개념

전체 프로그램의 기능 중 특정 기능을 추리할 수 있는 실행 코드

자체적으로 컴파일 가능, 재사용 가능

 

2 원칙

  • 정확성: 해당 기능의 필요 여부
  • 명확성: 해당 기능에 대해 일관되게 한 가지로 해석
  • 완전성: 필요 요구 사항에 대해서 모두 기술
  • 일관성: 기능 간 상호 충돌 X
  • 추적성: 기능의 유기적 관계에 대한 식별 가능

 

3 모듈화

1 개념

프로그램의 관리를 효율적으로 하기 위해 시스템을 분해, 추상화함으로써

성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리를 쉽게 하는 기법

 

2 필요성

모듈의 크기 少 -> 모듈 개수 多 -> 통합 비용 大

모듈의 크기 大 -> 모듈 통합 비용 少 but 모듈 당 개발 비용 大

 

3 유형

  • 응집도: 모듈 내부의 구성요소 간 관계의 밀접한 정도 (강하게)
  • 결합도: 모듈 간의 관련성 정도(<---> 독립성) (약하게)

 

1 응집도 유형

우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적

2 결합도 유형

내용 > 공통 > 외부 > 제어 > 스탬프 > 자료

 

2 설계 모델링

 

1 개념

필수 기능의 구체적인 구현 방법

소프트웨어의 요구사항을 만족하도록 모델링하여 표현, 분석, 검증하는 과정

 

2 원칙

  • 변경이 쉽도록 구조화
  • 특정 기능을 수행하는데 필요한 자료만 사용하도록 규제
  • 독립적이고 기능적인 특성
  • 계층적 구조

 

3 유형

모델링 유형

  • 구조 모델링: 시스템의 구성요소들과 이들 사이의 구조적인 관계와 특성을 모델링
  • 행위 모델링: 시스템의 구성요소들의 동적인 특성을 모델링

 

모델 유형

  • 구조 모델: 유형, 배열 및 결합 관계, 인터페이스, 상호작용 채널, 위치의 이동 및 복제
  • 행위 모델: 입출력 데이터, 입출력 매핑, 데이터 흐름 채널, 상호작용 프로토콜, 처리 순서, 알고리즘

 

4 소프트웨어 설계 유형

자료 구조 설계: 소프트웨어를 구현하는데 필요한 자료 구조로 변환하는 과정

아키텍처 설계: 컴포넌트 간의 관계

인터페이스 설계: 통신

프로시저 설계: 아키텍처의 컴포넌트를 프로시저 서술로 변환하는 과정

 

3 소프트웨어 아키텍처

 

1 개념

외부에 드러나는 특성, 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

 

2 필요성

조율을 통한 시스템 최적화

비기능적 요소에 집중하되 기능적 요소 고려

 

3 소프트웨어 아키텍처 프레임워크

IEEE1471

[IEEE1471]

  • Mission: 목적 달성을 위해 시스템이 수행하는 방향성
  • Environment: 내부/외부 제약
  • System: 특정 목적 달성을 위한 컴포넌트 집합
  • Architectures: 시스템 구조
  • Stakeholder: 사람/조직
  • Architectures Description: 아키텍처를 기록하기 위한 산출물
  • Concern: 관계자 관심사
  • View Point: View를 구성하기 위한 규칙을 정의한 패턴
  • Rational: 아키텍처 평가 판단 기준
  • Library view point: 모델 작업 방법 사례
  • Model: 모델

 

4 소프트웨어 아키텍처 4+1뷰

1 개념

고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 접근 방법

4개의 구조가 충돌되지 않는지, 요구사항을 충족하는지 증명하기 위해 유스케이스 사용

 

2 구성요소

1: 유스케이스 뷰

4: 논리 뷰(최종 사용자), 프로세스 뷰(프로그래머), 구현 뷰(프로그래머), 배포 뷰(시스템 엔지니어)

  • 유스케이스 뷰: 아키텍처의 다른 뷰를 검증하는 데 사용
  • 논리 뷰: 기능적인 요구사항, 모델의 추상화
  • 프로세스 뷰: 런타임 시 테스크, 스레드, 프로세스 간의 관계 표현, 비기능적 요구사항(성능, 가용성) 고려
  • 구현 뷰(= 컴포넌트 뷰): 정적인 소프트웨어 모듈의 구성, 개발자 관점
  • 배포 뷰: 실행 파일과 런타임 컴포넌트의 매핑 방법을 보여주며, 비기능적인 요구사항 고려

 

5 소프트웨어 아키텍처 비용 평가 모델

1 개념

아키텍처의 적합성을 평가하는 모델

 

2 종류

  • SAAM: 변경 용이성과 기능성에 집중
  • ATAM: 아키텍처 품질 속성을 만족시키는지 판단
  • CBAM: 경제적 의사결정에 대한 요구 충족
  • ADR: 아키텍처 구성요소 간 응집도 평가
  • ARID: 전체가 아닌 특정 부분에 대한 품질요소에 집중

 

2 객체지향 설계

1 객체지향

1 개념

실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현

 

2 구성요소

  • 클래스: 같은 종류의 집단에 속하는 속성(변수)와 행위(메서드)
  • 객체: 클래스로부터 생성, 객체마다 각각의 상태와 식별성 소유
  • 메서드: 객체를 사용하는 방법
  • 메시지: 객체에게 행위를 지시하는 방법
  • 인스턴스: 클래스에 속한 각각의 객체, 실제 메모리상에 할당
  • 속성: 객체가 가지고 있는 값

 

3 기법

  • 캡슐화: 관련성이 높은 데이터와 함수를 묶어서 처리, 결합도를 낮추고 재사용이 용이
  • 상속성: 상위 클래스의 속성과 메소드를 하위 클래스에서 물려받아 사용
  • 다형성: 하나의 메시지에 대해 고유한 방법으로 응답, 오버로딩/오버라이딩
  • 추상화: 공통 성질을 추출하여 추상 클래스를 설정
  • 정보은닉: 데이터와 메소드를 공개 인터페이스를 통해서만 접근하도록하여 side effect 최소화

cf ) 프로시저 기반 - 절차적 프로그래밍

 

4 설계 원칙(SOLID)

  • 단일 책임: 하나의 클래스는 하나의 목적
  • 개방 패쇄: 소프트웨어의 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 한다
  • 리스코프 치환: 자식 클래스는 부모 클래스를 대체
  • 인터페이스 분리: 한 클래스는 자신이 사용하지 않는 인터페이스를 구현하지 않는다
  • 의존성 역전: 사용 관계는 바뀌지 않으며, 관계는 최대한 느슨하게

 

5 방법론 종류

  • 객체지향 소프트웨어 공학(OOSE): 유스케이스에 의한 접근 방법

  • 럼바우 객체 모델링 기법(OMT): 객체지향 분석 -> 시스템 설계 -> 오브젝트 설계 및 구현

    • 객체 모델링: 정적 구조 표현
    • 동적 모델링: 객체의 제어 흐름 표현
    • 기능 모델링: 값의 변화 과정 표현
  • 객체 지향 설계(Booch): 설계 부분만 존재, 설계 문서화 강조

*-----------------------------

Coad와 Yourdon 방법: 객체 지향 분석 방법론 중 ERD 사용

-------------------------*

 

2 디자인 패턴

 

1 개념

반복적으로 나타나는 문제점에 대한 전문가의 경험을 정리하여 해결 방안을 제시한 패턴

개발의 효율성, 유지 보수성, 운용성 등의 품질 향상, 프로그램 최적화

 

2 구성요소

  • 패턴 이름: 문제와 해법을 설명
  • 문제: 해결하고자 하는 문제와 배경, 패턴 사용 시점
  • 해법: 요소, 요소 간의 관계, 책임, 상호관계
  • 결과: 결과와 장단점

 

3 유형

목적

  • 생성: 구조화, 캡슐화
  • 구조: 더 큰 구조 형성 목적
  • 행위: 상호작용 방법과 역할 분담

cf ) 기능 X

 

범위

  • 클래스: 상속 관계, 컴파일 타임에 정적으로 결정
  • 객체: 런타임에 동적으로 결정

 

 생성구조행위
클래스Factory MethodAdapterInterpreter / Template Method
객체Abstract Factory / Builder / Prototype / SingletonBridge / Composite / Decorator / Facade / Flyweight / ProxyChain of Responsibility / Command / Iterator / Mediator/ Memento / Observer / State / Strategy / Visitor

 

4 종류

  • Factory Method: 서브 클래스가 인스턴스를 결정하도록하고 책임을 위임
  • Singleton: 유일한 하나의 인스턴스를 보장
  • Facade: 하나의 인터페이스를 통해 느슨한 결합 제공
  • Proxy: 대리인이 대신 일을 처리
  • Template: 알고리즘 골격의 구조를 정의
  • Command: 요청 자체를 캡술화하여 파라미터로 넘긴다
  • Observer: 상태가 변할 때 알리고, 자동 업데이트
반응형
반응형

1 UI 요구사항 확인

1 UI

1 개념

사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체(화면)

* UX : 사용자가 직/간접적으로 경험하면서 느끼고 생각하는 총체적 경험

2 유형

CLI
(Command Line Interface)
정적 텍스트 기반 인터페이스 명령어를 텍스트로 입력하여 조작
GUI
(Graphical User Interface)
그래픽 반응 기반 인터페이스 그래픽 환경을 기반으로한 마우스나 전자펜 이용
NUI
(Natural User Interface)
직관적 사용자 반응 기반 인터페이스 신체 부위를 사용
OUI
(Organic User Interface)
유기적 상호작용 기반 인터페이스 현실에 존재하는 모든 사물이 입출력장치로 변화

3 분야

  • 물리적 제어 분야 : 정보 제공과 기능 전달을 위한 하드웨어 기반
  • 디자인적 분야 : 콘텐츠의 정확하고 상세한 표현과 전체적인 구성
  • 기능적 분야 : 사용자의 편의성에 맞춰 쉽고 간편하게 사용 가능

4 설계 원칙

  • 직관성 : 용이한 검색, 쉬운 사용성, 일관성
  • 유효성 : 쉬운 오류 처리 및 복구
  • 학습성 : 쉽게 학습, 쉬운 접근, 쉽게 기억
  • 유연성 : 오류 예방, 실수 포용, 오류 감지

2 UI 표준

1 개념

디자인 철학과 원칙 기반 하에 전체 시스템에 적용되는 화면 간 이동, 구성 등에 관한 규약

2 구성

  • 전체적인 UX 원칙
  • 정책 및 철학 가이드
  • UI 스타일 가이드
  • UI 패턴 모델 정의
  • UI 표준 수립을 위한 조직 구성

3 수립 시 고려사항

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

4 UI 스타일 가이드 구성

UI 구동 환경 정의

  • 운영체제 확인
  • 웹 브라우저 확인
  • 모니터 해상도 확인
  • 프레임 세트 확인

레이아웃 정의

  • 화면 구조 정의 : 상단, 왼쪽, 콘텐츠 영역으로 설계,
  • 상단 메뉴 구성 정의 : 필수, 시스템 로고, 로그인 사용자, 바로 가기 메뉴, 시스템 전체 페이지에 동일하게 적용
  • 좌측 메뉴 구성 정의 : 선택, 서브 메뉴, 배너, 서브 페이지에 선택 적용
  • 내용 구성 정의 : 필수, 메인 이미지, 시스템별 구성 콘텐츠
  • 하단 메뉴 구성 정의 : 선택, 회사 CI, 저작권
  • 사용 환경에 맞춰 페이지 폭 정의 : 브라우저 사이즈에 따라 페이지 폭 크기를 유동적으로 적용

* 상단 메뉴 구성 : 로고 구역 / 접속자 정보 / 바로 가기 메뉴 / 주 메뉴
* CI : 기업에 대한 정보를 시각적으로 표현

메뉴 네비게이션 정의

4가지 타입의 애플리케이션의 메뉴 구조에 따라 적당한 타입을 선택하여 적용

화면의 폭을 넓게 쓰고 싶을 경우 좌측 메뉴에 대해서 유동적으로 적용

기능 정의

시스템 요구사항에 대한 개념 모델을 논리적 모델로 상세화

* 논리적 모델 : 프로세스 모델, UI 설계, 논리 데이터 모델, 아키텍처 정의, 인터페이스 설계 측면

구성요소 정의

  • 그리드 : 테이블 형태
  • 버튼 : 기능 버튼 / 검색 버튼 / 그리드 관련 버튼 / 기타 버튼

5 UI 패턴 모델 정의

  • 업무 화면 클라이언트 정의
  • 서버 컨트롤러 정의 : 프레임워크 도입 시 해당 프레임워크가 제공하는 방식 채택
  • 서버 메시지 및 예외 처리 정의 : 서버의 메시지 및 에러 처리를 클라이언트 UI에 전달하는 방식
  • 클라이언트-서버 간 데이터 변환 정의 : 데이터 형태 변환 처리 방안 마련
  • 기업 포털 연계 정의 : 기업 포털 - SSO - 사용자 간 연계 방식 결정
  • 보고서 정의 : 클라이언트와 리포트 솔루션 간의 연계 방식 결정
  • 외부 컴포넌트 연계 정의 : 외부 UI 컴포넌트를 도입 시 서버와의 연계 방식 결정

* 리치 클라이언트 : SW의 실행을 클라이언트에서 책임지는 기술
* 씬 클라이언트 : SW의 실행을 전적으로 서버에서 책임지는 기술

* SSO(Single Sign On) : 한 번의 로그인을 통해 여러 다른 사이트들을 자동적으로 접속하여 이용

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

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

3 UI 지침

1 개념

UI 표준에 따라 UI 설계, 개발 시 지켜야 할 세부 사항 규정

2 UI 표준 적용을 위한 환경 분석

  • 사용자 트렌드 분석
  • 기능 조작성 분석
  • 오류 방지 분석
  • 최소한의 조작으로 업무 처리 가능 여부 확인
  • UI의 정보 전달력 확인

3 UI 개발 목표 및 범위

  • 경영진의 UI 관련 개발 요구사항 조사 및 정의
  • 자사-타사-사용자 분석(3C 분석) 및 트렌드 분석
  • 관계자 간 개발 목표 협의 및 공유 워크숍

4 UI 개발 주요 기법

  • 3C 분석 : 사용자, 자사, 경쟁사 비교/분석
  • SWOT 분석 : 강점, 약점, 기회, 위협 요인
  • 시나리오 플래닝 : 불확실성이 높은 상황을 예측
  • 사용성 테스트 : 사용자가 직접 제품 사용
  • 워크숍 : 소집단 정도의 인원으로 서로 정보를 교환하고 검토하는 연구회 및 세미나

5 사용자 분석 및 니즈 조사

  1. 리서치 대상 선정 및 내용 설계
  2. 리서치 진행
  3. 리서치 결과 정리

6 사용자 요구사항 도출

  • 페르소나 정의 : 가상의 사용자
  • 콘셉트 모델 정의 : 추상적인 콘셉트들 사이의 관계를 보여주는 다이어그램
  • 사용자 요구사항 정의 : 리서치 및 페르소나 결과물을 토대로 요구사항 도출, 우선순위 결정
  • UI 컨셉션 : 요구사항을 구체화하여 화면 설계

7 UI 상세 설계

효율적인 UI 관계와 원활한 의사소통을 위해 UI 시나리오 문서 사용

8 UI 화면 디자인

  • 레이아웃, 컬러 패턴, 타이포그래피(활자의 서체나 배치), 화면 디자인 요소 등 정의
  • 템플릿 활용
  • UI 가이드 문서 작성

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

10 테스트, 배포 및 관리

4 스토리보드

1 개념

UI 화면을 구축하는 서비스를 위한 대부분 정보가 수록된 문서

  • 와이어 프레임 : 화면 단위의 레이아웃 설계
  • 스토리보드 : 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물
  • 프로토타입 : 정적 -> 동적

2 작성 절차

  • 전체 개요 작성
  • 서비스 흐름 작성
  • 스타일 확정
  • 메뉴별 화면 설계도 작성 및 상세 설명
  • 추가 관련 정보 작성

3 작성 시 유의사항

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

2 UI 설계

1 UI 흐름설계 및 상세 설계

1 UI 설계 프로세스

  1. 문제 정의
  2. 상요자 모델 정의
  3. 작업 분석
  4. 컴퓨터 오브젝트 및 기능 정의
  5. 사용자 인터페이스 정의
  6. 디자인 평가

2 UI 흐름 설계

  1. 기능 작성
  2. 입력 요소 확인
  3. 유스케이스 설계
  4. 기능 및 양식 확인

3 UI 상세 설계

  • 메뉴 구조 설계
  • 내/외부 화면과 폼 설계
  • UI 검토 및 보완

2 감성공학

1 개념

감성을 평가 및 분석하여 구체적인 제품 설계로 실현해 내는 공학

2 접근 방법

  • 1류 접근 방법 : 인간의 감성을 표현하는 어휘를 이용하여 제품 이미지 조사
  • 2류 접근 방법 : 개별적 특성과 생활 방식으로부터 개인이 갖고 있는 이미지를 구체화
  • 3류 접근 방법 : 기존의 감성적 어휘 대신 공학적인 방법으로 접근

3 관련 기술의 종류

감성공학 기반 기술

  • 인간공학
  • 생체 기술
  • 인간 감각 계측 기술

감성공학 기반 인터페이스 구현 기술

  • 센서 및 센싱 기술
  • 디스플레이 기술
  • 액츄에이터 기술
  • 센서 퓨전 기술
  • 마이크로 머시닝 기술
  • 퍼지 뉴럴 네트워크 기술
  • 산업 디자인 기술

적합성 판단 / 새로운 감성 창출 기술

  • 사용성 평가 기술
  • 가상현실 기술

4 관련 기술 적용 사례

  • 주행 안전 기술
  • 무안경 3D TV
  • 스마트 UI

3 UI 설계 도구

1 개념

사용자와 시스템 사이에 의사소통할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 UI 설계 지원 도구

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

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

3 유형

화면 설계 도구

  • 파워 목업
  • 발사믹 목업
  • 카카오 오븐

프로토타이핑 도구

  • UX핀
  • 액슈어
  • 네이버 프로토나우

UI 디자인 도구

  • 스케치
  • 어도비 XD

UI 디자인 산출물로 작업하는 프로토타이핑 도구

  • 인비전
  • 픽사에이트
  • 프레이머
반응형
반응형

1 현행 시스템 분석

1 플랫폼 기능 분석

1 플랫폼의 개념

애플리케이션을 구동시키는데 필요한 하드웨어 + 소프트웨어, 동일 플랫폼 내에서는 상호 호환이 가능하도록 만들어진 결합체

공급자와 수요자 등의 복수 그룹이 참여하여 각 그룹이 얻고자 하는 가치를 공정한 거래를 통해 교환할 수 있도록 구축된 환경

2 플랫폼의 유형

싱글 사이드 플랫폼 제휴 관계를 통해 소비자와 공급자 연결 아이튠즈, 안드로이드 마켓
투 사이드 플랫폼 두 그룹을 중개하고 모두에게 개방 소개팅 앱
멀티 사이드 플랫폼 다양한 이해관계 그룹을 연결하여 중개 페이스북, 인스타그램

3 플랫폼의 기능

비용 감소, 생산성 향상

커뮤니티 형성, 네트워크 효과 유발

* 네트워크 효과 : 수요에 따라 다른 사람들에게 영향을 미치는 현상

4 플랫폼 기능 분석 절차

  1. 현행 플랫폼 자료 수집
  2. 수집 자료 분석
  3. 결과 산출물 작성

2 플랫폼 성능 특성 분석

1 이유

사용자의 서비스 이용 시 속도의 적정성을 알 수 있다.

2 기법

  • 사용자 인터뷰 : 인터뷰 결과서
  • 성능 테스트 : 테스트 결과서
  • 산출물 점검 : 벤치마킹 테스트 결과서

3 운영체제 분석

1 운영체제 개념

하드웨어 및 소프트웨어 자원을 효율적으로 관리하며 공통된 기능을 제공하는 소프트웨어

2 운영체제 현행 시스템 분석

품질 측면

  • 신뢰도 : 장애 발생 가능성, 재기동 여부
  • 성능 : 파일 작업 처리, 지원 가능한 메모리 크기

* 배치 작업 : 작업들을 하나의 작업 단위로 묶어 일괄 처리 cf ) 실시간 작업

지원 측면

  • 기술 지원 : 오픈 소스 여부
  • 주변 기기 : 하드웨어
  • 구축 비용 : 하드웨어 비용, 라이선스 정책 및 비용, 유지/관리 비용

3 운영체제 종류 및 특징

PC

  • Windows : 중/소규모 서버, 관리 비용 장점
  • UNIX : 대용량 처리, 안정성 높은 엔터프라이즈급 서버
  • Linux : 중/대규모 서버 대상, 높은 보안성

모바일

  • Android : 다양한 기기의 호환성
  • iOS : 높은 보안성과 고성능

4 네트워크 분석

1 개념

컴퓨터 장치들이 노드 간 연결을 사용하여 서로 데이터를 교환하는 기술

2 OSI 7계층

5. 세션 계층 (Session Layer)연결 접속, 동기제어SSH, TLS데이터

7. 응용 계층 (Application Layer) 사용자와 네트워크 간 응용서비스 연결, 데이터 생성 HTTP, FTP 데이터
6. 표현 계층 (Presentation Layer) 데이터 형식 설정, 부호교환, 암/복호화 JPEG, MPEG 데이터
4. 전송 계층 (Transport Layer) 신뢰성 있는 통신 보장, 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어 TCP, UDP 세그먼트
3. 네트워크 계층 (Network Layer) 단말기 간 데이터 전송을 위한 최적화된 경로 제공 IP, ICMP 패킷
2. 데이터링크 계층 (Data Link Layer) 인접 시스템 간 데이터 전송, 전송 오류 제어, 동기화, 오류 제어, 흐름 제어, 오류검출 / 재전송 이더넷 프레임
1. 물리 계층 (Physical Layer) 0과 1의 비트정보를 회선에 보내기 위한 전기적 신호 변환 RS-232C 비트

3 네트워크 현행 시스템 분석

네트워크 구성도를 통해 분석

네트워크 구성도의 작성을 통해 서버 위치, 서버 간 연결 방식 파악 가능

물리적 위치 관계 파악, 보안 취약성 분석 및 대응에 유리

대상 : 백본망, 라우터, 스위치, 게이트웨이, 방화벽, ...

  • 백본망 : 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부
  • 라우터 : 3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 전달
  • 스위치 : 2계층 장치, 돌일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소로 빠르게 전달
  • 게이트웨이 : 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간 통신
  • 방화벽 : 보안 시스템

5 DBMS 분석

1 개념

DB를 생성하고, 저장 및 관리할 수 있는 기능을 제공하는 응용 프로그램

2 기능

  • 중복 제거 : 동일한 데이터가 여러 위치에 중복 저장되는 현상 방지
  • 접근 통제 : 권한에 따라 데이터에 대한 접근 제어
  • 인터페이스 제공 : 사용자에게 다양한 인터페이스 제공(CLI, GUI, ...)
  • 관계 표현 : 서로 다른 데이터 간의 다양한 관계 표현
  • 샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 나누는 기능
  • 무결성 제약 조건 : 무결성에 관한 제약 조건 정의 및 검사
  • 백업 및 회복 : 데이터베이스 장애 발생 시 데이터의 보존 기능

3 데이터베이스 현행 시스템 분석

성능 측면

  • 가용성 : 장애 발생 가능성, 백업 및 복구 편의성, DBMS 이중화 및 복제 지원
  • 성능 : 대규모 데이터 처리 성능, 대량 거래 처리 성능, 튜닝 옵션 지원 여부, 최적화 지원 및 설정 최소화
  • 상호 호환성 : 설치 가능한 OS 종류, 다양한 OS에서 지원되는 JDBC, ODBC

* JDBC(Java Database Connectivity) : 자바에서 DB를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스

* ODBC(Open Database Connectivity) : DB를 액세스 하기 위한 표준 개방형 응용 프로그램 인터페이스

지원 측면

  • 기술 지원 : 오픈 소스 여부
  • 구축 비용 : 라이선스 정책 및 비용, 유지/관리 비용

6 비즈니스 융합 분석

1 개념

융합을 통해 새로운 비즈니스 모델로 범위를 확대하는 것

2 유형

  • 고객 가치(Why) : 개인, 사회, 인류의 행복과 번영을 위한 가치 창출
  • 시장 유통(Whom) : 신시장 개척 또는 미래시장 선점
  • 가치 제안(What) : 시장/고객의 욕구 대응, 신상품 개발
  • 공급 역량(Who) : 신기술, 신규 역량을 활용한 상품 생산 및 판매
  • 생산 방식(How) : 제품/서비스의 생산, 판매 프로세스 혁신

3 절차

  1. 기업전략 분석
  2. 영역 및 방향 설정
  3. 포트폴리오 선정
  4. 융합모델 설계/평가
  5. 비즈니스 융합 실행/개선

2 요구사항 확인

1 요구분석

1 개념

요구사항 간 상출 해결, 소프트웨어 범위 파악 -> 외부환경과의 상호작용 분석

2 기법

  • 요구사항 분류 : 기능/비기능 구분, 소프트웨어에 미치는 영향 범위 파악, 소프트웨어 생명주기 중 변경 발생 여부
  • 개념 모델링 : 문제 도메인의 엔터티들과 개별 관계 및 종속성 반영, Usecase 다이어그램 사용 多
  • 요구사항 할당 : 요구사항을 만족시키기 위한 아키텍처 구성요소 식별, 추가 요구사항 발견 가능
  • 요구사항 협상 : 상충되는 요구 합의
  • 정형 분석 : 표현

2 UML(Unified Modeling Language)

1 개념

객체지향 소프트웨어 개발과정에서 모델링 기술과 방법론을 통합하여 만든 표준화된 범용 모델링 언어

2 특징

  • 가시화 언어 : 오류 少, 의사소통 용이
  • 구축 언어 : 실행 시스템에 대한 시각적 예측
  • 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
  • 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서

3 구성요소

  • 사물 : 추상적인 개념, 주제 (명사, 동사)
  • 관계 : 사물의 의미를 확장하고 명확히 하는 요소, 사물과 사물을 연결하여 표현 (형용사, 부사)
  • 다이어그램 : 사물과 관계를 그림으로 표현

4 다이어그램

요구사항

  • Usecase : 사용자 관점에서 시스템의 활동을 표현, 기능적 요구 정의

정적 모델링

  • 클래스 : 속성과 동작으로 구성
  • 객체 : 연관된 모든 인스턴스
  • 상태 : 모든 상태와 전이, 진입 조건, 탈출 조건

동적 모델링

  • 시퀀스 : 객체 간 상호작용을 메시지 흐름으로 표현
  • 협업 : 객체 간 연관성
  • 활동 : 활동의 순서대로 흐름 표현
  • 컴포넌트 : 프로그래밍 작업
  • 배포 : 컴포넌트 사이의 종속성

3 애자일 방법론

1 개념

개발과 함께 즉시 피드백을 받아 유동적으로 개발

* cf ) 폭포수 방법론 : 처음부터 끝까지 계획을 수립하고 개발

2 등장 배경

  • 소프트웨어 개발 환경의 변화 : 개발 트렌드의 변화( -> 모바일 )
  • 기존 개발 방법론의 한계 : 절차 위주 -> 신속한 대응이 어렵다

3 주요 원칙

  • 개인과 상호작용 > 공정과 도구
  • 변화에 대응 > 계획을 따르기
  • 동작하는 소프트웨어 > 포괄적인 문서
  • 고객과의 협력 > 계약 협상

4 유형

  • XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론

    * 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중

  • 스크럼 : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

    * 주요 개념

    • 백로그 : 제품과 프로젝트에 대한 요구사항
    • 스프린트 : 짧은 개발 기간 동안 반복적 수행으로 개발 품질 향상
    • 데일리 미팅 : 매일 15분 정도 미팅으로 To-Do List 계획 수립
    • 스크럼 마스터 : 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
  • 린(Lean) : 낭비 요소를 제거하여 품질을 향상시킨 방법론

    * 7가지 원칙 : 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화

5 비교 ( vs 전통적 방법론 )

  애자일 방법론 전통적 방법론
계획 수립 유동적 범위 설정 확정적 범위 설정
업무 수행 팀 중심 업무 수행 관리자 주도적 명령과 통제, 개인 단위
개발/검증 반복 주기 단위 분석/설계/구현/테스트 순차적
팀관리 업무 몰입, 팀 평가 경쟁, 개별 평가
문서화 코드 강조 문서화 강조
성공 요소 고객 가치 전달 계획/일정 준수

3 분석 모델 확인

1 모델링 기법

1 개념

물리현상을 이용하기 쉬운 형식으로 표현

2 모델링 역할

상황에 대한 이해 증진, 해결책 설명

3 모델링 절차

  1. 요구사항 분석 : 현행 데이터의 문제점과 개선해야 할 점 확인 -> 개선점 도출
  2. 개념 모델링 : 데이터 모델의 전체적인 모양 결정
  3. 논리 모델링 : 개념 모델을 상세화
  4. 물리 모델링 : 논리 데이터 모델을 DBMS의 특성 및 성능을 고려하여 구체화

2 분석 자동화 도구

1 개념

요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 자동화도구(CASE)

* 자동화도구(Computer Aided Software Engineering) : 소프트웨어 생명주기의 전체 단계를 연결 주고 자동화해주는 도구 / 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경 조성

2 등장 배경

  • 산업 측면 : 소프트웨어 위기의 극복 대응방안
  • 관리 측면 : 사용자의 요구사항과 실제 시스템 간의 차이 / 재사용성, 생산성 및 유지보수의 어려움

3 특징

  • 표준화 적용과 문서화를 통한 보고 -> 품질 개선 가능
  • 변경 사항과 변경으로 인한 영향에 대한 추적이 쉽다
  • 명세에 대한 유지보수 비용 축소 가능

4 분류

  • 상위 CASE : 모델 간 모순 검사, 오류 검증, 자료 흐름도 작성 지원
  • 중간 CASE : 상세 설계 작업, 화면 출력 작성 지원
  • 하위 CASE : 시스템 명세서, 소스 코드 생성 지원

3 요구사항 관리 도구

1 개념

요구사항을 기반으로 프로젝트 관리, 설계, 개발, 테스트 등을 수행할 수 있는 역할을 지원하는 도구

2 기능

기본 기능

  • 프로젝트 생성 : 템플릿, 재사용
  • 요구사항 작성 : 고유 ID, 식별자 사용 구분
  • 요구사항 불러오기/내보내기 : 다양한 확장자 제공

핵심 기능

  • 요구사항 이력 관리 : 변경 이력 관리 기능 제공
  • 요구사항 베이스라인 : 확정을 위한 베이스라인 제공
  • 요구사항 추적성 : 이력 추정

부가 기능

  • 협업 환경 : 동시 편집 기능 제공
  • 외부 인터페이스 : 형상 관리 도구와의 연동
  • 확장성 : 타 시스템 연동 제공

3 분류

상용제품

  • 헬릭스 RM : 요구사항 재사용 -> 검증 시간과 반복 업무를 줄인다
  • 지라 : 애플리케이션 생명주기 관리, 요구사항 관리
  • 오르카노스 : 기업 대상 요구사항 관리용 단일 저장소 제공
  • 리큐테스트 : 요구사항 파악 및 관리 프로세스를 단순화

오픈 소스

  • 레드마인 : 웹 기반 프로젝트 관리, 버그 추적 기능
  • 테스트링크 : 테스트 케이스와 요구사항의 매핑 지원
반응형
반응형
반응형

+ Recent posts