안녕하세요. 소복냥입니다.
오늘도 달려봅니다.

* 트랜잭션의 특징
Atomicity 원자성 |
- 트랜잭션의 연산은 DB에 모두 반영되도록 완료 (commit)되든지, 전혀 반영되지 않도록 복구 (Rollback)해야 합니다. - 트랜잭션 내의 모든 명령은 반드시 완벽히 수행, 모두가 완벽히 수행되지 않고 어느 하나라도 오류발생시, 트랜잭션 전부가 취소되야 합니다. |
Consistency 일관성 |
- 트랜잭션이 실행을 성공적으로 완료하면, 언제나 일관성 있는 DB 상태로 변환 합니다. - 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 수행 완료 후의 상태가 같아야 합니다. |
Isolation 독립성, 격리성, 순차성 |
- 둘 이상의 트랜잭션이 동시병행 수행될 경우, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없습니다. -수행중인 트랜잭션은 완료될 때까지 다른 트랜잭션에서 수행결과를 참조 할 수 없습니다. |
Durability 영속성, 지속성 |
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영 되어야 합니다. |
* 뷰 (view) 설계
뷰 특징
- 사용자에게 접근이 허용된 자료만 제한적으로 보여주기 위해, 하나 이상의 기본 테이블로 유도된, 이름을 가지는 가상 테이블.
- 임시적인 작업 (데이터 보정작업, 처리과정 시험)을 위한 용도로 활용.
- 뷰는 기본 테이블과 같은 형태의 구조 사용, 조작도 거의 같습니다.
- 가상 테이블이기 때문에, 저장장치 내에 물리적으로 존재(구현)되어있지 않습니다.
- 데이터의 논리적 독립성 제공.
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에, 관리 용이, 명령문 간단.
- 뷰를 통해서만 데이터에 접근하게 되면, 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있습니다.
- 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산 가능.
- 일단 정의된 뷰는 다른 뷰의 정의에 기초될 수 있습니다.
- 뷰가 정의된 기본 테이블이나, 뷰를 삭제하면, 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동 삭제.
- 조인문 사용 최소화로 사용상의 편의성 최대화.
- Create, Drop.
장점 | 단점 |
- 논리적 데이터 독립성 제공됩니다. - 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해줍니다. - 사용자의 데이터 관리 간단해집니다. (사용자 데이터 관리 용이) - 접근제어를 통한 자동보안이 제공됩니다 - 데이터 보관이 용이 합니다. |
- 독립적인 인덱스 가질수 없습니다. - 뷰의 정의 변경불가합니다. - 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약 따릅니다. |
* 소프트웨어 공학의 목적
- 소프트웨어 공학은 소프트웨어 위기를 극복하기 위해 개발한 학문으로, 소프트웨어 제품의 품질을 향상하고, 생산성과 작업 만족도 증대, 신뢰도 높은 소프트웨어의 생산 등을 목적으로 하는 학문.
- 소프트웨어를 개발 및 유지보수의 생산성 향상과 품질 향상.
- 유지 보수가 용이하도록 소프트웨어를 개발하여 재사용성을 높일 수 있는 소프트웨어 개발.
- 최소의(최적의) 비용과 자원 안에서 품질 좋은 소프트웨어를 기간 내에 생산하는 것이 소프트웨어의 주된 목적.
* CASE (Computer Aided Software Engineering)
- 소프트웨어 공학의 자동화를 의미하며, 소프트웨어 공학 작업 중 하나의 작업을 자동화한 소프트웨어 패키지를 CASE 도구라 한다. 이러한 도구를 한데 모아놓은 것을 소프트웨어 공학 환경 (Software Engineering Environment)이라 한다.
- CASE 도구들은 소프트웨어 관리들과 실무자들이 소프트웨어 프로세스와 관련된 활동을 지원한다. 즉, 프로젝트 관리 활동을 자동화하고, 프로세스에서 생상 된 결과물을 관리하며, 엔지니어들의 분석, 설계 및 코딩과 테스트 작업을 도와준다.
- CASE의 주요 기능 : 다양한 소프트웨어 개발 모형 지원, 그래픽 지원, 소프트웨어 생명주기 전 단계의 연결.
* 소프트웨어 생명 주기
- 소프트웨어 제작 공정 과정이다.
- 시스템 개발 주기 (System Development Life Cycle : SDLC)라 부른다.
- 개발 단계에서 점차 변화해 가면서 나오는 소프트웨어 형상 (Configuration)을 가시화한다.
- 소프트웨어가 개발되기 위해 정의되고 사용이 완전히 끝나 폐기될 때까지의 전 과정이다.
* 정의 단계
- 무엇 (What)을 개발한 것인지를 명확히 밝히는 단계.
- 시스템 정의와 프로젝트 계획 및 사용자 요구분석을 하는 단계.
- 관리자와 사용자의 참여가 가장 높은 단계.
* 개발 단계
- 어떻게 (How) 개발할 것인지에 대한 절차를 밝히는 단계.
- 설계와 구현, 시험 단계.
- 설계는 품질에 많은 영향을 미치는 단계.
* 지원 단계 (유지보수 단계)
- 수정 및 변경에 관한 문제를 다루는 단계.
- 가장 오랜 시간이 들며 비용이 가장 많이 들어가는 단계.
- 유지보수의 유형 : 완전, 수정, 적응, 예방 유지보수.
* 폭포 수형 모형 (선형순 차 모형, 전형적인 생명주기 모형 : Boehm, 1979)
- 소프트웨어의 개발 시 프로세스에 체계적인 원리를 도입할 수 있는 첫 방법론이다.
- 적용사례가 많고 널리 사용된 방법이다.
- 단계별 산출물이 명확하다.
- 각 단계의 결과가 확인된 후에 다음 단계로 진행하는 단계적, 순차적, 체계적인 접근 방식이다.
- 기존 시스템 보완에 좋다.
- 응용 분야가 단순하거나 내용을 잘 알고 있는 경우 적용한다.
- 비전문가가 사용할 시스템을 개발하는 데 적합하다.
* 계획 단계
- 문제를 파악하고 시스템의 특성을 파악하여 비용과 기간을 예측한다.
- 개발의 타당성을 분석하고 전체 시스템이 갖추어야 할 기본 기능과 성능 요건을 파악한다.
* 요구 분석 단계
- 사용자 요구를 정확히 분석, 이해하는 과정으로 구현될 시스템의 기능이나 목표, 제약사항 등 정확히 파악한다.
- 소프트웨어의 기능, 성능, 신뢰도 등 목표 시스템의 품질을 파악하는 것이다.
- 개발자 (분석가)와 사용자 간의 의사소통이 중요하며, 명확한 기능 정의를 해야 한다.
* 설계 단계
- 요구사항을 하드웨어 또는 소프트웨어 시스템으로 분배하는 과정이다.
- 모든 시스템의 구조를 결정하게 되는데, 소프트웨어 설계는 프로그램의 데이터 구조, 소프트웨어 구조, 인터페이스 표현, 알고리즘의 세부 사항들에 초점을 맞춰 진행한다.
* 구현 단계
- 설계의 각 부분을 실제로 프로그래밍 언어를 이용하여 코드 화하는 단계이다.
- 각 모듈 (module) 단위로 코딩을 한다.
* 시험단계
- 각 프로그램 단위의 내부적으로 이상 여부 및 입력에 따라 요구되는 결과로 작동하는지의 여부를 확인한다.
* 운용 (operation) 및 유지보수 (maintenance) 단계
- 사용자에게 전달되어 실제로 사용되며, 전달 이후에 발생하는 변경이 있다면 변경 요구를 수용하고 계속적인 유지를 해주어야 한다.
* 폭포수 모형의 문제점
- 단계별로 구현되지만, 병행되어 진행되거나 다시 거슬러 올라갈 수 없으며, 반복을 허용하지 않는다.
- 실제 프로젝트가 순차적이라기보다는 반복적인 성향을 가지므로 개발 모델로 적합하지 않은 경우가 많다. 그래서 실제 프로젝트 수행 시 이 모델의 연속적 단계를 따르는 경우가 드물다.
- 시초에 사용자들의 모든 요구사항들을 명확히 설명하는 것이 어렵다.
- 모든 분석은 프로젝트가 시작되기 전에 완성되어야 한다. 즉, 프로그램의 모든 요구사항을 초기에 완전히 파악하도록 요구하므로 개발 프로젝트의 불명확성을 미연에 방지할 수 없다.
- 개발 과정 중에 발생하는 새로운 요구나 경험을 설계에 반영하기 힘들다.
끝까지 읽어주셔서 감사합니다!

정보처리기사 필기 문제 유형 분석 (12)
안녕하세요. 소복 냥입니다. 서론 없이 바로 갑니다! * SW 패키징 고려사항 패키징시, 사용자에게 배포되는 SW이므로 보안을 고려합니다. 사용자 편의성을 위한 복합성 및 비효율성 문제를 고려합
160326.tistory.com
반응형
'이슈' 카테고리의 다른 글
아스파탐 발암물질 논란 / 아스파탐이 뭐길래 (47) | 2023.07.05 |
---|---|
정보처리기사 필기 문제 유형 분석 (14) (3) | 2022.07.12 |
정보처리기사 필기 문제 유형 분석 (12) (3) | 2022.07.06 |
정보처리기사 필기 문제 유형 분석 (11) (0) | 2022.06.20 |
정보처리기사 필기 문제 유형 분석 (10) (4) | 2022.06.12 |