Database

    [Database] Transaction

    1. Transaction이란? 트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위로 한꺼번에 수행되어야할 일련의 연산을 의미한다. 트랜잭션은 작업의 안전성을 보장해주기에 논리적인 작업을 모두 처리하거나 혹은 처리하지 못 하는 경우에는 원상태로 복구해주는 기능을 제공하며, 사용자의 입장에서는 논리적 단위로 이해할 수 있고 시스템은 데이터를 접근하거나 변경하는 단위가 된다. 트랜잭션의 예시를 들어보자. A가 B에게 50,000원이라는 금액을 송금하는 Flow를 생각하면, A 통장에서는 50,000원이 빠져나가고, B 통장에서는 50,000원이 추가되어야한다. 하지만 작업 중에 A 통장에서 돈은 빠져나갔지만 B 통장에 50,000원을 추가하는 쿼리에서 에러가 발생하면 ..

    Docker를 이용하여 MySQL Write(master), Read(slave)로 Replication 구현하기.

    Replication이란? Replication이란 말 그대로 실시간으로 복제본 데이터 베이스 서버를 운영하는 것으로, 원본 서버를 마스터 서버, 이를 복사하여 사용하는 서버를 슬레이브 서버라고 칭한다. 서버에서 DB가 변하는 요청인 INSERT, UPDATE, DELETE 등은 마스터 서버로 요청을 보내고, SELECT와 같은 조회는 슬레이브 서버로 요청을 보내서 사용하는 것이 일반적이며, 마스터 서버는 받은 요청을 똑같이 슬레이브 서버로 실시간으로 보내 동일한 상태를 유지한다. Replication을 사용하는 이유는 디비 서버를 분리하여 디비 서버에 대한 부하를 줄이기 위함과 데이터의 안정성에 있다. 오늘은 Docker를 이용하여 Replication Mysql를 구성해보자. 0. 프로젝트 구성 ├─..

    [MySQL] MySQL 설치, 설정 - Mac With Homebrew

    참고 블로그 : https://shanepark.tistory.com/41 해당 게시글은 Homebrew가 Mac에 설치가 되어있다는 전제하에 진행 합니다. Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 1. MySQL 설치 터미널을 켜서 아래의 명령어로 homebrew를 통하여 MySQL를 설치한다. brew install mysql 문제 없이 설치가 완료 된다면 아래의 명령어를 통하여, MySQL의 설치 여부와 버전을 확인한다. mysql -V 그리고 MySQL를 실행시키기 위한 명령어를 입력하면 아래와 같이 나온다. mysql.server start 2. MySQL 설정하기. MySQL를 설공적으로 설치 했다면, 초기 설정을 ..