강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

정윤성님의 프로필 이미지
정윤성

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Catalogs Microservice - 개요

ModelMapper 질문

작성

·

647

0

이전 UserService도 마찬가지로 ModelMapper를 계속 새로 생성하시는 이유가있나요 ?? Bean으로 만들어서 가져다 쓰는방식이 어떠한 결함을 가지고있는건가요 ??

퀴즈

67%나 틀려요. 한번 도전해보세요!

이 마이크로서비스 아키텍처에서 API Gateway의 주요 역할은 무엇일까요?

복잡한 비즈니스 로직을 직접 수행한다.

클라이언트 요청의 단일 진입점을 제공하고 올바른 마이크로서비스로 라우팅한다.

모든 마이크로서비스의 데이터를 저장하는 중앙 데이터베이스 역할을 한다.

백그라운드 예약된 작업을 처리한다.

답변 2

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

말씀하신 것과 같이 빈으로 등록해서 사용해도 상관없지만, ModelMapper의 사용 용도가 사용하려는 어떠한 빈의 값을 다른 빈으로 전환(또는 변경)하는 것이기 때문에, 해당 빈의 상태를 새롭게 저장하기 위해 매번 인스턴스를 생성하여 반환하려고 했습니다. 빈으로 등록하여 사용했을 때의 문제점이라기 보다는 Spring 에서 빈의 상태가 기본적으로 싱글톤이기 때문에, 데이터의 상태가 공유될 수도 있다고 생각됩니다. 물론 빈의 Scope을 변경해서 관리하셔도 되기 하지만, 필요시 생성해서 반환하는게 낫다고 생각됩니다.

관련내용으로 다음 게시글도 함께 참고해 보시면 좋을 것 같습니다. 

https://www.inflearn.com/questions/224304

감사합니다. 

0

안녕하세요 부족한 실력이오나 추가 의견 드리면 Mapstruct처럼 static object를 이용하여 Complie시점에 entity변환 instance를 만들고 싱글톤으로 이용하는 라이브러리가 효율적이지 않나 싶습니다. 강사님 말씀대로 modedlmapper는 jvm동작시점에 메모리를 사용하여 mapper객체를 만듦으로 인해 요청 thread가 올때마다 계속 instance를 생성해야 하는 문제가 있어서 저도 사용하기 불편하더라고요..대세는 mapstruct로(아님 dsl이나)

정윤성님의 프로필 이미지
정윤성

작성한 질문수

질문하기