본문 바로가기

Spring

(4)
@Async 사용법 @Async 사용법 많은 블로그에도 정리가 잘 나와있는 방법이다. 1. @EnableAsync로 @Async를 쓰겠다고 스프링에게 알린다. 2. 비동기로 수행되었으면 하는 메서드위에 @Async를 적용한다. 스프링 가이드에도 마찬가지로 설명해준다. 만약에 별도로 @Async에 대한 설정이 없으면 새로운 비동기 작업을 스레드 풀에서 처리하는 게 아니라 새로운 스레드를 매번 생성해서 작업을 수행시키는 것이 디폴트 설정이다. 그래서 쓰레드풀을 빈으로 등록시켜줘서 자동으로 해당 스레드 풀로 작업을 넘기도록 설정한다. @Configuration @EnableAsync public class AsyncThreadConfiguration { @Bean public Executor asyncThreadTaskExecu..
MapStruct 사용법 정의 MapStruct는 Entity와 Dto간의 매핑을 지원하는 라이브러리이다. 종류 Entity와 Dto간의 매핑을 위해 지원하는 라이브러리는 크게 ModelMapper와 MapStruct가 있다. 특징 MapStruct는 컴파일시 미리 생성된 구현체를 통해 Mapping하기 때문에 속도적인 측면에서 이점이 있다. ModelMapper의 경우 리플렉션 기반으로 동작하기도 하고 퍼포먼스에 대한 이슈가 많은편 적용 public interface OrderAsInfoMapper { @Mapping(source = "id", target = "orderAsId") @Mapping(source = "orderAsSerial", target = "orderAsSerial", qualifiedByName = "S..
MVC패턴과 동작방식 MVC의 각 컴포넌트의 역할 Controller(컨트롤러) 일종의 조정자라고 할 수 있다. 클라이언트의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출한다. 또한 클라이언트가 보낸 데이터가 있다면, 모델에 전달하기 쉽게 데이터를 가공한다. 모델이 업무를 마치면 그 결과를 뷰에게 전달한다. Model (모델) 컨트롤러가 호출할 때, 요청에 맞는 역할을 수행한다. 비즈니스 로직을 구현하는 영역으로 응용프로그램에서 데이터를 처리하는 부분이다. 비즈니스 로직이란 업무에 필요한 데이터처리를 수행하는 응용프로그램의 일부라고 할 수 있다. DB에 연결하고 데이터를 추출하거나 저장,삭제,업데이트,변환 등의 작업을 수행한다. 상태의 변화가 있을 때 컨트롤러와 뷰에 통보해 후속 조치 명령을 ..
Ioc/DI 제어의 역전/의존성 주입 제어의 역행(Inversion of Control, IoC) – 대신 해줌 ‘제어의 역전’ 또는 ‘역 제어’라는 뜻으로 객체에 대한 제어권이 바뀐 것을 의미한다. 기존의 개발자들이 New 연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체의 인스턴스를 생성함으로 인스턴스 생성 방법에 대한 제어권을 개발자들이 가지고 있었다. IoC란 인스턴스 생성의 제어를 개발자 본인이 아닌 다른 누군가에게 해주는 컨테이너이다. 어떤 모듈이 제어를 가진다는 것은 ‘어떤 모듈을 사용할 것인지’, ‘모듈의 함수는 언제 호출할 것인지’ 등을 스스로 결정한다는 것을 의미한다. 즉, IoC란 인스턴스의 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신해준다는 뜻이다. 의존성 주입(Dependency In..