
스프링(Spring) 개념
Spring 이란 ?
Spring은 Java 기반의 Web Application을 만들 수 있는 Framework입니다.
웹 프레임워크로, 자바로 다양한 애플리케이션을 만들기 위한 프로그래밍 틀입니다.
자바 백엔드 개발자는 웹 어플리케이션을 개발할 때 대부분 스프링을 사용합니다.
그 이유는 JAVA의 활용도가 높아지고 프로젝트 규모가 커짐으로 JAVA에서 주로 사용되는
JSP, mybatis 등 많이 쓰이는 기술들을 더 편리하게 사용하기 위해, 라이브러리와 툴을 제공해 주는
스프링을 사용합니다.
◆ 스프링(Spring)의 주요 특징
1. IoC (Inversion of Control) - 제어의 역전
JAVA에선 객체를 생성하고 직접 조작, 호출하여 사용했습니다. 즉 사용자에게 제어권이 있었음.
Spring의 Ioc의 역할로는 스프링이 만든 객체를 컨테이너에 넣고 필요한 곳에 주입해 줍니다.
스프링에게 제어권을 넘기고 -> 스프링이 만든 객체를 주입 -> 의존성 객체 메서드 호출
프로젝트 규모가 커질수록 객체와 자원 사용이 복잡해지므로 Spring의 IoC가 자동으로 관리를 해주는 겁니다.
IoC가 개발자의 코드를 호출하여 그 코드로 생명주기를 제어하는 것이다.
2. DI (Dependency Injection) - 의존성 주입
객체 간 의존관계를 스프링 컨테이너가 개발자가 정의한 Bean 등록을 바탕으로 자동으로 주입해 주는 기능
외부의 설정파일을 통해 정의되는 방식
Database , JDBC, iBatis, JPA 등 필요할 때 쓰고 필요 없을 때 뺄 수 있는 기능

@Controller, @Repository, @Service 등 어노테이션이 붙은 클래스들은 스프링 실행 시
개발자가 정의한 의존성 정보를 자동으로 bean에 의존성 주입
이를 통해 객체 간 결합도 낮추고 코드 양을 줄일 수 있으며, 다양한 곳에서 사용할 수 있다.
3. AOP (Aspect Object Programming) - 관점 지향 프로그래밍
AOP는 여러 객체에 공통으로 적용할 수 있는 기능을 구분하여 재사용성을 높여주는 프로그래밍 기법이다.
공통적으로 사용하는 기능들을 분리하여 관리할 수 있다.
각 클래스들끼리 중복되는 코드를 사용하면 가독성 및 개발 속도에 좋지 않다. 중복된 기능을 한 곳에 작성 후
필요한 곳에서 호출하여 쓰면 효율성이 좋아집니다.

스프링 부트(Spring Boot) 개념
스프링(Spring)을 더 쉽게 이용하기 위한 도구가 스프링 부트(Spring Boot) 입니다.
스프링 부트(Spring Boot)를 이용하여 매우 간단하게 프로젝트를 설정할 수 있고, 스프링(Spring) 개발을
조금 더 쉽게 만들어줍니다.

스프링 부트는 스프링을 사용하기 위해서는 여러 가지 설정을 해주어야 합니다.
스프링의 pom.xml을 보시면 복잡한 설정 정보를 담고 있습니다.
스프링 부트를 사용하면 복잡한 설정을 간략하게 줄일 수 있습니다.
◆ 스프링(Spring)의 주요 특징
1. 스프링 부트에는 스프링에 여러 기능이 추가되었다.
로그인 기능, 페이징기능 이미 다 만들어져 있다. 웹 개발을 위한 도구와 기능이 대부분 준비가 되어 있다.
2. 스프링 부트에는 WAS 가 따로 필요가 없다.
스프링만 사용하여 웹 애플리케이션을 개발한다면 톰캣과 같은 WAS가 필요하다.
스프링 부트에는 톰캣 서버가 내장돼있고, 설정도 자동으로 되기 때문에 이용하기 쉽다.
배포까지 되는 jar 파일도 톰캣이 내장되어 실행해 준다..
3. 스프링 부트는 설정이 쉽다.
위에서 설명한 했지만 웹 애플리케이션을 개발한다면 설정하는 게 복잡하고 체력소모가 심하다.
스프링 부트는 스프링의 복잡한 설정을 자동화하고 단순화하여 간결하게 스프링을 이용할 수 있다
'Progamming > Spring' 카테고리의 다른 글
org.apache.catalina.webresources.cache backgroundprocess / 톰캣 캐시 공간 부족 (0) | 2022.10.25 |
---|

