본문 바로가기

Back-end/Spring

(17)
[Spring] ControllerAdvice @Controller 나 @RestController 에서 발생한 예외를 한 곳에서 관리하고 처리할 수 있게 도와주는 어노테이션 즉, 스프링에서 예외 처리를 전역적으로 핸들링하기 위해 @ControllerAdvice 어노테이션 사용함 @RestControllerAdvice public class =RestControllerAdvice implements ResponseBodyAdvice { @Autowired MessageSource messageSource; @Override public boolean supports(MethodParameter returnType, Class> converterType) { // TODO Auto-generated method stub return true; //re..
[Spring] pointCut 적용 - controller, restController pointcut 지정 어노테이션 @Pointcut AOP 안에 pointcut class 생성 @Aspect @Componet public class HobiPointCut { @Before("execution(* kr.hobi.controller.*RestController.*(..))") public void checkRestController(JoinPoint joinPoint) { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); ....... if (체크 진행) { throw new HobiAuthenticationException(..
[Spring Cloud] Messaging - SQS(Simple Queue Service) SpringBoot 프로젝트에서 SQS 메시지를 전달하고 받는 실습을 진행해보겠습니다. SQS는 AWS에서 제공하는 메시지 대기열 서비스로서 대기열(Queue)을 이용하면 메시지를 순차적으로 저장할 수 있으며 대기열에 저장된 메시지는 별로의 프로세스에서 작업을 진행할 수 있습니다. 주로 1:1 관계로 매핑되는 작업에서 많이 사용됩니다. 예를 들면 회원 가입 후 가입완료 메일 발송, 고객 주문 완료 후 배송 처리와 같이 주 프로세스가 완료된 이후 추가적으로 발생하는 작업 처리를 위해 많이 사용됩니다. 또는 서비스에 대량의 이벤트가 발생할 때 Queue를 이용하면 작업이 예약되어 처리되기 때문에 대량의 요청에서도 안정적인 시스템을 운용할 수 있게 됩니다. 참고로 동일한 메세지를 다수가 받아야 하는 (1:N)..
[Spring] PSA (Portable Service Abstraction) PSA (Portable Service Abstraction) 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 구조를 말합니다. 이는 POJO 원칙을 철저히 따른 Spring의 기능으로 Spring 에서 동작할 수 있는 Library 들은 POJO 원칙을 지키게끔 PSA 형태의 추상화가 되어 있음을 의미합니다.
[Spring] Spring Application을 구동할 때 메서드를 실행 방법 CommandLineRunner, ApplicationRunner를 구현한 클래스를 만들어서 실행시키는 2가지 방법이 있습니다. 또한 Spring의 ApplicationEvent를 사용하는 방법, @Postconstruct를 사용한 방법, InitializingBean 인터페이스를 구현하는 방법, @Bean의 initMethod를 사용한 방법이 있습니다.
[Spring] POJO란 무엇인가요? Spring Framework에서 POJO는 무엇이 될 수 있을까요? POJO(Plain Old Java Object)는 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 말합니다. 프레임워크 인터페이스, 클래스를 구현하거나 확장하지 않은 단순한 클래스로 Java에서 제공하는 API 외에 종속되지 않습니다. 특정 규약과 환경에 종속되지 않아 코드가 간결하고 테스트 자동화에 유리합니다. 스프링에서는 도메인과 비지니스 로직을 수행하는 대상이 POJO 대상이 될 수 있습니다 스프링 애플리케이션은 POJO를 이용해서 만든 애플리케이션 코드라, POJO가 어떻게 관계를 맺고 동작하는지를 정의해놓은 설계 정보로 구분된다. 스프링의 주요 기술인 IoC/DI, AOP, PSA는 애플리케이션을 POJO로 개발할 수 있게 ..
[Spring] DI, DL, IoC , AOP란? DI(Dependency Injection): 한 객체에서 다른 객체를 필요로 하여 의존성을 갖게 하는 기술 DL(Dependency Look-up): 한 객체에서 필요로 하는 다른 객체를 찾아서 사용하는 기술 IoC(Inversion of Control): 직접 제어해야하는 부분에 대한 권한을 프레임워크 등에 넘기는 기술 AOP(Aspect Oriented Programming): 공통의 관심 사항을 추출하여 원하는 곳에 적용하는 기술
[Spring] WAS와 WS의 차이 WAS(Web Application Server) 비지니스 로직을 넣을 수 있음 Tomcat, PHP, ASP, .Net 등 WS(Web Server) 비지니스 로직을 넣을 수 없음 Nginx, Apache 등