1. mysql  언어 설정 확인 
2. 계정 생성 및 권한 설정 
3. yml 파일 설정하기 
4. datasource 와 connection pool 개념 확인

MYSQL 설정

-- UTF-8 언어 확인 
show variables like 'character_set%';
show variables like 'c%';
-- java : utf-8 -> 1~4 동적으로 처리 
-- mysql : utf-8 : 3byte 
-- mysql : utf-8mb4 확장 : 4byte 

-- 데이터 베이스 생성하기 
create database green_blog;

-- 사용자 생성 및 권한 처리 
create user 'ten'@'%' identified by '1q2w3e4r5t!';
grant all privileges on *.* to 'ten'@'%';

create user 'ten'@'localhost' identified by '1q2w3e4r5t!';
grant all privileges on *.* to 'ten'@'localhost';

flush privileges;

-- 사용자 확인 
use mysql;
select user, host from user;

yml 파일 설정

server:
  port: 8080
  servlet:
    context-path: /
    
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/green_blog?serverTimezone=Asia/seoul
    username: ten
    password: 1q2w3e4r5t!

datasource 와 connection pool 이란


DataSource는 데이터베이스에 접근하기 위한 Connection을 생성해주는 역할을 합니다. 
Connection 객체를 통해 SQL문을 실행하고 데이터베이스에 접근합니다. 즉, 
Datasource는 데이터베이스와 연결하기 위한 인터페이스입니다.

DataSource는 Connection을 생성하고 관리하기 때문에, 
데이터베이스 연결과 종료 등에 대한 부분을 개발자가 직접 처리하지 않아도 됩니다.

기본적으로 설정은 yml 파일에서 설정하고 이렇게 설정된 DataSource는 스프링에서 자동으로 관리되며 
프로그램에서는 @Autowired(DI) 사용하여 쉽게 주입 받아 사용할 수 있습니다.

**커넥션 풀(Connection Pool)이란** 미리 정해진 개수의 데이터베이스 커넥션을 풀(Pool)에 저장해 두었다가,
필요할 때마다 커넥션 풀에서 꺼내서 사용하는 기법을 말합니다. 이는 데이터베이스와의 연결을 생성하고 종료하는 비용을 줄이며,
불필요한 연결 생성으로 인한 리소스 낭비를 줄여줍니다.

커넥션 풀을 사용하면 데이터베이스 연결을 더욱 효율적으로 관리할 수 있으며, 성능 향상에도 큰 도움을 줍니다.
커넥션 풀은 미리 커넥션을 생성해 두기 때문에, 요청이 들어올 때마다 매번 새로운 커넥션을 생성하지 않고, 
미리 생성된 커넥션을 사용하게 됩니다. 이는 데이터베이스와의 연결 시간을 단축시키고, 처리 속도를 높여줍니다.

Spring Boot에서는 HikariCP, Tomcat CP, Commons DBCP2 등 다양한 커넥션 풀 라이브러리를 지원합니다.
이러한 커넥션 풀 라이브러리를 사용하면, 설정만으로 커넥션 풀을 쉽게 적용할 수 있습니다.

-- 연결된 프로세스 확인하기 
show processlist; 
show full processlist; 
kill 21;

-- id : 프로세스 아이디 
-- User : 스레드가 접속하고 있는 Mysql 사용자 명 
-- host : 사용자 컴퓨터 주소, IP Address 
-- command : 스레드의 현재 상태
-- Time : 프로세스가 현재 커맨드된 상태에서 동작 시간 
-- State : 사람이 읽을 수 있는 스레드 상태 정보 
-- info : 현재 실행되는 SQL
daemon이란 뭘까?
MySQL에서 daemon은 시스템 또는 네트워크 서비스를 제공하기 위해 항상 실행되는 백그라운드 프로세스를 의미합니다.
Daemon은 일반적으로 사용자가 직접 실행하는 프로그램이 아니라 시스템이나 프로세스에서 자동으로 시작되며,
운영 체제에서 실행되는 것이 일반적입니다.

'Spring boot > Spring boot 3단원 JPA & Security' 카테고리의 다른 글

JSP 연결 , yml 파일 추가 설정  (0) 2023.05.10
yml 기본개념  (0) 2023.05.10
프로젝트 생성 및 Git 설정  (0) 2023.05.10

+ Recent posts