◎ Framework과 Library
-
Framework
- 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것
- 기본적으로 필요한 구조와 구성을 갖추고 있어 개발자가 핵심적인 기능 구현에 집중할 수 있도록 한다.
- 특징
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.
- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의함
- 프레임워크 만으로 어플리케이션이 동작하는 것은 아님
-
Library
- 단순 활용가능한 도구들의 집합 (소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임)
- 개발자가 짜 놓은 코드내에서 필요한 기능이 있으면 해당 라이브러리를 호출해서 사용
- 프레임워크에서 필요한 최소한의 라이브러리를 지원해줌
- ex) Junit(테스트 케이스 작업), Lombok(어노테이션 이용)
-
Framework와 Library의 차이점
- Framework : 애플리케이션 흐름의 주도권이 Framework에 있음 (제어의 역전)
- Library : 애플리케이션 흐름의 주도권이 개발자에게 있음
-
Framework의 장단점
- 장점
- 가이드를 제공함으로써 프로그램을 체계적으로 관리 가능
- 규약에 맞춰 작성하기 때문에, 유지 보수를 체계적으로 가능
- 기본적인 설계와 라이브러리를 제공하여 개발 속도 향상
- 코드의 재사용성이 높고 확장성이 좋음
- 단점
- 각 프레임워크 별로 학습이 필요
- 자유롭고 유연하게 개발이 불가
- 프로젝트의 용량 증가
- 규약을 벗어나 코드를 작성하는 것이 불가능
◎ Spring Framework
-
Spring Framework
- Java 기반의 웹 애플리케이션을 개발하는데 필요한 Framework
-
Spring을 대체적으로 많이 사용하는 이유
- Enterprise applications 개발 편의성 제공
- 기업용 애플리케이션의 요구사항 해결에 초점을 맞춘 프레임워크
- 기업용 애플리케이션 특징
- 개발 생산성 향상
- 유지 보수 용이
- 신뢰성이 중요
- 서버의 안정성 유지 중요
- 데이터 관리가 중요 / 막대한 양, 여러 사용자 동시 접속
-
추가 내용