MySQL
-
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이 작업중인 작업을 간섭할 수 ..
-
Golang - ORM(1) [7]Go 2021. 2. 7. 23:36
백엔드개발을 하다보면 데이터를 객체화해서 DB에 저장하는 일이 많다. 이 과정에서 DB에서 객체로 객체에서 DB로 변환해주는 과정을 거쳐야 된다. 이런 과정을 줄이고 정리하기위해 ORM이란걸 사용하게된다. ORM 이란? 객체 관계 매핑(Object-relational mapping; ORM)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법이다. 객체 관계 매핑을 가능하게 하는 상용 또는 무료 소프트웨어 패키지들이 있고, 경우에 따라서는 독자적으로 개발하기도한다. golang에서도 orm을 사용할 수 있도록 해주는 api가 있다. (https://gorm.io/index.ht..
-
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 서버만들기 - MariaDB 설치하기 [6]Go 2021. 1. 3. 21:16
1. 라즈베리파이에 아래 명령어로 MySQL을 설치합니다. apt-get update apt-get install mariadb-server 2. mysql 에 접속합니다. mysql -u root -p 초기비밀번호를 설정합니다. 3. localhost에서 접속할때 localhost를 허용해주어야 됩니다. # 마지막의 raspberry는 위에서 설정한 비밀번호이다. grant all privileges on *.* to 'root'@'localhost' identified by 'raspberry'; 4. mysql에 접속이 되면 설치가 완료되었습니다. 5. 데이터베이스 리스트를 확인합니다. show databases; 6. mysql 데이터베이스를 사용하고, 테이블을 확인합니다. use mysql; s..