반응형

Java 44

[Spring Boot] @ConfigurationProperties 프로퍼티 바인딩 방법

application 설정 파일의 프로퍼티를 바인딩하는 이유는 구조화된 데이터 관리, 타입 안전성, 자동완성, 환결 설정 마다 관리가 가능하기 때문이다. 1. 설정 방법application.yml 설정 파일은 List, Map 등 Java 객체와 매핑할 수 있다.# application.ymltask: id: coco name: kang age: 30 /* 프로퍼티 클래스 생성 */@Data@Component@ConfigurationProperties("task")public class UserProperties { private String id; private String name; private int age;}Data : Lombok을 사용할 경우 자동으로 getter, se..

Java 2024.06.25

[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/Spring Cloud] MSA - Spring Cloud Config 외부 설정 관리

Spring Cloud Config의 기능 - 분산 시스템에서 서버와 클라이언트 구성에 필요한 설정 정보(application.yml)를 외부 시스템에서 관리 - 하나의 중앙화된 저장소에서 구성요소 관리 기능 - 각 서비스를 다시 빌드하지 않고, 바로 적용 가능 - 배포 파이프라인을 통해 dev, uat, prod 등 환경에 맞는 구성 정보 사용 가능 1. Lcal Git Repository 로컬 Repository에만 등록해 형상관리 진행(인터넷이 되지 않더라도 Git을 이용해 형상관리, 소스 관리, 히스토리 관리를 할 수 있다.) 1-1) Git 디렉토리 생성 $ mkdir git-local-repo // 디렉터리 생성 $ cd git-local-repo // 이동 $ git init // git 초..

Java 2023.12.25

[IntelliJ] GitLab 이클립스 프로젝트 IntelliJ에 import 방법

이클립스 프로젝트 개발환경 1. Spring Framework MVC 2. 빌드 Maven 1. IntelliJ에 가져오기 1-1) [File] → [Project from Version Control...] 클릭 1-2) Git Clone URL 복사 1-3) IntelliJ에 Git URL 붙여 넣기 1-4) Clone 완료 후 Open or Import Project 팝업이 뜨면 [Maven project] 클릭 2. Tomcat Server 설정 2-1) [Run] → [Edit Configurations...] 클릭 2-2) [TomcatServer] → [Local] 클릭 2-3) [Deployment] → [+] → [Artifact...] 클릭 → [프로젝트명:war exploded] 선택..

Java 2023.09.25

[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] Spring Data JPA 연동 방법

ORM이란? 객체와 릴레이션(DB 테이블)간 맵핑할 때 발생하는 개념적 불일치를 해결하는 프레임워크 Spring Data JPA이란? ORM(Object-Relational Mapping)을 보다 간편하게 사용할 수 있도록 추상화된 프레임워크입니다. 1. 개념적 불일치 종류 1. 객체와 테이블 간의 구조적인 불일치: 객체는 클래스와 멤버 변수로 구성되어 있으며, 상속, 다형성, 연관 관계 등의 개념을 가질 수 있습니다. 반면에 테이블은 로우와 컬럼으로 이루어져 있으며, 간단한 데이터 구조만을 표현할 수 있습니다. 객체와 테이블 사이의 이러한 구조적인 차이로 인해 매핑 작업이 필요합니다. 2. 객체 그래프와 테이블 간의 불일치: 객체는 서로 연관되어 있는 그래프 형태로 구성될 수 있습니다. 하지만 테이블은..

Java 2023.07.02
반응형