인터페이스 상속 받게 해서 파라미터로 상속된 자식들 넣어주기만 하면 내부 코드는 공통으로 사용 가눙
근데 그걸 개발자가 아닌 스프링컨테이너가 해준다는 정도
그닥 와닿는 논리는 아넴
EJB 세절에 얼마나 개판이었으면 저런 씹구닥다리 논리가 메인을 차지할 수 있는걸까
댓글 14
DI가 코드를 재사용하기 위한 게 목적이라니..
내가 배운 거랑은 좀 다르네.. 흠..
깃허브(pythonx)2023-04-06 23:09
답글
니가 배운게 뭔데
익명(118.235)2023-04-06 23:11
답글
나는 결합도를 낮추기 위해서 라고 들은 거 같은데..
내가 잘못 알고 있을 수도 있음
근데 내가 생각하기에
코드의 재사용..은 저기서 나올 말이 아닌거 같아.
깃허브(pythonx)2023-04-06 23:14
답글
결합도를 낮추는 것도 맞음 프레임워크가 하나의 목표만으로 이뤄지겠냐
익명(118.235)2023-04-06 23:15
답글
아니 내가 듣고 싶은 건
의존성 주입을 통한 코드의 재사용 케이스를 듣고 싶은 건데..;
저 글만 봐서는 모르겠다.
좀 자세히 써주면 안되나..
깃허브(pythonx)2023-04-06 23:28
DI 자체는 깃허브님 말이 맞아요.
특정 클래스가 다른 클래스의 기능을 이용할 시 이것을 이용하는 클래스 내부에서 직접 인스턴스화 하게 되면
다른 구현체로의 변환 시 이용하는 클래스에 가서 직접 수정해야하는 일이 발생하지만
Interface 를 이용한 DI를 하게 되면 생성자에 주입하는 시점의 코드에서 구현체만 교체하면 되기 때문에
결합도가 감소합니다. 이용하는 클래스의 소스 코드는 수정이 발생하지 않으니까요
맥주마스터(wingsung618)2023-04-06 23:16
답글
내말이 그말임
익명(118.235)2023-04-06 23:18
답글
맥주마스터님// DI를 통한 코드의 재사용에 대해서도 설명 부탁드려도 될까요. 저 부분이 잘 이해가 안되서요..
깃허브(pythonx)2023-04-06 23:27
답글
DI 로 구현된 구현체가 한두개가 아닐꺼아님? 내가 필요한 구현체 갖다쓰다가 필요에 따라서 다른 구현체 갖다쓰는게 코드이 재사용이죠
ㅁㄴㅇ(211.248)2023-04-06 23:30
답글
제가 질문스킬이 딸리나봐요..; A 구현체 쓰다가 B 구현체로 바꿔서 쓴다고 해서 A나 B의 사용횟수(?) 가 늘어나는 건 아니잖아요.대체를 하는 거지..공통으로 코드를 가져다 쓰는 건 의존성 주입 개념이 없던 시절에도 공통모듈이라는 게 있지 않았나요? 그래서 DI가 어느 부분에서 코드의 재사용성을 높여준다는 건지와닿지가 않아요..
깃허브(pythonx)2023-04-06 23:36
답글
제 생각에는
class B {
private final SomeInterface bWillUseThis;
B(SomeInterface bWillUseThis){
}
}
맥주마스터(wingsung618)2023-04-06 23:40
뭐 대충 이런 구현을 했다고 했을때 B 라는 클래스 자체의 수정이 이루어지지 않기 때문에 재사용성이 높아진다고 봐야하지 않을까 싶어요.
맥주마스터(wingsung618)2023-04-06 23:40
답글
A를 대체하는 B클래스 파일이 기존에 쓰이고 있던 코드이면
B 클래스의 재사용성이 높아지는 게 맞네요.
맞네요.... 귀한 시간 내주셔서 감사합니다.
DI가 코드를 재사용하기 위한 게 목적이라니.. 내가 배운 거랑은 좀 다르네.. 흠..
니가 배운게 뭔데
나는 결합도를 낮추기 위해서 라고 들은 거 같은데.. 내가 잘못 알고 있을 수도 있음 근데 내가 생각하기에 코드의 재사용..은 저기서 나올 말이 아닌거 같아.
결합도를 낮추는 것도 맞음 프레임워크가 하나의 목표만으로 이뤄지겠냐
아니 내가 듣고 싶은 건 의존성 주입을 통한 코드의 재사용 케이스를 듣고 싶은 건데..; 저 글만 봐서는 모르겠다. 좀 자세히 써주면 안되나..
DI 자체는 깃허브님 말이 맞아요. 특정 클래스가 다른 클래스의 기능을 이용할 시 이것을 이용하는 클래스 내부에서 직접 인스턴스화 하게 되면 다른 구현체로의 변환 시 이용하는 클래스에 가서 직접 수정해야하는 일이 발생하지만 Interface 를 이용한 DI를 하게 되면 생성자에 주입하는 시점의 코드에서 구현체만 교체하면 되기 때문에 결합도가 감소합니다. 이용하는 클래스의 소스 코드는 수정이 발생하지 않으니까요
내말이 그말임
맥주마스터님// DI를 통한 코드의 재사용에 대해서도 설명 부탁드려도 될까요. 저 부분이 잘 이해가 안되서요..
DI 로 구현된 구현체가 한두개가 아닐꺼아님? 내가 필요한 구현체 갖다쓰다가 필요에 따라서 다른 구현체 갖다쓰는게 코드이 재사용이죠
제가 질문스킬이 딸리나봐요..; A 구현체 쓰다가 B 구현체로 바꿔서 쓴다고 해서 A나 B의 사용횟수(?) 가 늘어나는 건 아니잖아요.대체를 하는 거지..공통으로 코드를 가져다 쓰는 건 의존성 주입 개념이 없던 시절에도 공통모듈이라는 게 있지 않았나요? 그래서 DI가 어느 부분에서 코드의 재사용성을 높여준다는 건지와닿지가 않아요..
제 생각에는 class B { private final SomeInterface bWillUseThis; B(SomeInterface bWillUseThis){ } }
뭐 대충 이런 구현을 했다고 했을때 B 라는 클래스 자체의 수정이 이루어지지 않기 때문에 재사용성이 높아진다고 봐야하지 않을까 싶어요.
A를 대체하는 B클래스 파일이 기존에 쓰이고 있던 코드이면 B 클래스의 재사용성이 높아지는 게 맞네요. 맞네요.... 귀한 시간 내주셔서 감사합니다.