Basic Knowledge 11

231009 월) 데이터 모델

데이터 모델링의 개요 현실의 데이터를 DB로 표현하기 위한 모델을 만드는 것으로, 개념적 데이터 모델과 논리적 데이터 모델을 거쳐 디스크에 저장될 수 있는 물리적 형태로 변환하는 DB 설계 과정이다 데이터 모델링의 종류 1) 개념적 모델링 - 시스템이 어떻게 구성되며 어떤 비즈니스 규칙이 사용될 것인지를 거시적으로 보여준다. - 현실 세계에 대한 인간의 이해를 돕기 위해 데이터를 추상적 개념으로 표현한다 - Entity-Relationship이라는 개념적 데이터 모델을 사용, 모델링 결과를 마름모, 타원, 직선등의 다이어그램으로 표현한다 2) 논리적 모델링 - 개념적 모델링을 통해 얻은 개념적 구조를 DBMS가 지원하는 논리적인 데이터 모델로 변환시키는 과정이다 - 데이터 간의 관계를 어떻게 표현하느냐에..

231007 토) DBMS / RDBMS / NoSQL

DBMS 개요 불특정 다수가 공유 및 사용의 목적으로 관리되는 정보의 집합인 Database, 그것을 관리하는 소프트웨어를 DBMS라고 부른다 DBMS는 데이터 정의 / 데이터 저장 / 데이터 보안 / 데이터 공유 / 데이터 갱신 / 데이터 유지 등의 기능이 있으며 개발, 유지보수가 편리하다는 장점과 중앙집중적 관리에 의한 보안상의 취약, 그리고 백업 및 복구의 비용이 크다는 단점이 있다 DBMS 역사 1950년대 데이터베이스라는 용어가 미국에서 처음 사용된 후 1970년대에 RDBMS이 개발되기 시작한다 1980년에 이르러 비로소 컴퓨팅 하드웨어가 관계형 시스템 (DBMS + 애플리케이션)의 배치를 가능하게 할 만큼 발전했다 1990년도에는 대형 데이터 처리 소프트웨어를 관계형 시스템이 지배하게 되었으..

231001 일) 데이터베이스, 데이터 기초

데이터베이스는 온라인 쇼핑몰에서 상품을 주문하거나, 학교에서의 성적 조회, 폰 뱅킹의 계좌 조회 등의 상황에서 사용된다. 데이터의 저장, 조회 프로그램인 Oracle, Mysql, MongoDB 등은 프로그래밍과 같은 컴퓨터 언어(SQL)로 제어가 가능하고, 어떻게 제어하느냐에 따라 성능의 고점이 달라진다. 또한 중복된 정보가 있을 경우 이를 통합하여 구조적, 효율적으로 데이터를 저장한다. 또한 앱, 웹을 통해 전세계로 공유가 가능하다. 통합 데이터 (Integrated Data) DB내에 중복된 정보가 있는 경우 이를 그대로 저장하면 용량 낭비가 발생한다. 따라서 데이터를 통합하여 자료의 중복을 최소화한 데이터의 모임으로 구성한다. 김씨 서울대 31세 양씨 고려대 29세 조씨 고려대 24세 명씨 하버드..

중간정리 : 패러다임에 대한 입체적 시각과 최신 트렌드

지금까지 절차지향, 구조적, 객체지향, 함수형 프로그래밍 패러다임에 대해 정리하였다. 앨런 튜링과 절차적 프로그래밍 이후로 점점 덩치가 커지는 H/W와 S/W, 그리고 그만큼 복잡해지는 코드는 1960년대 전후를 기점으로 Fortan, ALGOL, LISP의 등장과 함께 점차 구조적으로 가지를 뻗어나가게 하는 계기가 된다 이후에 포스팅할 논리형 프로그래밍과 동시/병렬 프로그래밍을 포함해 구조 / 절차적, 객체지향적, 함수형 등의 패러다임은 대두되는 시기는 달랐으나 여전이 각자 독립적인 발전을 이루고 있음을 알게 되었다 아래는 깃허브 PYPL의 2023년 9월 언어 점유율 순위표와 사이트 링크이다 https://pypl.github.io/PYPL.html PYPL PopularitY of Programmi..

프로그래밍 패러다임 (4) 함수형 프로그래밍

# 인물 개개인의 상세한 인생사, 대상의 역사와 프로그래밍 분야 외적인 업적은 잘라낸다. 함수형 프로그래밍의 개요 1960~80년대의 프로그래밍은 객체지향적 프로그래밍이 대두된다. 기술이 발전하고 하드웨어, 소프트웨어의 크기가 커짐에 따라 복잡한 코드의 유지보수에 애로사항이 생기고, 자연스럽게 함수형 프로그래밍 패러다임이 도입되게 된다. 코드 설계의 모든 부분을 함수로 잘게 잘라 문제를 해결하는 함수형 프로그래밍은 변할 수 있는 부분을 잘라 독립시킴으로써 유지보수성을 향상시킨다. 함수형 프로그래밍의 특징 1. 순수 함수 동일 입력 = 항시 같은 값 반환 함수 실행이 프로그램 실행에 영향을 미치지 않아야 함 프로그램 상태나 함수 내부의 인자값을 변경하는 외부 요소가 없는 것 let a = 1; functi..

