Spring boot IoC, DI, AOP, POJO, Bean

이진석·2022년 10월 9일
1

Spring이란?

Spring은 오픈소스 기반의 Java 웹 어플리케이션을 개발 할 수 있는 Framework이다.

Framework -> 어떤 목적을 달성하기 위해, 복잡하게 얽혀 있는 문제를 쉽게 해결하기 위한 약속이자 도구이며 개발에 있어서 하나의 뼈대 역할을 함.
자주 쓰일만한 기능들을 한데 모아놓은 유틸(클래스)들의 모음.

Java의 활용도가 높아지면서, Java를 이용한 기술들(JSP,Mybatis 등)이 생겨 났고 이러한 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 Framework가
Spring이라고 할 수 있다.

그렇다면 Spring Boot는?

Spring Boot는 Spring을 더 쉽게 사용하여 상용화 가능한 어플리케이션을 만들 수 있도록 돕는 도구!

Spring은 초기 세팅이 많아 초보자들에게 진입 장벽이 높고 시간을 많이 잡아먹는데 이를 해결하고자 등장한 Framework가 Spring Boot!

Spring 특징

1. IoC (Inversion of Control) 제어의 역전

  • 우리가 객체를 직접 생성하고 메소드를 호출하는 등 직접 객체를 조작하는 작업을 할 때, 사용자가 직접 제어하는 것이 아닌 Spring에서 의존성 객체를
    만들어주고 필요한 곳에 넣어주어 기존에 사용자가 가졌던 제어권을 다른 주체에게 넘기는 것을 의미.

2. DI (Dependency Injection) 의존성 주입

  • 필요한 객체를 직접 생성하는 것이 아닌 외부(Spring)에서 생성하여 사용하려는 객체에게 주입 시켜주는 것을 말함. 직접 생성할 경우 의존성이
    높지만, 이와 같이 주입하면 의존성을 줄일 수 있음.

3. AOP (Aspect Object Programming)

  • 개발자가 비즈니스 로직에만 집중 할 수 있도록 반드시 처리가 필요한 부분을 모듈로 분리하는 프로그래밍의 패러다임을 말함.
    Spring에서는 AspectJ의 문법으로 구현하는데 아래와 같은 효과를 얻을 수 있음.
    • 핵심 비즈니스 로직에만 집중하여 개발이 가능
    • 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화
    • 필요로 하는 관심사의 유지보수가 원할하도록 코드를 구성 가능

4. POJO (Plain Old Java Object) 기반의 구성

  • POJO란 다른 클래스나 인터페이스를 상속받아 메소드가 추가된 클래스가 아닌 일반적으로 우리가 알고 있는 getter, setter 같이 기본적인 기능만
    가진 자바 객체를 말함.

Spring Bean

Bean이란 Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 한다. 기존의 방식에서는 우리가 Class를 생성하여 원하는 객체를 만들어 사용했는데, Spring에서는 우리가 new해서 만든 객체가 아닌 Spring에 의해서 관리당하는 자바 객체를 사용한다. 이렇게 Spring에 의해서 생성되고 관리 되는 객체를 Bean이라고 한다.

profile
고양이 두마리의 집사이자 행복 코딩을 추구하는 주니어 개발자입니다!

1개의 댓글

comment-user-thumbnail
2022년 10월 9일

멋있네요 ^^ 다녀갑니다~~

답글 달기