Web(54)
-
[Spring] AOP 와 커스텀 어노테이션을 활용한 Logging
1. Spring AOP (Aspect Oriented Programming) AOP는 관점지향 프로그래밍이라고 불린다. 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점을 나눠보고, 그 관점을 기준으로 각각 모듈화 하는 것이다. 예를 들면 비즈니스 로직에서 핵심 로직이 아닐 수 있는 로깅, 보안 등과 같은 내용을 AOP를 통해 분리시키는 것 2. Spring AOP의 주요 용어 Aspect : AOP를 통해 분리시켜 모듈화 한것 Target : Aspect를 적용 할 수 있는곳( Class, Method 등) Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체 JoinPoint : Advice가 적용 될 위치, 끼어들 수 있는 지점. 메서드 진입 지점. 생성자..
2022.09.05 -
[Spring] Annotation의 원리와 Custom Annotation 만들기
1. Spring @Component 어노테이션 스프링에서 Bean을 등록하는 방법은 다양하지만, 그중 @Component 어노테이션을 이용하는 방법이 있습니다. @Component 어노테이션을 참조해서 들어가보면 4개의 어노테이션을 갖고있는걸 볼 수 있습니다. J2SE 5.0 부터 어노테이션을 작성할 때 주로 java.lang.annotation 패키지에 있는 4가지 어노테이션을 이용하여 작성합니다. @Target : 어노테이션을 작성 할 곳입니다. default 값은 모든 대상 ElementType.TYPE ( class, interface, enum) : 클래스, 인터페이스, 열거타임 ElementType.FIELD (instance variable) : 필드 ElementType.METHOD : ..
2022.09.05 -
[Java] Jackson을 활용한 데이터 변환(Json to Java Object)
1. ObjectMapper - JSON 컨텐츠를 Java 객체로 deserialization 하거나 Java 객체를 JSON으로 serialization 할 때 사용하는 Jackson 라이브러리의 클래스이다. - ObjectMapper는 생성 비용이 비싸기 때문에 bean/static으로 처리하는 것이 좋다. 2. 사용방법 com.fasterxml.jackson.core jackson-databind 2.13.0 - 먼저 Jackson 라이브러리를 추가하여 다운받아준다. - 기본적인 사용방법을 우선 적어보려고 한다. - 보통 ObjectMapper 사용할때마다 생성하기 보다 static으로 선언을 해놓고 사용하는 것이 성능상 좋다. private static final ObjectMapper mappe..
2022.08.31 -
[Spring Cloud] Kafka를 이용해 Config Bus 적용하기
1. Spring Cloud Bus는 왜 필요한가? - 평소 Spring Cloud Config 만 적용했을 경우 설정 정보가 변경될 경우 변경된 마이크로서비스에서 /actuator/refresh 를 호출해서 변경을 했었다. - 하지만, 이렇게 하면 매번 설정 정보가 변경 될 때마다 엔드포인트를 호출해 변경정보를 반영하는게 굉장히 번거로운 일이다. 이러한 문제를 해결하기위해서 클라이언트에서 Spring Cloud Bus와 Queue를 이용하여 설정 정보를 한번에 변경하는 것이 Spring Cloud Bus 이다. - 나는 현재 회사에서 Kafka를 주로 사용하고 있으므로, 메세지큐는 Kafka를 이용하여 구현해 보았다. - 선호도나 프로젝트 성향에 따라 RabbitMQ나 Kakfa 등 선택을 하면 될 거..
2022.08.29 -
[SPRING CLOUD] Config 서버 구축하기
Spring Cloud Config Spring Cloud Config 는 분산 시스템에서 설정 정보(application.yml) 를 외부에 보관할 수 있도록 지원해주는 서비스이다. 이러한 Spring Cloud Config 를 이용했을 때 얻을 수 있는 장점은 다음과 같다. - 여러 서버의 설정 파일을 중앙서버에서 관리 할 수 있다. - 서버를 재배포 하지 않고, 설정파일의 변경사항을 반영 할 수 있다. Spring Cloud Config Server 설정 방법 - 우선 관련된 라이브러리 의존성을 추가시켜 줘야 한다. - 다음 ServerApplication에 @EnavleConfigServer 를 추가해줌으로써, Config서버로서의 역할을 하도록 한다. - 그리고 application.yml 에 ..
2022.08.25 -
[JAVA] 자주 사용하는 Lombok 어노테이션
1. @Getter / @Setter - 각각의 필드 또는 클래스에 선언해 줄 경우 Private 변수에 접근자를 생성해줍니다. - 일일이 get/set을 통한 접근말고 어노테이션 하나만 으로 간단하게 접근자를 쓸수있게 됩니다. @Getter @Setter Public class User { private String name; } User user = new User(); user.setName("홍길동"); String userName = user.getName(); 2. @AllArgsConstructor / @NoArgsConstructor / @RequiredArgsConstructor - @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만들어줍니다. - @NoA..
2022.08.10