Colaboratory

구글에서 개발한 클라우드 기반 웹 Jupyter Notebook  개발 환경

코랩이라고 부름

빅데이터 및 인공지능 데이터  분석은 높은 수준의 컴퓨팅 연산 능력을 요구

서버 컴퓨터를 활용하기 어려운 경우에 사용

분석 PC에 GPU가 없는 경우가 많고,  GPU가 있더라도 사양이 낮아 제대로 분석하기 어려움

기본적인 수준의 데이터 분석을 수행할 수 있는 파이썬 프로그래밍 개발 환경 제공

교육이나 간단한 알고리즘 테스트시 유용하게 활용

 

개발환경

ID만 로그인하면 크롬 환경에서 사용가능

클라우드 기반으로 안정적인 패키지 환경을 제공하기 때문에 종속성 문제가 생길 우려가 적음

패키지 문제가 발생해도 런타임을 초기화하면 실행 초기 상태로 복구

기본적인 환경 설정이 구축되어 있어 환경 변수 세팅 등의 추가 설정을 간편하게 수행할 수 있음

Jupyter Notebook에 추가적으로 확장된 기능들도 제공

 

https://colab.research.google.com/

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

구글에서는 데이터 분석의 다양한 예제를 코랩을 통해서 제공

독립된 환경으로 너무 오래된 코드만 아니라면 거의 대부분 확실한 실행을 보장

다양한 예제를 코랩으로 구성하여 문서형태로 제공

 

확장기능

코드와 텍스트 셀을 추가할 수 있는 버튼 제공

편의 기능들 지원

 

목차구성

텍스트 셀에서 #을 활용하여 목차 구성

#의 개수가 적을 수록 상위 목차

목차를 #으로 구성하면 하위 셀들을 위로 접을 수 있음

 

코랩 저장소

코랩 저장소는 폴더 아이콘을 클릭하면 확인할 수 있음

파일을 업로드하는 방식으로 외부 파일 사용

경로 복사할 수 있음

폴더 아이콘을 클릭하면 확인 가능

/content/ 기본 저장소

 

#데이터 프레임 조작 패키지 임포트

import pandas as pd

pd.read_csv("경로 붙여넣기")

 

=> 데이터를 불러올 수 있음

 

#행렬 조작, 머신러닝, 딥러닝 모델에 입력할 때 사용

import numpy as np

 변수 = pd.read_csv("경로")

 

런타임 유형 변경

기본 로컬 환경을  GPU 환경 구축 시 상시적으로 GPU 연산을 활용할 수 있음

런타임 유형을 필요할 때 불러오는 방식을 활용

런타임 > 런타임 유형 변경을 클릭하면 사용가능

딥러닝 분석 시 하드웨어 가속기를 GPU 및 TPU로 설정하여 활용

GPU설정을 자동적으로 테서플로우, 파이토치 등에 적용되지만 TPU 설정은 따로 코드를 설정

TPU란 데이터 분석 및 딥러닝을 위한 하드웨어, 텐서프로우에 최적화된 시스템을 가짐

 

구글 코랩은 사용자 친화적인 UI/UX를 제공하면서 데이터 분석 컴퓨팅 연산 문제 해결

'파이썬' 카테고리의 다른 글

Visual Studio Code  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Jupyter Notebook  (0) 2023.07.27
아나콘다 개발 환경 구축  (0) 2023.07.27
파이썬  (0) 2023.07.27

개념적 설계 단계: 요구사항 분석에서 얻어진 산출물을 근거로 데이터 모델링

가장 일반적으로 사용되는 모델링 기법을 객체 관계모델

분석에서 개념적 데이터 모델링(ERD)

 

개념적 모델링: 업무의 핵심적인 개념을 구분, 전체적인 뼈대를 만드는 과정

개체(엔티티)를 추출하고 개체들 간 관계 정의하여 ER - 다이어그램 (ERD)을  만드는 과정 까지를 말함

사각형: 개체, 타원형: 속성, 마름모: 관계, 실선: 개체와 속성, 관계를 연결

 

