728x90
반응형
스프링
- 스프링 모듈 : 해당 모듈에 필요한 코드를 모아 놓은 JAR 파일
- 각 모듈의 기능을 이해하고 프로젝트에 필요한 모듈을 적절히 선택해 적용한다.
- 프레임 워크가 전체 애플리케이션의 처리 흐름을 제어하며, 특정 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메서드를 호출하여 제어가 프레임워크로부터 애플리케이션으로 거꾸로 흐르게 관리한다.
프레임워크란?
- 사전적인 의미 : 틀, 구조, 뼈대, 골격, 구조, 구성
- GoF의 정의
- 프레임워크는 소프트웨어의 특정한 클래스에 대하여 재사용할 수 있는 설계로 구성된 관련된 클래스들의 집합
- 프레임워크는 설계를 추상적인 클래스로 분리하고 그들의 책임과 협동관계를 정의함으로써 아키텍처적인 가이드를 제공한다.
- 우리는 프레임워크로부터 추상적인 클래스를 서브 클래싱하여 애플리케이션에 특정한 서브 클래스를 생성함으로써 특정한 애플리케이션에 대하여 프레임워크를 커스터마이징한다.
- 모듈화 : 인터페이스의 캡슐화를 통해 모듈화를 강화하여 설계와 구현 변경에 따른 영향을 최소화하여 소프트웨어 품질을 향상시킨다.
- 재사용성 : 인터페이스를 통하여 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여준다.
- 확장성 제공 : 다형성을 통해 프레임워크의 인터페이스를 확장한다.
스프링 프레임워크
- 단순화된 단위 테스팅
- EJB 컨테이너 외부에서 실행이 어려워 테스트를 위해 컨테이너에 배포해야 하는 것이 번거로워 이를 해결하기 위해 의존성 주입(Dependency Injection, DI) 도입
- 의존성 주입
- 사용할 도구를 외부에서 지정해 주는 것.
- 의존성 주입을 도입하면서, 단위 테스트를 위해 전체 애플리케이션을 배포할 필요가 없게 됨.
- 단위 테스트 간소화의 이점은 생산성 향상, 빠른 결함 발견, 지속적인 통합 시 자동화된 단위 테스트로 향후 결함 예방이 가능함.
- 복잡한 코드의 감소
- 모든 메서드의 예외 처리를 구현하는 대신, 중앙 집중식 예외 처리를 수행하고 AOP를 사용해 주입할 수 있다.
- 아키텍처의 유연성
- 스프링프레임워크는 모듈 방식임.
- 스프링 코어 모듈 위에 독립적인 모듈을 올려 완성.
- 스프링프레임워크는 그 자체로 완벽하진 않다. 서로 다른 부분들 간 모듈화를 통해 결함을 줄이고, 이를 테스트 할 수 있게 중점을 두면서 사용자가 선택한 프레임워와의 통합을 제공.
- 변화하는 시대를 선도
- 어노테이션, 캐싱 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 |