티스토리 뷰

소프트웨어 설계

디자인 패턴

Factory Method 패턴 설명

 

시퀀스 다이어그램 구성항목

시퀀스 다이어그램

- 메시지(함수호출)를 주고받으면서 시간의 흐름에 따라 상호작용하는 과정들

 

구성항목

  • 액터(Actor)
  • 객체(Object)
  • 생명선(Lifeline)
  • 메시지(Message)
  • 실행 상자(Active Box)

객체지향 설계 원칙

  • 단일 책임 원칙(SRP, Single Resopnsibillty Principle)
    - 객체는 단 하나의 책임만 가져야 한다
  • 개방-폐쇠의 원칙(OCP, Open Closed Principle)
    - 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다
  • 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
    - 일반화 관계에 대한 이야기며, 자식 클래스느 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다
  • 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
    - 인터페이스를 클라이언트에 특화되도록 분리 시키라는 설계 원칙이다
  • 의존 역전 원칙(DIP, Dependency Inversion Priciple)
    - 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운것. 거의 변화가 없는 것에 의존

CASE(computer-Adied Software Engineering) 설명

CASE 도구란?

- 소프트웨어 공학작업을 자동화한 소프트웨어 패키지라고 한다

프로젝트 관리 활동을 자동화 하고, 결과물을 관리하며, 엔지니어들의 분석, 설계 및 코딩과 테스트 작업을 도운다

 

주요기능

  • 다양한 소프트웨어 개발 모형 지원
  • 그래픽 지원
  • 소프트웨어 생명주기의 전단계 연결

 

소프트웨어 개발

ISO/IEC 12119 설명

ISO/IEC 12119란?

- 패키지 소프트웨어 제품 테스트 국제 표준

 

블랙박스 테스트 설명

블랙박스 테스트(Black Box testing)란?

- 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법

 

테스트 유형

  • 동치(동등) 분할 검사(Equivalence Partitioning Testing)
  • 경계값 분석(Boundary Value Analysis)
  • 원인-효과 그래프 검사(Cause-Effect Graphing Testing)
  • 오류 예측 검사(Error Guessing)
  • 비교 검사(Comparison Testing)

<화이트박스 테스트 유형>

  • 기초 경로 검사
  • 제어 구조 검사
    - 조건 검사
    - 루프 검사
    - 데이터 흐름 검사

디지털 저작권 관리(DRM) 기술 설명

디지털 저작권 관리(DRM)이란?

- 저작권자가 배포한 디지털 콘텐츠가 저작권자의 의도한 용도로만 사용되도록 생성, 유통, 이용까지의 전 과정에 걸쳐 관리 및 보호하는 기술

 

기술 요소

  • 암호화(Encryption)
    - 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술
  • 키 관리(Key Management)
    - 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술
  • 암호화 파일 생성(Packager)
    - 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
  • 식별 기술(Identification)
    - 콘텐츠에 대한 식별 체계 표현 기술
  • 저작권 표현(Right Expression)
    - 라이선스의 내용 표현 기술
  • 정책관리(Policy Management)
    - 라이선스 발급 및 사용에 대한 정책 표현 및 관리기술
  • 크랙방지(Tamper Resistance)
    - 크랙에 의한 콘텐츠 사용 방지 기술
  • 인증(Authentication)
    - 라이선스 발급 및 사용의 기분이 되는 사용자 인증기술

파티션 설계 유형

  • 범위 분할(Range partitioning)
    - 지정한 열의 값을 기준으로 분할
  • 해시 분할(Hash Partitioning)
    - 해시 함수를 적용한 결과 값에 따라 데이터 분할
  • 조합 분할(Composite Partitioning)
    - 범위 분할 후 해시 함수를 적용하여 다시 분할

애플리케이션 통합 테스트 유형

  • 하향식 통합 테스트
    - 깊이 우선 방식 or 너비 우선 방식
    - 상위 컴포넌트를 테스트 하고 점증적으로 하위 컴포넌트를 테스트
    - 스텁(Stub)을 사용
  • 상향식 통합 테스트
    - 프로그램의 하위 모듈에서 상위 모듈으로 통합하면서 테스트
    - 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터 필요
    - 드라이버(Driver)를 사용
  • 회귀 테스트
    - 이미 테스트된 프로그램의 테스팅 반복
    - 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인
  • 빅뱅 테스트
    - 통합 테스트 중 비점진적 통합 방식

소프트웨어 개발 단계 및 테스트 단계

 

단위 테스트(Unit Test)
소스 코드의 특정 모듈이 정확히 작동하는지 검증하는 레벨

 

통합 테스트(Integration Test)

통합 테스팅은 단위 테스팅이 끝난 항목들을 통합해가며 검증하는 방식

 

시스템 테스트(System Test)

개발된 소프트웨어가 컴퓨터 시스템에서 완벽하게 수행되는가를 점검하는 방식

 

인수 테스트(Acceptance Test)

개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 점검하는 방식

 

데이터베이스 구축

정규화

정규화(Normalization)란?

- 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이다

 

 