개체 관계모델

ERD: 개체 관계 모델의 약어로 데이터베이스의 구조를 엔티티와 관계로 도식화하는 기법 중 하나

논리적 모델링; 회원번호 물리적 모델링: no

엔티티: 테이블, 속성: 컬럼(열), 튜플: 레코드(행)

 

개체: 명사형으로 지정, 실세계의 기본적인 표현을 할 수 있는 항목, 인스턴스의 집합

속성: 성질이나 상태, 개체가 가질 수 있는 세부적인 특성, 데이터의 가장 작은 논리적인 단위로서 속성값은 더 분해하려 해도 분해할 수 없는 원자값만을 갖는다. 물리적 모델링 과정에서 칼럼이 된다.

도메인: 하나의 속성에 나타날 수 있는 값들의 집합

인스턴스: 개체의 구체적인 하나의 예, 데이터 형식을 확인할 수 있음, 데이터 한칸 한칸.

기본키: 인스턴스들을 서로 구별할 수 있는 유일한 값을 갖는 속성. ERD에서 기본키가 되는 속성에 밑줄로 표시

관계: 개체간의 연관성을 나타내며 요구 사항 명세서에서 동사형으로 표현

레코드: 인스턴스 한줄

 

ER모델에서 개체간의 관계

1:1(One To One): 두 개체를 하나의 테이블로 통합

일대일 실선에 1

 

1:N(One To Many): 주종관계를 알아야한다. 일반적으로 일에 해당하는 테이블이 부모테이블이고 다에 해당되는 테이블이 자식 테이블이다. 부모 테이블의 기본 키를 자식 테이블에 포함시키고 외래 키로 설정, 외래키 잡을 때 컬럼명은 다를 수 있지만 자료형은 반드시 같아야한다.(값을 참조하니까)

일대 다 실선에 N

 

N:M(Many To Many): 다대다 관계에 대한 테이블을 따로 만든다. 관계에 의해 생성된 테이블을 두 개체가 갖고 있던 기본키를 외래키로 설정. 관계에 의한 테이블의 기본키를 만드는 방법은 두 가지 있다.

1. 두 외래키를 조합하여 기본키로 설정

2. 새로운 필드를 추가하여 기본 키로 설정

여러명 대 여러명

실선에 각각 N, M

 

논리적 모델 및 물리적 모델

개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 매핑하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정

 

개념적 모델링

약속된 도형으로 만듦

 

논리적 모델링 과정

상세 속성들을 모두 추출

정규화 수행

데이터 표준화 수행

 

물리적 모델

논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조 정의, 구현

DBMS 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있다.

실제 사용할 테이블, 컬럼 명

 

설계단계에서 논리적, 물리적 데이터베이스를 설계한다.

 

IE표기법에서 관계는 점선으로 표기

-강한 개체 타입은 직원 개체 타입의 직원번호와 같이 각 개체를 식별할 수 있는 기본키를 가진다.

강한 개체: 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체

 

약한 개체 타입: 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자 관계로 표현하는데 실선으로 표기함

약한 개체: 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐

 

테이블 명세: 물리적인 모델링 과정에서 엔티티는 테이블이 되고 속성은 칼럼이 된다.

 

 

SQLDevelope 에서 보기 DataModeler 브라우저

논리적 모델링 오른쪽 클릭 표시

기본UID는 기본키

 

관계설정 시 부모 테이블 먼저 선택

소스기수 : 부모 엔티티

대상기수: 자식 엔티티

소스 선택 사항; 부모 엔티티의 튜플에 대응하는 자식 엔티티의 튜플이 없을 수도 있음.

대상 선택 사항: 자식 엔티티의 튜플에 대응하는 부모 엔티티는 반드시 존재

RESTRICT: 참조 무결성 처리 규칙

관계 : 두 엔티티 간의 업무적인 연관성

식별 관계: 부모 테이블의 기본 키가 자식 테이블의 기본 키 혹은 후보 키 그룹의 구성원이 된다.

