728x90
반응형

Spring & Spring Boot 29

[Spring Boot] CORS의 기본 개념

Cross-Origin Resource Sharing(CORS)은 웹 브라우저에서 다른 도메인 간에 리소스를 요청하고 제공하는 방법을 정의하는 표준입니다. 보안상의 이유로, 브라우저는 스크립트가 원본(origin)을 초과하여 다른 도메인의 리소스에 접근하는 것을 제한합니다. 예를 들어, 한 도메인에서 로드된 웹 페이지가 다른 도메인에 있는 API에 요청을 보내고 데이터를 받아오는 경우가 이에 해당합니다. CORS의 기본 개념Same-Origin Policy (동일 출처 정책)동일 출처 정책은 웹 브라우저가 처음 요청을 보낸 출처와 동일한 출처로부터만 리소스를 가져올 수 있도록 하는 보안 정책입니다.출처는 세 부분으로 구성됩니다: 프로토콜(예: http, https), 호스트(예: example.com),..

[Spring Boot] Kotlin & React 연동하기

Spring Boot와 React를 사용하여 간단한 웹 애플리케이션을 구축하는 방법을 소개하겠습니다.백엔드는 Kotlin으로 구현하고, 프론트엔드는 React로 구성합니다. 프로젝트 구조 demo/├── backend/│ ├── src/│ │ ├── main/│ │ │ ├── kotlin/│ │ │ │ └── com/│ │ │ │ └── example/│ │ │ │ └── demo/│ │ │ │ ├── DemoApplication.kt│ │ │ │ └── controllers/│ │ │ │ └── Examp..

[ 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..

728x90
반응형