Database
-
InnoDB와 Transaction Isolation LevelDatabase 2021. 11. 21. 16:50
1. Transaction Transaction이란, 데이터베이스를 조작하는 작업의 단위이다. 조회 와 수정을 하나의 행위로 묶는 등 한가지 이상의 행위를 묶어 하나의 단위로 표현한다. Transaction은 흔히 ACID원칙을 보장해야 한다고 한다. ACID는 각각 Atomicity(원자성), Consistency(일관성), Isolation(독립성), Durability(영구성)을 뜻한다. Atomicity: transaction의 작업이 부분적으로 성공하는 일이 없도록 하는 성질이다. Consistency: transaction이 끝나고 나면 DB의 제약조건이 맞도록 보장하는 성질이다. Isolation: Transaction이 진행되는 중에 다른 Transaction이 작업중인 작업을 간섭할 수 ..
-
EC2 - Docker MariaDB 설치하기 [5]AWS 2021. 1. 31. 19:51
2021/01/26 - [AWS] - EC2 - Ubuntu Docker 설치하기 [4] EC2 - Ubuntu Docker 설치하기 [4] 1. apt 업데이트, 패키지 설치 sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common 2. GPG key 등록 curl -fsSL https://dow.. yun-seyeong.tistory.com 1. MariaDB 이미지 설치 docker pull mariadb 2. 컨테이너 생성 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 m..
-
RaspberryPi로 Golang 서버만들기 - 회원관리 하기 (2) [6]Go 2021. 1. 6. 23:06
1. API 구조 . ├── db │ └── manager.go ├── go.mod ├── go.sum ├── main.go ├── user │ └── user.go └── vendor ├── github.com ├── golang.org └── modules.txt Package는 다음과 같이 구성했습니다. 데이터베이스를 쿼리하고 설정하는 코드는 db폴더에 manager.go에 구현하였고, user관련 비즈니스로직은 user폴더안의 user.go에 구현하였습니다. 따라서 요청이 왔을때 main -> user -> db 순서대로 요청이 가게 됩니다. 2. DB Manager package db import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) /..
-
RaspberryPi로 Golang 서버만들기 - 회원관리 하기(1) [6]Go 2021. 1. 6. 22:20
지금까지 세팅한 라즈베리로 회원관리 시스템을 만들어 보겠습니다. 먼저, DB설계를 하고, 이를 바탕으로 API를 구성해보겠습니다. 1. DB 설계 회원정보 이름 PK 타입 Nullable id * varchar(12) X password varchar(15) X email varchar(30) phone varchar(15) 2. SQL 테스트 데이터베이스 생성 CREATE DATABASE IF NOT EXISTS RASPBERRY_SERVER; 테이블 생성 CREATE TABLE IF NOT EXISTS `user` ( `id` varchar(12) NOT NULL, `password` varchar(15) NOT NULL, `email` varchar(30) DEFAULT NULL, `phone` v..