비식별 관계: 부모 테이블의 기본 키가 자식 테이블의 일반 칼럼이 된다.

 

논리적 ERD를 물리적 ERD로 복사

브라우저 창에서 논리적 모델 항목에서 관계형 모델로 엔지니어링을 선택

테이블 명세서 작성

 

영어로 변경: 엔티티 이름, 속성 이름, 주식별자(기본키) 이름, 외래 식별자(외래키) 이름

VARCHAR2, NUMBER => VARCHAR, DECIMAL을 선택 하면 변환되어 ERD에 표시

 

정규화: 데이터 모델을 보다 효율적으로 개선시켜나가는 과정, 데이터베이스에 저장되는 데이터 중복의 최소화하기 위해 서로 독립적인 관계는 별개의 테이블로 표현한다는 것

 

제 1 정규화

반복되는 속성들을 다른 개체 (테이블)로 나누어 분리하는 작업

또 다른 개체로 판단할 수 있는 속성들을 분리하고, 각 객체 속성들의 유일한 식별자를 갖게된다. 부모 테이블의 식별자는 자식 테이블의 외부키와 연결된다.

모든 속성은 반드시 하나의 값을 가져야한다.(반복 형태가 있어서는 안된다.)

정규화가 이루어지고 나면 자식 엔티티로 분리된다.

 

제 2정규화

모든 속성은 식별자에 직접적으로 의존적이어야 하며 이에 해당되지 않는 속성을 분리한다.

모든 속성은 반드시 UID 전부에 종속되어야 한다. (UID 일부에만 종속되어져서는 안된다.)

정규화가 이루어지고 나면 부모 엔티티로 분리된다.

 

제 3정규화

식별자 이외의 속성은 식별자가 아닌 다른 속성에 종속적이지 않아야한다.

UID가 아닌 모든 속성 간에는 서로 종속될 수 없다.(속성 간 종속성 배제)

실행

아나콘다 가상환경과 연동된 Jupyter Notebook 실행

Jupyter Notebook은 크롬 환경을 기본으로 하기 때문에 기본 브라우저를 크롬으로 지정

파일 검색창에서 '기본 웹 브라우저 선택' 이동

웹 브라우저 선택 장에서 크롬 선택

주피터 노트북 실행

 

새로운 노트북 파일(jpynb) 만들기

주피터 노트북 홈 화면에서 New > Python3 버튼 클릭으로 jpynb 파일을 생성

일반적인 파이썬 코드 파일은 .py확장자로 생성되지만 주피터 노트북에서는 .jpynb 파일 확장자를 사용

주피터 노트북 파일이라고 부르기도 하는 jpynb 파일은 코드 뿐만 아니라 한글, Word롸 같은 문서 편집기 프로그램처럼 텍스트, 이미지, 동영상 등의 자료를 포함할 수 있음

 

파일 경로:C:\Users\97ehf

 

파이썬 코드 테스트

노트북 파일 코드 셀에 코드 입력

print("Hello, word!")

Shift + Enter 키를 누르면 코드가 실행됨

 

Move

파일경로를 이동하는 방법은 해당 파일을 체크 후 Move 버튼을 누르는 것

Move 버튼을 누르면 원하는 경로로 해당 파일을 이동할 수 있음

기본 경로: C:\Users\윈도우 계정

파일 경로를 이동하기 위해서는 해당 코드 파일을 shutdown 해야함

주의할 점 여러개의 파일을 체크해서 일괄처리하는 기능을 지원 x

하나의 파일만을 경로를 이동하거나 삭제하는 등의 작업 수행 가능

 

파일 삭제 기능

동시 작업이 필요할 경우 직접 디렉토리에 파일 탐색기로 접근

빨간 휴지통

 

이름 바꾸기 

스크립트 안에서 노트북 파일 이름 클릭으로 바꿀 수 있음

따로 저장

스크립트 상단의 file > save as로 가능

 

pdf로 저장

스크립트 상단의 file > save as에서 pdf로 저장하는 방식을 따로 설정해야함

