반응형
IT 개발 업무 쪽으로 공부하다보면 어디서 많이 들어보던말이 있을 것이다.
오늘은 라이브러리 와 프레임워크 에 대해서 알아보고자 포스팅 할 예정이다.
필자는 이해하기 쉽게 라이브러리와 프레임워크를 이렇게 표현하였다.

개발 업무쪽으로 위 두 개념을 적용시켜서 정의 내려보자면,
📕 라이브러리 (Library)
이미 다른 개발자가 개발한 코드를 그대로 가져와서 사용하는것이 라이브러리 라고 할수 있다.
위의 책으로 보자면, 외부에서 책을 가져와 책장에 꽂아 넣는 형식의 구조로 표현된다.
ex) 파이썬의 numpy, HTML/CSS 도움을주는 BootStrap 사이트, Swiper사이트 이외에도 어떻게보면 이미 누군가 만든 파일들도 가져와서 쓰는 개념이기 때문에 라이브러리 라고 볼수 있다.
- 장점
- 개발자가 복잡한 코드를 직접 작성하지 않아서 개발 생산성이 높아진다.
- 검증된 라이브러리는 테스트와 커뮤니티 지원을 통해 안정성과 품질이 보장된다.
- 단점
- 라이브러리가 업데이트 되거나 지원이 중단될 경우 문제가 발생할 수 있다.
- 버전 호환성 문제로 인해 다른 라이브러 리나 기존 코드와 충돌이 발생할 수 있습니다.
- 생각보다 빈번하게 발생하는 문제
- 불필요한 기능을 포함한 라이브러리를 사용하면 비효율적이다.
- 라이브러리의 내부 구현을 직접 수정하기 어려워, 특정 요구 사항에 맞게 조정하기 힘들 수 있다.
📦 프레임워크 (Framework)
이미 뼈대가 만들어져 있는 구조( 규칙과 흐름이 정해져 있음) 에서 개발자가 해당부분만 작성만 하면 프로그램이 돌아가는 구조를 프레임워크 라고 한다.
위의 책장으로 보자면 책장에 뼈대가 만들어져 있지만, 그 채워나가야하는 부분을 사용자가 채워나가야 하는 구조다.
EX) Java기반으로 만들어진 Spring 프레임워크 툴 (Springboot), Python기반으로 만들어진 Django 프레임워크
- 장점
- 개발 프로젝트에 일관된 구조를 제공하여 코드의 일관성과 가독성을 높여주며 팀 협업이 편해진다.
- 기본적으로 필요한 기능과 도구를 제공하여 개발자들이 핵심 비즈니스 로직에 집중할 수 있다.
- 보안 관련 기능을 기본적으로 제공하여, 보안 취약점을 방지하는 데 도움을 준다.
- 통합된 테스트 환경과 도구를 제공하여 테스트를 쉽게 작성하고 실행할 수 있다.
- 인기 있는 프레임워크는 방대한 커뮤니티 지원을 받으며, 다양한 문서를 활용할 수 있다.
- 단점
- 프레임워크는 굉장히 복잡한 구조를 가지기 때문에, 처음 익히는 데 시간이 많이 소요된다.
- 프레임워크의 새로운 버전이 기존 코드와 호환되지 않을 수 있다.
- 정해진 규칙과 구조를 따르게 강제하여 자유롭게 변경하기 어려울 수 있다.
프레임워크와 라이브러리를 다른걸로 표현하자면 각각 집과 가구로도 표현할수 있다.
반응형