[포스코x코딩온] 스마트팩토리 입문과정 | 데이터베이스 | 데이터 베이스, SDLC

김영웅·2023년 2월 28일
0
post-thumbnail

[데이터, 정보, 지식]

데이터가 모이면 정보가 되고, 정보가 모이면 지식이 된다!

• 데이터 (data) : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값
• 정보 (information) : 데이터에 의미를 부여한 것
• 지식 (knowledge) : 사물이나 현상에 대한 이해

ex )
• 데이터 (data)
한라산의 높이 (1,947m)
• 정보 (information)
한라산은 대한민국에서 가장 높은 산이다
• 지식 (knowledge)
한라산을 200% 즐기는 방법을 소개하는 정보를 포함한 블로그

[데이터베이스란?]★

• 다양한 카테고리의 정보를 저장할 수 있는 구조
• 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합
• 쉽게 말하면, 데이터를 저장하는 구조/자료의 모음

[데이터베이스 개념]

• 통합된 데이터 (integrated data)
데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화 하여 중복으로 인한 데이터 불일치 현상을 제거

• 저장된 데이터 (stored data)
문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장 장치에 저장된 데이터를 의미

• 운영 데이터 (operational data)
조직의 목적을 위해 사용되는 데이터를 의미한다. 즉 업무를 위한 검색을 할 목적으로 저장된 데이터

• 공용 데이터 (shared data)
한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미

[데이터베이스 특징]

• 실시간 접근성(real time accessibility)
사용자가 데이터를 요청하면 수 초 내에 결과를 서비스한다.

• 계속적인 변화(continuous change)
데이터베이스에 저장된 내용은 어느 한 순간의 상태지만, 데이터 값은 삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐다.

• 동시 공유(concurrent sharing)
데이터베이스는 서로 다른 업무/여러 사용자에게 동시에 공유된다.

• 내용에 따른 참조(reference by content)
데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.

• 장점1. 데이터 일치성 증가
• 장점2. 데이터 공유 원활
• 장점3. 의도치 않은 데이터 중복 없음
• 장점4. 데이터 보안 향상

ex ) 일상생활의 데이터베이스
• 교육생 데이터 -> 학원 데이터베이스
• 신용카드 데이터 -> 은행 데이터베이스
• 병원 데이터 -> 건강보험 데이터베이스

[파일 시스템 vs. 데이터베이스]

• 파일 시스템
데이터를 기록하고 여러 사람이 공유하여 사용 가능
ex. Microsoft Excel 프로그램으로 데이터 관리

• 데이터베이스
파일 시스템의 단점을 개선하기 위해 등장

[파일 시스템 특징]

• 데이터를 기록하고 여러 사람이 공유하여 사용 가능

• 단점1. 데이터 중복이 생길 수 있다.
• 단점2. 데이터 공유에 있어서 제한이 존재한다.
• 단점3. 구현과 유지보수에 시간이 오래 걸린다.

[파일 시스템 사례]

• 고객 구매정보 담긴 파일, 고객의 정보가 담긴 파일이 존재
• A 고객이 A’로 개명하여 CS 팀에서 고객 정보를 변경함
• 시간이 흘러 재무팀 파일에는 동일인에 대해서 A와 A’ 라는 별도의 고객으로 관리하게 됨.
• 관리자 실수로 데이터 중복이 발생한다면 저장공간 낭비
• CS 팀에서 고객 정보 변경시 매번 타 부서에게 공유해야 한다면 자원 낭비

[데이터베이스 시스템 구성]

  1. 데이터베이스 (Database)
    • 하드디스크에 저장된 데이터

  2. 데이터베이스 관리 시스템 (Database Management System)
    • 주기억장치에 저장된 소프트웨어

  3. 데이터 모델 (Data Model)
    • 눈에 보이지 않는 논리적인 개념
    • 데이터를 저장하는 이론적인 방법

[데이터베이스 언어]

• SQL (Structured Query Language) 사용
관계형 데이터베이스에 정보를 저장, 처리하기 위한 프로그래밍 언어

• 데이터 정의어 (DDL)
• 데이터 조작어 (DML)
• 데이터 제어어 (DCL)

[데이터베이스 사용자]

• 일반 사용자
응용 프로그래머가 작성한 프로그램을 이용하는 사람
ex. 은행 창구 직원은 고객의 데이터를 다루는 업무를 함

• 응용 프로그래머
데이터베이스로 문제를 해결하는 프로그램을 만드는 사람

• SQL 사용자
SQL 질의문을 작성하여 업무를 처리
응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용해 처리

• 데이터베이스 관리자 (DBA, Database Administrator)
조직의 데이터베이스 운영 총괄자
데이터 설계, 구현, 유지보수의 전 과정 담당

[DBMS (Database Management System)]★

• 사용자와 데이터베이스를 연결시켜주는 소프트웨어
• 데이터베이스 사용자가 데이터베이스를 생성, 공유, 관리할 수 있도록 하는 역할

[DBMS 기능]

• 데이터 정의 (Definition)
데이터 구조를 정의하고 구조에 대한 삭제, 변경 기능 수행

