Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- N+1
- 환경변수
- JWT 쓰는이유
- 부트캠프
- 스테이지어스
- secret코드
- route 53
- 알림생성
- JSON Web Token
- 패스파라미터
- 포트번호
- 레포지토리
- 쿼리스트링
- JWT
- N+1문제
- 게시글 이미지
- 메뉴바
- 메뉴바 한번에
- JWT 쓰는 방법
- Winston
- 3계층구조
- 알림생성모듈
- unnest
- getComputedStyle
- 토큰
- element.style
- .env
- 네비게이션 한번에
- 이미지가 포함된 게시글
- 게시글 이미지 업로드
Archives
- Today
- Total
기주
의존성 주입(Dependency Injection) 본문
의존성 주입을 쓰는이유
1. 클래스간 결합도를 낮출 수 있다
-> 결합도를 낮춘다는 것(의존성을 줄인다는 것)은 변화에 강하다는것
객체의 생성과 사용을 분리한다
다른 객체를 직접 생성하지않고 외부에서 필요한 객체를 주입받기 때문에 각 역할을 분리할 수 있다
2. 테스트가 가능하다*
-> 테스트코드를 작성하는 것은 별도의 모의 객체를 생성하고 그 객체의 함수가 어떤 값을 반환한다고 가정한다(모킹)
-> 이것도 의존성을 낮춰줘서 가능한일.
의존성 주입을 하지않으면 모의 객체의 함수를 모킹하는것이 아니라 실제 클래스의 함수를 가져와야하는데, 그럼 문제가 발생한다.
실제로 동작하면 안되는 것들이 동작하게 될 수 있다.
실제객체가 아닌 모의객체를 이용한 테스트가 가능해진다
(예시1 : db연결이 실제로 이루어지면 안된다.
1.테스트가 실제 db의 데이터에 영향을 줘서는 안된다
2.어떤 db든 상관없이 로직이 이루어져야한다. )
(예시2 : 메일전송
실제로 메일이 전송되어선 안된다)
'TIL' 카테고리의 다른 글
테스트 코드로 알아보는 DI (0) | 2024.06.10 |
---|---|
모듈 분리 / 서비스 코드 분리 기준 (0) | 2024.06.10 |
[nest.js] swagger 적용하기 (0) | 2024.05.29 |
[ERROR] ReferenceError: exports is not defined in ES module scope (0) | 2024.05.28 |
Express static (0) | 2024.05.25 |