본문 바로가기
반응형

분류 전체보기299

[MongoDB] 접두사 인덱스, 등치 (Index Prefix, Equality)란? [MongoDB] 접두사 인덱스, 동치 상태 (Index Prefix, Equality State)란? 인덱스 Prefix란? MongoDB의 인덱스 관련 메뉴얼을 읽다 보면 자주 나오는 용어 중에 Index Prefix라는 말이 있다. 접두사 인덱스 / 선행 인덱스 / 앞쪽 인덱스 해석하면 약간 어색해진다. 일단 아래 예제 코드로 살펴보자. db.collection.createIndex({ a: 1, b: 1, c: 1 }) { a: 1 } { a: 1, b: 1 } { a: 1, b: 1, c: 1 } 정의 된 인덱스의 앞 쪽부터 포함하는 부분집합의 인덱스들을 인덱스 Prefix라고 말한다. 컴파운드 인덱스는 첫 번째 인덱스는 단일 인덱스처럼 일렬로 나열되어 있다. 두 번째 인덱스는 동일한 첫 번째 .. 2023. 3. 20.
[MongoDB] 인덱스 검색, 인덱스 정렬 방식에 따른 검색속도 차이 [MongoDB] 인덱스 검색, 인덱스 정렬 방식에 따른 검색 및 정렬 빠르게 하는 방법 각 명령어의 출력시간은 explain.executionStats를 사용하여 실행속도를 확인하였다. 2023.03.06 - [데이터베이스/MongoDB] - [MongoDB] 빠른 탐색을 위한 인덱싱(indexing) [MongoDB] 빠른 탐색을 위한 인덱싱(indexing) NestJS(typegoose)에서 MongoDB를 빠르게 탐색하기 위해 인덱스를 사용하는 방법, explain.executionStats를 사용하여 실행속도 확인 아래와 같이 십만개(100,000)의 더미 유저 데이터가 있다. 데이터의 형식은 1 kfdd6630.tistory.com 1. 인덱스 순서와 검색에 있어서 검색은 정렬에 비해 인덱스.. 2023. 3. 20.
자료구조 및 자료구조의 유형, 자료구조를 알아야 하는 이유 데이터 구조(DSA_Data Structure Architecture) 및 데이터 구조의 유형, 알고리즘에서 데이터 구조를 왜 알아야 할까? 데이터 구조란 무엇인가? 1. 데이터 구조는 데이터를 저장하고 구성하는 데 사용되는 저장소이다. 2. 효율적으로 접근하고 변경할 수 있도록 컴퓨터에서 데이터를 할당하는 방법이다. 3. 요구 사항 및 프로젝트에 따라 프로젝트에 적합한 데이터 구조를 선택하는 것이 중요하다. 4. 예를 들어 데이터를 메모리에 순차적으로 저장하려는 경우 배열 데이터 구조로 이동할 수 있다. 5. 데이터 구조와 데이터 유형은 약간 다르다. (데이터 유형은 type이라고 생각하면 편하다) 6. 데이터 구조는 특정 순서로 정렬된 데이터 유형의 모음이다. 알고리즘에서 데이터 구조를 왜 알아야 할.. 2023. 3. 19.
알고리즘이란 무엇이고 예시와 좋은 알고리즘은 뭘까? 알고리즘이란?, 알고리즘의 예, 좋은 알고리즘이란? 알고리즘이란? 1. 컴퓨터 프로그래밍 용어에서 알고리즘은 특정 문제를 해결하기 위한 잘 정의된 명령 집합이다. 2. 일련의 입력을 받아 원하는 출력을 생성한다. 알고리즘의 예) 두 숫자를 사칙연산으로 계산하는 알고리즘은 다음과 같다. 1. 두 개의 숫자 입력 받기 2. 덧셈(+), 뺄셈(-), 곱셈(×, *), 나눗셈(÷, /) 연산자를 사용하여 숫자 추가 3. 결과 표시 위와 같은 순서로 이루어진게 두 숫자를 더하는 알고리즘이다. 2번의 로직부분뿐만 아니라 1번의 입력과 3번의 출력 또한 굉장히 중요하다. 좋은 알고리즘이란? 1. 입력과 출력은 정확하게 정의되어야 한다. 2. 알고리즘의 각 단계는 명확해야 하고 어떤 사람이 보더라도 모호하지 않아야 한.. 2023. 3. 19.
[React, Next.js] useEffect 정리 (마운트, 언마운트, 값 변경) useEffect Hook 정리 1. useEffect를 사용 할 때에는 첫번째 파라미터에는 함수, 두번째 파라미터에는 의존값이 들어있는 배열 (deps)을 넣는다. 2. deps 배열을 비우게 된다면, 컴포넌트가 처음 나타날때에만 useEffect 에 등록한 함수가 호출된다. 3. useEffect 에서는 함수를 반환 할 수 있는데 이를 cleanup함수라고 부른다. * cleanup함수는 useEffect 에 대한 뒷정리를 해주는 개념으로 렌더링이 될 때, 이전에 남은 함수가 실행되어 메모리 누수가 일어나는 일을 막을 수 있다. 마운트 시에 하는 작업들 - props 로 받은 값을 컴포넌트의 로컬 상태로 설정 - 외부 API 요청 (REST API 등) - 라이브러리 사용 (D3, Video.js 등.. 2023. 3. 18.
[DB] 정규화(Normalization) 관련 정리 [DB] 정규화, 이상, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 정규화의 장, 단점 정리 정규화란?1. 데이터의 중복과 중복으로 인한 이상(Anomaly)을 최소한으로 줄이기 위한 방법이다.2 .이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 된다.3. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 이상(Anomaly)이란? - 삽입 이상(Insertion Anomaly) : 튜플 삽입시 불필요한 데이터가 함께 삽입되거나 데이터가 부족해 삽입이 되지 않는 현상이다. - 갱신 이상(Modification Anomaly) : 중복 튜플 중 일부만 변경되어 데이터가 불일치가 발생하는 현상이다. - 삭제 이상(Deletion Anomaly) : 튜플 .. 2023. 3. 17.
[React, Next.js] useEffect를 사용해서 값이 변경될 때 코드실행 [React, Next.js] useEffect라는 Hook을 사용해서 값이 변경될 때 제어코드 React 값이 변경될 때, 일부 코드를 실행해야 할때 사용하는 코드 function HookComponent(data) { useEffect(() => { // 렌더링 이후 실행할 코드 console.log('data 값이 설정'); return () => { // 컴포넌트가 사라질 때 실행되는 코드 console.log('data 값이 설정 전'); } }, [data]); return ( 컴포넌트 HTML 구성부 ); } 위 코드는 1. 처음에 페이지가 렌더링 됐을 때 L4의 콘솔이 찍힌다. 2. props로 받은 data값이 변경될 때 L4의 콘솔이 찍힌다. 3. data값이 변경되기 직전에 L7의 콘.. 2023. 3. 17.
[React, Next.js] useEffect를 사용해서 컴포넌트가 사라질 때 코드실행 [React, Next.js] useEffect라는 Hook을 사용해서 컴포넌트가 사라질 때 제어코드 React 구성 요소가 사라질 때, 일부 코드를 실행해야 할때 사용하는 코드 function HookComponent() { useEffect(() => { return () => { // 컴포넌트가 사라질 때 실행되는 코드 } }, []); return ( 컴포넌트 HTML 구성부 ); } 위 코드는 컴포넌트가 사라질 때(컴포넌트가 언마운트 될 때) L4주석부분의 코드가 실행된다. 2023. 3. 17.
[React, Next.js] useEffect라는 Hook을 사용해서 렌더링 후 코드실행 [React, Next.js] 렌더링 후 코드 실행을 위한 React Hook, useEffect라는 Hook을 사용해서 컴포넌트가 마운트 됐을 때 (처음 나타났을 때) 제어 코드 React 구성 요소가 렌더링된 후 일부 코드를 실행해야 할때 사용하는 코드이고 useEffect Hook은 다음과 같이 사용된다. function HookComponent() { useEffect(() => { // 렌더링 이후 실행할 코드 }); return ( 컴포넌트 HTML 구성부 ); } 위 코드는 렌더링 후(컴포넌트가 마운트 됐을 때, 처음 나타났을 때) L3 주석부분의 코드가 실행된다. useEffect 를 사용 할 때에는 첫번째 파라미터에는 함수, 두번째 파라미터에는 의존값이 들어있는 배열 (deps)을 넣는다.. 2023. 3. 17.
[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.
반응형