• 데이터 조작 (Manipulation)
데이터 삽입, 수정, 삭제 작업

• 데이터 추출 (Retrieval)
사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출

• 데이터 제어 (Control)
데이터베이스 사용자 생성 및 접근 제어
백업, 회복, 동시성 제어 기능 지원

[SDLC (Software Development Life Cycle) 란?]

• 제품의 요구사항부터 개발, 검증, 향후 유지보수 및 폐기까지의 전 과정을 프로세스화해 소프트웨어 개발에 적용한 것.
• 소프트웨어 개발 중에 데이터베이스 개발과정도 포함.

[SDLC의 5단계]

• 1단계 - 사전 조사(Preliminary Investigation)
-소프트웨어 개발을 원하는 고객의 요구사항 파악
-어떤 목적으로 개발을 원하는 지, 그 목적을 충족시키기 위해 어떤 시스템을 갖춰야 하는지에 대해 고민하는 단계

• 2단계 – 시스템 분석(System Analysis)
-사용자 요구 수집
-인터뷰
-시스템 요구 정리
-processing modeling: 데이터가 움직이는 프로세스를 구조적/그래픽적
으로 나타냄 (이를 ERD(Entity Relationship Diagram) 이라고 함)

• 3단계 – 시스템 디자인(System Design)
-2단계에서 만든 ERD를 통해 Relation Model로 변환하는 작업과 데이
터베이스의 성능을 결정하는 작업 진행
-데이터베이스 성능을 결정해야 하므로 DBMS에 의존

• 4,5단계 – 시스템 구현(System Implementation) ~ 유지보수(Maintenance)
-시스템을 구현하고 유지보수

[데이터베이스와 클라우드의 차이점]

데이터베이스 : 데이터를 저장하는 구조/자료의 모음

클라우드(cloud)가상화 : 가상화 서비스가 이뤄지는 인터넷

클라우드 서비스 : 인터넷 서비스
클라우드 컴퓨팅 : 컴퓨팅 리소스를 제공하는 회사의 서버, 네트워크를 사용하는 것
ex. Amazon Web Service, Google Cloud

[클라우드 서비스 모델]

• IaaS (Infrastructure as a Service) : 서비스형 인프라 / 회사에서 서버, 네트워크, 스토리지, 운영체제
같은 컴퓨터 자원을 "임대" -> 장점 : 하드웨어에 투자 필요 없음.
ex. AWS, Google Compute Engine, Naver Cloud Platform
-> 클라우드가 "하드웨어" 까지 제공

• PaaS (Platform as a Service) : 서비스형 플랫폼 / 클라우드 기반의 애플리케이션 개발 환경, 개발하는데 필요한 요소들을 제공.
-> 클라우드가 "하드웨어 + 가상서버" 까지제공

• SaaS (Software as a Service) : 서버형 소프트웨어 / 고객이 웹 브라우저를 통해 언제,어디서든 소프트웨어에 접근 가능.
ex. 노션, 구글드라이브, 네이버 마이박스, MS 오피스 365
-> 클라우드가 "하드웨어 + 가상서버 + 소프트웨어" 까지제공

[클라우드 서비스 장점]

  • 서버에 들일 시간을 아끼고, "코딩"에 집중할 수 있게 됨.
  • 개발 작업 진입 장벽 낮아짐.
  • 비용 절감.

[문서 형식]

• hwp, docs: 파일을 여러분의 컴퓨터에 저장
- 00보고서최종, 00보고서최종최종,...
• Google 문서 : 구글 서버(구글 내 계정의 드라이브) 저장
- 00보고서
- 동시 편집 가능
- 단점) 인터넷 연결이 안되면 사용불가

MySQL이 클라우드 인가요? X
MySQL : DBMS (Database management systme) 한 종류이며 클라우드가 아니다.

실제 물리적인 내 컴퓨터가 I3 cpu 사용 (비교적 낮은 성능)하는데, 클라우딩 서비스를 이용하면 I7 cpu 사용 (비교적 높은 성능)이 가능한가요? O

[운영체제]

• WindowsOS / MacOS
• Linux -> 서버에서 많이 사용하는 운영체제
Linux : 리눅스 토발스(git제작)가 제작해서 무료 배포. 누구나 수정하고, 수정한 것을 상업적으로 이용 허용.
다른 개발자들이 다양한 버전의 리눅스를 만들었고, 그 중 하나가 우분투, centOS

• ms-dos 운영체제 : 명령어가 어려웠음. 명령어를 아는 사람만이 컴퓨터를 할 수 있었음.

• WindowsOS, MacOS : GUI(graphic user interface) 그래픽 기반의 유저인터페이스 등장 -> 일반인들도 쉽게 컴퓨터를 이용할 수 있게 됨.
바탕화면, 마우스 커서, 폴더가 이때 등장한 개념.

• 서버(SERVER) : 클라이언트의 요청에 응답하는 컴퓨터 -> GUI가 필요하지 않음. 서버가 다운되지 않고, 안정적으로 운영되는 것이 제일
중요한 목표 => 가장 적합한 운영체제 Linux
ex. 식당 고객(client), 직원(server)
server : 제공하다.

0개의 댓글