크롬 웹 문서를 pdf로 인쇄하는 방식을 활용하면 간편하게 노트불 파일 코드를 pdf로 변환 가능

ctrl +p키를 누르면 인쇄창이 나타남

pdf로 설정하고 인쇄 버튼을 누르면 저장 가능

 

아이콘 활용하기

스크립트 환경의 아이콘은 다양한 기능을 지원

 

 

'파이썬' 카테고리의 다른 글

Visual Studio Code  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Colaboratory  (0) 2023.07.28
아나콘다 개발 환경 구축  (0) 2023.07.27
파이썬  (0) 2023.07.27

아나콘다

파이썬을 기반 빅데이터 기술을 활용하기 위해서는 많은 패키지 설치 및 세부 설정을 해야함

아나콘다 빅데이터 및 인공지능 기술을 활용하기 위한 기본 패키지와 설정을 지원하는 개발 환경

개인PC환경에서 간단하게 설치 될 수 있어 분석테스트 목적으로 유용하게 활용되고 있음

직관적인 의미에서 아나콘다는 몸집이 커진 파이썬으로 볼 수 있음

 

아나콘다 네비게이터

아나콘다에 포함된 패키지 프로그램들을 활용할 수 있도록 지원

 

아나콘다 프롬프트

터미널로 작업할 수 있는 기능제공 CMD와 같은 역할

 

주피터 노트북

셀 단위로 간편하게 파이썬 언어를 사용할 수 있도록 지원하는 스크립터 프로그램

간단한 수준의 분석이나 테스트 시 아주 유용하게 활용 가능

 

아나콘다3 > 스크립터: 주피터 노트북(사용언어 파이썬)

 

https://www.anaconda.com/download

 

Free Download | Anaconda

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

아나콘다 다운로드

아나콘다 프롬프트를 실행하여 python --version 코드를 입력, 실행하면 파이썬 설치가 완료 된 것을 확인 가능

단순 로컬 환경에서 분석을 진행하면 설치하는 패키지 종속성에 문제가 생길 수 있음

종속성 문제를 보완할 수 있는 방법이 아나콘다에서 가상 환경을 구축하는 것

코드 몇 줄로 간단하게 가상 환경을 구축할 수 있음

 

아나콘다 프롬프트 실행하여 가상 환경 생성 코드를 입력

-conda create -n my_env python=3.8 -y

-n 은 이름 my_env 

python=3.8 3.8버전으로

-y를 활용하면 설치 시 확인이 필요한 부분에서 바로 넘어갈 수 있음

virtual machine, docker

가상 환경 설치가 완료되면 my_env 환경 활성화 가능

-active my_env

 

Jupyter Notebook커널 설치

커널을 따로 설치하면 간편하게 가상 환경에 연동된 Jupyter Notebook을 사용할 수 있음

-conda install nb_conda_kernels -y

nb_conda_kernels는 패키지명

설치가 완료되면 로컬 환경의 Jupyter Notebook외에 가상 환경이 연동된 Jupyter Notebook을 실행할 수 있음

가상환경 주피터 노트북을 켤 수 있게 됨

추가 가상 환경 조작 코드

가상환경 비활성화: deactivate

가상환경 삭제하기: conda env remove -n my_env

 

'파이썬' 카테고리의 다른 글

Visual Studio Code  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Colaboratory  (0) 2023.07.28
Jupyter Notebook  (0) 2023.07.27
파이썬  (0) 2023.07.27

파이썬

객체지향 프로그래밍 언어로 인터프리터식 스크립트 환경(코드를 입력을 해서 객체지향 방식으로)을 제공

인터프리터(interpreter):프로그래밍 언어의 소스코드를 바로 실행할 수 있는 컴퓨터 프로그램 또는 환경

컴파일러에 비교적 실행이 느림

인터프리터 유형

1.소스 코드 직접 실행

2. 효율적인 중간 코드로 변환 후 바로 실행

3. 인터프리터 시스템에서 컴파일 후 저장된 코드 실행

