
데이터베이스는 대량의 데이터를 안전하고 일정되게 관리해야한다.특히 은행거래, 전자상거래, 병원, 보험 기록가 그 예시위 애플리케이션에서는 데이터의 무결성이 보장되어야 한다.이를 보장하기 위해 DBMS는 트랜잭션이라는 개념을 사용한다.트랜잭션이란?데이터베이스에서 하나의
데이터베이스 정규화는 데이터 구조를 조직화하고 최적화하는 과정데이터 중복을 제거하고 탐색 효율성을 향상하며 데이터 무결성을 보장하기 위함정규화는 이상현상이 잇는 릴레이션을 분해하여 이상현상을 제거하는 과정이다. 이상현상이 존재하는 릴레이션을 분해하여 여러개의 릴레이션을
웹 애플리케이션의 취약점을 악용하여 악의적인 sql 코드를 삽입하고 이를 통해 데이터베이스를 조작하거나 불법적으로 접근하는 공격 기법웹 애플리케이션은 사용자 입력을 기반으로 sql 쿼리를 생성하여 데이터베이스와 상호작용한다. 이때 입력데이터에 대한 검증이 이루어지지 않

데이터베이스 관리 시스템데이터베이스에 대한 접근하는 소프트웨어 관리도구Object-oriented databases는 데이터를 객체로 표현하여 이해하기에 편리하다. RDBMS에서 제공하는 쿼리가 필요없다.NoSQL은 RDMS에 비해 유연하고 확장성이 있다. 구조화되지

cloud에 적용되는 DB기술실시간 추천 서비스에서 거의 예외없이 사용되는 기술이다.용어NoSQL이란? Not Only SQL 의 약자라고 하며 관계형데이터베이스RDBMS가 갖는 특성 + 다른 특성을 부가적으로 지원한다.RDBMS의 시스템을 보장하는 ACID특성을 제공

CAP 정리를 확장한 개념으로 CAP 단점을 극복하기 위해 등장한 데이터베이스 이론CAP이 네트워크 파티션이 발생했을 때의 선택지(Partition vs Availability/Consistency) 만 다루는 반면, PACELC는 파티션이 없을 때의 상황까지 포함하여

CAP 이론은 분산 시스템 설계시 중요한 고려 사항시스템에 요구사항에 따라 C, A, P에서 2가지만 만족하는 적절한 데이터베이스를 채택해야한다.분산시스템은 동시에 2개 이상의 노드(물리, VM)에 데이터를 저장하는 시스템을 말한다.CAP 정리는 분산 시스템에서 동시에
DBMS에서 트랜잭션을 특별한 제어 없이 병행 수행을 허용한다면 데이터의 일관성과 무결성을 보장하기 어려울 수 있습니다.이때, 병행 수행되는 트랜잭션들을 제어하기 위해서 락을 사용할 수 있으며 DBMS에서 락은 크게 공유 락과 배타 락으로 분류할 수 있습니다.락은 se
SQL 실행 전 가장 효율적인 실행 계획을 결정하는 DBMS엔진SQL을 가장 빠르고 적은 리소르로 실행하기 위한 실행계획(execution. plan) 을 수립통계정보를 가지고 다양한 후보 실행계획의 비용을 비교하여 최적의 계획을 선택추가 설명가장 효율적인 방법으로 S
내부조인정의조인조건에서 양쪽 테이블 모두 일치하는 행만 반환교집합 역할문법테이블 A와. B의 교집합인 행만 리턴한다.예시 member, order 테이블에서 id가 일치하는 데이터만 조회회원정보에 있으나 주문정보에는 없는 회원을 제외외부조인정의조인조건에서 불일치하는 행

Delete데이터 행 row조건절 WHERE사용트랜잭션 내에서 롤백가능트리거 실행함속도느림저장공간회수안함테이블구조 유지함TRUNCATE데이터전체(테이블)조건절사용안함, 전체삭제만 가능롤백불가트리거 실행불가속도 빠름저장공간회수,공간 초기화됨테이블 구조 유지함DROP전체객

