본문 바로가기
반응형

개발 용어 정리23

[DB] 트랜잭션이란? 트랜잭션이란? 트랜잭션의 특징(ACID), 트랜잭션의 Commit과 Rollback이란? 트랜잭션이란? 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야할 일련의 연산들을 의미한다. 즉, 아래의 SQL문을 이용해서 DB에 접근하는 것을 의미이다. INSERT SELECT UPDATE DELETE (CRUD) 하지만 작업 단위는 꼭 질의어 한문장이 아니라 여러개의 질의어들의 집합일 수도 있다. 트랜잭션의 특징 트랜잭션의 특징은 4가지가 존재한다. - 원자성 (Atomicity) - 일관성 (Consistency) - 독립성 (Isolation) - 지속성 (Durability) 2023.03.16 - [개발 용어 정리] - [DB] ACID란? [DB.. 2023. 3. 16.
[DB] ACID란? ACID - 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability) ACID란? - 데이터베이스 트랜잭션들이 안정적으로 수행된다는 것을 보장하기 위한 성질을 카리키는 약어이다. 1. 원자성(Atomicity) - 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장한다. - 중간 단계까지 실행되고 실패하는 일이 없도록 하는것이다. 2. 일관성(Consistency) - 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지한다. 3. 고립성(Isolation) - 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장한다. - 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 보.. 2023. 3. 16.
[DB] 인덱스 저장 방식(Clustered Index, Non-Clustered Index) 인덱스 저장 방식에는 Clustered Index과 Non-Clustered Index가 있다. Clustered Index 1. 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식이다. 2. 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있다. 3. 데이터 삽입, 삭제 발생 시 순서를 유지하기 위해 데이터를 재정렬 해야한다. 4. 한 개의 릴레이션에 하나의 인덱스만 생성 가능하다. Non-Clustered Index 1. 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식이다. 2. 데이터를 검색하기 위해서 먼저 인덱스를 검색하여 실제 데이터의 위치를 확인해야하므로 클러스터드 인덱스에 비해 검색 속도가 떨어진다. 3. 한 개의 릴레.. 2023. 3. 14.
[DB] NDV, 카디널리티, 선택도, 밀도란? NDV(Number of Distinct Value), 카디널리티(Cardinality), 선택도(Selectivity), 밀도(Density) NDV(Number of Distinct Value) NDV는 특정 컬럼에 unique한 값이 얼마나 있는지 나타낸다. 중복되는 값이 존재하지 않는 primary key와 같이 unique한 속성을 지닌 컬럼의 경우는 테이블의 행수와 개수가 일치한다. 카디널리티(Cardinality) 카디널리티(Cardinality)는 특정 데이터 집합의 유니크(Unique)한 값의 개수이다. NDV와 값이 같다. 주민등록번호와 이름이라는 컬럼이 있는 테이블이 있다고 가정해보자. 주민등록번호는 값이 중복되지 않는 유일한(Unique) 값이다. 이름은 값이 중복되기도 하는 값이다.. 2023. 3. 13.
[서버용어] 스케일 업(Scale-up), 스케일 아웃(Scale-out), 스케일 인(Scale-in), 스케일 다운(Scale-down) 스케일 업(Scale-up), 스케일 아웃(Scale-out)이란? 스케일 업 (Scale-up) 1. 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU나 메모리를 업그레이드시키는 것을 말한다. 2. 하나의 서버의 능력을 증강하기 때문에 수직 스케일링(vertical scaling)이라고도 한다. 3. 즉, 기존의 하드웨어를 보다 높은 사양으로 업그레이드하는 것을 말한다. 스케일 아웃 (Scale-out) 1. 기존의 서버와 같은 사양 또는 비슷한 사양의 서버 대수를 증가시키는 방법으로 처리 능력을 향샹시키는 것을 말한다. 2. 스케일 아웃 방식을 "수평 스케일"이라고 부르기도 하고, 확장이 스케일 업보다는 다소 유연하다. 3. 1의 처리 능력을 가진 서버에 동일한 서버 4대를 더 .. 2023. 3. 1.
[서버용어] 서버리스(serverless) 서버리스란? Red Hat 공식문서에서 서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 개발모델이라고 서술되어있다. 즉 서버리스란? 1. 개발자가 애플리케이션을 구현함에 있어 서버를 고려하지 않아도 된다. 2. 구현뿐만 아니라 서버를 관리하지 않아도 된다는 것이다. 3. 서버가 없어진게 아니라 호스팅 플랫폼 (vercel, netlify, heroku 등) 에서 서버를 대신 관리해준다. 4. 클라우드에 있는 서버에서 개발한 소스코드를 대신 돌려준다. 개발자가 서버를 관리한다면? 1. 앱사용 / 트래픽 관리 2. 소프트웨어 관리 3. 서버 모니터링 4. 스케일링 (scale-up, scale-out, scale-down, scale-.. 2023. 2. 24.
[개발용어] Unicode(유니코드), UTF-8, UTF-16, Surrogate(서로게이트) 쌍 Unicode(유니코드), UTF-8, UTF-16, Surrogate(서로게이트, 써로게이트) 쌍이란? 유니코드 (ISO-10646) 1. 흔히 Unicode라고 불리는 문자세트와 그 부호화에 대해서 정의하고 있는 표준이다. 2. 유니코드는 전 세계 문자 인코딩 표준이다. 시스템은 문자 및 문자열 조작에만 유니코드를 사용합니다. 3. 유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. 4. 유니코드는 유니코드 협회가 제정한다. 또한 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자들을 다루기 위한 알고리즘 등을 포함하고 있다. 5. 코드 포인트에 의해 각 문자의 위치가 표시되어 숫자 값이 할당되며 앞에 U+를 붙이고.. 2023. 2. 17.
[개발용어] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) A = 원본 B = 복사하려는 객체 얕은 복사 새로운 B객체를 생성 후 원본 A객체를 메모리 영역을 참조해서 원본에 종속된 객체를 생성하는 것이 얕은 복사이다. 서로 같은 메모리 영역을 참조하므로 독립적이지 못하고 A와 B는 서로 영향을 받는다. 예시 코드) let A = ["a", "b", "c"]; let B = A; A[0] = "d"; console.log('A = ', A, 'B = ', B); B[2] = "z"; console.log('A = ', A, 'B = ', B); 출력값 A = ["d", "b", "c"] B = ["d", "b", "c"] A = ["d", "b", "z"] B = ["d", "b", "z"] A.. 2023. 2. 16.
[Typescript] Decorator(데코레이터) 타입스크립트_ Decorator(@) 1. 데코레이터를 잘 사용하면 적절하게 관심사를 분리하여 관점 지향 프로그래밍을 적용한 코드를 작성할 수 있음 2. 타입스크립트의 데코레이터는 파이썬의 데코레이터나 자바의 어노테이션과 유사한 기능을 함 3. 클래스, 메서드, 접근자, 프로퍼티, 매개변수에 적용 가능 4. 각 요소의 선언부 앞에 @로 시작하는 데코레이터를 선언하면 데코레이터로 구현된 코드를 함께 실행 5. 예를 들어 다음 코드는 유저 생성 요청의 본문을 DTO로 표현한 클래스이다. class CreateUserDto{ @IsEmail() @MaxLength(60) readonly email: string; @IsString() @Matches(/^[A-Za-z\d!@#$%^&*()]{8,30}$/) r.. 2023. 2. 5.
[js] duck typing(덕 타이핑) with typescript [ts]_덕 타이핑(duck typing) - 타입 구성하기 자바스크립트는 변수에 어떠한 타입의 값도 할당할 수 있다. 일명 덕 타이핑이라 부른다. 타입스크립트도 여러 타입의 값을 할당할 수 있다. 이는여러 타입을 조합한 새로운 타입을 가지는 것이다. 유니언 (Union) 타입 유니언 타입이 위에서 설명했던 여러 타입을 조합한 타입이다. 다음 코드에서 getLength 함수의 인자로 받은 obj 객체는 string 또는 string 배열 타입을 가질 수 있다. function getLength(obj: string | string[]){ return obj.length; } 유니언 타입을 활용하면 변수가 가질 수 있는 값을 제한할 수도 있다. type Team = "Red" | "Blue"; 타입스크립트.. 2023. 2. 5.
반응형