TIL.58 part.8

hyunki__ss·2022년 9월 13일
0

2022년 9월 13일 화요일

@ 원래 심리적으로 연휴를 보내고 오면, 뭔가 적응이 안되거나
오히려 컨디션과 마음가짐이 마냥 좋지는 못할 수 있는데,
전혀 그렇지 않고 매우 양호하다, 생활 여건을 공부에
초점을 맞춰 놓고 진행하기에 더더욱 유리해서 그런지
복귀해서 바로 집중할 수 있게 되는 것 같다. 또 화이팅.

[수업 순서]

  • 유스케이스 다이어그램
  • DB 모델링

[유스케이스 다이어그램]

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. 무결성이란

  • 무결성은 데이터 값이 정확한 상태를 의미한다.(완전성과 정확성)
  • 정합성은 데이터가 서로 모순이 없이 일관되게 일치해야 함을
    의미하는 반면 무결성은 데이터가 완전하고 정확해야 한다는 의미이다. (정합성은 맞지만 실제 데이터는 모두 틀린 값이라면 무결성은 위반한 것)

※ 수업 진도도 밟으면서 세미프로젝트 기획도
같이 진행하고 있는데, 뭔가 정신이 하나도 없다ㅠ
컨디션의 문제라기 보단, 선택과 집중의 문제인데
진도도 몰입을 하면서 프로젝트도 같이 겸비할 수 있는
시기로 보내지 않으면 둘다 놓칠 수도 있을 것 같다,
우선, 할 수 있는 노력들은 전부 쏟아내려 하자!

profile
야구선수 출신 개발자

0개의 댓글