묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
model과 modelmap의 차이점을 자세히 알려주세요
model과 modelmap의 차이점을 자세히 알려주세요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
service와 controller의 역할에 대한 질문이 있습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]service와 controller의 역할에 대한 질문이 있습니다. 강의를 듣고 활용해던 도중 의문점이 생겼습니다. 한참 찾아봤는데 아직도 모르겠어서 질문드립니다. 저의 기존 코드에서는 어떤 컨트롤러의 post 요청에서 A,B,C 엔티티가 반드시 순서대로 생성된후 저장되어야 합니다. (참조관계 떄문에 그렇습니다) 기존에 저는 컨트롤러에서 A 엔티티 생성 -> AService.createA() 한 후 B, C도 동일한 과정을 거칩니다. 이러니까 컨트롤러가 서비스의 역할을 해버린다고 생각했습니다. 그래서 컨트롤러는 그냥 dto를 넘겨주고 서비스에서 위의 작업을 하려했습니다. 그랬더니 몇가지 문제가 생겼습니다. 1. service에서 repository만을 사용하면 코드 중복이 심함(create 할때 복잡한 중복검증 로직이 있는대, 그것까지 전부 다시 해야함) 2. service에서 service를 주입받아서 하자니 순환참조, 나말고 코드 이해도 낮은 다른사람이 손대면 실수할 가능성 높음 등등의 문제가 생김 그래서 그냥 원래대로 냅두려니 controller가 너무 크고 service가 하는게 그냥 repository로 요청 보내기인 경우가 대부분임 그래서 질문은 1. 적절한 방법이 뭘까요? 2. 복잡하고 큰 규모의 서버 코드를 보고싶은데 좋은 예시를 어디서 찾을수 있을까요? 3. 제가 해결방법으로 여러 service를 주입받아서 사용만하는 service를 만들어서 컨트롤러에 있던 코드를 거기로 옮겨서 컨트롤러에 비즈니스 로직이 생기는걸 없에고 순환참조, 코드 중복 등을 제거 해봤는데 이게 맞는건가요? 4. MSA와 상관있는 문제일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Controller 자바코드로 (@Configuration)으로 스프링빈등록.
안녕하세요! 강의를 너무잘보고있습니다 다름이아니라 강의 3:44 쯤 선생님이 "컨트롤러는 어쨌든 스프링이 관리하는거기때문에" 라고 하시는 의미가 잘 이해가 되질않습니다. @Configuration 어노테이션으로 스프링빈으로 등록하는것도 결국 이 어노테이션을보고 스프링이 '어? 이녀석은 스프링이 관리해야겠따'라고 하는 것도 스프링이 관리하는것이 아닌가요..? 그래서 고민하다 제가 선생님이 하신말의 의미를 (나름!) 생각해봤는데 컴포넌트 스캔방식으로 컨트롤러를 스프링빈등록하고 서비스나 리파지토리는 설정을 통해 스프링 빈으로 등록해서 컨트롤러에서 @Autowired를 이용해서 설정을 통해서 스프링 빈으로 등록되어있는 서비스를 DI할수있따!! 는걸 보여주기 위해서라고 생각을했습니당.. 그런데 확신이들지도않아서 질문드립니다. 추가로 컨트롤러, 서비스, 리파지토리 모두 설정을 통해서 스프링빈 등록했더니 문제없이 동작하길래 더 의문이듭니다!!.