CS
-
데이터베이스 View란?CS/데이터베이스 2022. 3. 29. 17:49
데이터베이스 View란? 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블입니다. 한 개 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블입니다. 가상 테이블이기 때문에 실제로 데이터를 저장하고 있지는 않습니다. INSERT, UPDATE, DELETE가 가능하지만 보통 SELECT를 위해 사용합니다. 즉, View는 하나 이상의 테이블이나 뷰를 조작하여 하나의 테이블처럼 볼 수 있는 가상의 테이블입니다. 동적 View와 정적 View 정적 View 하나 이상의 기반 테이블과 다른 정적/동적 View를 기반으로 정의된 View입니다. 관련된 테이블 또는 View가 변경될 때 정적 View를 수동으로 업데이트해야 ..
-
Database Sharding(샤딩)이란?CS/데이터베이스 2022. 3. 28. 14:03
DB Sharding이란? shard의 사전적 의미는 (유리·금속 등의) 조각, 파편입니다. 데이터베이스의 측면에서 본다면 sharding은 데이터베이스를 조각으로 나누는 것으로 생각해볼 수 있습니다. 샤딩(Sharding)은 수평 분할(Horizontal Partitioniong)과 관련된 데이터베이스 아키텍처 중 하나로써 한 테이블의 row들을 여러 개의 서로 다른 테이블, 즉 파티션으로 분리하는 방식입니다. DB Sharding을 하는이유? 하나의 DB에 데이터가 늘어나면 용량 이슈도 생기고, 느려지는 CRUD는 자연스럽게 서비스 성능에 영향을 주게 됩니다. 따라서 애플리케이션이 얼마나 인기를 끌지 또는 얼마나 오랫동안 그 인기를 유지할지 예측을 하기 어렵기 때문에 데이터베이스를 동적으로 확장할 수..
-
HTTP와 HTTPS의 차이점(HTTPS의 동작과정)CS/네트워크 2022. 3. 25. 17:00
HTTP란? HTTP는 HyperText Transfer Protocol의 약자로 HTML을 전송하는 프로토콜로 시작하였으나 현재는 모든 것을 HTTP 메시지를 통해 전송합니다. 즉, 웹 상에서 클라이언트와 서버가 서로 정보를 주고받을 수 있도록 하는 규약입니다. 다음 그림은 HTTP 메시지의 예시입니다. Message Header와 Message Body로 이루어져 있습니다. Message Header는 HTTP통신에 사용되는 여러 조건 또는 속성 등을 포함됩니다. Message Body는 실제 요청하거나 요청받는 내용이 포함됩니다. 조금 더 디테일하게 보고 싶다면 다음 글을 참고하시면 좋을 것 같습니다. https://junuuu.tistory.com/36?category=974977 HTTP 기본 ..
-
데이터베이스 Index란?CS/데이터베이스 2022. 3. 18. 00:20
인덱스(Index)란? 보통 배열에서 많이 썼던 단어로 "색인"이라는 뜻을 가집니다. 데이터베이스에서의 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상하기 위한 자료구조입니다. 우리가 책에서 원하는 내용을 찾을때 모든 페이지를 찾아보는 것은 오랜 시간이 걸립니다. 따라서 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가합니다. 데이터베이스의 인덱스는 책의 색인과 유사합니다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있습니다. 인덱스를 사용하는 이유? 인덱스를 사용하지 않은 컬럼을 조회해야 하는 상황이라면 전체를 탐색하는 Full Scan을 수..
-
Redis란?CS/데이터베이스 2022. 3. 4. 10:47
Redis란? 공식 홈페이지의 소개글을 요약해 보겠습니다 Redis는 데이터베이스, cache 및 message broker 로서 이용되는 오픈 소스입니다. set, string, hash, list, sorted set 등의 다양한 데이터 구조를 제공합니다. message broker란? 송신자로부터 전달받은 메시지를 수신자로 전달해주는 중간 역할을 수행합니다. 애플리케이션, 시스템, 서비스가 서로 통신하고 정보를 교환할 수 있도록 합니다. 네트워크 지연 문제가 발생해도 시스템이 계속 작동될 수 있도록 보장합니다. Redis는 (Remote dictionary server)의 약자로써 외부로부터 dictonary 자료구조(HashMap과 같은 Key-Value)를 사용하는 서버라는 것을 알 수 있습니다..
-
RDBMS와 NoSQL 정리(+ 차이점, 언제 무엇을 사용해야 할까)CS/데이터베이스 2022. 1. 16. 00:01
RDBMS란? RDBMS란(Relational DataBase Management System)의 약자로 관계형 데이터베이스를 수정하고 관리할 수 있는 소프트웨어입니다. 관계형 데이터베이스란 무엇일까요? 데이터를 열(Column)과 행(row)으로 구성하여 하나 이상의 테이블로 정리하며 고유 키(Primary key)가 각 행(row)을 식별합니다. 또한 이러한 테이블끼리 서로 연관되어 있어 효율적으로 데이터를 저장, 구성 및 관리할 수 있습니다. 또한 사용자가 관계형 데이터 베이스를 사용하기 위해 표준 검색 언어인 SQL을 사용하여 데이터를 조회, 수정 등을 할 수 있습니다. MSSQL, MySQL, Oracle이 RDBMS의 몇 가지 예시입니다. 위의 그림은 관계형 데이터베이스의 학생 릴레이션의 예시..
-
HTTP 헤더 - 캐시와 조건부 요청 헤더CS/네트워크 2022. 1. 8. 00:01
캐시와 조건부 요청 헤더에 대해 알아보기 위해 캐시에 대해서 먼저 알아보겠습니다 캐시란(Cache)? 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킵니다. 반복적으로 동일한 결과를 돌려주는 경우나 빠른 속도로 데이터에 접근하기 위해 사용합니다. 캐시를 왜 사용할까요? 웹 브라우저가 서버에게 1MB짜리 이미지를 요청한다고 가정하겠습니다. 이때 네트워크에서 HTTP 헤더의 전송 비용은 0.1MB라고 가정하겠습니다. 캐시를 사용하지 않을 때 사용자가 브라우저를 새로고침 하거나 접속할 때마다 1MB의 이미지를 계속 요청해야 합니다. 그렇게 되면 전송 비용이 HTTP 헤더 + HTTP 바디 = 1.1MB가 계속 요청됩니다. 만약에 클라이언트가 서버에게 이미지를 100번 요청한다면 1.1MB * ..
-
웹 스토리지란?CS/네트워크 2022. 1. 3. 00:01
웹 스토리지(Web Storage)란? 데이터베이스(DB)나 서버 또는 클라우드 플랫폼이 아닌 사용자의 브라우저 내에 데이터를 저장하는 기술입니다. HTML5 이전에는 데이터를 쿠키에 저장되어야 했습니다. 웹 스토리지가 등장한 이후에 쿠키 보다 많은 저장 공간을 사용할 수 있으며 정보가 서버로 전송되지 않습니다. 웹 스토리지 객체 HTML 웹 스토리지는 클라이언트에 데이터를 저장하기 위해 두 가지 객체를 제공합니다. 객체를 통하여 브라우저 내에 키-값 쌍을 저장할 수 있도록 합니다. 1. 로컬 스토리지(localStorage) 특정 웹사이트를 새탭이나 새창으로 띄워도 동일한 데이터를 공유합니다. 즉 브라우저를 종료한 후 실행시켜도 데이터가 남아있습니다. 직접 브라우저의 캐시 삭제 및 로컬 스토리지 초기화..