본문 바로가기

Database10

기존 GUID(UUID) 데이터베이스 Primary Key 사용: 특징과 고려사항 기존 GUID(UUID) 데이터베이스 Primary Key 사용: 특징과 고려사항안녕하세요. 오늘은 이전에 흔히 사용되던 GUID(Globally Unique Identifier) 또는 UUID(Universally Unique Identifier)의 특징과 이를 데이터베이스의 Primary Key(PK)로 사용할 때 고려해야 할 점들에 대해 이야기해 보겠습니다.1. GUID(UUID)란 무엇인가?GUID는 128비트로 구성된 고유 식별자입니다. 기본적으로 랜덤하게 생성됩니다. 이는 여러 시스템에 걸쳐 충돌할 확률이 매우 낮은 고유한 값을 만들기 위해 고안되었습니다.2. GUID의 사용 목적: 왜 랜덤한 ID가 필요했나?GUID가 등장한 가장 큰 이유는 대규모 트래픽 환경 때문입니다. 일반적인 환경에서는.. 2025. 5. 18.
[MySQL 8.0] The Physical Structure of an InnoDB Index*** 보호되어 있는 글 입니다. 2021. 10. 19.
GROUP BY VS DISTINCT CLAUSE 보호되어 있는 글 입니다. 2021. 10. 18.
EXIST VS IN CLAUSE 보호되어 있는 글 입니다. 2021. 10. 18.
시나리오를 통해 Flyway 사용법 학습하기 여는 글 우아한 테코톡의 코기님의 영상 뿐만 아니라 이미 Flyway에 대한 자료는 인터넷 상에 많이 공개 되어 있습니다. 다만, 제가 글 뿐으로는 사용 방법에 대해서 백 퍼센트 이해하기가 힘들었습니다. 그래서 해당 라이브러리가 해결해주는 문제의 범위, 그리고 한계점에 명확히 이해하기 위해 직접 간단한 테스트 프로젝트를 만들어 직접 만들어 보며 학습해보았습니다. 우선 Flyway 자체에 대해서는 아래 링크를 통해 이해하시고, 실제 실습은 제 Github Repository를 내려 받아서 직접 따라하시면서 공부해봅시다. 기본 학습 자료 Flyway에 대해 설명하는 Toast의 글 https://meetup.toast.com/posts/173 코기 님의 Flyway 소개와 이미 구축된 DB가 있는 경우에 대.. 2021. 10. 5.
[H2] 원하는 이름으로 된 Non-In-Memory H2 서버 만들기 H2로 테스트 환경을 만들 때 디스크에 인 메모리가 아닌 H2 서버를 만들고 싶을 수 있습니다. 저 또한 Flyway의 구동 원리를 테스트 하기 위한 환경을 구축하던 중 필요하게 되어 찾아봤습니다. 방법은 간단합니다. 1) H2 홈페이지에 접속하셔서 All Platforms 버전의 H2를 다운로드해주세요. 2) 압축을 푸신 후 bin 폴더에 있는 실행 파일(윈도우: h2.bat, Linux/Unix h2.sh)를 실행해주세요. 3) 8082 포트로 된 H2 프로세스가 실행 중인지 확인해주세요. Window: nestat -ano | findstr 8082 Linux & Unix: netstat -antp | grep 8082 4) 중요한 데이터베이스 서버용 데이터 파일 생성 단계 입니다. 웹 콘솔에 접속.. 2021. 10. 4.
트랜잭션과 격리 레벨 그리고 Lock에 대하여 * 학습에 도움을 주신 스티디원 오길환님께 감사드립니다. 트랜잭션(Transaction) 위키피디아에 설명하는 데이터베이스 트랜잭션 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미합니다. 이 말인 즉슨 클라이언트가 서버에 요청을 보낸다고 했을 때, 그 요청 자체를 하나의 트랜잭션이라고 볼 수 있다. 요청은 하나지만 요청을 받는 서버는 여러 단계를 거쳐 처리할 수 있고 그 과정에서 성공하거나, 실패할 수 있습니다. 이러한 트랜잭션이 가지는 특성은 다음과 같습니다. 트랜잭션의 특성 원자성(Atomicity): 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 .. 2020. 12. 19.
Clustering vs Replication vs Sharding 이번 글에서는 샤딩과 클러스터링, 레플리케이션을 비교해보고 그 차이점을 알아보도록 하겠습니다. 아래 사진은 가장 기본적인 DB 구조 입니다. 위 사진은 DB 서버와 디스크 역할을 하는 DB 스토리지가 한 구성으로 되있습니다. 그런데 이 구성과 같이 DB를 한 대만 운영 할 경우에 문제점은 DB 서버가 죽으면 관련된 서비스가 전체가 중단되게 됩니다. 이에 대한 가장 간단한 방안으로 DB 클러스터(Cluster) 가 있습니다. 위 사진과 같이 클러스터를 구성하는 것을 클러스터링(Clustering) 이라 합니다. 동일한 DB 서버를 두 대를 묶고 두 DB 서버를 Active-Active 상태로 운영하면, 하나의 DB 서버가 죽더라도 나머지 DB 서버가 살아있기 때문에 정상적으로 서비스가 가능해집니다. 또한 .. 2020. 9. 24.
[퍼온 글] MySql 원격 접속 방법 출처: https://m.blog.naver.com/PostView.nhn?blogId=varkiry05&logNo=198610727&proxyReferer=https:%2F%2Fwww.google.com%2F MySQL 외부접속(원격접속) 열기!! # mysql -u root -p 를 통해 먼저 접속한 후. > use mysql > grant all privileges on *.* t... blog.naver.com # mysql -u root -p 를 통해 먼저 접속한 후. > use mysql > grant all privileges on *.* to 'root'@'%' identified by '비밀번호'; > flush privileges; 이후 나간후에 다시 접속해보자 # mysql -u ro.. 2020. 6. 21.