본문 바로가기

전체 글

(104)
REST API json server짧은 시간 내에 REST API 서버의 기본적인 기능 대부분을 구축해주는 라이브러리HTTP 클라이언트 사용 : 웹 애플리케이션에서 HTTP 요청을 보내고 응답을 받을 수 있는 도구 REST APIREST를 기반으로 만들어진 APIREST자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것HTTP URI를 통해 자원(Resource)을 명시하고 HTTP Method를 통해 해당 자원(URI)에 대한 CRUD를 적용하는 것자원(Resource) : 웝페이지(html), binary data(그림파일, 소리파일 등), db data(json, html로 render된 data)Create : 데이터 생성(POST)Read : 데이터 조회(GET)Update : 데이터 수정(PUT,..
MySQL (2) MySQL 데이터베이스 서버 생성, 스키마 생성 PERFROMMANCE데이터 베이스의 성능상의 영향을 보여줌 Index 설정데이터베이스 튜닝 : 데이터베이스의 성능을 향상시키고, SQL의 처리 시간을 줄이는 작업index는 1개만 설정 가능 → 정렬기준이므로PK에 AT걸려 있을 때 주로 사용저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조PK : index가 자동으로 생성됨PK가 아닌 다른 column에 대해서 index를 만들어 주는 작업 뷰 : 가상의 테이블 Stored procedure일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합특정 로직의 쿼리를 함수로 만들어 놓은 것 데이터베이스 설계 단계요구사항 수집 분석데이터베이스의 사용 용도 파악요구사항 명세서..
MySQL (1) 데이터베이스 시스템의 구성 요소데이터베이스 서버데이터베이스에 대한 저장, 관리, 접근, 조작 등의 작업을 수행클라이언트로부터의 요청을 받아들여 해당 요청을 처리하고 결과를 반환데이터베이스 관리 시스템(DBMS)에 의해 구현데이터베이스 클라이언트데이터베이스 서버에 연결하여 데이터베이스와 상호 작용하는 소프트웨어나 인터페이스사용자 또는 응용 프로그램이 데이터베이스에 접속하여 데이터를 조회, 삽입, 수정, 삭제 등의 작업을 수행할 수 있도록 도움MySQL ClientMySQL Monitor - CLI기반MySQL Workbench - GUI기반 SQL 분류DML(Data Manipulation Language)데이터 조작 언어SELECT, INSERT, UPDATE, DELETEDDL(Data Definiti..
데이터베이스(5) 트랜젝션데이터베이스 내에서 하나의 그룹으로 처리해야 하는 명령문들을 모아놓은 작업 단위 ex) 송금출금과 입금이 1번씩 발생하지만 은행에서는 송금 자체를 하나의 트랜잭션으로 봄출금, 입금을 하나의 그룹으로 봄 트랜젝션 특징 (ACID)원자성(Atomicity) : 트랜잭션은 DB에 모두 반영되거나, 전혀 반영되지 않아야 함(ALL-OR-Nothing 방식)올 커밋, 올 롤정상적으로 종료된 경우, 데이터 베이스 내의 연산 결과 모두 전부 반영중간에 장애가 발생한 경우, 처음 상태로 모두 되돌려 전부 취소일관성(Consistency) : 트랜잭션이 실행되기 전과 실행된 후의 데이터베이스는 일관성 있는 상태여야 함일관성 요구조건:A계좌 + B계좌 = 5000트랜잭션 작업 전후 에도 일관성 요구 조건이 유지되어..
데이터베이스(4) 정규화란?테이블 간에 중복된 데이터를 제거하여 무결성을 유지하게 하는 것정규화 단계제 1정규화테이블의 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분해하는 것제 2정규화제 1정규형 릴레이션에서 부분 함수 종속성을 제거하는 것부분 함수 종속성 : 기본키가 복합키일 경우 기본키를 구성하는 속성 중 일부에게 종속된 것 기본키(복합키) : 학생번호, 강좌이름 → 성적강좌이름(기본키의 부분집합) → 강의실 제 3정규화이행 함수 종속 : A -> B, B -> C가 성립할 때 A -> C가 성립되는 것이행 함수 종속의 문제 : 학생번호 → 강좌이름 → 수강료인 경우 강좌 이름이 바뀌어도 학생은 수강료를 그대로 내고 수업을 들을 수 있음, 강좌이름에 맞게 수강료를 변경하는 과정 번거로움제 2정규형 릴레이션에서 이행 ..
데이터베이스(3) 다중 부분 필드 해소ex) 이름 - 김예나다중 부분 필드로부터 정보를 추출하고 정렬하는 것은 어려움필드 내의 고유한 항목을 식별 후, 각각의 항목을 개별적인 필드로 나눔강사 이름 필드 → 강사 성 필드, 강사 이름 필드로 나눔강사 주소 필드 → 강사 시, 강사 도, 강사 우편번호 필드로 나눔감추어진 다중 부분 필드가 있을 수도 있으니 주의다중 값 필드 해소 ex) 사용 언어 - 한국어, 영어, 독일어해선 안 되는 것들다중 값 필드를 단일 값 필드들로 평탄화하는 것 X교육 범위들 → 교육범위1, 교육범위2, 교육범위3하나의 값만 포함하도록 하는 것 X교육 범위들 카테고리들을 하나의 값만 포함하게 나눔다중 값 필드 해소 절차다중 값 필드들이 일대일 연관 같은 것이 있는지 살펴봄다중 값 필드들을 기존의 테이블..
데이터베이스(2) 키 : 독특한 역할을 수행하는 특별한 필드기본키 (Primary Key)특정 레코드를 유일하게 구별할 수 있는 속성각각의 테이블은 반드시 기본키를 가져야 함유일하게 식별되고, 중복되지 않아야 하며, NULL값을 가질 수 없음 외래키 (Foreign Key)테이블 사이의 관계를 설정할 때 사용참조 무결성 : 외래키의 값이 외래키가 참조하는 기본키의 값과 반드시 일치해야 함첫번째 테이블로부터 기본키의 복사본을 만든 후 두 번째 테이블에 포함시킨 것 → 기본키 ≒ 외래키인덱스데이터 베이스에서 검색 속도 향상과 같은 데이터 처리를 향상시키기 위해 만든 물리적인 자료구조 관계 : 테이블 쌍 사이의 연결첫 번째 테이블의 레코드를 두 번째 테이블의 레코드와 연관 시킬 수 있는 것1대1 관계양 테이블에서 같은 기본키를..
데이터베이스(1) - 용어 데이터베이스조직에서 사용하는 운영 데이터들이 구조적으로 통합되어 하나의 주제와 관련있는 데이터의 모음 데이터 베이스의 2가지 종류운영 데이터베이스온라인 트랜잭션 처리 : 일상적으로 데이터를 수집, 수정, 관리할 필요가 있는 상황에서 사용동적인 데이터 → 소매점, 병원 등 유동적인 상태에 있는 단체에서 사용분석 데이터 베이스온라인 분석 처리 : 역사적이고 시간에 의존적인 데이터를 저장하고 추적할 필요가 있는 상황에서 사용정적인 데이터 → 데이터의 특정 시점의 상황 반영하여 화학 연구실, 마케팅 분석 회사같은 동향을 파악하는 단체에서 사용 관계형 데이터 베이스 모델내장된 다중 수준 무결성 : 필드, 레코드, 관계, 업무상에 있어 무결성을 보장논리적 및 물리적 데이터의 애플리케이션으로부터의 독립성 : 데이터베..