1. DI & IoC
# DI
객체 간 의존 관계를 개발자가 설정해두기만 하면 객체의 의존성을 개발자가 아닌 외부(IoC)에서 주입함으로써 객체 간의 결합도를 약하게 해 주면 유지보수가 좋은 코드를 만들어 준다.
1) 필드 주입 : private으로 클래스를 선언하여, Autowired 어노테이션을 사용해 의존성을 주입한다.
2) 수정자 주입 : set method를 구현하여 의존성을 주입한다.
3) 생성자 주입 : 생성자를 통해 의존성을 주입한다. 객체 생성 시점에 Bean을 주입하여, 컴파일 타임에 의존성이 주입되지 않아 발생할 문제를 확인할 수 있다.
필드 주입과 수정자 주입의 경우 순환 참조를 일으킬 수 있어 권고하는 방식은 생성자 주입이다.
# IoC
의존할 메소드나 객체의 호출을 개발자가 아닌 프레임 워크에서 결정하는 것으로 "제어의 역전"이라는 의미를 가진다.
Spring 같은 프레임워크에서는 제어권을 프레임워크에 위임하여, 프레임워크가 만들어 놓은 객체를 주입한다.
IoC 컨테이너에서 Bean으로 등록된 객체를 관리한다.
2. 스택 & 큐
# 스택
스택이란 쌓다라는 의미로, 데이터를 차곡차곡 쌓아 올린 자료구조를 말한다. 데이터가 순서대로 쌓이고 가장 마지막에 쌓인 자료가 가장 먼저 삭제되는 구조로 LIFO(Last In First Out)이다.
# 큐
스택과 다르게 먼저 들어온 것이 먼저 나가는 선입 선출 구조를 가지고 있다. 삽입 연산은 push(), 삭제 연산은 shift()이다.
'개발자 Study' 카테고리의 다른 글
네트워크 기본 개념(Backend LoadMap) (0) | 2023.09.22 |
---|---|
도메인 이름이란? (0) | 2023.08.17 |
HTTP & HTTPS / RDS (Study 1회차) (0) | 2022.12.27 |