본문 바로가기

spring5

스프링 핵심 개념 4가지 요약 정리 (Ioc, DI, AOP, PSA) 스프링 핵심 개념 4 가지 한 줄로 정리하는 스프링 핵심 4가지 IoC 객체의 생성과 관리를 개발자가 하는 것이 아니라 프레임워크가 대신하는 것. DI 외부에서 객체를 주입받아 사용하는 것 AOP 프로그래밍을 할때 핵심 관점과 부가관점을 나누어서 개발하는 것. PSA 어느 기술을 사용하던 일관된 방식으로 처리하도록 하는 것. 출처: 스프링 부트 3 백엔드 개발자 되기: 자바 편 https://product.kyobobook.co.kr/detail/S000201766024 스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고 스프링 부트 3 백엔드 개발자 되기: 자바 편 | ★ 자바 백엔드 개발자가 되고 싶다면 ★ 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려면 시작이 중.. 2023. 8. 13.
스프링 핵심 개념 3 : PSA (서비스 추상화) PSA는 다양한 기술과 서비스를 추상화하여 일관된 방식으로 다룰 수 있도록 도와주는 개념입니다. 이번 포스팅은 스프링 프레임워크 핵심 개념 시리즈의 마지막 포스팅으로 PSA(Portable Service Abstraction)에 대해 알아보겠습니다. ✅ PSA (Portable Service Abstraction) : PSA는 '이식가능한 서비스 추상화'라고 직역된다. PSA는 스프링에서 제공하는 개념으로, 다양한 기술들을 일관된 방식으로 다룰 수 있도록 도와주는 추상화된 인터페이스와 패턴을 말한다. 쉽게 말해, PSA는 다양한 기술을 하나의 통일된 방식으로 사용할수 있도록 도와주는 것이다. ✅ 스프링에서 PSA 예시 1. 데이터 접근 데이터베이스에 접근하기 위한 기술로 *JPA, *JDBC 같은 것들이.. 2023. 8. 12.
스프링 핵심 개념 2 : AOP (관점 지향 프로그래밍) ✅ AOP (Aspect Oriented Programming) 개념 : AOP는 관점 지향 프로그래밍를 의미하며, OOP (Object-Oriented Programming)을 보완하는 개념이다. AOP는 핵심 관점과 부가관점(로깅, 트랜잭션, 보안 등)을 분리하여 개발하는 방법을 말한다. 기존의 OOP(객체 지향 프로그래밍)은 클래스를 중심으로 코드를 구조화하는 반면, AOP는 "관심사"를 중심으로 코드를 구조화합니다. ✅ AOP 예시 위 그림으로 예를 들어보자면, 핵심 관점은 계좌이체/고객관리 로직이고, 부가 관점은 로깅/데이터베이스 연결 로직이다. ✅ AOP 장점 AOP를 통해 핵심관점과 부가관점으로 분리하면, 개발자는 핵심 관점 코드에만 집중할 수 있게 되고, 프로그램 변경과 장에도 유연하게 대.. 2023. 8. 12.
빈과 스프링 컨테이너 앞서, Ioc(제어의 역전)와 DI(의존성 주입)에 대해 설명하면서 나왔던 개념인 스프링 컨테이너와 빈에 대해 알아보도록 하겠습니다. ✅ 스프링 컨테이너 : 스프링 컨테이너는 빈을 생성/관리한다. 빈이 생성되고 소멸되기까지 생명주기를 스프링 컨테이너가 관리한다. @Autowired같은 애너테이션을 통해 빈을 주입받을 수 있게 DI를 지원한다. ✅ 빈 : 빈은 스프링 컨테이너가 생성하고 관리하는 객체이다. 즉, 스프링의 객체이다. 스프링에서는 객체를 빈으로 관리함으로써 객체의 생명주기, 의존성 관리, 설정 등을 보다 쉽게 처리할 수 있도록 도와준다. 빈을 스프링 컨테이너에 등록하기 위해 XML, 어노테이션, Java 설정 클래스 등 다양한 방식을 사용할 수 있지만,가장 일반적으로 사용되는 두 가지는 아래와.. 2023. 8. 10.
스프링 핵심 개념 1 : 제어의 역전 (IoC) 스프링 핵심 개념 1 : IoC(제어의 역전)와 DI(의존성주입) 스프링의 모든 기능은 Ioc(제어의 역전)와 DI(의존성 주입)에 기반을 두고 있습니다. 스프링이라는 프레임워크가 돌아가는 핵심 원리를 이해하기위해 Ioc와 DI에 대해 각각 자세히 알아보고 걔념정리를 하는 시간을 가지겠습니다. ✅ IoC (Inversion of Control) : Ioc(Inversion of Control)은 '제어의 역전' 이라는 뜻으로, 객체를 개발자가 직접 생성/제어하는 것이 아니라, 외부에서 관리하는 객체를 가져와 사용하는것을 의미한다. 즉, 제어의 흐름이 역전되어 코드 실행의 흐름을 개발자가 아닌, 프레임워크와 컨테이너가 제어하게 되는것을 뜻한다. 스프링은 스프링 컨테이너가 객체를 관리/제공하는 역할을 한다... 2023. 8. 9.