MapStruct란 DTO <-> Entity 간 객체 Mapping을 편하게 도와주는 라이브러리
성능
사용 목적
실제 거대한 시스템을 만들다보면, 다양한 도메인 영역들이 있고,
이를 변환하는 작업은 개발자에게 있어서
매우 귀찮고, 실수하기 딱 좋고, 번거로운 경우가 굉장히 많습니다
우리는 이를 실수하지 않게 검증된 라이브러리를 사용하는 것이죠!!
심지어 다른 Mapper 라이브러리보다도 훨씬 빠르다구요~~
java entity dto 매핑을 편하게 하자! 참고하면 더 자세한 설명이 있습니다.
어떤 상황에도 높은 응답성을 유지할 수 있는 새로운 유형의 시스템이 필요하기 때문에
응답성 : 사용자에게 신뢰성 있는 응답을 빠르고 적절하게 제공하는 것
탄력성 : 장애가 발생하거나 부분적으로 고장 나더라도 시스템 전체가
고장 나지 않고 빠르게 복구하는 능력
유연성 : 시스템의 사용량에 변화가 있더라도 균일한 응답성 제공,
시스템 사용량에 비례해서 자원을 늘리거나 줄이는 능력
메시지 기반 : 비동기 메시지 전달을 통해 위치 투명성, 느슨한 결합,
논블로킹 통신을 지향하는 것
시스템을 구성하는 구성요소 간의 관계들이 느슨하게 맺어져 있어 언제든지 대체되거나 추가 확장될 수 있는 특성
일반적으로 견고하고 확장성 있는 마이크로서비스를 만들려먼 가능한 한 자율적으로 만드는 것이 중요
런타임 의존성을 최소화해야 함 -> 느슨한 결합(loose coupling)
따라서 동기 API 방식보다는 이벤트 기반 비동기 메시지 전달 방식을 선호
논블로킹 동기 API를 사용하는 것이 유리한 경우도 있음