반응형
목록
간단하고 쉽게/Spring, Spring Boot (4)
[꼼꼼한 개발자] 꼼코더
🧹 간단 정리 의존성 주입 방법을 선택할 땐 중 생성자 주입을 사용하자 생성자 주입은 코드의 유지 보수성과 테스트 용이성을 향상한다. (자세한 내용은 아래 👀) 🧑🏻💻 코드 예제 👉🏻 Setter 방식(생성자 주입 적용 전) public class UserService { private UserRepository userRepository; public void setUserRepository(UserRepository userRepository) { this.userRepository = userRepository; } } 👉🏻 생성자 주입 적용 public class UserService { private final UserRepository userRepository; public UserServ..
🚨 문제 발생 [피파 프로젝트] 개발 도중 이상한 현상이 일어났었다 분명 엔드 매핑 주소(첫 요청 시작 주소)가 'users'로 설정하였는데 'user'로 첫 요청을 하여도 정상적으로 동작한다는 것이었다.. (aaa, bbb, adfdagb로 해도 전부 동일하다) 따라서 코드를 확인해 보았다. 😁 코드 확인(원인 발견) 이상한 점을 눈치챘는가..!?!? 그렇다.. '{}'를 붙여 놓은 것이었다.. 이렇게 되면 '변수'로 인식하여 아무런 단어가 들어와도 처리가 돼버린다.ㅠ 🧑🏻💻 해결 수정하였다.(매우 부끄러워지는 상황 하핳..)
😊 @Autowired의 장점 코드를 간결하게 작성할 수 있다. 코드 양이 줄어들어 가독성이 좋아진다. 어노테이션을 사용하여 의존성 주입이 간편해진다 😂 @Autowired의 단점 순환참조(circular dependency)가 발생할 가능성이 있다. 어디서 어떤 의존성이 주입되는지 명확하게 파악하기 어렵다.(특히 테스트 시 더욱 부각되는 단점) 순환참조란? 간단하고 쉽게 이해하기 > https://ccomccomhan.tistory.com/143 😊 생성자 주입의 장점 순환참조(circular dependency) 방지 가능하다. 코드의 명확성과 안정성이 높아진다. 또한 컴파일 시점에 오류를 발견할 수 있어서 오류를 빠르게 수정할 수 있다. 테스트 시점에서 의존성을 주입하기가 쉬워지기 때문에 테스트 코..
🫨 순환참조(circular dependency)란? 둘 이상의 클래스나 빈(Bean)이 서로를 참조하는 상황을 의미한다. 🎥 예시 클래스 A가 클래스 B를 참조하고 클래스 B가 클래스 C를 참조하고 클래스 C가 다시 클래스 A를 참조하는 경우를 말한다. 👨🏻🏫 마무리 순환참조가 발생하면, 객체 생성 시점에서 무한루프에 빠지게 되어 프로그램이 정상적으로 동작하지 않을 수 있다. 이러한 문제를 해결하기 위해서는 순환참조가 발생하지 않도록 설계를 잘해야 하며 객체 간의 의존성을 최소화하고 의존성 주입 방법을 적절히 선택하여 이를 해결할 수 있다.