application.yml 등의 설정 파일에는 DB의 아이디나 비밀번호 등 민감한 정보가 포함된다. spring: rabbitmq: host: 127.0.0.1 port: 5672 #web접속은 15672 username: guest password: guest이 때, 위와 같이 password와 같은 정보를 평문 그대로 설정파일에 노출하게 되면 해킹이나 도난 발생 시 심각한 보안 문제가 될 수 있다. 이를 방지하기 위해 설정 정보를 암호화하여 서버에 저장하는 것이 중요하다.일반적으로는 대칭키 방식과 비대칭키 방식 두 가지 방법을 사용하여 설정 정보를 암호화할 수 있다.관리가 까다롭긴 하지만, 보안성을 고려하면 비대칭키 방식이 더 안전하다. ..
🔹 Acturator 문제점이전 글에서는 Acturator를 사용하여 config 파일들을 수정하였다.하지만 이 방법은 Spring Cloud Config에서 설정 파일(yml)이 변경되면, 각각의 마이크로서비스에서 직접 /actuator/refresh를 호출해야 변경된 데이터를 가져올 수 있다.따라서, 모든 마이크로서비스에서 개별적으로 refresh를 호출해야 하는 불편함이 있을 수 있다.이를 해결하기 위해 Spring Cloud Config + Spring Cloud Bus를 활용할 수 있다. 1️⃣ Spring Cloud Config + Spring Cloud Bus 사용Spring Cloud Bus는 경량 메시지 브로커(RabbitMQ, Kafka)를 통해 변경 사항을 모든 마이크로서비스에 자..
🔹 기존 문제Spring Cloud Config에서 설정 파일(yml)이 변경될 때마다 마이크로서비스를 재기동해야 적용되는 문제가 발생한다.이러한 비효율적인 과정을 줄이기 위해 다음과 같은 방법을 사용할 수 있다. Spring ActuatorSpring Boot의 Actuator를 사용하여 마이크로서비스를 재시작하지 않고 설정을 동적으로 갱신하는 방법이다. 1️⃣ Actuator 및 Bootstrap 의존성 추가 org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-cloud-starter-bootstrapSpring Cloud 최신 버전에서는 bootstrap.yml이 자동 ..
MSA(Microservices Architecture)와 같은 분산 시스템에서는 서버 클라이언트 구성에 필요한 설정 정보(application.yml 등)를 외부 시스템에서 관리할 수 있다.이를 통해 서비스를 다시 빌드하지 않고 바로 적용할 수 있으며, 배포 파이프라인을 통해 DEV, UAT, PROD 환경에 맞는 구성 정보를 사용할 수 있다. 1️⃣ 관리해야 할 YML 파일 생성설정 파일을 Git Repository로 관리하는 방법이다. 예를 들어, ecommerce.yml 파일을 생성하여 아래와 같이 관리한다.token: expiration_time: 86400000 secret: usertokenforjwtsforlongnumberwherecanitbegothroughgateway: ..
Spring boot 3 기준 Spring Security를 다시 사용해보는 과정에서 새롭게 알게된 사실을 정리해보겠다. 1. Authentication Filter(=Jwt Filter) 적용 시 passwordencoder 자동 적용기존 프로젝트에서는 Filter에서 사용자 입력값인 password를 일일이 encoder를 적용해 db값과 비교해주는 로직을 추가했었다. 기존 코드/* 로그인 */@Transactionalpublic TokenDto login(LoginDto loginDto){ Member member = memberRepository.findByEmail(loginDto.getEmail()) .orElseThrow(() -> new EmailNotFoundE..