
IoC는 제어의 역전을 의미하며 프로그램의 흐름을 개발자가 아닌 프레임워크가 제어하는 설계 원칙을 말합니다. 프레임워크가 실행 흐름을 제어하고 필요한 객체를 주입하거나 호출합니다. 이로 인해 애플리케이션 코드의 결합도를 낮추고 코드의 유연성을 높이는 것에 있습니다.
스프링에서는 DI 방식으로 ioc를 구현하게 되는데 DI란 객체의 생성과 의존성을 외부에서 주입하는 설계 패턴입니다. 의존성 주입을 사용하는 주요 목적은 객체 간의 결합도를 낮추고, 코드의 재사용성과 테스트의 용이성을 높이는 것을 목적으로 합니다. (이를 통해 객체가 다른 객체에 의존하지 않고 독립적으로 동작할 수 있습니다.)
의존성 주입 방법으로는 의존성을 객체의 생성자 매개변수로 주입하는 방식인 생성자 주입, 객체의 세터 메서드를 통해 주입하는 세터 주입 방식, 객체의 필드에 직접 주입하는 필드 주입 방식이 있습니다.
프로그래밍을 위한 패러다임 중 하나로, 명령어를 바이너리 코드로 변경 및 실행시켜주는 컴퓨터적인 사고에서 벗어나 인간의 사고에 좀 더 가까운 프로그래밍을 위해서 독립적인 하나의 객체를 만들고 객체 간의 상호작용을 통해 프로그램 내 로직을 수행하는 것을 말합니다.
객체지향 프로그래밍을 사용하는 이유로 크게 3가지가 있습니다.
OOP 방식으로 프로그래밍을 하기 위해서는 다음과 같은 특징을 가져야 합니다.
Scale-Out, Scale-Up, 캐시가 있습니다.
MSA 프로젝트를 진행하면서,