스프링(Spring) 개념
Spring 이란 ?
Spring은 Java 기반의 Web Application을 만들 수 있는 Framework입니다.
웹 프레임워크로, 자바로 다양한 애플리케이션을 만들기 위한 프로그래밍 틀입니다.
자바 백엔드 개발자는 웹 어플리케이션을 개발할 때 대부분 스프링을 사용합니다.
그 이유는 JAVA의 활용도가 높아지고 프로젝트 규모가 커짐으로 JAVA에서 주로 사용되는
JSP, mybatis 등 많이 쓰이는 기술들을 더 편리하게 사용하기 위해, 라이브러리와 툴을 제공해 주는
스프링을 사용합니다.
◆ 스프링(Spring)의 주요 특징
1. IoC (Inversion of Control) - 제어의 역전
JAVA에선 객체를 생성하고 직접 조작, 호출하여 사용했습니다. 즉 사용자에게 제어권이 있었음.
Spring의 Ioc의 역할로는 스프링이 만든 객체를 컨테이너에 넣고 필요한 곳에 주입해 줍니다.
스프링에게 제어권을 넘기고 -> 스프링이 만든 객체를 주입 -> 의존성 객체 메서드 호출
프로젝트 규모가 커질수록 객체와 자원 사용이 복잡해지므로 Spring의 IoC가 자동으로 관리를 해주는 겁니다.
IoC가 개발자의 코드를 호출하여 그 코드로 생명주기를 제어하는 것이다.
2. DI (Dependency Injection) - 의존성 주입
객체 간 의존관계를 스프링 컨테이너가 개발자가 정의한 Bean 등록을 바탕으로 자동으로 주입해 주는 기능
외부의 설정파일을 통해 정의되는 방식
Database , JDBC, iBatis, JPA 등 필요할 때 쓰고 필요 없을 때 뺄 수 있는 기능

@Controller, @Repository, @Service 등 어노테이션이 붙은 클래스들은 스프링 실행 시
개발자가 정의한 의존성 정보를 자동으로 bean에 의존성 주입
이를 통해 객체 간 결합도 낮추고 코드 양을 줄일 수 있으며, 다양한 곳에서 사용할 수 있다.
3. AOP (Aspect Object Programming) - 관점 지향 프로그래밍
AOP는 여러 객체에 공통으로 적용할 수 있는 기능을 구분하여 재사용성을 높여주는 프로그래밍 기법이다.
공통적으로 사용하는 기능들을 분리하여 관리할 수 있다.
각 클래스들끼리 중복되는 코드를 사용하면 가독성 및 개발 속도에 좋지 않다. 중복된 기능을 한 곳에 작성 후
필요한 곳에서 호출하여 쓰면 효율성이 좋아집니다.

스프링 부트(Spring Boot) 개념
스프링(Spring)을 더 쉽게 이용하기 위한 도구가 스프링 부트(Spring Boot) 입니다.
스프링 부트(Spring Boot)를 이용하여 매우 간단하게 프로젝트를 설정할 수 있고, 스프링(Spring) 개발을
조금 더 쉽게 만들어줍니다.

스프링 부트는 스프링을 사용하기 위해서는 여러 가지 설정을 해주어야 합니다.
스프링의 pom.xml을 보시면 복잡한 설정 정보를 담고 있습니다.
스프링 부트를 사용하면 복잡한 설정을 간략하게 줄일 수 있습니다.
◆ 스프링(Spring)의 주요 특징
1. 스프링 부트에는 스프링에 여러 기능이 추가되었다.
로그인 기능, 페이징기능 이미 다 만들어져 있다. 웹 개발을 위한 도구와 기능이 대부분 준비가 되어 있다.
2. 스프링 부트에는 WAS 가 따로 필요가 없다.
스프링만 사용하여 웹 애플리케이션을 개발한다면 톰캣과 같은 WAS가 필요하다.
스프링 부트에는 톰캣 서버가 내장돼있고, 설정도 자동으로 되기 때문에 이용하기 쉽다.
배포까지 되는 jar 파일도 톰캣이 내장되어 실행해 준다..
3. 스프링 부트는 설정이 쉽다.
위에서 설명한 했지만 웹 애플리케이션을 개발한다면 설정하는 게 복잡하고 체력소모가 심하다.
스프링 부트는 스프링의 복잡한 설정을 자동화하고 단순화하여 간결하게 스프링을 이용할 수 있다
'Progamming > Spring' 카테고리의 다른 글
org.apache.catalina.webresources.cache backgroundprocess / 톰캣 캐시 공간 부족 (0) | 2022.10.25 |
---|