플러그인이란, 소프트웨어의 기능을 확장하거나 새로운 기능을 추가할 수 있도록 도와주는 추가적인 소프트웨어 조각입니다.
예를 들어, 웹텍스트 에디터 프로그램에 파일 업로드 플러그인을 추가하여 파일을 올릴 수 있게 할 수 있습니다.
혹은 소셜 미디어 공유 버튼을 추가해주는 플러그인이 있을 수도 있습니다.
이처럼 플러그인은 기존 프로그램에 추가 또는 확장 기능을 제공합니다.
이런 플러그인을 잘 활용하면 복잡한 기능의 프로그램을 만들때 단지 플러그인을 추가함으로 간단히 코드를 완성할 수 있습니다.
그럼 작업 시간을 단축시키는 라이브러리와 플러그인은 무슨 차이가 있지하는 의문이 생깁니다.
그럼 플러그인과 라이브러리의 주요 특정을 비교해 보겠습니다.
1. 플러그인
A. 확장성: 플러그인은 어떤 소프트웨어의 기능을 확장하기 위해 사용됩니다.
B. 독립성: 프로그래머가 선택적으로 설치 및 활용할 수 있기에 독립성을 가지고 있습니다.
C. 동적 로딩: 플러그인은 소프트웨어가 실행 중일 때 동적으로 로딩될 수 있습니다. 따라서 빠른 초기 로딩 속도를 보일 수 있습니다.
2. 라이브러리
A. 재사용성: 라이브러리는 코드의 재사용을 목적으로 만들어진 코드 집합입니다.
B. 정적 로딩: 라이브러리는 많은 경우 소프트웨어가 컴파일될 때 함께 컴파일되어, 한 번에 소프트웨어에 포함됩니다
그럼 대표적인 플러그인에는 무엇이 있을까요?
1. 자바스크립트 언어 플러그인
A. Babel: 최신 JavaScript 문법을 이전 버전과 호환되도록 변환해주는 플러그인
B. Webpack: 자바스크립트 애플리케이션을 번들링하는데 사용되는 플러그인들을 호스팅하는 툴
C. Lodash: 자바스크립트 유틸리티 라이브러리로, 배열, 숫자, 객체, 문자열 등을 조작하는데 유용한 함수들을 제공
D. ESLint: 자바스크립트 코드의 문제점을 찾고 고치는 데 도움을 주는 정적 분석 툴
E. jQuery: DOM 조작, 이벤트 핸들링 등을 쉽게 해주는 라이브러리
2. 파이썬 언어 플러그인
A. Flake8: 파이썬 코드의 스타일 가이드를 준수하는지 검사해주는 플러그인
B. Black: 파이썬 코드를 자동으로 형식화해주는 코드 포매터
C. Pytest: 파이썬에서 단위 테스트를 작성하고 실행하는 데 사용되는 플러그인
D. Django REST framework: Django 애플리케이션에서 RESTful API를 쉽게 구축할 수 있도록 도와주는 플러그인
E. SQLAlchemy: 파이썬에서 SQL 데이터베이스를 쉽게 조작할 수 있게 도와주는 ORM 라이브러리
3. 자바 언어 플러그인
A. Maven: 자바 프로젝트의 빌드 및 관리를 돕는 도구로 사용되는 플러그인들을 호스팅
B. Lombok: 자바 코드를 더 간결하게 작성할 수 있도록 도와주는 어노테이션 라이브러리
C. Spring Boot DevTools: 스프링 부트 애플리케이션 개발을 더 편리하게 만드는 플러그인
D. Hibernate Validator: 객체 유효성 검사를 지원하는 플러그인
E. Jackson: JSON 데이터를 자바 객체로 변환하거나 자바 객체를 JSON으로 변환하는데 사용되는 라이브러리