[스프링 맛보기] 스프링? 스프링부트? 차이가 뭘까

J·2022년 11월 24일
0
post-thumbnail

Spring?

스프링 프레임워크(영어: Spring Framework)는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. 특히, 국내는 '자바 공화국' 이라 불릴 정도로 대다수의 기업들이 Java언어 및 Spring 프레임 워크를 사용한다.

  • 참고 : 언어별 웹 개발 프레임 워크
    Python - Django
    Javascript - Node.js
    Java - Spring

Spring 프레임워크 특징

1. 제어반전(IoC: Inversion of Control) 기반

  • 컨트롤의 제어권이 사용자가 아닌 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.

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

  • 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결한다.

3. 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming) 기반

  • 트랜잭션, 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리 가능하다.

Spring Boot?

스프링만을 사용하여 웹 애플리케이션을 만들어 보았다면 상당히 복잡한 설정들로 인해 많은 어려움을 겪었을 것이다. 스프링부트는 스프링의 복잡한 설정을 자동화하고 단순화 하여 누구나 스프링을 쉽게 사용할 수 있게 만들었다.

Spring Boot 특징

  • Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
  • 단독으로 실행할 수 있는 스프링 어플리케이션을 쉽게 생성
  • WAS에 배포하지 않고도 실행할 수 있는 JAR파일로 Web Application을 개발 가능
  • SQL 인젝션, XSS(cross-site scripting), CSRF(cross-site request forgery), 클릭재킹(clickjacking)과 같은 보안 공격을 기본으로 막아 줌
profile
생각 끄적이는 공간

0개의 댓글