클러스터링 클러스터링이란 다양한 데이터에서 유사한 속성을 가진 데이터까리 자연스러운 그룹화하는 것을 말한다. 이러한 그룹화된 데이터는 데이터 차원의 수를 줄여 방대한 데이터셋의 복잡성을 줄인다. 데이터셋을 시각화하여 데이터 속성과 클러스터간의 밀도 및 관계를 확인할

데이터베이스 스토리지를 복제한 것으로 실시간 복제용 데이터베이스 서버를 운용하는 것을 말한다.리플리케이션은 다양한 이슈로 데이터 유실이 생길 경우를 대비하여 스토리리까지 복제함으로써 데이터의 유실을 최소화하기 위함리플리케이션은 Source(Master), Replica
설명테이블에 대한 이벤트에 반응해 자동으로 실행 \*\*되는 작업(SQL 블록, 프로시저)을 의미한다.사용자가 직접 실행시키는 것이 아니라, 이벤트 기반(Event-driven)으로 동작한다.데이터베이스에서 데이터작업(특정 이벤트)가 발생한 경우 추가로 실행시키고자 하

서비스가 커지면서 모든 데이터를 한 테이블, 한 서버에서 관리하려면 복잡하다또한 용량이 커지면서 데이터 쓰기, 읽기 작업 성능이 감소함으로써 데이터베이스 서버가 병목되는 상황이 발생할 수 있다.서비스 크기에 따라 분리하는게 좀 더 나을 수 있다. 분리하는 방식에는 파티
가장 많이 사용되는 DBMS(Oracle, MySql)을 비교해보자. 문법은 당연히 다르다. 작성편의를 위해 소문자로 작성함 슬레이브 동기화 모니터링 용어를 복제 지연 모니터링라는 용어로로 대신함 (최근 master/slave 표현 대신 source/replica 용어 사용 추세) 번외 : ORCL의 DBMS시장 점유율 2025년 상반기 기준, 오라클에...
정의와 간단한 설명쿼리 플랜, 쿼리 실행계획이라고도 부른다.“어떤 테이블을 어떤 순서로 읽고, 어떤 인덱스를 사용하며, 어떤 연산을 수행할지”에 대한 것이 쿼리 익스플랜이다. Query Execution Plan의 약어이다.데이터베이스 관리 시스템(DBMS)은 쿼리를
정의 및 간단한 설명Hint는 쿼리 옵티마이저(Optimizer)에게 특정 실행 계획을 제안하여, 쿼리 실행 방식을 개발자가 직접 제어할 수 있도록 해주는 기능입니다.DBMS는 일반적으로 자체적으로 최적의 실행 계획을 생성하지만, 옵티마이저가 항상 가장 좋은 경로를 선
\*저장 방식과 최대 저장 크기에서 차이를 보임\*참고자료 : Medium1\. CHAR고정 길이 문자열 : 지정된 길이만큼 공간을 항상 할당, 10char = 10byte빠른 검색 속도 : 고정길이로 인해 검색속도가 빠르다.주로 짧은 문자열 저장에 사용 : 이름, 전

이진탐색트리 BST 모든노드는 왼쪽서브트리는 해당 노드의 값보다 작은 값을 가지고 모든 노드의 오른쪽 서비 트리는 해당노드값보다 큰 갑만 가진다 특징 자녀노드는 최대 2개, 그래서 binary인것 만약 자녀노드는 3개로 하고 싶다면??? 부모노드값에따라 왼, 오른쪽

B+Tree알고리즘에 대해 알아보기 전에 왜 사용하는지 알아보자도입배경과 B-Tree B-Tree는 널리 쓰이는 인덱스 자료구조인데 이진 트리르 확장한 자료구조이다.B-Tree는 노드의 key마다 data를 가지는데, B+Tree는 리프노드에만 data를 저장한다.B+
다양한 데이터의 접근 형태에 따라 일일이 대응하여 인덱스를 만들 수 있는 환경이라면 인덱스 생성에 있어 고민의 여지가 없지만 아쉽게도 인덱스가 많아지면 그에 따른 사이트 이펙트\*가 존재한다따라서 적은 인덱스를 유지하면서 동시에 다양한 데이터 접근 형태에 대해 인덱스

