일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- TypeError: 'property' object is not iterable
- METACLASS
- 재귀함수가 뭔가요
- 우아한테크코스 2차
- depends_on
- python
- 프로그래머스
- AWS
- javascript
- classmethod
- Spring
- docker
- AWS S3
- depends
- S3
- EC2
- DB
- classproperty
- docker-compose
- 우아한 테크코스 2차 합격
- Django
- OperationalError
- springboot 3.0.0
- python all testcode
- 2차 코딩테스트
- 코딩테스트
- github skyline
- 갓재석
- github
- MySQL server on 'db' (115)
목록DB (4)
hanbin.dev
RDBMS에 친숙하다면 정규화가 잘 된 데이터모델의 유용함 트랜잭션의 필요성 견고한 저장 엔진을 통해 얻는 확신 을 잘 알고 있을 것이다. 이런 RDBMS를 벗어나 NoSQL로 옮긴다면 어떤 장점이 있을까? 확장의 용이성MongoDB의 데이터 모델과 지속성 전략은 높은 읽기/쓰기 효율과 자동 장애조치를 통한 확장의 용이성을 염두에 두고 만들어졌다. MongoDB는 웹 애플리케이션과 인터넷 기반을 위해 설계된 데이터베이스 관리 시스템이다. 직관적인 데이터 모델예를 들자면 아래에 사용자에 대한 정보를 몇 개의 필드로 저장한 도큐먼트가 있다.만약 하나의 사용자가 여러개의 이메일을 가질 수 있다면 어떻게 해야할까?하지만 MongoDB는 아래와 같이 사용하면 된다.예시와 같이 MongoDB는 한명의 사람 정보를 ..
MongoDB는 도큐먼트 지향적인 데이터베이스다. 내부적으로 MongoDB는 Binary JSON의 형태로 도큐먼트를 저장한다. MYSQL은 데이터를 테이블에 행으로서 저장하는 반면 MongoDB가 도큐먼트의 모음과 같이 데이터를 컬렉션에 도큐먼트로 저장한다. MYSQL와 같은 RDBMS는 한 객체의 데이터를 여러개의 테이블로 나누어 표현하는 정규화를 거치는데, 정규화를 너무 많이 한다면 그에 따른 비용이 들어가게 된다. 이는 곧 데이터를 모으는 작업을 해야 한다는 것이다. 예를 들어서 블로그 글 하나를 보여주기 위해서 post와 comment 테이블에 대한 조인 연산이 필요해 진다. 하지만 도큐먼트 지향적인 데이터 모델(MongoDB)에서는 객체를 자연스럽게 모아놓은 형태로 표현함으로 객체를 전체적으로..
PostgreSQL에서는 동시성 제어를 위해 여러가지 모드의 lock을 제공합니다. 이런 lock에도 여러가지 종류가 있고, 명시적으로 사용되는 경우/묵시적으로 사용되는 경우가 있는데, 자세히 알아보도록 합시다. 시작하기 전 3줄요약 Lock이 미치는 범위를 level로 나눈다 Lock 모드별로 충돌하는 관계가 존재한다 Lock은 트랜잭션 종료 시 혹은 롤백시에 풀린다. lock이 미치는 범위를 Level로 나누는데, Table-Level Lock, Row-Level Lock, Page-Level Lock, Database-Level Lock 까지 다양하게 존재합니다. 해당 글에서는 Table-Level Lock과 Row-Level Lock 에 대해서만 설명하겠습니다. Table-Level Lock Ta..
인덱스는 데이터베이스 테이블에 대한 검색 성능을 높혀주는 도구이다. 이런 인덱스를 구현하는 알고리즘에는 여러가지가 있는데, 각 상황에 맞게 사용된다. 먼저 인덱스가 무엇인지 알아보고, 어떤 기준으로 상황에 맞는 알고리즘을 고르면 될지 알아보도록 하자 그리고, 이 글은 꽤나 길기때문에 원하는 정보가 있다면 우측의 인덱스를 잘 활용하길 바란다 👉 🤔 인덱스란? 인덱스는 메모리 영역에 존재하며, 지정된 컬럼을 기준으로 생성된 목차를 의미한다. 아래 그림을 예시로 들어보자. 위 인덱스는 지정된 컬럼(company_id)을 기준으로 정렬되어 있고, pointer가 테이블의 row를 가리키고 있다. 만약 인덱스를 거치지 않고 company_id가 18인 값을 찾으러면 테이블은 company_id 로 정렬되어 있지 ..