제 1 정규화(1NF)

- 테이블의 컬럼이 원자값만으로 구성된 정규형

 

EX)

이름 수강과목 나이
홍길동 C,C++ 22
김유신 JAVA,python 20

 

위에 테이블을

이름 수강과목 나이
홍길동 C 22
홍길동 C++ 22
김유신 JAVA 20
김유신 python 20

으로 변환

 

제 2 정규화(2NF)

- 기본 키가 아닌 모든 속성이 기본 키에 대해 완전 함수적 종속을 만족하는 정규형

 

EX) 제 1 정규화 테이블을 가지고

이름 나이
홍길동 22
김유신 20

 

이름 수강과목
홍길동 C
홍길동 C++
김유신 JAVA
김유신 python

두 테이블로 나누어진다.

 

제 3 정규화(2NF)

- 기본 키가 아닌 모든 속성이 기본 키에 대해 이행적 종속을 만족 안 하는 정규형

 

보이스/코드 (BCNF)

- 모든 결정자가 후보 키인 정규형 

 

데이터 모델 설명

데이터 모델 설명 예제 사진

Relation : 테이블 수 ex) 1개

Attribute : 열의 수 ex) 3개

Tuple : 행의 수 ex) 5개

병행제어 기법 중 로킹(Locking) 설명

로킹(Locking)이란?

- 데이터베이스 병행 제어를 위해 트랜잭션을 접근하고자 하는 데이터를 잠가 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법

 

- 특징

  • 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다
  • 데이터베이스, 파일, 레코드 등은 로킹 단위가 된다
  • 트랜잭션은 로킹이 된 데이터에 대해서만 연산을 수행
로킹 단위 로킹의 단위 병행 제어 로킹 오버헤드 병행성 수준 데이터 베이스 공유도
커짐 적어짐 단순 감소 낮아짐 감소
작아짐 커짐 복잡 증가 높아짐 증가

 

뷰(View) 설명 및 장단점

뷰(View)란?

- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블

 

장점

  • 논리적 데이터 독립성을 제공
  • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해줌
  • 사용자의 데이터 관리를 간단하게 해줌
  • 접근 제어를 통한 자동 보안이 제공된다

단점

  • 독립적인 인덱스를 가질 수 없다
  • 뷰의 정의를 변경할 수 없음(생성시 Create , 삭제시 Drop 사용)
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름(Alter 사용 불가능)

분산 데이터베이스 설명 및 6가지 투명성

분산 데이터베이스란?

- 여러 곳으로 분산된 데이터베이스를 하나의 가상 시스템처럼 사용할 수 있게 하는 데이터베이스

 

6가지 투명성(Transparency)

  • 분할 투명성(Division Transparency)
    - 하나의 논리적 관계가 여러 단편으로 분할되어 각 단편의 사본이 여러 사이트에 저장된다
  • 위치 투명성(Location Transparency)
    - 사용하는 데이터의 저장 장소를 명시할 필요 없음
  • 중복 투명성(Replication Transparency)
    - DB 객체가 여러 사이트에 중복되어 있는지 알 필요가 없다
  • 장애 투명성(Failure Transarency)
    - 장애가 발생해도 트랜잭션을 정확히 처리하고 데이터 무결성을 보장함
  • 병행 투명성(Concurrency Transparecy)
    - 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
  • 지역사상 투명성
    - 지역DBMS와 물리적 DB사이의 Mapping 보장

정규화 목적

  • 불필요한 데이터를 제거해 불필요한 중복을 최소화
  • 데이터베이스 구조 확장 시 재디자인을 최소화
  • 효과적인 검색 알고리즘을 생성할 수 있다

Division 예제

Division 예제

- R과 S에 포함된 튜플을 모두 가지는 R의 튜플 중에, S에 포함된 애트리뷰트를 제거하고 반환한다.

 

답 :

 

 

 

 

 

DB 로그 회복기법

회복이란?

- 트랜잭션 도중에 손상된 DB를 이전 상태로 복귀하는 작업

 

기법 3가지

  • 즉각 갱신 기법
    - 트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 DB에 반영하는 기법
  • 연기 갱신 기법
    - 트랜잭션을 완료할 때까지 DB에 갱신을 연기하는 기법
  • 검사점 기법
    - 트랜잭션 중간에 검사점을 로그에 보관하여 트랜잭션 전체를 취소하지 않고 검사점까지 취소할 수 있는 기법

관계대수 순수관계 연산자

- 연산자 4가지

  • select
  • project
  • join
  • division

릴레이션 조작시 현상

  • Anomaly(이상)
    - 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

릴레이션 특징

- 특징

  • 한 릴레이션에는 똑같은 튜플이 포함 될 수 없으므로 포함된 튜플들은 모두 상이하다
  • 튜플 사이에는 순서가 없다
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다
  • 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자 값만을 저장한다

프로그래밍 언어 활용

HRN 방식 스케줄링 작업 순서

작업순서 예제

 

- HRN 방식의 우선순위 산정 공식

