본문 바로가기

Spring4

Spring MSA 멀티 모듈 레포 구성 방법 배경https://songacoding.tistory.com/199MSA 구조로 백엔드 spring 서버를 여러 모듈로 나누어 구축하려함 1. 멀티 모듈이란?• 모듈: 독립적으로 배포될 수 있는 코드의 단위• 멀티 모듈 프로젝트: 하나의 Root Module(부모)과 여러 개의 Sub Module(자식)로 구성된 프로젝트• Root Module은 프로젝트의 전체적인 설정을 관리하고, Sub Module은 각 서비스별로 기능을 담당함루트 프로젝트는 껍데기 역할만 하고 실제 실행되는 애플리케이션은 하위 모듈들2. 프로젝트 구성Root Module 생성• start.spring.io에서 프로젝트를 생성• Dependency에 Spring Web 추가Sub Module 추가• Sub Module을 만들고 dep.. 2025. 3. 27.
[오류해결] jpa N+1 문제 기본 지식N+1 문제 : 연관된 데이터를 조회할 때 불필요한 쿼리(select)가 다수 발생하는 성능 문제즉시로딩 (eager loading)엔터티를 조회할때 관련된 엔티티도 즉시 함께 로딩사용하지 않는 연관 데이터도 전부 로딩Order 엔티티를 조회(findall)할 때 모든 OrderItem이 조회됨개별적인 SELECT 쿼리가 반복적으로 실행지연로딩 (Lazy loading):연관데이터를 필요한 시점에 로딩Order 엔티티를 조회할 때 OrderItem은 로드되지 않음개별적인 SELECT 쿼리가 반복적으로 실행Order를 조회할 때 OrderItem에 대한 데이터는 로드하지 않고, OrderItem 필드는 프록시 객체로 남아 있습니다. 연관 데이터(OrderItem)를 접근하려고 하면 그 시점에 데이.. 2025. 3. 26.
[오류해결] Spring security CORS 문제 CORS란?CORS(Cross-Origin Resource Sharing) 오류는 웹 페이지가 다른 도메인의 리소스에 접근하려고 할 때 브라우저의 보안 정책에 의해 발생하는 오류이다프론트엔드의 IP가 123.456.789:3000 이고 백엔드 IP가 123.456.789:8080로 rest api 로 데이터를 전달시 브라우저에서 123.456.789:3000와 다른 123.456.789:8080의 도메인 접근을 막아서 생긴 오류이다프로토콜(예: http, https), 호스트(도메인 이름), 포트가 모두 같아야 CORS가 발생 안한다 해결방법도메인을 허용해줌 // securityconfig @Bean public CorsFilter corsFilter() { UrlBasedC.. 2025. 3. 25.
Spring Cloud Eureka MSA 사용법 스프링 클라우드란?스프링 클라우드(Spring Cloud)는 마이크로서비스 아키텍처(MSA) 환경에서 클라우드 네이티브 애플리케이션을 개발하기 위한 프레임워크다. 스프링 부트(Spring Boot)를 기반으로 하며, 분산 시스템에서 필요한 기능을 쉽게 구현할 수 있도록 다양한 서브 프로젝트를 제공한다.마이크로서비스 환경에서 필요한 기능(서비스 디스커버리, API 게이트웨이, 로드 밸런싱, 설정 관리, 분산 트랜잭션 등)을 쉽게 구현할 수 있도록 지원하는 프레임워크Eureka란?Eureka(유레카)는 Netflix에서 개발한 서비스 디스커버리(서비스 등록 및 검색) 솔루션이다. 마이크로서비스 아키텍처(MSA)에서 서비스들이 동적으로 IP와 포트를 변경할 수 있기 때문에, 클라이언트가 해당 서비스를 찾을 수.. 2025. 3. 6.