2022년 9월 13일 화요일
@ 원래 심리적으로 연휴를 보내고 오면, 뭔가 적응이 안되거나
오히려 컨디션과 마음가짐이 마냥 좋지는 못할 수 있는데,
전혀 그렇지 않고 매우 양호하다, 생활 여건을 공부에
초점을 맞춰 놓고 진행하기에 더더욱 유리해서 그런지
복귀해서 바로 집중할 수 있게 되는 것 같다. 또 화이팅.
[수업 순서]
[유스케이스 다이어그램]
1-1. UML이란?
- 통합 모델링 언어(Unified Modeling Language)
- 소프트웨어 공학에서 사용되는 표준화 된
범용 모델링 언어
- 소프트웨어 개념을 다이어그램으로 그리기 위해
사용하는 시각적인 표기법
1-2. UML의 필요성
- 프로젝트 팀 내에서 의사 소통 하기 좋음
- 개발할 시스템 구축에 대한 기초를 마련할 수 있음
- 대규모 프로젝트 구조의 로드맵을 만들 때 유용함
- 소프트웨어 구조의 재사용 문제 해결 가능함.
1-3. UML Diagram 종류
- 정적 다이어그램
= 모델링 되는 시스템에 있어야 하는 사항을 강조
= 소프트웨어 시스템의 소프트웨어 아키텍쳐를
문서화하는데 광범위하게 사용
- 동적 다이어그램
= 모델링되는 시스템에서 발생해야 하는 일을 강조
= 소프트웨어 시스템의 기능을 설명하는데 광범위하게 사용
2-1. 유스케이스 다이어그램
- 동적(행위) 다이어그램으로 시스템 내의
활동들의 흐름을 보여줌
- 여러 업무 프로세스를 설명하는데 자주 활용
2-2. 유스케이스 다이어그램 요소
2-2-1. 액터
- 시스템과 상호작용을 하는 시스템 외부의 존재로
개발 대상에 따라 달라질 수 있음
- 시스템 관점에서 바라본 사용자의 역할을 뜻해야 함
2-2-2. 유스케이스
- 개발 대상이 되는 시스템이 제공하는 개별적인 기능을 뜻하는 것으로 시스템 동작 하나의 기술
- 사용자가 인지할 수 있는(눈에 보이는) 하나의
기능 단위
2-3. 유스케이스 다이어그램 상황별 예시
2-3-1. 연관 관계의 오류
- 연관 관계(실선)는 액터와 유스케이스 간만 사용 가능
2-3-2. 의미에 따른 모델링
- 어디에 의미를 두고자 하느냐에 따라 아래 모든 형태로
표현 가능
2-3-3. 로그인 상황
- 대부분의 기능이 로그인이 되어야만 수행할 수 있다고 하여 모든 유스케이스에 include 선을 추가하면
그리기 번거로워짐
- 로그인이 선행 기능이라는 것은 누구나 이해할 수 있는 부분이므로 별도의 유스케이스로 표현하는 것이 나음
2-3-4. 유스케이스의 동일한 기능 제공
- 회원과 관리자가 동일한 기능을 수행하면 이를
통합해서 처리할 수 있음
- 다만 '회원 등록' 기능은 관리자가 수행하는 기능이
아닐 경우 반드시 분리해서 작성해야 함
2-3-5. 유스케이스 도출 시 유의점
- 하나의 기능 단위로 구분하여 유스케이스를 도출해야 함
[DB 모델링]
1-1. 모델링의 필요성
- 시냇물에 디딤돌을 만들어 나가는 것은 별다른 설계도나
구상을 요구하지 않는다.
- 하지만 큰 다리를 건설해야 한다면 건설 자재부터
물의 깊이 등 고려해야 할 사항이 많아진다.
- 아무리 유명하고 경험많은 건축가라도 건설할 다리 모형이나
알아보기 쉬우며 정확한 내용으로 작성된 설계도가 없다면
현실세계에 놓을 다리를 건설하기란 쉽지 않다.
- 이와 같이 복잡한 현실세계를 단순화하고 목적에 부합하며
정확한 내용으로 표현할 수 있다면 이를 참고하여
다리 건설 뿐 아니라 여러 방면에서 도움을 받을 수 있다.
(의사소통,시뮬레이션,문제해결,핵심파악,교육,훈련,연구,개발)
1-2-1. 모델링의 특징
- 복잡한 현실 세계를 선택과 집중을 통해 목적에 부합하는
필요한 것만 선택하는 것
1-2-2. 추상화
- 현실세계의 다양한 현상을 일정한 형식의 표기법으로
관련있는 비슷한 수준끼리 묶어낸 것
1-2-3. 명확화
- 누구나 쉽게 이해할 수 있게 애매모호함을 제거하고
정확하게 기술하는 것
2-1. 데이터 모델링의 필요성
2-1-1. 파일 저장
- 어플리케이션에서 사용하는 데이터나 정보를 메모리에서만
관리해서 사용하게 되면 어플리케이션이 종료되거나
컴퓨터가 꺼지면 데이터가 사라지게 된다. 따라서 데이터가
소멸되지 않게 보관하기 위해서 디스크라는 저장장치에
파일 형식으로 저장하고 읽고 쓰게 된다.
- 시스템 장애나 파일 입출력 도중 문제가 발생했을 때
원상태로 복구 시키기가 힘들다.
- 이진 파일은 사람이 바로 읽고 해석하기 힘들다.
2-1-2. 엑셀 파일 저장
- 한눈에 알아보기 쉽게 엑셀 파일로 2차원 테이블 형태로
저장하게 되면 각 컬럼과 데이터를 한눈에 살펴 볼 수 있다.
- 엑셀 파일의 경우 컬럼이 늘어날 수록, 같은 컬럼에
들어가야 될 데이터가 많아질수록 중복되는 데이터가 많아지고
저장할 데이터가 기하 급수적으로 많아진다.
- 엑셀파일의 경우 하나의 테이블로 관리 시 데이터가 늘어 날수록
처리되는 시간이 많이 걸리고 따로 뜯어서 관리하기가 힘들다.
(대략 10만행 이상이 되면 속도가 많이 느리게 된다.)
- 중복된 데이터가 많아 행을 추가 할때, 삭제 할 때, 수정할 때마다
번거로운 일이 발생한다.(이상(Anomaly)에서 자세히 다룰 예정)
2-1-3. 관계형 데이터 베이스 저장
- 각 데이터들의 종류를 한눈에 파악하기 쉽다.
- 데이터 테이블 간의 관계를 통해 연관있는 데이터들이
어떻게 누적되어 가는지 한눈에 파악하기 쉽다.
- 중복값이 제거되어 중복된 데이터로 인한 문제들을 해결할 수 있다.
2-1-4. 관계형 데이터 베이스 저장을 위한 설계
- 각 테이블들이 어떤 기준으로 따로 만들어져야 하는지에 대한
기준을 세울 수 있어야 한다.
- 테이블들의 컬럼이 어떤 의미인지 파악해서 테이블 별로
정의 될 수 있도록 해야 한다.
- 데이터들 간에 어떤 관계들이 있는지를 확인하고 서로 관련 있는
테이블들 간에 어떤 관계를 맺어야 하는지 정의할 수 있어야 한다.
2-2. 소프트웨어 개발절차에 따른 정보시스템 구축 절차
- 위의 그림은 폭포수(Waterfall) 모델 방식의 일반적인
소프트웨어 개발 절차이다.
- 정보시스템이란 데이터를 입력받아 처리하여 정보를
산출하는 시스템이다.
- 기업환경에서 업무처리나 경영 의사결정에 필요한 데이터를
수집, 저장, 가공, 배분하게 된다.
2-2-1. 데이터 관점 모델링
- 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는
무엇인지에 대한 모델링을 통해 ERD를 산출하고 물리적
데이터베이스 설계와 데이터베이스 구축 및 튜닝까지의 과정이 포함된다.
2-2-2. 프로세스 모델링
- 업무가 어떻게 구성되고, 업무의 처리절차, 방법이
어떻게 되는지를 모델로 표현하는 단계
2-2-3. 상관 모델링
- 데이터를 가지고 하는 일에 따라 데이터가 어떻게 영향을 받고 있는지
모델링 하는 단계
2-3. 데이터 모델링의 이해관계자
- 정보 시스템을 구축하는 모든 사람은 데이터 모델링도 전문적으로
할수 있거나 적어도 완성된 모델을 정확하게 해설할 수 있어야 한다.
- IT 종사자가 아닌 경우에도 해당 업무에서 정보화를 추진하는 위치에
있는 사람 또한 데이터 모델링에 대한 개념 및 세부사항에 대해
어느 정도 지식을 가지고 있어야 한다.
- 현업의 IT업무 담당자 또한 모델링을 이해할 수 있어야 프로젝트
수행 중 의사소통을 잘 할 수 있고 업무를 잘못 해석하여
잘못된 시스템을 구축하는 위험을 줄일 수 있다.
2-4. 데이터 모델 표기법
2-4-1. 피터첸 표기법
- 1976년 피터첸이 ER Model이라는 표기법을 만듦
- 주로 국내 대학에서는 피터첸 표기법을 이용해 모델링하는
방법을 가르치고 있다.
2-4-2. IE 표기법 vs 바커 표기법
- IE 표기법은 범용적인 표기법이다.
- 바커 표기법은 데이터 아키텍처 전문가 관련 자격에서 적용되며
IE표기법에 비해 논리 모델링 단계에서 배타 관계나
슈퍼 서브 속성에 대한 표기에 있어 더 구체적으로 표현 가능하다.
2-5. 관계형 모델(Relational Model)
2-5-1. 릴레이션
2-5-2. 무결성
2-5-2-1. 무결성이란
- 무결성은 데이터 값이 정확한 상태를 의미한다.(완전성과 정확성)
- 정합성은 데이터가 서로 모순이 없이 일관되게 일치해야 함을
의미하는 반면 무결성은 데이터가 완전하고 정확해야 한다는 의미이다. (정합성은 맞지만 실제 데이터는 모두 틀린 값이라면 무결성은 위반한 것)
※ 수업 진도도 밟으면서 세미프로젝트 기획도
같이 진행하고 있는데, 뭔가 정신이 하나도 없다ㅠ
컨디션의 문제라기 보단, 선택과 집중의 문제인데
진도도 몰입을 하면서 프로젝트도 같이 겸비할 수 있는
시기로 보내지 않으면 둘다 놓칠 수도 있을 것 같다,
우선, 할 수 있는 노력들은 전부 쏟아내려 하자!