인간언어에 가까움.

 

컴파일러

특정 프로그래밍 언어를 기계가 이해할 수 있는 형태의 언어로 변환하는 프로그램

실행이 빠르지만 컴파일 단계를 거쳐야 사용 가능

컴파일 시간이 오래 걸림

대부분의 인터프리터가 컴파일 작업을 수행할 수 있기 때문에 구분이 사라져감

code optimizer: 최적화

 

파이썬의 장점 rapid miner

쉽고 간편하게 익힐 수 있음

방대한 패키지 소스를 제공하여 유연성과 확장성을 보장

빅데이터 분석 기술이 고도화 되면서 객체 지향 프로그래밍의 중요성이 더 높아지고 있음

오픈소스형태로 개발된 파이썬은 지금까지 관련 문서 및 자료들이 축적되어 있어 온라인 상에서 방대한 양의 의사소틍이 이루어지고 있음

빅데이터 분석을 수행하다가 어려운 점이 있을 때, 거의 모든 자료를 온라인 상에서 검색할 수 있음

kaggle

파이썬은 거의 모든 IDE에서 지원됨

심지어 노코딩 기반 분석 도구에서도 플러그인 형태로 소프트웨어 내부에서 기능을 사용할 수 있도록 지원

 

IDE:통합 개발 환경을 의미, 다양한 프로그래밍 언어를 하나의 GUI로 결합할 수 있는 소프트웨어

일반적으로 3가지 기능 보유

1. 소스 코드 편집기

구문 강조 기능으로 코드 작성 지원

2. 로컬 빌드 자동화

전체 프레임워크를 한번에 컴파일하여 로컬 환경에 시스템 구축

3. 디버깅

소스코드에서 버그가 발생한 부분을 확인

 

파이썬2

GC탑재와 유니코드 지원

GC: 프로그램이 할당한 메모리에서 필요없는 영역을 제거

유니코드: 전 세계 모든 문자를 컴퓨터에서 지원될 수 있도록 코드화

파이썬3

편의성을 위한 자료형 변환, 라이브러리 재배치, 유니코드 확장

 

파이썬의 핵심 철학

아름다운 것이 추한 것보다 낫다

명시적 표현이 암묵적 표현보다 중요하다

단순한 표현이 복잡한 표현보다 낫다

복잡함이 난해한것보다 낫다

가독성은 중요하다

 

파이썬의 라이브러리

프로그래머가 바로 활용할 수 있는 라이브러리와 통합 환경이 같이 제공

운영체제 호출, 정규 표현식, 통신 프로토콜, 데이터 파일 처리 등 다양한 내부 라이브러리 제공

NUMPY, OPENCV, PANDAS,PILLOW...

 

CMD 파이썬 활용

CMD창에서 Python이라고 입력하면 파이썬 스크립트 환경으로 접근 가능

 

Jupyter notebook

마크다운 기능 지원으로 문서 작업과 유사한 방식으로 파이썬 코드 작성 가능

가장 직관적인 형태의 스크립트 환경으로 기본적인 테스트 및 교육 시 활용

셀 단위로 파이썬 코드를 실행할 수 있음

 

Spyder

변수 탐색기 지원으로 데이터 분석 시 유용하게 활용

 

Colaboratory 

구글에서 개발한 클라우드 기반 파이썬 개발 환경

컴퓨팅 자원(특히GUI) 이 부족한 사람들에게 유용함

 

Visual Studio Code

마이크로 소프트에서 개발한 IDE 환경

'파이썬' 카테고리의 다른 글

Visual Studio Code  (0) 2023.07.28
Visual Studio Code  (0) 2023.07.28
Colaboratory  (0) 2023.07.28
Jupyter Notebook  (0) 2023.07.27
아나콘다 개발 환경 구축  (0) 2023.07.27

주제 설정 후에 요구분석을 처음으로 함

데이터 모델링: 데이터베이스를 새롭게 구축하기 위한 준비과정, 요구사항을 듣고 사용자 관점을 분석하여 추상화하여 문서화하는 과정

 

