ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 시작 복습!
    엘리스트랙 2023. 12. 31. 13:47
    728x90

     

     

    스프링이란?

    스프링(Spring)은 자바 기반의 오픈 소스 프레임워크로, 엔터프라이즈급 애플리케이션을 개발하기 위한 다양한 기능과 라이브러리를 제공합니다. 스프링은 애플리케이션을 더 쉽게 개발하고 유지보수할 수 있도록 다양한 모듈과 기능을 제공하여 개발 생산성을 향상시키는 데 중점을 두고 있습니다.

     

    스프링의 주요 특징:

    1. 경량 컨테이너:
      • 스프링은 자체적인 경량 컨테이너를 제공합니다. 이 컨테이너는 객체의 라이프사이클을 관리하고, 객체 간의 의존성을 주입(Dependency Injection)하는데 사용됩니다. 이를 통해 객체의 생성과 소멸에 대한 복잡한 작업을 개발자가 직접 처리하지 않아도 되게 합니다.
    2. POJO
      • 다른 기술은 사용하지 않고 순수 Java만을 통해서 생성된 객체라 특정 규약의 변화에 얽매이지 않고 유연하게 변화와 확장에 대처 가능하고 객체지향 설계를 제한 없이 적용 가능하고 코드가 단순해지고 테스트와 디버깅에 용이하다.
    3. 의존성 주입 (Dependency Injection):
      • 스프링은 IoC (Inversion of Control) 컨셉을 기반으로 하는 의존성 주입을 지원합니다. 개발자가 직접 객체의 의존성을 해결하는 것이 아니라, 스프링 컨테이너가 객체 간의 의존성을 주입해주는 방식을 채택하고 있습니다. 이를 통해 유연하고 테스트 가능한 코드를 작성할 수 있습니다.
    4. 모듈화와 관점 지향 프로그래밍 (AOP):
      • 스프링은 모듈화를 통해 각 계층을 분리하고, 관점 지향 프로그래밍을 지원합니다. AOP는 횡단 관심사(cross-cutting concern)를 분리하여 코드의 재사용성을 높이고 유지보수를 용이하게 합니다.
    5. 트랜잭션 관리:
      • 스프링은 선언적인 방식으로 트랜잭션을 관리할 수 있도록 지원합니다. @Transactional 어노테이션을 통해 트랜잭션을 선언하고 롤백 등의 속성을 설정할 수 있습니다.
    6. 데이터 액세스 지원:
      • 스프링은 JDBC, Hibernate, MyBatis 등 다양한 데이터 액세스 기술을 지원하며, 데이터베이스 연동을 쉽게 할 수 있도록 도와줍니다.
    7. MVC 웹 프레임워크:
      • 스프링 MVC는 모델-뷰-컨트롤러 아키텍처를 기반으로 하는 웹 애플리케이션 개발을 위한 프레임워크를 제공합니다. 웹 애플리케이션의 요청과 응답을 처리하는 데 사용됩니다.
    8. 보안 관리:
      • 스프링 시큐리티(Spring Security)를 통해 보안 기능을 쉽게 적용할 수 있습니다. 사용자 인증과 권한 부여를 처리하며, 다양한 보안 기능을 제공합니다.
    9. RESTful 웹 서비스 지원:
      • 스프링은 RESTful 웹 서비스 개발을 위한 기능을 제공하며, @RestController 어노테이션을 통해 간편하게 REST 컨트롤러를 작성할 수 있습니다.
    10. 테스트 지원:
      • 스프링은 단위 테스트, 통합 테스트를 지원하며, 테스트 용이성을 고려하여 설계되었습니다.
    11. 강력한 커뮤니티:
      • 스프링은 활발한 개발자 커뮤니티를 보유하고 있어서 문제 해결 및 새로운 기능 도입에 있어서 빠르게 반응할 수 있습니다.

     

     

    웹 서비스의 동작 방식

    웹서비스는 HTTP요청과 응답의 반복으로 이루어져 있으며 HTTP요청은 사용자가 서버에 어떤 데이터가 필요한지 알리는 역할이고 HTTP응답은 요청에 해당하는 적절한 데이터를 전달하는 역할을 한다.

     

     

     

    728x90

    '엘리스트랙' 카테고리의 다른 글

    스프링 프로젝트 빌드!  (1) 2024.01.08
    스프링 MVC와 REST API!  (0) 2024.01.07
    자바 람다, 스트림 복습!  (1) 2023.12.30
    JS DOM, Event 복습!  (1) 2023.12.27
    SQL 복습!  (0) 2023.12.24
Designed by Tistory.