728x90
반응형

Spring & Spring Boot 27

[ Spring Boot Kotiln ] Redis 사용하기

[ Redis ] Redis는 오픈 소스 기반의 인메모리 데이터베이스입니다. "REmote DIctionary Server"의 약자로, 메모리에 데이터를 저장하고 조회하는 데 특화되어 있습니다. Redis는 메모리 기반 데이터베이스로 데이터를 디스크에 저장하지 않고 메모리에 직접 저장하여 빠른 속도를 제공합니다. 이로 인해 높은 처리량과 낮은 지연 시간을 가지며, 대규모 데이터 작업에 효과적입니다. 글쓴이는 docker를 사용하여 redis를 사용하겠습니다. 터미널에서 해당 명령어를 입력하여 줍니다. docker run -d -p 6379:6379 --name my-redis redis 아래 명령어로 설치를 확인하여 줍니다. docker ps build.gradle 에서 dependencies를 설정하여..

[ JPA ] batch_fetch_size

[batch_fetch_size] JPA(Java Persistence API)는 데이터베이스 조회 성능을 향상시키기 위해 다양한 설정을 제공합니다. 그 중 하나인 batch_fetch_size 설정은 한 번의 쿼리로 여러 개의 엔티티를 한꺼번에 가져오는 방식을 지원하여 성능 개선을 도모합니다. 일반적으로 JPA는 연관된 엔티티를 필요할 때마다 지연 로딩(Lazy Loading) 방식을 사용합니다. 이는 연관된 엔티티가 실제로 필요한 시점에 데이터베이스에서 조회되는 방식입니다. 그러나 지연 로딩은 여러 번의 쿼리 호출을 필요로 하기 때문에 성능에 영향을 줄 수 있습니다. 이때 batch_fetch_size 설정을 사용하면 한 번의 쿼리로 여러 개의 연관된 엔티티를 가져올 수 있으므로, 쿼리 호출 횟수를 ..

[Spring Boot] Kotlin Ktlint 적용하기

[ Ktlint ] ktlint는 Kotlin 코드에 대한 정적 코드 분석 및 스타일 가이드 적용 도구입니다. Kotlin 프로젝트에서 코드 스타일을 일관되게 유지하고 개발자들 간에 표준 스타일을 적용하는 데 도움을 줍니다. ktlint는 코틀린 코드를 스캔하고 정의된 스타일 규칙에 따라 코드를 자동으로 형식화하고 수정할 수 있습니다. 플러그인 사용: 대부분의 Kotlin 프로젝트는 ktlint 플러그인을 사용하여 빌드 스크립트에 통합합니다. Gradle을 사용하는 경우, build.gradle.kts 파일에 다음과 같이 플러그인을 추가할 수 있습니다: plugins { id("org.jlleitschuh.gradle.ktlint") version "11.4.0" } .editorconfig .edito..

[ Spring Cloud ] Spring Cloud Netflix Eureka - 2편

[ Eureka Server ] Spring initializr 에서 프로젝트 생성시 디펜던시로 Eureka Server 를 추가하여 줍니다. 생성된 프로젝트의 SpringBootApplication 에서 @EnableEurekaServer어노테이션을 추가하여 줍니다. @SpringBootApplication @EnableEurekaServer public class DiscoveryserviceApplication { public static void main(String[] args) { SpringApplication.run(DiscoveryserviceApplication.class, args); } } application.yml 파일에 아래처럼 설정 값을 넣어준다. server: port: 8..

[ Spring Cloud ] Spring Cloud Netflix Eureka - 1편

Eureka 란? Nexflix 에서 만들어 사용하는 Cloud 서비스를 Spring 재단에 기부하여 사용되고 있는 것이 Eureka 서비스 이다. Eureka는 주소가 동적으로 변하는 AWS와 같은 Cloud 시스템 환경에서 클라이언트가 서비스 인스턴스를 호출할 수 있도록 각 서비스들의 IP / Port / Instance ID 를 가지고 있는 REST 기반의 미들웨어 서버입니다. Eureka discoveryService Service Discovery 외부에 다른 서비스들이 마이크로 서비스를 검색 하기 위해서 사용되는 개념 어떤한 서버(서비스가) 어느 위치하고 있는지 등록하고 찾아주는 기능

[ Spring Cloud ] 마이크로서비스 와 클라우드 개념정리 - 2편

이번 글에서 작성된 내용은 모두 아래 링크의 강좌에 대한 수강 내용입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard Spring Cloud로 개발하는 마이크로서비스 애플리케이션 - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해..

[ Spring Cloud ] 마이크로서비스 와 클라우드 개념정리 - 1편

이번 글에서 작성된 내용은 모두 아래 링크의 강좌에 대한 수강 내용입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A% A4/dashboard Spring Cloud로 개발하는 마이크로서비스 애플리케이션 - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대..

[ Spring-Boot ] JPA @EntityGraph 사용하기

@EntityGraph 란? 연관관계가 있는 엔티티를 조회할 경우 지연 로딩으로 설정되어 있으면 연관관계에서 종속된 엔티티는 쿼리 실행 시 select 되지 않고 proxy 객체를 만들어 엔티티가 적용시킨다. 그 후 해당 프락시 객체를 호출할 때마다 그때그때 select 쿼리가 실행된다. 자세한 사항은 JPA의 지연 로딩에 관하여 찾아보자. 위 같은 연관관계가 지연 로딩으로 되어있을 경우 fetch 조인을 사용하여 여러 번의 쿼리를 한 번에 해결할 수 있다. @EntityGraph는 Data JPA에서 fect 조인을 어노테이션으로 사용할 수 있도록 만들어 준 기능이다. Entity package study.datajpa.entity; import lombok.*; import javax.persiste..

[ Spring-Boot ] Data - JPA 사용하기

DB는 H2 DB를 사용하였습니다. 관련 설정이나 설치방법은 제외하겠습니다. 테스트에 사용할 엔티티를 생성 @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) // 기본생성자를 만들어 주는 기능 public class Member extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "member_id") private Long Id; private String username; private int age; @ManyToOne(fetch = LAZY) @JoinColumn(name = "team1_id") private ..

Spring Cloud Netflix - Eureka

- Spring Cloud Netflix Spring Cloud Netflix는 Spring 환경 및 기타 Spring 프로그래밍 모델 관용구에 대한 자동 구성 및 바인딩을 통해 Spring Boot 앱에 대한 Netflix OSS 통합을 제공합니다. 몇 가지 간단한 주석을 사용하여 애플리케이션 내부의 공통 패턴을 빠르게 활성화 및 구성하고 전투 테스트를 거친 Netflix 구성 요소로 대규모 분산 시스템을 구축 할 수 있습니다. 제공되는 패턴에는 Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) 및 Client Side Load Balancing (Ribbon)이 포함됩니다. https://spring.io..

728x90
반응형