728x90
프레임워크란
- 프레임워크란 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조이며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다
- 프로그램의 기초를 구축할 수 있는 코드의 집합이다
- 프레임워크의 예시
- Java의 Spring
- Python의 Django
- JS의 Node.js
프레임워크의 장점
- 빠른 구현에 있어 효율적이다
- 아무것도 없는 백지상태에서 코드를 일일이 짜는 것보다, 시간과 비용이 훨씬 절약되며 생산성이 좋아진다
- 퀄리티 향상(완성도)
- 버그 발생 가능성을 처리해줌으로써, 반복작업에 있어 개발자가 실수하기 쉬운 부분을 커버해준다
- 또한 많은 개발자가 사용하며 수정하다 보니 이미 검증된 코드라고 볼 수 있다
- 유지보수에 효과적
- 프레임워크를 쓰지않고 일일이 코드를 짜놓은 경우, 회사 입장에서 담당자가 바뀌어버리면 곤란하다. 그러나 프레임워크를 사용하면 코드가 보다 체계적이어서 담당자가 바뀌더라도 위험부담을 줄일 수 있고, 유지보수에 안정적이다프레임워크의 단점
- 학습 시간이 길어질 수 있다
- 코드를 본인이 짠게 아니기 때문에, 프레임워크에 있는 코드를 습득하고 이해하는데 오랜 시간이 걸린다
- 제약 사항
- 프레임워크 제작자가 설계한 구조를 어느정도 유지한 채 코드에 살을 붙여나가야 한다. 그래서 사용하는 개발자는 자유롭고 유연하게 개발하는 데 한계가 있다
그럼에도 프레임워크의 사용 이유?
결국 효율성 때문이다.
당연하게 처음부터 혼자 다 만드는것 보단 남이 만들어 놓은 것을 사용할 수 있다면, 그것을 사용하는 것이 보다 빠르고 좋은 성능을 낼 수 있기 때문이다
또한 회사 입장에서는 품질에 개인이 미치는 영향을 최소화하여 일정 품질을 보장할 수 있다!
💡프레임워크 / 라이브러리의 차이?
라이브러리 : 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임. 즉 특정 기능을 모아둔 코드,함수들의 집합이며 코드 작성시 활용 가능한 도구를 의미한다
쉽게 말해, 현실세계에서의 라이브러리(도서관)란 필요할 때마다 꺼내볼 수 있는 책(지식)들이 모여있는 곳이다.
프로그래밍에서의 라이브러리란 필요한 기능들이 모여있는 코드의 묶음이라고 생각할 수 있다.
- 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어한다
- 단지 동작하는 중에 필요한 기능이 있을때 능동적으로 라이브러리를 사용할 뿐이다
- 반면 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다
- 프레임워크에는 분명한 제어의 역전(IoC) 개념이 적용되어 있어야 한다!
- 애플리케이션 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작해야 한다
- 프레임워크에는 분명한 제어의 역전(IoC) 개념이 적용되어 있어야 한다!
'Spring' 카테고리의 다른 글
서블릿과 서블릿 컨테이너 (0) | 2023.03.07 |
---|---|
웹서버와 웹 애플리케이션 서버(WAS) (0) | 2023.03.07 |
IoC와 컨테이너 (0) | 2023.03.07 |
스프링 의존성 주입(Dependency Injection, DI) (0) | 2023.02.25 |
스프링 프레임워크(Spring Framework) (0) | 2023.02.24 |