하위 패키지의 상위 패키지 참조
374
작성자 없음
작성한 질문수 0
안녕하세요 강의 잘 듣고있습니다.
1분 42초쯤에 말씀하신 치명적인 실수에 대해서 질문드립니다.
강의에서는 후반부에 CertificationService가 자연스럽게 사라짐에 따라 하위 패키지인 UserServiceImpl이 상위 패키지인 CertificationService를 참조하지 않게 변경됐지만, 만약 CertificationService이 계속 존재했다면 UserServiceImpl은 어떠한 형태로 올바르게 CertificationService을 참조할 수 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
제공된 정보 내용과 직접적인 연관이 없어서 구체적인 코드 예제를 드리지는 못하지만, 일반적으로 Spring에서는 다양한 방법으로 다른 패키지의 클래스 또는 서비스를 참조할 수 있습니다. 이러한 참조는 주로 @Autowired 어노테이션을 사용하여 의존성 주입을 통해 이루어집니다. 만약 UserServiceImpl 클래스가 CertificationService 클래스를 올바르게 참조하려면, UserServiceImpl 클래스 내에서 CertificationService 타입의 멤버 변수를 선언하고 @Autowired 어노테이션을 사용하여 Spring이 자동으로 해당 타입의 빈(Bean)을 찾아 주입하도록 설정할 수 있습니다.
예를 들어, 다음과 같은 방식으로 구현할 수 있습니다:
@Service
public class UserServiceImpl implements UserService {
private CertificationService certificationService;
@Autowired
public UserServiceImpl(CertificationService certificationService) {
this.certificationService = certificationService;
}
// 클래스 내 다른 메소드들...
}
이 예제에서는 생성자 주입 방식을 사용하였으나, 필드 주입이나 세터 주입 방식을 사용할 수도 있습니다. 그러나 일반적으로는 생성자 주입 방식이 권장되며, 이 방식은 순환 참조를 방지하고 테스트 용이성을 높여주는 장점이 있습니다.
답변이 도움이 되었길 바랍니다. 다른 궁금한 점이 있으시면 언제든 질문해주시기 바랍니다.
UserService, CertificationService 책임 분리 기준 질문
0
28
1
service.port 패키지로 이동한 UserRepository가 infrastructure에 있는 UserEntity에 의존
0
59
1
Service 소형 테스트 질문
0
83
1
조회 시 엔티티를 조회하는 것이 아닌QueryDSL을 많이 사용 시 Dto는 어떻게 하나요?
0
116
1
controller 의 port 패키지의 service 인터페이스 사용
0
72
1
빌드 문제
0
92
1
빌드 안 되시는 분들 참고
0
102
1
update에서 Repository.save
0
105
1
최종 완성된 코드를 받아 볼 수 있을까요?
0
156
1
의존성 역전으로 해결한 외부의존성?
0
162
1
좋은 설계
0
180
1
Controller에 테스트
0
139
1
JPA가 아닌 Mapper 아키텍처 기반 테스트 코드 작성
0
242
0
영속성 객체 구분으로 인한 JPA와 Querydsl의 Projection 사용
0
224
1
인프라계층 구현체와 테스트 구현체에 대한 질문
0
223
1
실습 코드 커밋
0
373
1
UserEntity 메서드
0
294
2
CertificationServiceTest에서 MailSender 인터페이스가 아닌 FakeMailSender를 이용하는 것
0
217
1
레이어드 아키텍처 개발에 대하여
0
231
1
BDDMockito의 when을 사용한 코드가 given 절에 있는 이유가 궁금합니다.
0
223
1
테스트에서 주입과 생성
0
198
1
프로젝트 코드는 제공해주시지 않는건가요?
0
382
2
개선된 아키텍처의 구조
0
277
1
서비스 레이어의 단위 테스트 범위 고민
0
188
1





