DI(Dependency Injection)에 대한 설명과 해당 기술의 장점에 대해 설명해주세요.
- 내부에서 객체를 직접 생성하거나 제어하는 것이아니라, 필요한 객체를 외부에서 결정에서 연결시키는 것을 의미
장점
- 의존성이 줄어든다(결합도가 낮아진다)
- 재사용성이 높은 코드가 된다
- 테스트하기 좋은 코드가 된다
- 가독성이 높아진다.
DB에서 인덱스를 잘 사용하면 어떤 장점이 있을까요?
- 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조
장점
- 데이터 들이 정렬이 되어 있어 검색에 용이
- 시스템의 전반적인 부하를 줄일 수 있음
단점
- 인덱스를 관리하기 추가 작업이 필요
- 잘못 사용하는 경우 오히려 검색 성능이 저하
사용이유
- WHERE 구문과 일치하는 열을 빨리 찾기 위해.
- 특정 열을 고려 대상에서 빨리 없애 버리기 위해.
- 조인 (join)을 실행할 때 다른 테이블에서 열을 추출하기 위해.
- 특정하게 인덱스된 컬럼을 위한 MIN() 또는 MAX() 값을 찾기 위해.
- 사용할 수 있는 키의 최 좌측 접두사(leftmost prefix)를 가지고 정렬 및 그룹화를 하기 위해.
- 데이터 열을 참조하지 않는 상태로 값을 추출하기 위해서 쿼리를 최적화 하는 경우.