PostgreSQL Transaction isolation level
DataBase 2021. 12. 13. 06:35

대다수 DB MS에서는 Transaction의 고립화 수준을 표준에 따르도록 설계되여 있다. 이번 글에서는 그 고립화 수준에 대해 정리해 보자 Transaction isolation level Read Uncommitted Transaction 처리 중이고 아직 Commit 되지 않는 내용도 읽을 수 있다. 이 레벌에서는 Dirty read가 발생한다. Transaction에서 처리하다가 문제 생겨서 roll back 하는 경우 만약 다른 곳에서 roll back한 데이터를 읽는다면 큰 문제가 생길 수 있다. PostgreSQL에서는 이 level을 지원하지만 PGSQL에서 지원하지 않으므로 공식적으로 지원하지 않는 레벨이다. Read Committed 모든 읽은 데이터는 Commit된 데이터를 보장하는..

ORM 장단점
DataBase 2021. 12. 12. 20:51

현재 거의 모든 실무 개발에서 ORM에 대한 의존도가 높다. ORM를 사용함에 있어 얻게 되는 장단점에 관하여 정리해 보겠다. 그리고 SQL 방식의 장단점에 대하여 간단히 알아보자. ORM Pros 객체지항적으로 코드를 구현할 수 있어 직관적이다. 개발자는 모델 자체에만 집중하면 된다. 부수적인 코드를 적게 작성하여 가독성을 높일 수 있다. 재사용, 리팩토링, 유지보수에 용이하다. 다양한 Database의 스위칭이 쉬워진다 SQL에 친숙하지 않은 개발자도 쉽게 개발 할 수 있다. ORM Cons 설계의 복잡도가 올라가면 ORM으로 해결 할 수 없는 부분이 있고 SQL을 직접 튜닝해야 되는 부분이 존재한다. ORM에 너무 의존하게 되면 트러블 슈팅을 해결하기 어렵다. 한 Framework에 의존적이게 된다..

Postgres Failover 방법
DataBase 2021. 12. 12. 20:17

PostgreSQL auto Failover 에 대한 방법을 정리 하였다.(이전 작업에 대한 복구) 구성 : Master, Slave 서버 각 1대. Replication 방법은 PostgreSQL 설치부터 이중화까지 참조 PostgreSQL는 이중화 방식으로 Stream 방식과 WAL(Write Ahead Log) 방식을 지원 한다. https://ssup2.github.io/theory_analysis/PostgreSQL_Replication/ 위의 설명 대로 PostgreSQL 자체적으로 Replication 방법을 제공 하고 있다. 그런데 auto fail over 기능은 제공하지 않는다. 제3의 software를 사용하여 구현햐야 한다. PGPool은 auto fail over 및 load ba..

PostgreSQL 설치부터 이중화까지
DataBase 2021. 12. 12. 20:07

이전에 작업했던 PostgreSQL 이중화 방법에 대한 것을 다시 정리해 보았다. 설치(Ubuntu 기준) 먼저 apt-get을 이용하여 postgresql를 설치 한다. sudo apt-get install wget ca-certificates wget --quiet -O - | sudo apt-key add sudo sh -c 'echo "deb `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' sudo apt-get update sudo apt-get install postgresql-10 postgresql-contrib-10 PostgreSQL를 설치하면 postgres 사용자가 생성된다. postgres 사용자 비번 설정은 ..

MongoDB 기본적인 사용법
DataBase 2021. 11. 7. 15:27

앞글에서 docker를 이용하여 MongoDB를 올리는 법에 대해 다루었다. 이 글에서는 MongoDB의 몇개의 기본적인 개념과 CRUD를 구현 하는 방법에 대해 다룰 예정이다. 이 글에서는 DataGrip query consol를 이용하여 설명할 예정이다. Collections RDB에는 Table 개념이 있듯이 MongoDB에는 Collection이 있다. Collection은 Documents의 집합이라고 볼수 있다. Create Collection Collection을 만드는 방법은 간단하다. 아래 query가 실행하는 동시에 만약 해당하는 collection이 없으면 해당 collection를 만든다. inserOne과 createIndex 두 명령어만이 새로운 collection을 만들 수 있..

MongoDB 개념 및 docker로 서비스
DataBase 2021. 11. 7. 10:40

NoSQL DB란 Not only SQL라는 뜻으로써 단순히 기존 관계형 DBMS의 특성뿐만 아니라 다른 특성들도 포용한다는 뜻으로 이해 된다. 정형화 되지 않은 데이터를 수용하고 그것들의 확장성을 쉽게 할 수 있는 장점이 있어 요즘 각광을 받는 것 같다. RDBMS와 NoSQL의 차이점을 잘 정리된 글이 있어 공유 한다. Mongo DB NoSQL 진영에서 제일 각광 받고 제일 많이 사용되는 Database이다. Mongo DB는 Document 기반으로 구성되었다. 또한 RDBMS의 ACID 대신 BASE특징을 지원한다. BASE는(Basically Available Sift state Eventually consistent)의 약자로써 기본적인 가용성을 보장한다고 이해하면 될것 같다. Docker로..

Docker로 PostgreSQL를 서비스 하기
DataBase 2021. 11. 3. 22:12

PostgreSQL은 open-source ORDBMS 이다. 현재 제품 개발 시 MySQL를 많이 사용되지만 PostgreSQL도 그것만의 매력이 있는건 사실이다.이글 통해 두 DB의 장단점을 어느정도 파악 할 수 있을것 같다. Docker&Docker compose 설치 구글에서 검색하여 나온 블로그를 보면 Docker 설치에 관한 내용이 잘 정리되여 있다. 여기서 잘 정리된 블로그를 소개한다. 설치부터 설정 등등이 모두 포함되여 있다(CentOS 기준으로 작성되었음) PostgreSQL 컨테이너 실행 PostgreSQL를 서비스로 올리려면 공식적으로 제공되는 docker image를 사용해야 한다. 아래 사이트로 방문하면 버전 별로 태그를 확인할 수 있다. https://hub.docker.com/..