Di
-
[Spring][Kotlin] 제어의 역전(Ioc)과 의존관계 주입(DI)Spring 2022. 4. 13. 01:08
제어의 역전 IoC (Inversion of Control) : 구현 객체가 제어 흐름을 스스로 조종하지 않고 외부에서 관리하는 것을 말한다. 앞 포스팅에서의 코드에서 class MemberServiceImpl: MemberService(){ val memberRepository = MemoryMemberRepository() //생략 } 위의 코드는 MemberServiceImpl 객체가 스스로 필요한 서버 구현 객체를 생성하고 연결하고 실행한다. 즉 구현 객체가 프로그램의 제어 흐름을 조종한다. class AppConfig{ fun memberRepository() = MemoryMemberRepository() fun memberService() = MemberServiceImpl(memberRep..
-
[Spring][Kotlin] 좋은 객체지향 설계 5가지 원칙 SOLID와 스프링Spring 2022. 4. 12. 17:39
클린코드로 유명한 로버트 마틴은 좋은 객체지향 설계의 5가지 원칙을 정리하였다. 1. SRP 단일 책임 원칙 Single Responsibility Principle : 한 클래스는 하나의 책임만 가져야 한다. 변경이 있을 때 파급이 적으면 SRP 잘 따른 것이다. 2. OCP 개방 - 폐쇄 원칙 Open/Close Principle : 확장에는 열려 있으나 변경에는 닫혀 있어야한다.(다형성 활용)(중요함) 그러나 Problem] 클라이언트가 구현체 선택하는 과정에서 코드 변경을 해야한다. class MemberService{ ... //val memberRepository: MemberRepository = MemoryMemberRepository() val memberRepository: Member..