프레임워크
프레임워크는 소프트웨어 개발을 간편하게 만들기 위한 소프트웨어 개발 환경이다.
프레임(frame) 워크(work)란 단어에서도 알 수 있듯이 일하기 위한 틀을 제공한다. 개발자는 해당 틀에서 일을 해야 한다.
장점
- 개발 프로젝트에 일관된 구조를 제공하여 코드의 일관성과 가독성을 높여주며 협업이 편해진다.
- 기본적으로 필요한 기능과 도구를 제공하여 개발자들이 핵심 비즈니스 로직에 집중할 수 있다.
- 보안 관련 기능을 기본적으로 제공하여, 보안 취약점을 방지하는 데 도움을 준다.
- 통합된 테스트 환경과 도구를 제공하여 테스트를 쉽게 작성하고 실행할 수 있다.
- 인기 있는 프레임워크는 방대한 커뮤티티 지원을 받으며, 다양한 문서를 활용할 수 있다.
단점
- 프레임워크는 복잡한 구조를 가지기 때문에, 처음 익히는 데 시간이 많이 소요된다.
- 프레임워크의 새로운 버전이 기존 코드와 호환되지 않을 수 있다.
- 정해진 규칙과 구조를 따르게 강제하여 자유롭게 변경하기 어려울 수 있다.
라이브러리
라이브러리는 애플리케이션 개발에 필요한 클래스, 함수 등을 모아 놓은 코드의 모음을 의미한다.
마치 도서관에 있는 책처럼 개발자가 소프트웨어를 만들 때 필요에 따라 원하는 기능을 구현하기 위해 가져다 쓸 수 있는 일종의 도구 역할을 수행한다.
장점
- 개발자가 복잡한 코드를 직접 작성하지 않아서 개발 생산성이 높아진다.
- 검증된 라이브러리는 테스트와 커뮤니티 지원을 통해 안전성과 품질이 보장된다.
단점
- 라이브러리가 업데이트 되거나 지원이 중단될 경우 문제가 발생할 수 있다.
- 버전 호환성 문제로 인해 다른 라이브러리나 기존 코드와 충돌이 발생할 수 있다.
- 불필요한 기능을 포함한 라이브러리를 사용하면 비효율적이다.
- 라이브러리 내부 구현을 직접 수정하기 어려워, 특정 요구 사항에 맞게 조정하기 힘들 수 있다.
정리
- 프레임워크
- 애플리케이션 개발을 할 때 전체적인 구조를 잡기 위해 사용하는 것
- 기본적으로 프레임워크 내에서 사용하는 라이브러리들이 존재한다.
- 라이브러리
- 개발을 진행하는 과정에서 필요한 기능을 구현하기 위해 사용하는 것
'용어 모음집' 카테고리의 다른 글
Connection과 Connectionless (0) | 2024.11.26 |
---|---|
Stateful과 Stateless (0) | 2024.11.26 |
Scale Up, Scale Out (0) | 2024.11.26 |
JSON (1) | 2024.11.26 |
프로그래밍 명명규칙(Casing) (0) | 2024.11.26 |