프로그래밍 패러다임 (3) 객체 지향 프로그래밍

# 인물 개개인의 상세한 인생사, 대상의 역사와 프로그래밍 분야 외적인 업적은 잘라낸다. 1960년부터 지금까지의 프로그래밍은 객체지향적 프로그래밍이 대두된다. 객체지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그램을 객체라는 독립적 단위로 나누고, 이 객체들 간의 상호작용을 중심으로 소프트웨어를 설계, 개발하는 방식이다. 객체는 데이터와 그 데이터를 조작하는 메서드(method)로 구성되며, 클래스(class)라는 템플릿을 기반으로 생성된다 코딩 과정 ● 문제 인식과 정의 -> 객체 식별 및 분류 -> 객체 속성과 메서드 정의 -> 클래스 다이어그램 작성 -> 객체 생성과 초기 데이터 입력 -> 객체간 상호작용 설계 -> 메서드 구현 -> 테스트 및 디버깅 -> 최..

프로그래밍 패러다임 (2) 구조적 프로그래밍

# 인물 개개인의 상세한 인생사, 대상의 역사와 프로그래밍 분야 외적인 업적은 잘라낸다. 초기 프로그래밍은 구조적인 형태 없이 개발되었다. 1950~70년대의 프로그래밍은 구조적 프로그래밍에 대한 방법론이 대두되었다. 구조적 프로그래밍은 소프트웨어 개발 방법론 중 하나로 코드의 가독성은 높게, 프로그램의 오류 가능성은 낮춰지게 하며 유지보수를 용이하게 한다. 프로그램을 구조화된 논리적 블록으로 분할하는 것, 단일 진입과 단일 퇴장을 통한 코드의 명료화와 용이한 디버깅 등이 특징이다 코딩 예시 ● 각 변수에 대한 의미를 부여하는 사전 작업 (const) ● 들여쓰기, 주석을 통해 내용 파악을 쉽게 해준다 ● sub나 function을 잘 활용한다 (처음에는 main을 잘 관리해줄 수 있는 메인터넌스 위주를..

프로그래밍 패러다임 (1) 절차 지향 프로그래밍

# 최초의 컴퓨터는 현대식 컴퓨터의 형태에서 거슬러 올라가나 21세기를 살아가는 사람들에게 큰 의미는 갖지 않으므로 생략한다 # 인물 개개인의 상세한 인생사와 프로그래밍 분야 외적인 업적은 잘라낸다. 유의미한 수준의 역사는 1940년대 초에서부터 시작된다. 1940~50년대의 프로그래밍은 절차 지향 프로그래밍이 대두된다. 이는 10진법, 2진법의 기계어와 어셈블리 언어를 활용한 프로그래밍 방식이다 프로그램을 일련의 절차나 함수로 나누고, 이러한 절차나 함수를 차례로 실행하여 원하는 결과를 얻는 프로그래밍 패러다임인데, 이러한 방식은 일반적으로 C, Pascal, Fortran과 같은 언어에서 사용된다. 코딩 예시 ● 종이 준비 -> 종이의 크기? -> 펜 선택 -> 펜의 굵기? -> 스케치 하기 -> 색..

인터넷의 작동법 정리 (2)

IP주소와 도메인 IP주소란 네트워크의 각 장치에 할당된 고유한 식별숫자로 올바른 대상으로 데이터를 라우팅하여 정보가 수신자에게 전송되도록 하는 데 사용된다. 도메인이란 웹사이트, 기타 인터넷 리소스를 식별하기 위해 사용되는 사람이 읽을 수 있는 이름이다. google.com은 도메인 이름이며 도메인 이름은 DNS(Domain Name System)를 사용하여 IP주소로 변환된다. DNS는 도메인 이름을 IP 주소로 변환하는 역할을 하는 인터넷 인프라의 중요한 부분이다. 웹 브라우저에 도메인 이름을 입력하면 컴퓨터가 DNS 쿼리를 DNS 서버로 전송하여 해당 IP 주소를 반환한다. 그러면 컴퓨터는 해당 IP 주소를 사용하여 사용자가 요청한 웹 사이트나 기타 리소스에 연결한다. 도메인(구글, 네이버...)..

용어정리 (1)

크롤링 웹 페이지를 그대로 가져와 데이터를 추출해 내는 행위. 관련 소프트웨어는 크롤러라고 부른다 파이썬이 이 분야에서 큰 비중을 차지하고 있으며, 비전공자/통계분야 종사자들이 쓰기 쉽도록 라이브러리가 급격히 발전하고 있다 API Application Programming Interface로 두 소프트웨어가 서로 통신할 수 있게 해주는 매커니즘 ex) 기상청의 소프트웨어 시스템 속 일일 기상 데이터 -> 휴대폰 날씨 앱은 데이터를 받아 사용자가 직접 보게끔 해줌 JSON 데이터를 서로 주고받을 때 쓰이는 형식, 데이터를 보낼 때 주로 사용하는 여러 방식이 있는데 JSON은 그중 많이 쓰이는 데이터 형식으로 사람이 읽기에 용이하다는 장점이 있다 SQL 데이터들이 저장된 데이터베이스를 조회하거나 갱신하기 위..