관리: 등록, 수정, 삭제, 조회를 뜻함 > 이를 위해 데이터베이스 설계가 필요

계획 > 분석 > 설계 > 구축

계획: 세부 추진일정 수립, 인터뷰 계획(현업 담당자와 개발자 간에 , 자료수집 계획(요구분석 및 입출력 장표수립), 요구 분석 자료 만들어짐

분석: 정표와 인터뷰 자료 등 수립된 자료를 바탕으로 DATA분석, 개념적 데이터 모델링 및 ERD 작성, 만들어진 사이트의 장점과 단점을 분석하고 벤치마킹

설계: ERD를 기반으로 테이블 설계서 작성, 물리적 구조 설계(필드명 정하기 끝나면 바로 만들어도 O), 화면 설계서 작성

구축: 테이블 설계서를 기반으로 테이블 생성, 화면 설계서를 기반으로 프로그램 코딩(VB,PB, MFC 등)

 

계획

요구사항 분석: 사용자의 요구사항을 간단하게 기술, 필요한 항목, 어떤 내용이 저장되어야만 하는지, 테이블, 완벽할 수는 없지만 전체가 바뀌면 안된다. EX) 우리 사이트에서 저장된 데이터는 5년 동안 저장됩니다, 게시판이면 게시판에 관련된 모든 업무를 맡아야함. 요구분석부터 마지막까지 만들면서 통합 OR 같이 만들자. 온전하게 한 사람이 CRUD가 되어야함.

일정 정리: 오늘은 여기까지 하고 반드시 여기까지 끝내야해

사용자의 요구 등을 정리 및 분석

- 사용자 식별

- 데이터 베이스 용도 식별

- 사용자 요구 사항 수집 및 명세

 

유스케이스 다이어그램

유스케이스: 말 그대로 풀어보면 "사용 사례"로서 시스템이 어떻게 사용될지에 대해 표준화된 규칙에 따라 다이어그램으로 표현한 것이다. 고객과 개발자는 표준화된 규칙만 이해하고 있다면, 유스케이스 다이어그램을 통해 시스템의 기능이나 상호 작용 등을 쉽게 이해할 수 있다.

유스케이스를 이용한 요구사항 분석 방법: 통일된 규칙으로 시스템을 표현하고, 이를 통해 고객 및 사용자, 개발자의 다양한 관점을 찾아내어 그 간격을 조정하는 것. 이러한 유스케이스 기반의 요구사항 분석은 시스템을 가시화시켜 주는 모델링 기법인 UML을 이용.

 

1.UML: 요구사항의 추출부터 분석, 명세를 통하여 생성되는 산출물들을 표준화된 다이어그램으로 연결시킴으로써, 고객 및 사용자, 개발팀의 다양한 관점을 다룰 수 있는 효과적인 도구

정의: 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어로 소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법

필요성:

1. 시스템의 구조적 문제와 프로젝트 팀내의 의사 소통

2. 대규모 프로젝트 구조의 로드맵을 만들 때 유용하다.

3. 개발할 시스템 구축에 대한 기초를 마련할 수 있다.

4. 유지보수를 위한 설계의 back-end 문서

2.유스케이스 다이어 그램: 사용자 관점에서 시스템의 서비스와 기능 및 그와 관련된 외부 요소를 보여주는 다이어그램이다. 고객과 개발자는 이 다이어그램을 보며 요구사항에 대한 의견을 조율

시스템: 만들고자 하는 시스템의 범위를 뜻한다. 시스템을 표현하기 위해서는 유스케이스를 둘러싼 사각형의 틀, 시스템 명칭을 사각형 안쪽 상단에 기술

액터: 시스템의 외부에 있으면서 시스템과 상호작용하는사람 또는 다른 시스템, 사람모양, 액터명=액터의 역할

유스케이스: 시스템이 액터에게 제공해야하는 기능의 집합. 시스템의 요구사항을 보여줌. 타원. 동사로 표현. 유스케이ㅣ스 하나가 개발될 기능 하나와 연결될 수 있도록한다.

