inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

도메인에서 처리해야할 부분인지 질문드립니다!

해결된 질문

445

cjswoudddn

작성한 질문수 6

0

안녕하세요 영한선생님!

훌륭한 강의와 친절한 피드백 항상 감사합니다.

강의 자체가 너무 완벽해서 강의 내용을 잘 이해했다고 생각했는데

개인프로젝트를 진행하며 강의와 연관된 응용적인 내용에서 막히는 부분이 있어 질문드립니다!!

답변해주시길 부탁드리겠습니다!

현재 회원가입 양식에서 유저의 이메일과 비밀번호, 프로필사진을 입력받고 있습니다.

클라이언트에서 텍스트와 이미지를 동시에 전송하는 multipartform방식을 사용했습니다.

그래서 데이터를 받을 때도 MultipartHttpservletRequest로 받았습니다!

이제 서비스계층에서 처리하는 작업은 도메인에게 dto를 전달해 적절히 초기화된 Member를 요청하고

그 Member가 중복이메일을 가졌는지 체크한 뒤 

MemberRepository에 저장하는 형식으로 코드를 짰습니다.

이때 Member생성 시 필요한 작업인 프로필 이미지를 aws s3에 넣고 url을 저장하는 부분과 

비밀번호를 인코딩하는 작업은 제  판단으로 도메인인 Member에게 맡기는 게 맞겠다 싶었습니다.

다만, Member는 스프링컨테이너의 관리는 받지 않아 스프링빈인 awsS3Service와 passwordEncoder의 

의존성 주입을 받지 못했습니다. 

그래서 파라미터로 전달해 작업을 처리했습니다!

결국 이런 파라미터의 전달방식은 유지보수성을 떨어뜨리는 것 같습니다.

awsS3Service를 추상화한 인터페이스를 정의하는 방법이 떠오르긴 하지만 

결국 파라미터 전달이라는 부분이 계속 찝찝합니다 ㅠㅠ

그렇다고 MemberService에서 Member의 setter를 열어 수정하자니 이것도 임시방편인 것 같습니다.

이러한 문제의 최적화된 해결방법이 있을까요??

애초에  multipartform으로 입력받는 게 안 좋은 방법일까요?

데이터를 따로따로 받아서 처리하는 게 현업에서 자주 쓰이는 방법일까요??

강의 내용과 직접적인 연관이 없는 내용의 질문이어서 죄송합니다 ㅠㅠ

객체지향을 고려한 예제를 찾는 게 쉽지않아 결국 선생님께 질문드리러 왔습니다.

작은 힌트라도 주시면 감사하겠습니다!!

ddd java 이미지 웹앱 JPA spring-boot spring

답변 2

1

cjswoudddn

감사드립니다! 

말씀주신 내용으로 참고해서 진행하겠습니다!!

1

김영한

안녕하세요. cjswoudddn님

먼저 MultipartServletRequest 같은 웹에 종속적인 부분을 서비스 계층으로 이동하시는 것은 좋지 않습니다.

파일 등록 부분은 별도의 클래스로 만들어서 빈에 등록해서 사용하거, 또는 컨트롤러에서 파일 업로드를 완료 하시고,

최종으로 생성된 파일 경로나 URL 정보만 회원 서비스에 문자로 넘기는게 좋겠습니다.

감사합니다.

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

5

1

sdk 설정 오류

0

57

2

오탈자 - @Transactional

0

57

1

src/test/resources 테스트 경로 문제

0

52

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

66

1

MemberRepositoryTest 실행오류

0

83

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

185

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

146

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

53

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

73

1

기본 생성자

0

62

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

103

1

멤버서비스테스트 부분에서 막힙니다.

0

168

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

117

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

121

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

115

1

24분 27초 연관관계 편의 메서드 위치

0

114

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

110

2

빌드 툴, Gradle

0

60

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

78

2

Repository에서 EntityManager 주입 방식 차이

0

90

1

롬복과 사용자 정의 setter 메서드

0

74

1

주문 목록 조회 fetch join 질문드립니다

0

84

1

dirty checking 질문드립니다.

0

84

1