Authorization Server(OAuth 2.0) : 사용자의 인증(Authentication)과 클라이언트 권한 부여 과정을 모두 처리Authentication Server는 공식용어x, 인증처리 서버역할이라고 이해하자. Authentication Server

보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 위 3가지 방식 있다JWT 앞서 쿠키, 세션 통신방식을 이해하고 토큰 사용 목적을 이해해보자Key-value의 문자열클라이언트가 어떤 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의
소켓은 네트워크 통신을 위한 프로그램의 종착점, 즉 창구 역할을 합니다. 클라이언트와 서버는 각각 소켓을 생성하여 통신을 시작합니다소켓은 프로세스간 통신 끝에 위치하며 클라이언트와 서버가 데이터를 주고 받는데 사용된다.소켓은 OS에 의해 관리되며, IP주소와 포트번호로
“물, 데, 네, 전, 세, 표, 응” 이라고 외우면 쉽다도입배경70년대, 각 회사별로 자체 프로토콜을 사용하였고, 그래서 이기종간 호환이 불가했다.그러니 통신이 어려웠음ISO에서 이 문제를 해결코자 도입한 개념이다.네트워크 통신단계를 7개로 나눠어 각 계층별 프로토콜

RESTful API(Representational State Transfer API)는 HTTP 프로토콜을 기반으로 자원을 주고받는 방식을 설계 원칙에 맞게 구현한 API1\. REST의 기본 개념REST는 2000년 로이 필딩(Roy Fielding)의 박사 논문에

Hyper Text Transfer Protocol의 약자WWW(world-wide-web) 상에서 클라이언트와 서버간 통신하게 하는 프로토콜하이퍼텍스트웹상에서 조냊하는 web page끼리 참조하는 기술웹상에서 HyperText는 http도 표현함TCP, UDP를 사용

HTTPS는 어디에 쓸까 보안성, 웹 브라우저에 url옆에 자물쇠있는 것안전한 connection 보장http을 먼저 알아야 한다. 정의: HTTP(HyperText Transfer Protocol)는 웹 브라우저(클라이언트)와 웹 서버 간의 요청–응답 방식의 통신

*DNS자체가 도메인네임서버라는 말인데 가독성을 위해 DNS 네임서버로 작성하였습니다. 플로우 1. 웹 브라우저에 url 입력 url : https, https 는 Scheme로 통신프로토콜이다. 제일 먼저 들어간다. www.는 의미가 없고, 그
트랜잭션이 처리되는 순서를 보장하기 위한 방법이다.데이터베이스의 무결성을 유지하는데 목적트랜잭션이 동시에 수행될 떄 데이터 일관성을 해치지 않도록 데이터의 접근을 제어하는 DBMS의 기능OS에서 데이터 동기화를 위해 임계 영역에 대한 접근을 제한하는 상호배제기법과 유사

Static Web : Client ↔ Web ServerDynamic Web : Client ↔ Web Server ↔ WAS or DataBase웹서버 소프트웨어, 하드웨어서버를 말하기도 한다. 이 둘은 서로 다른 개념이다.일반적으로 말하는 웹서버는 웹 브라우저가

사용자의 권한을 도용하기 위한 수법(공격)Cross-Site Request Forgery의 약자로 웹 취약점이다.특정 웹 사이트에서 공격자가 위조 요청을 보내 피해자가 요청에 대한 수행을 하게 되고 공격자는 피해자가 이미 로그인한 상태(세션, 쿠키)를 사용하여 사용자의

\*DNS자체가 도메인네임서버라는 말인데 가독성을 위해 DNS 네임서버로 작성하였습니다.1\. 웹 브라우저에 url 입력url : https, https 는 Scheme로 통신프로토콜이다. 제일 먼저 들어간다.www.는 의미가 없고, 그 뒤에 있는 google.com
Redisson에 대해 정리해보자. 프로젝트에 동시성 충돌문제로 락을 사용하고자 분삭락을 적용했는데 왜 굳이 분산락을 사용해야할까? 그이유는 Redis기반으로 master-slave 분산 데이터서버에서는 개별 서버에서 Lock으로는 동일한 리소스에 대한 접근을 막을 수