1. 프레임워크란?
소프트웨어나 애플리케이션 개발을 간단하게 해주는 뼈대
자주 쓰일 만한 기능을 모아 놓은 유틸(클래스)들의 모음이다.
즉, 기본적인 설계나 필요한 라이브러리는 알아서 제공해주고,
개발자는 만들고 싶은 기능을 구현하는데 집중하라는 취지에서 만들어진 것!
1.1 프레임워크 장단점
장점
• 효율적
프레임워크가 개발에 필요한 최소한의 기능을 제공하기 때문에 자신이 모든 기능을 작성할 필요가 없고, 애플리케이션 개발에 필요한 시간과 비용을 줄일 수 있다.
• 유지보수
프레임워크를 사용하면 코드가 보다 체계적이여서유지보수에 안정적이다.
단점
• 프레임워크에 있는 코드를 습득하고 이해하는데 시간이 걸린다.
2. 프레임워크 vs 라이브러리
개발자가 구현하고자 하는 기능을 쉽게 제공해줄 수 있다는 점에서
프레임워크는 라이브러리와 비슷한 면이 있다.
• 라이브러리
- 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리된 일련의 코드들의 집합
- 라이브러리는 프로그램 기능 구현에만 도움을 줄 수 있다.
- 개발을 할 때 사용되는 자원의 모임, 즉 필요할 때 자유롭게 사용!
반면에, 프레임워크는 필요한 라이브러리와 기능 구현에 필요한 설계도 틀을 함께 제공해준다.
여기서 설계도 틀은 확장 가능한 기반코드, 재사용 가능한 형태의 협업화된 클래스를 말한다.
일종의 가이드라인? 즉, 기반이 되는 부모 클래스라고 생각하면 됨!
라이브러리는 개발을 하다가 필요한 순간에 직접 추가하면 되지만,
프레임워크는 라이브러리+설계도가 함께 온다.
3. 스프링
자바 개발 환경에서 사용되는 프레임워크
스프링은 개발을 편하게 할 수 있도록 여러가지 기능을 제공한다.
스프링 부트 (Spring Boot)
스프링 애플리케이션을 복잡한 설정 없이 빠르게 작성하는 기능 제공
스프링 프로젝트
• 스프링 MVC (Spring MVC)
웹 애플리케이션을 간단하게 생성하는 기능 제공
• 스프링 데이터 (Spring Data)
데이터 접근에 관한 기능 제공
• 스프링 배치 (Spring Batch)
배치 처리 기능 제공
• 스프링 시큐리티 (Spring Security)
인증/허가 기능 제공
스프링 코어
• 스프링 DI (Spring DI)
- 의존성 주입 (Dependency Injection) 기능 제공
- 프로그램에서 구성 요소의 의존 관계가 소스코드 내부가 아닌
외부의 설정 파일을 통해 정의되는 방식
- 코드간의 재사용을 높이고, 소스코드를 다양한 곳에 사용하며 모듈 간의 결합도를 낮출 수 있다.
• 스프링 AOP (Spring AOP)
- 관점 지향 프로그래밍 (Aspect Oriented Programming) 기능 제공
- 로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리
- 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써
재사용성을 높여주는 프로그래밍 기법
https://www.yes24.com/Product/Goods/112607578
스프링 프레임워크 첫걸음 - YES24
세상에서 가장 친절한 스프링 프레임워크 입문서! 스프링 프레임워크는 전 세계적으로 가장 널리 사용되는 오픈소스 자바 애플리케이션 프레임워크다. 이 책에서는 스프링 프레임워크를 처음
www.yes24.com