[Docker] Spring Boot에서 Docker Compose로 MySQL 환경 구성하기
·
공부일기../Docker
인트로"어? 내 컴퓨터에서는 잘 되는데 왜 너 컴퓨터에서는 안 돼?" 특히 데이터베이스 연결 부분에서 이런 일이 자주 일어난다.한 명은 MySQL을 직접 설치해서 쓰고, 다른 한 명은 Docker로 띄워서 쓰고... 이런 식으로 각자 다른 환경에서 개발하면 나중에 배포할 때 문제가 생기기 마련이다. 그래서 오늘은 Docker Compose를 활용해서 팀 전체가 동일한 MySQL 환경을 쓸 수 있도록 설정하는 방법을 알아보려고 한다.그리고 내가 자꾸만....겪는 도커에서 자동으로 데이터베이스가 왜생성안되는지까지 포스팅하도록 하겠다. 1. Docker Compose로 MySQL 띄우기[프로젝트 구조!]├── Spring Boot App (Port 8080)│ ├── Profile: local → My..
[DB 인덱스 개념 정리] B+Tree, 클러스터드 인덱스, 카디널리티, 커버링 인덱스, 디스크와 메모리
·
공부일기../DataBase
인덱스를 이해하려면 B+Tree 구조, 디스크와 메모리 차이, 카디널리티, 커버링 인덱스 등의 개념이 반드시 필요하다.이번 포스팅은 "인덱스가 실제 데이터를 저장하지 않고 PK만 저장한다는 말의 진짜 의미"부터 시작해 하나씩 차근히 정리해보려 한다.1. 디스크 vs 메모리 – 왜 이걸 알아야 할까?DB 성능을 이해하려면 가장 먼저 디스크와 메모리의 차이를 이해해야 한다.항목 메모리(RAM) 디스크(HDD/SSD)역할계산 중인 데이터를 임시 저장데이터를 영구 보관속도매우 빠름 (나노~마이크로초)상대적으로 느림 (밀리초)전원 종료 시모두 사라짐그대로 유지됨DB에서쿼리 캐시, 버퍼 풀실제 테이블/인덱스 파일 저장📌 즉, 디스크 접근은 느리기 때문에 최대한 적게 하도록 하는 게 쿼리 최적화의 핵심!2. 비트리..
[MySql] 컬럼 일련번호 자동 증가 AUTO_INCREMENT
·
공부일기../DataBase
게시판 테이블을 만들때 처음엔 일련번호를 자바에서 증가 시키려고했다. 근데 한번 디비에 갔다가 왔다가 다시 숫자가지고 와서 저장시키는게 너무 번거로운일아닌가..사실 실무에서도 나는 오토시퀀스를 잘 사용하는 편이다.. 테이블을 이미 만들었고, 성격급한 나는 Dump Data를 넣어둔 상태였다. 나의 ERD테이블이다. 우선 외래키때문에 안될수도있으니 임시로 외래키를 비활성화하는 코드를 적었다.그리고 이미 데이터를 2번까지 넣어놔서 board_no은 4번부터 시작하라는 코드도 실행했다.혹시 에러가난다면넣은 데이터를 다 지우고 AUTO_INCREMENT를 설정해주는게 제일 깔끔한 방법이긴하다..SET foreign_key_checks = 0;-- 여기서 ALTER 수행ALTER TABLE board AUTO..
[DBeaver] MySQL 연결 시 "Unknown database '데이터베이스이름' " 해결하기 / Database 이름 찾기/생성하기 - MacOS
·
공부일기../DataBase
`DBeaver` 연결할때 나는 두개의 에러가 발생했었는데 한개는 버전문제(이전 포스팅), 한개는 이름을 까먹음..!ㅋㅋ 유저이름이랑 암호까지는 정확하게 기억이나는데 Database이름이 기억이 안났음..ㅋ "Unknown database '데이터베이스이름'" 에러분명 만들었을때 springboot어쩌고로 만들었던거같은데 도저히 기억이 나지않는것..! 해결방법 1. 터미널에 들어가서 현재 존재하는 데이터베이스 목록확인엥 ;; 내가만든 데이터 베이스가 없었음.. 뭐지 졸면서 해서그랬나봄....여기서 내가 만든 데이터 베이스가 있다면 입력!! 없다면 2번에서 나와 함께 새로 만들어보자..SHOW DATABASES; 2. 새로운 DB 만들기CREATE DATABASE springboot; 3. 생성한 ..
[DBeaver] MYSQL 설치하기 - 맥북 M1
·
공부일기../DataBase
회사에서는 오라클을 사용하기 때문에Oracle SQL Developer(오라클전용-유료) , Toad (오라클전용-유료) , DBeaver, SQL Developer 등등 .. 을 사용해보았다. 이번에 스터디를 하면서 MySql 8.0.41 을 사용하기로 했기때문에 데이터베이스를 노트북에 깔아야했다.처음에는 맥 터미널에서 `brew`명령어를 이용해서 설치를 했는데 아무래도 GUI도구가 있으면 편할것같아서 DBeaver를 설치하기로 했다. DBeaver란?DBeaver는 다양한 데이터베이스를 관리할 수 있는 통합 개발 환경(IDE)이자 SQL 클라이언트Community Edition 버전을 사용하면 라이선스(Apache License)가 무료오픈 소스 기반으로, MySQL, PostgreSQL, Orac..