TIL 68일차

Moon-Tree·2023년 4월 10일
0

◆ 스프링 프레임워크(Spring Framework)

  1. 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 합니다.
  2. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있습니다.
  3. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있습니다.
  4. 스프링은 Plain Old Java Object 방식의 프레임워크입니다.
    • 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍습니다.
  5. 스프링은 제어 반전(IoC : Inversion of Control)을 지원합니다.
    • 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출합니다.
  6. 스프링은 의존성 주입(DI : Dependency Injection)을 지원합니다.
    • 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜줍니다.
  7. 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원합니다.
    • 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있습니다.

◆ 스프링 레거시(Spring Legacy)

  1. 스프링 프레임워크의 초기 버전으로, 엔터프라이즈 급의 애플리케이션 개발을 지원하는 자바 플랫폼입니다.
  2. 전통적으로 XML 구성을 많이 사용하였고, bean 등록과 의존성 주입을 위해 XML 파일을 사용하였습니다.
  3. 스프링의 프로그래밍 모델인 AOP(Aspect Oriented Programming)와 트랜잭션 관리와 같은 기능을 적극적으로 활용하였습니다.
    • Aspect-Oriented Programming(AOP) : 이는 관점 지향 프로그래밍으로, 흩어진 코드를 한 곳으로 모으는 기법입니다. 이를 통해, 보일러플레이트 코드를 줄이고 코드의 가독성을 향상시킬 수 있습니다.
  4. 스프링 MVC 패턴을 이용한 웹 개발에 집중되어 있습니다. 이는 서블릿, JSP, 컨트롤러 등을 활용하여 웹 애플리케이션을 구축하는 방법입니다.
    • Spring MVC : 이는 웹 애플리케이션을 개발하는 데 사용되는 프레임워크입니다. 이를 통해, 개발자는 Model-View-Controller 디자인 패턴을 쉽게 구현할 수 있습니다.
  5. 복잡한 XML 설정, 서블릿 설정 등을 직접 관리해야 하는 구조를 가지고 있습니다.
    • 데이터베이스 연결 설정, 보안 설정, MVC 설정 등을 개발자가 직접 수행해야 합니다. 개발 초기 단계에서 상당한 시간이 소요될 수 있습니다.
  6. 매우 세밀한 설정이 가능하며, 기존의 Java EE 웹 개발 방식에 익숙한 개발자들이 선호할 수 있습니다.

◆ 스프링 부트(Spring Boot)

  1. 스프링 기반의 애플리케이션을 빠르고 쉽게 개발할 수 있도록 도와주는 도구입니다.
  2. 스프링 기반의 애플리케이션 개발을 간단하게 만들고, 일반적으로 발생하는 문제에 대한 기본적인 해결 방법을 제공하는 것입니다.
  3. Starters : 이는 자주 사용하는 스프링 관련 의존성 그룹을 포함하고 있는 라이브러리입니다.
    • 개발자는 필요한 의존성을 쉽게 추가할 수 있습니다.
  4. Auto-Configuration : 이는 애플리케이션에 필요한 기본 설정을 자동으로 해주는 기능입니다.
    • 개발자는 복잡한 설정을 신경 쓸 필요 없이 애플리케이션 개발에 집중할 수 있습니다.
  5. Embedded Server : 이는 애플리케이션을 실행하는데 필요한 서버를 내장하고 있습니다.
    • 개발자는 서버 설정 없이도 애플리케이션을 쉽게 실행할 수 있습니다.
  6. 스프링 부트는 많은 개발자가 스프링 레거시의 복잡한 설정에 대한 부담을 덜고, 스프링 기반의 애플리케이션 개발에 보다 집중할 수 있도록 도와줍니다.
    • 이를 통해 빠르게 프로토타이핑하거나 개발 초기 단계에서 애플리케이션을 빠르게 배포할 수 있습니다.
profile
Backend Developer

0개의 댓글