반응형

Spring Boot 29

[Spring Boot] Logback 사용한 원하는 위치게 로그 파일 생성 방법

Logback을 사용하면 간단하게 로그 관리를 할 수 있다. 로그 파일 생성, 일자별 생성, 파일 사이즈 기반 롤링 등 다양한 옵션을 제공하여 로그를 효과적으로 기록하고 관리할 수 있다. Spring Boot Start로 프로젝트를 생성하면 [spring-boot-starter-logging]이 포함되어 있어 별도의 의존성을 추가할 필요 없이 사용 가능하다.1. 사용 방법1-1)  src/resources/logback-srping.xml  파일 생성 %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n /Users/home/logs/server.l..

Java 2024.05.17

[Spring Boot / 오류] data.sql Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource

Spring Boot에서 data.sql 파일을 사용하여 데이터베이스 스키마를 초기화하려고 할 때 발생하는 오류 중 하나로 여러 가지 원인으로 발생할 수 있다. 1. SQL Script DataSource Initialization의 동작 방식 변경 스프링 부트 2.5.x 버전에서 SQL Script DataSource Initialization의 동작 방식이 변경되어 이전 버전에서는 Hibernate가 초기화된 후에 'data.sql' 스크립트가 실행되었지만, 해당 버전부터는 data.sql 스크립트가 Hibernate 초기화되기 전에 실행되도록 기본 설정된다. 따라서 Hibernate 초기화 후에 'data.sql'스크립트를 실행되게 해야 한다. // application.yml 설정 파일 sprin..

오류 해결 2023.09.24

[Spring Boot/Spring Cloud] MSA - API Gateway를 사용한 로드밸런싱 방법

API Gateway란? MSA는 소규모의 독립적인 서비스로 구성되어 개별적으로 배포, 확장 및 관리할 수 있도록 하는 아키텍처 패턴이다. 이러한 마이크로서비스들은 자체적으로 기능을 제공하며, 각각이 독립적으로 운영될 수 있어야 하는데 이때, API Gateway는 클라이언트와 마이크로서비스 사이의 중간 매개체로 작동하여 통신을 효율적으로 관리한다. 1. Eureka 서버 프로젝트 생성 2023.07.23 - [Java] - [Spring Boot/Spring Cloud] MSA - Netflix Eureka 서버/클라이언트 구축 [Spring Boot/Spring Cloud] MSA - Netflix Eureka 서버/클라이언트 구축 Spring Cloud Netflix Eureka란? MSA를 구축하..

Java 2023.08.04

[Spring Boot/Spring Cloud] MSA - Netflix Eureka 서버/클라이언트 구축

Spring Cloud Netflix Eureka란? MSA를 구축하기 위한 Spring Cloud 프로젝트 중 하나로, 서비스 디스커버리(Service Discovery)를 지원하는 도구이다. 마이크로서비스 아키텍처에서는 여러 개의 작은 서비스들로 애플리케이션을 구성하는데, 이러한 서비스들은 서로 독립적으로 배포 및 확장될 수 있어야 한다. 따라서, 각 서비스들은 다른 서비스들과 상호작용을 해야 하며 이를 위해 서비스 디스커버리 메커니즘이 필요하다. 쉽게 말해서 key-value로 각각의 서비스를 등록해 저장하고 있는 정보가 서비스 디스커버이고 이를 효율적으로 사용할 수 있는 도구가 Eureka 라이브러리이다. 🔔 서비스 디스커버리 서비스 디스커버리는 MSA의 독립적인 서비스들이 서로 상호작용하고 필요..

Java 2023.07.23

[Spring Boot] Spring Security 권한 설정 및 사용 방법

Spring Security Spring Security는 Java 기반의 애플리케이션에서 보안과 인증을 처리하기 위한 프레임워크로 REST API 및 서비스를 보호하기 위한 다양한 보안 기능을 제공하며 주요 기능으로 인증(Authentication)과 인가(Authorization)가 있다. Spring 프레임워크와 통합되어 사용하기 쉽고 유연한 설정 방식을 제공한다. XML 또는 Java 구성을 통해 보안 설정을 정의할 수 있으며, 어노테이션과 Spring Boot의 자동 설정 기능을 활용하여 간편하게 보안을 구성할 수 있다. * 인증(Authentication) 인증은 사용자의 신원을 확인하는 과정으로, 사용자가 제공한 자격 증명(예: 아이디와 비밀번호)을 검증하여 사용자를 식별한다. Spring ..

Java 2023.07.06

