Spring Cloud Config Server 설정하기2(Spring Cloud Bus)
·
WEB/Spring
Spring Cloud Bus는 분산 시스템에서 여러 애플리케이션 간에 메시지를 통해 이벤트를 전달하고, 설정 변경 등의 작업을 일괄적으로 처리할 수 있도록 돕는 모듈입니다. 주로 Spring Cloud Config와 함께 사용되며, 여러 마이크로서비스에 대한 설정 변경이나 이벤트 전파를 쉽게 관리하는 데 유용합니다.  주요 기능과 역할분산된 애플리케이션 간 이벤트 브로드캐스팅:Spring Cloud Bus는 메시지 브로커(예: RabbitMQ 또는 Kafka)를 사용하여 애플리케이션 간에 이벤트를 브로드캐스트합니다. 이를 통해 모든 마이크로서비스에 한 번의 명령으로 설정 변경, 캐시 초기화, 상태 업데이트 등을 적용할 수 있습니다.설정 변경 반영:Spring Cloud Config와 함께 사용하면, C..
Spring Cloud Config Server 설정하기1(Spring Cloud Config)
·
WEB/Spring
Spring Cloud Config Server는 분산 시스템에서 구성 파일을 중앙에서 관리하고 동적으로 업데이트할 수 있도록 해주는 중요한 도구입니다. 이는 애플리케이션이 여러 환경에서 일관성 있게 실행될 수 있도록 구성 관리 문제를 해결합니다. 여기서 Spring Cloud Config Server를 사용하는 이유와 장단점을 살펴보겠습니다.  장점중앙화된 설정 관리: 여러 애플리케이션의 설정을 한 곳에서 관리할 수 있어, 설정 파일의 중복을 줄이고 일관성을 유지할 수 있습니다.환경별 설정 관리: 로컬, 개발, 테스트, 프로덕션 등 환경별로 설정을 구분하여 관리할 수 있으며, 이를 통해 각 환경에 맞는 설정을 쉽게 적용할 수 있습니다.실시간 설정 변경 반영: Spring Cloud Bus 또는 Actu..
Spring Boot JWT(JSON Web Token) 설정하기
·
WEB/Spring
JWT(JSON Web Token) 란?JWT는 유저를 인증하고 식별하기 위한 토큰(Token) 기반 인증입니다.토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함됩니다.RESTful과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고받을 수 있게 됩니다.세션(Session)을 사용하게 될 경우 쿠키 등을 통해 사용자를 식별하고 서버에 세션을 저장했지만, 토큰을 클라이언트에 저장하고 요청시 HTTP 헤더에 토큰을 첨부하는 것만으로도 단순하게 데이터를 요청하고 응답받을 수 있습니다. JWT는 JSON 형식을 사용하여 정보를 안전하게 전송하기 위한 개방형 표준(RFC 7519)입니다. JWT는 서버와 클라이언트 간에 정보를 전송하는 데 널리 사용되며, 주로 인증과 권한 부여를..
Spring Boot AOP 적용 방법(Log, Transaction)
·
WEB/Spring
AOP  VS OOP객체 지향 프로그래밍(OOP)OOP의 주요 개념:클래스(Class) : 객체의 설계도. 속성과 메서드를 정의하는 틀입니다.객체(Object) : 클래스를 통해 생성된 실체로, 실제로 동작하는 프로그램의 단위입니다.상속(Inheritance) : 기존 클래스를 확장하여 새로운 클래스를 만드는 기능입니다.다형성(Polymorphism) : 동일한 이름의 메서드가 다른 동작을 수행할 수 있게 하는 기능입니다.캡슐화(Encapsulation) : 객체의 속성과 메서드를 외부에서 직접 접근하지 못하도록 숨기는 기능입니다.추상화(Abstraction) : 복잡한 시스템을 단순화하여 핵심 기능만 노출하는 기능입니다.OOP의 장점:코드 재사용 : 상속과 다형성 등을 통해 코드의 재사용이 용이합니다...
Spring Boot로 MSA 개발하기
·
WEB/Spring
Spring Boot MSA 정의1. 마이크로서비스 아키텍처(MSA, Microservices Architecture)정의: MSA는 애플리케이션을 여러 개의 독립적이고 자율적인 작은 서비스들로 분리하여 개발하고 운영하는 아키텍처 스타일입니다. 각 서비스는 특정 비즈니스 기능을 담당하며, 서로 독립적으로 배포, 확장 및 유지보수가 가능합니다.2. 스프링 부트(Spring Boot)정의: 스프링 부트는 스프링 프레임워크의 하위 프로젝트로, 복잡한 설정 없이 간단하게 스프링 기반 애플리케이션을 개발할 수 있게 해주는 프레임워크입니다. 자동 설정, 내장 서버, 독립 실행형 애플리케이션을 쉽게 만들 수 있는 기능들을 제공합니다.3. 스프링 부트 MSA의 주요 특징서비스 분리: 각 마이크로서비스는 독립적으로 개발..
스프링 IOC컨테이너 - DI, DL
·
WEB/Spring
IOC(Inversion of Control)란?직역하면 "제어의 역전"이라는 의미 메소드나 객체의 호출을 개발자가 아닌 외부에서 결정되는 것을 의미한다. 객체간의 결합도를 줄여 유연한 코드를 작성할 수 있다.IOC의 컨테이너객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있다.기존방식 1.객체 생성 2.의존성 객체 생성 - 클래스 내부에서 생성 3.의존성 객체 메소드 호출SPRING1.객체 생성 2.의존성 객체 주입 - 객체를 스스로 만드는 것이 아닌, 제어권을 스프링에게 위임하여 스프링에서 객체를 주입 3.의존성 객체 메소드 호출스프링은 모든 의존성 객체를 스프링 컨테이너를 실행될 때 생성하며 의존성을 주입시켜준다.Bean들은 싱글톤 패턴의 특징을 가져 제어의 흐름이 사용자가 아닌 스..
스프링에서 Service ServiceImpl 사용하는 이유
·
WEB/Spring
스프링에서 Service 인터페이스와 ServiceImpl로 구현하는 구조를 사용한 경우를 자주 볼 수 있다.이와 같은 사용 방법은 스프링의 의존성 주입(DI)에 관련 인터페이스를 구현하는것과 연관이 깊다.Service 인터페이스와 ServiceImpl 구조로 사용하는 이유 1. 객체 간의 결합도를 낮추어 유연한 개발을 하기위함, 하나의 인터페이스를 구현 다형성을 줌으로서 하나의 인터페이스만 바라보지 않게 의존관계를 줄일 수 있다. 2. Spring의 AOP Proxy를 만들기 위함, @Transactional 어노테이션 같은 경우 인터페이스가 존재해야지만 동작할수 있기에 필요하다.(AOP는 기본적으로 Dynamic Proxy를 사용 이같은 경우 인터페이스 기반으로 동작, CGLIB를 사용할경우는 예외 ..
스프링 전역 예외처리
·
WEB/Spring
스프링에는 전역 예외처리를 해주는 방법으로 여러가지 방법을 제공한다. 그중 어노테이션으로 처리하는 방법을 알아보려고 한다. @RestControllerAdvice, @ControllerAdvice 이 두 개의 어노테이션은 같은 방식으로 에러를 처리하는 어노테이션이다 다만 두 개의 어노테이션 차이로는 @RestControllerAdvice = @ControllerAdvice + @ResponseBody 로 볼수가 있다. @ControllerAdvice란?@ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들을 AOP를 적용해 컨트롤러 단에 적용하기 위해 고안된 어노테이션이다. @RestControllerAdvice란?@RestControllerAdvice ..
자바)Reflection 사용한 동적 메소드 호출
·
WEB/Spring
메소드를 사용하고자 할때 보통 @Resource 를 통해 빈 객체를 통해 클래스의 메소드를 호출해 오거나User user = new User(); 객체를 내부에 직접 선언하여 메소드를 호출한다. 내가 사용하고자 하는 클래스와 메소드가 명확할때 위와 같이 사용을 한다.하지만 상황에 따라 사용해야하는 클래스와 메소드가 다양하면 객체를 선언하는 빈도가 많고 소스의 길이가 기하급수적으로 늘어났을 경우 동적으로 메소드를 호출하여 이와 같은 상황을 방지하고자 한다. 구현String ClassName = "kbs.class.chair"; // 사용하고자 하는 클래스의 위치(chair 라는 이름의 클래스)Class cls = Class.forName(ClassName); // 클래스이름 정의// 인자가 없을 경우..
스프링-static field에 의존성 주입하여 DAO 사용하기
·
WEB/Spring
회사에서 공통 함수로 DB를 조회하여 시퀀스를 가져오는걸 만들려고 한다.공통 함수의 경우 static 으로 선언하여 로직내에서 따로 선언 없이 가져오게 하였다.public class commUtil { private static Dao dao; // 시퀀스를 조회하여 String으로 리턴 public static String sSequence() { return dao.selectSequence(); }}위와 같이 사용하였을때 Spring Component scan 범위를 벗어나고 static 으로 선언함으로서 객체로 인정 받지 못해 실제로 실행하였을때 Nullpointerexception 으로 해당 메소드를 가져오지 못하게 된다. 이를 보완하고 static 으로 사용할수 있게 아래와..
대전집주인
'WEB/Spring' 카테고리의 글 목록