관계: 시스템의 요구사항을 액터와 유스케이스 간에 상호작용이 존재함을 나타냄. 연관관계로 나타낼 때 액터와 유스케이스 사이에 실선을 연결하여 표현 / 유스케이스-유스케이스: 실선X, 점선

 

포함관계: 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계. 포함되는 유스케이스는 포함하는 유스케이스를 실행하기 위해서는 "로그인을 한다" 라는 유스케이스가 먼저 실행되어야 하므로 포함관계 표시

포함하는 유스케이스에서 포함되는 유스케이스 방향으로 화살표를 점선으로 연결 표현 <<include>> / 유스케이스 사이의 상호작용

확장관계: 확장 기능 유스케이스와 확장 대상 유스케이스 사이에 형성되는 관계. 하나의 유스케이스가 실행될 때 포함 관계에 있는 유스케이스가 특정 상황에서만 실행된다는 뜻. ex) 파일 첨부기능 > 글을 등록한다라는 유스케이스는 확장 대상 유스케이스가 되고 파일을 첨부한다라는 유스케이스는 확장 기능 유스케이스.

확장 기능 유스케이스에서 확장 대상 유스케이스 방향으로 화살표를 점선으로 연결 표현. <<extend>> 표현

일반화 관계; 유사한 유스케이스들 또는 액터들을 모아 그들을 추상화(주어진 문제나 시스템을 중요하고 관계있는 부분만 분리해 내어 간결하고 이해하기 쉽게 만드는 작업.)한 유스케이스 또는 액터와 연결시켜 그룹핑함으로써 이해도를 높이기 위한 관계. 구체적인 유스케이스에서 추상적인 유스케이스 방향으로 끝부분이 비어져 있는 삼각형 테두리로 표현된 화살표를 실선으로 연결하여 표현

 

유스케이스 다이어그램 작성: 개발하고자 하는 시스템을 유스케이스 다이어그램으로 표현하는 것을 유스케이스 모델링

-사용자 식별, 외부 시스템 식별, 표현 대상인지 아닌지.

-액터가 요구하는 서비스 식별, 정보 식별, 액터가 시스템과 상호 작용하는 행위 식별

-액터와 유스케이스 간의 연관관계 정의, 유스케이스 간 포함, 확장 관계 정의, 액터 간, 유스케이스 간의 일반화 정의

회원등록을 할 때에는 반드시(포함관계) 실명확인을 한다.

 

유스케이스 기술서

유스케이스 이름, 액터명, 유스케이스 개요 및 설명, 사전 및 사후 조건, 작업 흐름, 시나리오

작업흐름

-정상흐름: 해당 유스케이스가 정상적으로 수행되는 흐름

-대안 흐름: 유스케이스 내의 작업 흐름이 수행되는 중에 특정 시점에서 여러 가지 선택적인 흐름으로 나뉘어 질 경우에 발생하는 흐름.

- 예외 흐름: 유스케이스 내의 작업 흐름이 수행되는 중에 발생할 수 있는 예외상황이나 오류를 표현하는 흐름.

 

• 유스케이스명: 글을 등록한다.

• 액터명: 사용자

• 유스케이스 개요 및 설명

- 사용자는 원하는 글을 게시판을 등록한다.

• 사전 조건: 로그인한다.

• 작업 흐름

- 정상 흐름(Normal Flow)

1. 사용자는 글쓰기 버튼을 클릭한다

2. 시스템은 글쓰기 화면을 실행한다.

3. 사용자는 글쓰기 화면에서 원하는 글을 작성한다.

4. 사용자는 등록버튼을 클릭한다

5. 시스템은 글을 데이터베이스 게시판 테이블에 저장한다.

- 대안 흐름(Alternative Flow):

1. 정상흐름4에서 등록 취소버튼을 선택할 경우, 시스템을 게시판 목록 조회 화면을 보여준다

- 예외 흐름(Exception Flow)

