1. MySQL
(0) MySQL 로컬 서버 활성화/종료
# 서버 활성화
mysql.server start
# 서버 종료
mysql.server stop
(1) 터미널로 연결하기
- 로컬에 설치된 MySQL 서버에 root 사용자로 접속하는 명령어.
mysql -u root -p
- MySQL 원격 접속을 위한 명령어.
- -h: 호스트. 111.111.111.111은 MySQL 서버의 IP 주소.
- -P: 포트 번호.
- -u: 사용자 이름.
- -p: 비밀번호 입력을 요청.
mysql -h 111.111.111.111 -P 3306 -u nhn_exam_17 -p
(2) Spring Boot 에서 properties 파일로 연결하기
- 의존성 추가.
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
2. properties 파일 설정.
- MySQL URL 형식: jdbc:mysql://<host>:<port>/<database_name>
(기본 localhost:3306) - JDBC 드라이브 클래스: com.mysql.cj.jdbc.Driver
- DB username
- DB password
- JPA 및 Hibernate 설정
# DB 연결
spring.datasource.url=jdbc:mysql://<host>:<port>/<database_name>?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=hello
spring.datasource.password=world!
# SQL 쿼리 출력
spring.jpa.show-sql=true
# 쿼리를 보기 좋게 정렬
spring.jpa.properties.hibernate.format_sql=true
# DDL 자동 생성 및 dialect 설정
spring.jpa.hibernate.ddl-auto=update
# Hibernate가 사용할 DB 방언 설정 (MySQL 8에 최적화된 SQL 문법 사용)
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
2. H2
Spring Boot 에서 properties 파일로 연결하기 - 2가지 방법
1. 의존성 추가.
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
(1) TCP 서버 모드 (파일 기반)
2. properties 파일 설정.
- H2 URL 형식: jdbc:h2:tcp://<host>:<port>/<database_name>
# tcp://localhost 는 H2 DB가 TCP 서버 모드로 로컬호스트에서 실행되고 있음을 의미
# ~/h2test 는 H2 DB 파일이 사용자 홈에 h2test.mv.db 로 저장된다는 의미
spring.datasource.url=jdbc:h2:tcp://localhost/~/h2test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# Hibernate 설정
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
# SQL 쿼리를 보기 좋게 정렬해서 출력
spring.jpa.properties.hibernate.format_sql=true
# H2 콘솔 활성화
spring.h2.console.enabled=true
3. 콘솔창 실행.
- 주소창에 "localhost:8080/h2-console" 입력.
(2) 인메모리 모드 (메모리 기반)
2. properties 파일 설정.
- H2 URL 형식: jdbc:h2:mem:testdb
# H2 설정
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# Hibernate 설정
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
# SQL 쿼리를 보기 좋게 정렬해서 출력
spring.jpa.properties.hibernate.format_sql=true
# H2 콘솔 활성화
spring.h2.console.enabled=true
3. 콘솔창 실행.
- 주소창에 "localhost:8080/h2-console" 입력.
* 주요 차이점
구분 | TCP 서버 모드 (파일 기반) | 인메모리 모드 (메모리 기반) |
데이터베이스 저장 위치 | 로컬 파일 시스템에 데이터베이스 파일로 저장 (h2test.mv.db) | 메모리 내에서만 존재 (데이터 지속되지 않음) |
데이터 지속성 | 데이터가 파일에 저장되어 애플리케이션 종료 후에도 유지 | 애플리케이션 종료 시 데이터가 사라짐 |
멀티 클라이언트 지원 | 여러 클라이언트가 동시에 연결 가능 | 애플리케이션에서만 연결 가능 (단일 클라이언트) |
서버 실행 여부 | h2.sh 명령어로 H2 서버를 실행하고 클라이언트가 연결 | 별도의 서버 실행 없이 애플리케이션에서 데이터베이스 사용 |
용도 | 실제 운영 환경에서 파일 기반 데이터베이스로 사용 | 테스트 환경 또는 데이터 지속성이 필요하지 않은 경우 사용 |
3. Redis
Spring Boot 에서 properties 파일로 연결하기
1. 의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2. properties 파일 설정.
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=your_redis_password (optional)
spring.data.redis.database=3
3. 터미널로 Redis 접속
(1) Redis 서버 실행 - 기본 포트: 6379
redis-server
(2) Redis-cli로 redis 접속
redis-cli
redis-cli -h <host> -p <port> -a <password>
# 비밀번호 (특수문자 있으면 따옴표 필수) ex) '!123143*nehs'
redis-cli -h <호스트> -p <포트> -a <비밀번호> -n <DB 번호>
(3) Redis DB 설정
# 현재 DB 확인
INFO keyspace
# 결과 예시: Keyspace
# db0, db1: 각각 데이터베이스 번호
# keys: 데이터베이스에 저장된 키의 수
# expires: 만료 설정이 있는 키의 수
# avg_ttl: 키의 평균 TTL(Time to Live) 값(밀리초 단위)
db0:keys=10,expires=2,avg_ttl=123456
db1:keys=5,expires=0,avg_ttl=0
# 특정 DB 선택
SELECT <DB 번호>
'Spring' 카테고리의 다른 글
[Spring Error] Error creating bean with name 'jpaAuditingHandler': (0) | 2025.05.01 |
---|---|
[Spring Boot] 01. Spring Boot Core (4) - Test와 Logging (0) | 2024.11.24 |
[Spring Boot] JDK Proxy vs CGLIB Proxy (0) | 2024.11.24 |
[Spring Boot] 서비스 추상화 (Portable Service Abstraction) (1) | 2024.11.09 |
[Spring Boot] 01. Spring Boot Core (3) - AOP(관점 지향 프로그래밍) * (0) | 2024.11.08 |