Spring

Spring

Z00_HWAN_99 2024. 9. 2. 17:47
728x90
반응형

스프링

  • 스프링 모듈 : 해당 모듈에 필요한 코드를 모아 놓은 JAR 파일
  • 각 모듈의 기능을 이해하고 프로젝트에 필요한 모듈을 적절히 선택해 적용한다.
  • 프레임 워크가 전체 애플리케이션의 처리 흐름을 제어하며, 특정 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메서드를 호출하여 제어가 프레임워크로부터 애플리케이션으로 거꾸로 흐르게 관리한다.

프레임워크란?

  • 사전적인 의미 : 틀, 구조, 뼈대, 골격, 구조, 구성
  • GoF의 정의
    1. 프레임워크는 소프트웨어의 특정한 클래스에 대하여 재사용할 수 있는 설계로 구성된 관련된 클래스들의 집합
    2. 프레임워크는 설계를 추상적인 클래스로 분리하고 그들의 책임과 협동관계를 정의함으로써 아키텍처적인 가이드를 제공한다.
    3. 우리는 프레임워크로부터 추상적인 클래스를 서브 클래싱하여 애플리케이션에 특정한 서브 클래스를 생성함으로써 특정한 애플리케이션에 대하여 프레임워크를 커스터마이징한다.
  • 모듈화 : 인터페이스의 캡슐화를 통해 모듈화를 강화하여 설계와 구현 변경에 따른 영향을 최소화하여 소프트웨어 품질을 향상시킨다.
  • 재사용성 : 인터페이스를 통하여 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여준다.
  • 확장성 제공 : 다형성을 통해 프레임워크의 인터페이스를 확장한다.

스프링 프레임워크

  1. 단순화된 단위 테스팅
    • EJB 컨테이너 외부에서 실행이 어려워 테스트를 위해 컨테이너에 배포해야 하는 것이 번거로워 이를 해결하기 위해 의존성 주입(Dependency Injection, DI) 도입
    • 의존성 주입
      • 사용할 도구를 외부에서 지정해 주는 것.
      • 의존성 주입을 도입하면서, 단위 테스트를 위해 전체 애플리케이션을 배포할 필요가 없게 됨.
      • 단위 테스트 간소화의 이점은 생산성 향상, 빠른 결함 발견, 지속적인 통합 시 자동화된 단위 테스트로 향후 결함 예방이 가능함.
  2. 복잡한 코드의 감소
    • 모든 메서드의 예외 처리를 구현하는 대신, 중앙 집중식 예외 처리를 수행하고 AOP를 사용해 주입할 수 있다.
  3. 아키텍처의 유연성
    • 스프링프레임워크는 모듈 방식임.
    • 스프링 코어 모듈 위에 독립적인 모듈을 올려 완성.
    • 스프링프레임워크는 그 자체로 완벽하진 않다. 서로 다른 부분들 간 모듈화를 통해 결함을 줄이고, 이를 테스트 할 수 있게 중점을 두면서 사용자가 선택한 프레임워와의 통합을 제공.
  4. 변화하는 시대를 선도
    • 어노테이션, 캐싱 API, 배치 어플리케이션 스택, 마이크로 서비스 아키텍처 지원

 

스프링 부트란?

  • 새로운 기술이 아니라, 스프링 프레임워크를 개선한 것.
  • 대표적 개선사항
    • 개발 환경 설정 간소화 : 스프링은 버전에 따라 동작하는 외부라이브러리를 찾아 연동해야 하지만, 스프링 부트는 미리 설정된 스타터 프로젝트로 외부 라이브러리를 최적화해 제공하여 사용자가 직접 연동할 필요가 없다.
    • 웹 애플리케이션 서버를 내장 : 내부에 웹어플리케이션 서버 WAS인 톰캣을 가지고 있어 웹서비스를 jar파일로 간편하게 배포할 수 있어, 개발자가 개발에 더 집중할 수 있도록 지원.

웹 프로젝트의 기본 구조

  • 브라우저(클라이언트 프로그램)
    • 서버에서 전송한 결과를 화면에 보여주고(렌더링)
    • 사용자의 화면조작을 이용해서 서버에 원하는 데이터를 보내고(Request), 받는(Response) 프로그램
  • 웹서버, 웹컨테이너(웹서버 + 웹컨테이너 => Tomcat Web Application Server)
    • 이미지와 같은 정적 데이터를 제공(웹서버)
    • 동적으로 매번 새로운 데이터를 만들어 낼 수 있는 기능(WAS)
    • 관련기술 : Servlet, JSP, 각종 프레임워크와 언어들
  • 데이터베이스(DBMS => Mysql)
    • 영구적으로 데이터를 보관하고 운영하기 위한 프로그램
    • Relational DB = Mysql
    • 관련기술 : SQL, DB 설계, 구현
728x90
반응형

'Spring' 카테고리의 다른 글

간단 용어 정리  (8) 2024.10.08
스프링 들어가기에 앞서...  (0) 2024.09.03