Programming/Spring 15

DI - 의존성 주입

[KT] AIVLE SCHOOL 36일차 의존성(Dependency)의존성 주입(Dependency Injection)은 의존성(Dependency)을 주입(Injection)하는 것의존성 : 한 객체의 코드에서 다른 객체를 생성하거나 다른 객체의 메서드를 호출할 때, 의존성이 발생한다고 할 수 있음결합도(Coupling)의존성의 정도를 결합도(Coupling)라고 함결합도가 높으면 강한 결합(Tight)이라고 표현결합도가 낮으면 느슨한 결합(Loose)이라고 표현일반적으로 new 연산자를 사용하여 객체를 생성할 때 강하게 결합하며 인터페이스와 같이 일반화 된 구성 요소에 의존하고 있을 때 느슨하게 결합하게 됨느슨한 결합은 요구 사항의 변경에 유연한 대처가 가능해짐의존성 주입(Dependency Inj..

Programming/Spring 2025.05.20

IoC - 제어의 역전(Inversion of Control)

[KT] AIVLE SCHOOL 36일차 IoC - 제어의 역전(Inversion of Control)IoC와 DI는 스프링의 가장 기본이 되는 기술이자 스프링의 핵심 개발 원칙POJO → AOP와 PSA도 IoC/DI에 바탕을 두고 있음프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)이라 함실생활에서의 예시자동차 운전을 직접 한다고 가정할 때 다음과 같은 프로세스로 운전을 진행목적지 설정차량의 속도 설정신호 및 교통체계 준수이 경우 운전자는 운전에 관한 모든 제어를 담당만약 직접 운전하는 것이 아닌 택시를 타거나 대리운전을 이용한다 가정하면 탑승하는 순간부터 경로를 결정하거나 속도를 설정하거나 하는 모든 제어는 운전기사가 담당여기서 승객인 나는 목적지를 운..

Programming/Spring 2025.05.20

OOP + POJO

[KT] AIVLE SCHOOL 36일차 POJO(Plain Old Java Object)Spring는 POJO를 지향하는 프레임워크특정 기술에 종속되어 작동하는 것이 아닌 순수한 자바 객체를 의미POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있음Spring이 POJO를 지향하는 이유특정 기술들에 종속성을 띠게 되면 객체지향적인 설계가 힘들거나 불가능한 경우가 발생위와 같은 문제는 코드의 유지보수와 재사용성에서 매우 불리해짐POJO는 객체지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용 될 수 있는 방식으로 설계되는 장점을 갖고 있음객체 지향 설계 원칙(SOLID)SRP : 단일 책임의 원칙 (Single Responsibility Principle)클래스는 단 ..

Programming/Spring 2025.05.20

Spring Framework

[KT] AIVLE SCHOOL 36일차 Spring FrameworkJava 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로써 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화 된 솔루션Spring 생태계핵심 기술 : 스프링 IoC 컨테이너 , AOP , 기타 등등 웹 기술 : 스프링 MVC , 스프링 WebFlux데이터 접근 기술 : 트랜잭션, JDBC , ORM테스트 : 스프링 기반 테스트 지원 등등…Spring의 핵심스프링은 Java 언어 기반의 프레임워크 Java 언어의 가장 큰 특징은 “객체 지향 언어” 즉, 스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내면서 애플리케이션 제작이 가능하게 해줌SOLID 원칙에 부합하는 프로그래밍이 가능하며, 확장성..

Programming/Spring 2025.05.20

Framework

[KT] AIVLE SCHOOL 36일차Framework란?프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘 등의 기능들을 위해 뼈대를 제공함개발자는 이런 뼈대 위에서 코드를 작성하여 애플리케이션을 개발할 수 있음e.g. Spring MVC 웹 프레임워크는 MVC 디자인 패턴이라는 정량화 된 구조 안에서 웹 서버를 어떤 구조로 만들면 되는지 방향을 제시해줌Library라이브러리는 개발자가 개발하는 데 필요한 것들을 모아 둔 도구들의 나열로 개발자가 필요로 할 때 호출하여 사용하는 방식을 취하고 있음e.g. Python NumPy --> 파이썬의 수치 계산 라이브러리Framework와 Library의 차이점제어의 역전을 쉽게 생각하면객체를 개발자가 관리하지 않고 프레임워크가 관리객체의 생성과 소멸..

Programming/Spring 2025.05.20