# DIP

[Swift] - DI / DIP
A가 동작하기 위해 B가 필요할때, A는 B에 의존하고 있다고 함동작에 필요한 객체를 객체 내부에서 직접 생성하는게 아닌, 외부에서 주입받는것OOP의 DIP를 지키는것상위 모듈이 하위 모듈에 의존하지 않는것ex)아래 처럼 A, B가 있다.A는 B에 의존성이 있고, B에

[Spring] DIP, OCP 사용 의미 이해
스프링을 공부하다 보면 가장 처음에 DIP와 OCP를 마주한다. 내가 처음 자바를 접하고 스프링 프레임워크를 공부해보려고 강의를 듣다가 DIP와 OCP를 마주쳤을 때는 '아 그냥 이런 거구나~' 하고 정확히 지나쳤다. 현재까지 두 개의 프로젝트를 진행하면서 사용하기에만
SOLID 5 원칙, 다형성을 지향하는 객체지향 개발
뭔가 단순히 프로젝트 내용을 열거하는 것보다, 실제로 개발해보면서 마주친 에러들, 어려운 내용들을 정리해보자.✅ 테스트 코드 작성 방법을 given, when, then 으로 나눠서 작성해보자.단일 책임 원칙이 잘 지켜진 설계이다 ! 🤔 회원 도메인, 주문 도메인처럼

SOLID
SOLID 원칙 SOLID는 객체 지향 프로그래밍의 5가지 기본 원칙인 SRP, OCP, LSP, ISP, DIP의 앞글자를 묶어 부르는 이름으로 객체 지향 설계 원칙이라고도 부른다. 가독성과 확장성을 위해 코드의 리팩터링 과정을 반복할 때 사용되는 지침으로, 개발자

[NestJs] 데코레이터를 이용하여 서비스코드 관심사 분리하기
안녕하세요 회사 프로젝트인 파트너센터 입점에 관련된 스프린트를 하는도중 입점 검수요청, 입점 검수가 완료되면 슬랙으로 알림을 주는 기능을 개발하게 되었습니다.이때 서비스코드에 알림을 보내는 기능이 과연 입점 도메인에있는 CRUD 서비스코드에 들어가는게 맞을까?.. 라는

객체지향 5원칙 (SOLID)
😵 목적 정리한 개념들의 포스트들은 있지만, 한번에 보기 난해하고 전체적인 흐름을 바로 잡고 OOP의 더 깊이 있는 학습을 위해 정리하려고 한다.
DIP
Dependency Inversion Principle 구체화가 아닌 추상화에 의존해야한다. Se fier à des abstractions, pas à des concrétisations. 즉, 구현클래스(구현체)가 아니라 인터페이스(역활)에 의존해야
SOLID 원칙
클래스는 하나의 책임만 가져야 하고 클래스의 모든 기능은 그 책임을 수행하는데 집중되어야 한다는 원칙이다. 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야함을 의미한다. 하나의 클래스가 여러 원인에 의해서 변경이 잦다면 각 책임을 별도의 클래스로 분할

[swift] 의존성 주입으로 코드를 예쁘게 하자!
🤔 의존성 주입을 하는 이유? 의존성 주입을 알아보기 전에 의존성 주입이란 것을 왜 해야하는 것일까? 객체끼리의 의존도가 높으면 한 객체에서 수정이 일어나게 되면 연관된 모든 객체를 손봐야 하는 경우가 있다. Unit test 를 할 경우에도 한 객체의 Test 만
SOLID 원칙
SOLID는 로버트 마틴이 정의한 객체 지향 설계의 5가지 원칙을 말합니다. 학교에서 소프트웨어공학 수업시간에 배울 당시에는 학문적인 부분에서만 나올 것 같은 내용이라 생각했지만, 객체 지향 프로그래밍을 할 때 깔끔한 코드 작성을 위해 지켜야함을 깨달았습니다.하나의 클