(대기시간+서비스시간) / 서비스시간 // 값이 클수록 우선순위가 높다

 

배치 프로그램 필수 요소

배치 프로그램이란?

- 사용자와의 상호작용 없이 일련 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄로 처리하는 프로그램

 

- 필수요소

  • 대용량 데이터
    - 대용량 데이터 처리 가능해야함
  • 자동화
    - 심간한 오류 상황 외에는 사용자 개입 없이 동작
  • 견고함
    - 유효하지 않은 데이터나 로직 수행 경우에도 예외 처리해서 비정상적인 동작 중단 발생하지 않아야함
  • 안정성
    - 어떤 문제가 생겼는지, 언제 발생했는지 등 추적 가능해야함
  • 성능
    - 주어진 시간 내 처리 완료 가능해야 하고, 동시 동작하고 있는 다른 애플리케이션 방해하지 않아야함

응집도 유형

응집도의 유형은 우연적<논리적<시간적<절차적<통신적<순차적<기능적 응집도 순서로 응집도가 높아진다

※ 영어도 외워야함 ..

  • 우연적 응집도(Coincidental Cohesion)
    - 서로 관련없는 요소들로만 구성
  • 논리적 응집도(Logical Cohesion)
    - 유사 성격이나 특정 형태로 분리되는 처리요소들로 모듈 형성
  • 시간적 응집도(Temporal Cohesion)
    - 특정 시간에 처리되는 몇개의 기능을 모아 모듈로 구성
  • 절차적 응집도(Procedural Cohesion)
    - 모듈안의 구성요소들이 그 기능을 순차적으로 수행 할 경우
  • 통신적 응집도(Communication Cohesion)
    - 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
  • 순차적 응집도(Sequential Cohesion)
    - 모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우
  • 기능적 응집도(functional Cohesion)
    - 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우

 

결합도 유형

유형 설명
내용 결함도
(Content Coupling)
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
공통 결합도
(Common Coupling)
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
외부 결합도
(External Coupling)
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 결합도
제어 결합도
(Control Coupling)
떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
스탬프 결합도
(Stamp Coupling)
모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
자료 결합도
(Data Coupling)
모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도

 

 

정보시스템 구축관리

디지털 트윈

디지털 트윈(Digital Twin)이란?

- 미국 제너렐 일렉영(GE)이 주창한 개념으로, 컴퓨터에 현실 속 사물의 쌍둥이를 가상화하여 만들고, 현실에서 발생할 수 있는 상황을 컴퓨터로 시뮬레이션함으로써 결과를 미리 예측하는 기술

 

수학적 산정기법

수학적 산정기법이란?

- 상향식 비용 산정 기법으로, 경험적 추정모형, 실험적 추정모형이라고 한다

- 주요 수학적 산정 기법 : COCOMO, Putnam, 기능점수(FP) 모형

 

수학적 산정 기법 특징

  • COCOMO 모형
    - 원시 프로그램의 규모인 LOC에 의한 비용 산정 기법
    - 보헴(Bohem)이 제안함
    - 프로젝트 유형
      조직형 : organic(5만라인)
      반 분리형 : semi-detached(30만 라인 이하)
      내장형 : Embeded(30만 라인 이상)
    - 종류
      기본형(basic)
      중간형(intermediate)
      발전형(detailed)

 

  • Putnam 모형 // 훈남으로 외우자 ..
    - 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형
    - 푸트남(Putnam)이 제안함
    - 자동화 추정 도구 : SLIM

 

  • 기능 점수(FUnction Point) 모형
    - 소프트웨어의 기능을 증대하는 요인별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능 점수를 산출하며, 총 기능 점수와 영향도를 이용하여 기능 점수를 구한 후 이를 이용해서 비용을 산정하는 기법
    - 알브레히트(Albrecht)가 제안함

    - 비용산정에 이용되는 요소
      자료 입력(입력 양식)
      정보 출력(출력보고서)
      명령어(사용자 질의수)

      데이터 파일

      필요한 외부 루틴과의 인터페이스

빅데이터 분석 기술

  • Data Mining
    - 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관례를 규명하여 일정한 패턴을 찾아내는 기법
  • Wm-Bus
    - 무선 미터버스, 산업용 무선 프로토콜
  • Digital Twin
    - 컴퓨터 시뮬레이션(가상화)을 통해 결과를 예측하는 기술
  • Zigbee
    - 무선 메시 네트워크의 표준(저가,저전력)

CPM 네트워크

CPM 네트워크란?

- 노드와 간선으로 이루어진 네트워크

 

임계 경로이란?

- 작업의 시작 및 종료 구간이 동시에 이루어질 때 가장 오래 걸리는 경로를 임계 경로라고 한다

 

예제 사진

임계경로 : 14일

 

합성 중심(Composition-Based), 생성 중심(Generation-Based) 설명

합성 중심(Composition-Based) 이란?

- 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 한다

 

생성 중심(Generation-Based) 이란?

- 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고도 한다

 

SPICE

SPICE란?

- 소프트웨어 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준

- 공식명칭 : ISO/IEC 15504

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함