본문 바로가기
반응형

데이터베이스5

Liquibase (리퀴베이스) 사용기 회사 데일리 스크럼에서 팀장님이 리퀴베이스에 대해 말씀해주셨는데, 처음 듣는 단어여서 뭔지 궁금했다. 그래서 실습을 해보면서 리퀴베이스가 뭔지 익혀보기로 했다! 리퀴베이스란? 우리는 소스코드 형상관리를 위해서 GIT 을 주로 사용한다. 코드는 GIT으로 형상관리 하는데.. DB 는..? DB 를 형상관리하는 것이 리퀴베이스다. 실습해보기 Spring-boot, JPA, liquibase, h2 DB 로 실습을 해보았다. Dependencies 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-w.. 2022. 7. 8.
대용량의 데이터로 MySQL 학습하기 회사에서 DB 학습을 하기에는 한계가 있다보니 개인 프로젝트로 대용량의 데이터를 다루는 연습을 하고 싶었다. 구글링을 해보니 대량의 Sample Data 을 제공하고 있어서 이것을 활용하여 학습하기로 했다. 준비 먼저 대량의 Sameple Data 가 들어가있는 github 저장소를 clone 해준다. https://github.com/datacharmer/test_db Docker 를 설치하고 MySQL 이미지를 다운로드 해준다. (Docker 설치는 구글링하면 자료가 많으니 생략) docker pull mysql:8.0.22 Docker 컨테이너를 생성 및 실행한다. docker run --name mysql-study -e MYSQL_ROOT_PASSWORD=password -d -p 3306:33.. 2022. 1. 12.
인덱스란? 인덱스란? 색인 데이터베이스 객체 책의 '목차' 작은 데이터는 인덱스가 없어도 큰 차이가 없지만, 대량의 데이터에는 인덱스가 있어야 빠른 검색이 가능하다. 인덱스가 작성되지 않은 테이블은 Full table scan을 합니다. 모든 테이블을 조사하므로 단순하지만 성능이 느립니다. 따라서 인덱스를 사용하여 검색속도를 높일 수 있습니다. 인덱스에 쓰이는 대표적 알고리즘 B Tree 원하는 수치와 비교해서 더 크면 오른쪽 가지로, 작으면 왼쪽 가지를 조사해 나갑니다. 이진 트리는 같은 값을 가지는 노드를 여러 개 만들 수 없어 '유일성'을 보장합니다. 해시 검색하고자하는 값을 해시함수에 입력한 후 그 결과와 Bucket의 내용과 비교하여 해당 데이터 레코드의 위치를 찾을 수 있는 .. 2019. 10. 17.
데이터베이스 DBMS 데이터베이스 관리 시스템 (Database Management System) 이게 굳이 왜 있어야 할까? 데이터베이스를 좀 더 효율적으로 관리하도록 도와주는 소프트웨어 생산성 DBMS가 없다면 : 개발에 필요한 기본 기능(CRUD)들을 수작업으로 구현해야함 DBMS 사용 시 : 기본 기능들이 구현이 되어있어 효율적 기능성 DB를 다루는 다양한 기능 제공 ex) 다수의 요청 대응, 유저에 의한 DB 관리 기능 확장 신뢰성 하드웨어(하드디스크 등..)를 여러대로 구성하여 확장성(Scalability), 부하 분산(Load balancing)을 구현 export, import등의 기능을 통해 데이터베이스 백업이 가능 Scalability (확장성) 란? 규모의 조절이 가능한 것 운영의 효율을 위해 사.. 2019. 5. 16.
MySQL 데이터 저장 시 한글 깨짐 현상 문제 Spring-boot 프로젝트에 MySQL을 연동해서 사용하는 과정에서 INSERT 문으로 한글 데이터를 DB에 삽입하면 '???'와 같이 한글이 깨지는 현상이 발생. 해결 MySQL 5.7 버전 기준으로 C:\ProgramData\MySQL\MySQL Server 5.7 경로의 my.ini 파일을 메모장으로 연다. 그 후 맨 밑에 다음의 내용을 복사해 추가해준다. [client] default-character-set=utf8 [mysqld] collation-server=utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server=utf8 [mysql] default-character-set=utf8 변경사항을 적용시키기 위해서는 MyS.. 2019. 4. 8.