본문 바로가기

미래를 위한 준비/정보처리기사

정보처리기사 6일차

[소프트웨어공학] CASE란?

소프트웨어공학을 지원하는 방법론/자동화도구
프로그램을 만들어서 팔려고하는데, 그 프로그램을 짜는 형태를 지원해주는 노하우나 프로그램

S/W개발 방법론 + 자동화 도구
ex) 세탁기를 그냥 놔두면 안되고 뭔가를 눌러야 내가 원하는것이 작동되는것처럼 운영되는 프로그램

 


 


 

 

 

다이어그램 그릴때 <<include>>, <<extends>> 를 말하는 것같다.

 

 

 


CASE == 소프트웨어 개발을 도와주는 Tool 정도로 이해가 됩니다.

  • 요구분석 -> 설계 -> 구현 -> 검사 및 디버깅 이러한 과정에서 CASE를 활용하여 자동화한다고 합니다.
  • 하나의 Tool을 활용하면 얻는 장점인 “표준화”된 개발 환경을 구축할 수 있겠죠.
  • 하나의 Tool을 활용하면 얻는 장점인 “커뮤케이션”을 얻을 수 있을 겁니다. (서로 다른 언어로 개발하는 것보다 하나의 언어로 개발할 때, 커뮤니케이션이 좀더 쉬운 것 처럼요)

 

CASE의 장점

  • 개발속도가 빨라진다. -> 아무래도 하나의 툴을 쓰는 이점이랑 비슷할 것 같아요.
  • 오류 수정이 쉬워지고 이로 인해 소프트웨어의 품질 향상이 기대된다. -> 제발요
  • 표준화가 쉽다.

 

CASE의 기능

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

 

 

CASE(Computer-Aided Software Engineering)의 원천 기술

  • 구조적 기법
  • 프로토타이핑 기술
  • 자동프로그래밍 기술
  • 정보 저장소 기술
  • 분산 처리 기술

 

도출 -> 분석 -> 명세 -> 확인

순서대로 요구사항 개발 프로세스는 진행됩니다.


 

8이 움직입니다.

8이 끝나면 9가 움직입니다.(그 다음것이 움직입니다)

 


 

INTERSECT

교집합 - 양쪽 모두 에서 포함된 행을 검색


트랜잭션이란?

  트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한


데이터베이스의 상태를 변화시킨다는 것은 무얼 의미하는 것일까?

 

간단하게 말해서 아래의 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것을 의미한다.

 

  • SELECT
  • INSERT
  • DELETE
  • UPDATE

착각하지 말아야 할 것은, 작업의 단위는 질의어 한문장이 아니라는 점이다.

 

작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다.

 

게시판을 예로 들어보자. 

 

게시판 사용자는 게시글을 작성하고, 올리기 버튼을 누른다. 그 후에 다시 게시판에 돌아왔을때, 

 

게시판은 자신의 글이 포함된 업데이트된 게시판을 보게 된다.

 

이러한 상황을 데이터베이스 작업으로 옮기면, 사용자가 올리기 버튼을 눌렀을 시, Insert 문을 사용하여

 

사용자가 입력한 게시글의 데이터를 옮긴다. 그 후에, 게시판을 구성할 데이터를 다시 Select 하여 최신 정보로

 

유지한다. 여기서 작업의 단위는 insert문과 select문 둘다 를 합친것이다. 이러한 작업단위를 하나의 트랜잭션이라 한다.

 

관리자나 개발자가 하나의 트랜잭션 설계를 잘하는 것이 데이터를 다루는 것에 많은 이점이 있다.

 

 

트랜잭션의 특징

 트랜잭션의 특징은 크게 4가지로 구분된다. 

 

  • 원자성 (Atomicity)
  • 일관성 (Consistency)
  • 독립성 (Isolation)
  • 지속성 (Durability)

원자성(Atomicity)

  • 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장
  • Commit과 Rollback 명령어에 의해 보장 받는다.
  • ex) 예를 들어, 자금 이체 과정에서 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다.
  •  

일관성(Consistency)

  • 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
  • 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.
  •  

격리성(Isolation)

  • 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장
  • 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음
  •  

지속성(Durability)

  • 성공적으로 수행된 트랜잭션은 영원히 반영됨

 

 

트랜잭션의 Commit, Rollback 연산

  •  Commit이란 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때, 하나의 트랜잭션이 끝났다라는 것을
  • 알려주기위해 사용하는 연산이다. 이 연산을 사용하면 수행했던 트랜잭션이 로그에 저장되며, 후에 Rollback 연산을 수행했었던 트랜잭션단위로 하는것을 도와준다.
  • Rollback이란 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다.
  • 후에 사용자가 트랜잭션 처리된 단위대로 Rollback을 진행할 수도 있다.

 


 

  • 결합도 - (결)석한 성적 (낮)은 (자)(슥) (제)(외)하고 넌 (공)부(나) 해
  • 응집도- 응? (놀)(시간) 많은 놈 (절)(교)하고, 연락(통신) 끊고 (순차) (높)이(기)나해.

 


 


 


 


728x90

'미래를 위한 준비 > 정보처리기사' 카테고리의 다른 글

정보처리기사 8일차  (0) 2021.08.02
정보처리기사 7일차  (0) 2021.08.01
정보처리기사 5일차  (0) 2021.07.30
정보처리기사 4일차  (0) 2021.07.29
정보처리기사 3일차  (0) 2021.07.28