[Spring Boot/Spring Data JPA] Flyway 데이터베이스 마이그레이션

마이그레이션 데이터베이스 마이그레이션이란? 기존 데이터베이스의 스키마와 데이터를 새로운 버전 또는 구조로 이전하는 작업으로 이를 통해 데이터베이스 시스템을 업그레이드하거나 확장할 수 있다. 마이그레이션은 데이터의 백업, 변환, 이동 등의 작업을 포함하며, 데이터의 일관성과 무결성을 유지하고 새로운 데이터베이스 버전으로 전환되며 시스템의 안정성과 확장성을 유지할 수 있다. 1. 동작 흐름 Application Context → Flyway 실행 → 스키마 생성 → hibernate validation(검증) → 적합한 스키마 실행→ 애플리케이션 실행 완료 2. Flyway를 사용한 데이터베이스 마이그레이션 방법 Flyway는 데이터베이스 마이그레이션을 관리하기 위한 오픈 소스 도구이다. 2-1) 의존성 추..

Java 2023.07.04

[Spring Boot] Spring Data JPA 데이터 초기화

* Spring Data JPA 연동 2023.07.02 - [Java] - [Spring Boot] Spring Data JPA 사용 방법 * 전체 소스 https://github.com/kangilbin/Spring-Boot/tree/master/Spring%20Data%20JPA 1. JPA를 사용한 데이터 베이스 초기화 방법 1-1) 스키마 자동 생성 application.properties 설정 파일에 추가 # 엔티티 정보를 바탕으로 자동 스키마 생성 spring.jpa.hibernate.ddl-auto=update spring.jpa.generate-ddl=true // 해당 옵션을 사용할지 말지 여부(기본은 false) Entitiy 클래스를 정보를 바탕으로 스키마를 자동 생성해 준다. sp..

Java 2023.07.03

[Spring Boot] DBCP와 MySQL 개념 및 사용 방법

1. MySQL 설정 1-1) Spring Boot가 지원하는 DBCP HikariCP(기본 DBPC) DBCP는 데이터 베이스 커넥션 풀을 의미한다. 데이터 베이스의 커넥션을 만드는 과정이 많은 작업이 일어나는데 커넥션을 미리 여러개 만들어 필요에따라 사용하는 기능이다.(커넥션의 개수, 사용 기간, 최소 유지 개수 등 설정) * HiKariCP 문서 https://github.com/brettwooldridge/HikariCP#frequently-used 커넥션 개수를 많다고 전부 실행할 수 있는게 아니라 CPU Core 개수와 동일하다. 나머지는 대기한다. # application.properties spring.datasource.hikari.maximum-pool-size=4 커넥션의 개수를 지정..

Java 2023.07.01

[Spring Boot] 인메모리(H2) 데이터베이스 사용 방법

Spring Boot가 지원하는 인-메모리 DB Spring-JDBC 의존성이 추가되어 있다면 자동 설정이 필요한 Bean들을 설정해 준다. 1. H2 2. HSQL 3. Derb 1. H2 사용방법 1-1) 의존성 추가 JDBC와 H2 의존성을 추가, 아무런 설정을 하지 않아도 인-메모리 데이터 베이스를 사용하는 JDBC가 설정이 돼서 애플리케이션이 동작한다.(DataSource, JdbcTemplate 등) org.springframework.boot spring-boot-starter-jdbc com.h2database h2 runtime 1-2) 코드 작성 DataSource 작성 방법 package com.example.demo; import org.springframework.beans.fac..

Java 2023.06.26

[Spring Boot] 템플릿 엔진 Thymeleaf 사용 방법

템플릿 엔진이란? 주로 View를 만드는데 사용되지만, 코드 제너레이션 또는 시스템에서 만들어 놓은 이메일 템플릿에 파라미터만 넣어 변경하는 등 여러 가지 상황에 맞게 사용할 수 있다. * 전체 소스 코드 https://github.com/kangilbin/Spring-Boot/tree/master/Tyhmeleaf 1. Spring Boot에서 자동 구성을 지원하는 템플릿 엔진 Sring Boot는 JSP를 대체할 수 있는 다양한 뷰 템플릿 엔진 지원한다. 이러한 엔진들은 Spring Boot의 자동 구성 기능과 완벽하게 통합되어 개발자 편의성과 애플리케이션의 유지보수성을 높일 수 있다. * 뷰 템플릿 엔진 종류 1. Thymeleaf 2. FreeMarker 3. Groovy 4. Mustache 2..

Java 2023.06.23
반응형