1. 정상흐름3에서 글쓰기 화면에서 글을 쓰지 않고 등록 버튼을 클릭할 경우, 시스템은 “내용을 입력해 주세요”라는 경고 메시지를 보여준다.

요구사항 정의서

요구사항들의 목록화를 통해 전체적인 요구사항의 리스트를 확인

리스트를 확인하는 문서, 자세한 내용은 명세서를 확인 / 요구사항 ID는 모든 산출물 문서에 표시해야함, 중복되지 않게 작성

 

요구사항 명세서: 요구사항들의 상세 내역

Community Edition다운

들어가자 마자 다운받으면 한달뒤에 자동 결제

https://www.visual-paradigm.com/download/community.jsp

3. 클래스 다이어그램

 

매퍼 XML요소 설명
mapper 루트 엘리먼트
insert 매핑된 INSERT문
update 매핑된 UPDATE문
delete 매핑된 DELETE문
select 매핑된 SELECT문

 

위의 요소에서 사용할 수 있는 공통 속성

속성 설명
id 필수 속성. 반드시 전체 Mapper 파일들 내에서 유일한 값으로 설정
parameterType SQL 실행에 필요한 데이터를 외부로부터 받아야할 때 사용
일반적으로 기본형이나 VO형태의 클래스로 지정
parameterMap 외부 parameterMap을 찾기 위한 접근 방법.
비권장됨. 예전에 파라미터를 매핑하기 위해 사용되었으나 현재는 X
statementType Statement, Prepared, Callable중 선택. 디폴트는 PREPARED

 

1.SELECT

<select id=”구분자” resultType=”반환타입”>

   select 컬럼명1, 컬럼명2 … from 테이블명

</select>

 

SELECT요소에만 사용되는 속성

속성 설명
resultType 검색관련 SQL 구문이 실행되면 ResultSet이 리턴되며, ResultSet에 저장된 검색 결과를 어떤 자바 객체에 매핑할지 지정해야하는데, 이때 사용.
resultMap 외부 resultMap 참조명
fetchSize 지정된 수만큼의 결과를 반환하는 값

 

파라미터: SQL문의 파라미터 값을 받기 위해 #{} 기호로 표기 {}속에 "값"이나 자바빈의 "프로퍼티명"

표기법: #{프로퍼티명}

 

select문

<select id=”구분자” parameterType=”파라메터타입” resultType=”반환타입”>
select 컬럼명1, 컬럼명2 … from 테이블명 where 컬럼명 = #{프로퍼티}
</select>

 

insert문

<insert id=”구분자” parameterType=”파라메터타입”>
insert into 테이블명(컬럼명1, 컬럼명2…) values(#{값1}, #{값2} …)
</insert>

 

update문

<update id=”구분자” parameterType=”파라메터타입”>
update 테이블명 set 컬럼명1 = #{값1}, 컬럼명2 = #{값2} where 컬럼명 = #{값3}  
</update>

 

delete문

<delete id=”구분자” parameterType=”파라메터타입”>
delete from 테이블명 where 컬럼명 = #{값1}
</delete>

 

데이터베이스가 자동 생성키를 생성하지 않은 경우

<insert> 요소 내에 <selectKey>요소로 키 생성에 필요한 SELECT문을 기술 <selectKey>의 속성

속성 설명
keyProperty selectKey 구문의 결과가 할당될 대상 프로퍼티.
resultType 결과 타입
order BEFORE는 insert문 전 실행. AFTER는 insert문 후 실행
statementType Statement, Prepared, Callable 중 선택, 디폴트는 PREPARED
<insert id=”구분자” parameterType=”파라메터타입”>
<selectKey keyProperty=”프로퍼티” resultType=”자료형” order=”BEFORE” statementType=”PREPARED”>
        SELECT문(키 생성 관련)
</selectKey>
insert into 테이블명(컬럼명1, 컬럼명2…) values(#{프로퍼티1}, #{프로퍼티2} …)
</insert>

 

num=3인 passwd=1234가 일치하면 1

불일치하면 0 출력

 

 

+ Recent posts