Spring(89)
-
[Spring] IoC, DI에 대한 나름의 이해
IoC = Inversion of Control 즉, 통제권의 역전이다. 원래 객체를 선택하는 통제권은 클라이언트 코드가 가지고 있다. 하지만 이것을 선택하는 통제권을 AppConfig와 같은 어셈블러, 컨테이너에 넘기는 것을 IoC라고 한다. 그러한 관점에서 프레임워크는 IoC를 기반으로 한다. 전체 로직 중 일부가 나의 코드로 사용되기 때문이다. 반면에 라이브러리는 내가 짠 코드를 실행시키기 때문에 통제권이 나한테 있다. 정적인 클래스 의존 관계는 클라이언트 코드가 인터페이스에만 의존하면 이는 코드를 실행시키지 않고도 그 의존관계를 파악할 수 있다. 이러한 의존관계가 정적인 클래스 의존 관계다. 아래는 확실히 정해진 것이다. 동적인 객체 인스턴스 의존 관계는 실제 실행시키기 전까지는 어떠한 구현체를 ..
2023.09.16 -
[Spring] DI에 대한 나름의 이해
depency injection은 의존관계를 주입해주는 것이다. 이를 통해 DIP를 해결할 수 있다. DIP를 해결하려면 오직 인터페이스(역할)에만 의존하도록 해야 한다. 어떤 구현체를 사용해야 할지는 기획자가 해주어야 한다. AppConfig와 같은 기획자를 통해 생성자 주입을 하게 된다. 생성자 주입이란 생성자를 통해 구현체를 주입해주는 것이다. 주입은 기획자가 한다. 배우와 같은 구현체는 오직 자기가 해야 할 일(실행)만 하면 된다. AppConfig에는 역할이 메소드를 통해 나타나게 되고 구현체가 return 값을 통해 나타나도록 한다. 그렇다. 이렇게 하면 역할과 구현이 구분되어 보여진다. 이렇게 구현하게 되면 사용영역은 인터페이스에만 의존하기 때문에 DIP가 지켜지고 확장을 해도 클라이언트 코..
2023.09.14 -
[Spring] OCP와 DIP에 대한 생각
DIP를 위반하게 되면 그러니까 구현체에도 의존하게 되면 OCP도 위반하게 되어 있다. 구현체를 바꾸는 순간 코드를 바꾸는 게 되기 때문 DIP는 인터페이스(역할)에만 의존해야 한다. Reference https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55343 학습 페이지 www.inflearn.com
2023.09.14 -
[Spring] 단위 테스트를 생성하자
단위 테스트란 스프링의 도움 없이(스프링의 서버를 킬 필요없이) 순수하게 java만으로 작성한 테스트를 의미한다. 이 단위 테스트를 많이 만들어야 빠르게 테스트를 진행할 수 있다
2023.09.13 -
[Spring] 다이어그램과 프로젝트 설계
회원 도메인 협력 관계: 역할과 구현만으로 간단하게 나타냄. 기획자도 알 수 있게 하는게 목적. 회원 클래스 다이어그램: 총 인터페이스와 구현체들의 관계도 회원 객체 다이어그램: 런타임에 실제로 어떤 구현체를 쓰는지를 나타냄. Reference https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55335 학습 페이지 www.inflearn.com
2023.09.13 -
[Spring] Preference-Gradle 설정
Intellij에서 preference에서 gradle이라고 치고 다음과 같이 바꾸어준다. 이유는 더 빠르기 때문이다.
2023.09.12