PHP 개발할 때 유용한 Composer 라는 툴이 있다.
한국에서는 중대형 프로젝트에 PHP를 사용하지 않지만 해외에서는 많이 사용하고, 국내도 중소기업에서 간혹 사용하는 것 같다.
Composer가 무엇인지, 어떻게 사용하는지 알아본다.
- Composer PHP 패키지 관리
- PHP 의존성 관리 도구 Composer 사용법
Composer: PHP의 의존성 관리 도구
1. Composer란?
Composer는 PHP의 패키지 및 라이브러리를 관리하는 의존성 관리 도구(Dependency Manager)다.
프로젝트에서 필요한 외부 라이브러리를 쉽게 설치하고 자동으로 버전을 관리할 수 있도록 도와준다.
2. Composer의 주요 기능
- 패키지 관리: 프로젝트에서 사용할 외부 라이브러리 설치 및 제거
- 자동 의존성 해결: 설치된 라이브러리의 종속 패키지까지 자동 관리
- 버전 관리: 특정 버전의 패키지 고정 및 업데이트 가능
- 전역(Global) 및 로컬(Local) 패키지 관리: 프로젝트별 또는 시스템 전체에서 Composer 사용 가능
3. Composer 설치 방법
① Composer 다운로드 및 설치 (Windows)
- 공식 Composer 다운로드 페이지에서 Windows Installer 다운로드
- 설치 실행 후 PHP 경로 설정 (이미 PHP가 설치되어 있어야 함)
- cmd 또는 PowerShell에서 composer 명령어 실행하여 정상적으로 설치 확인
② Composer 설치 (Linux & macOS)
터미널에서 다음 명령어 실행:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
설치 확인:
composer --version
4. Composer 기본 사용법
① 프로젝트에 Composer 초기화 (composer.json 생성)
composer init
- 프로젝트 정보를 입력하면 composer.json 파일이 생성됨
- 이 파일은 프로젝트에서 사용할 패키지 정보를 저장
② 패키지 설치 (require)
composer require vendor/package-name
예제: Laravel 설치
composer require laravel/laravel
- 설치된 패키지는 vendor/ 폴더에 저장됨
- composer.json과 composer.lock 파일이 업데이트됨
③ 패키지 업데이트
composer update
- 모든 패키지를 최신 버전으로 업데이트
④ 특정 패키지 업데이트
composer update vendor/package-name
⑤ 패키지 제거 (remove)
composer remove vendor/package-name
5. Autoload 기능
Composer는 자동 로딩을 제공하여 require 없이 클래스를 쉽게 사용할 수 있다.
autoload.php를 로드하여 패키지 클래스 사용 가능:
require 'vendor/autoload.php';
이후 설치된 패키지의 클래스 호출 가능:
use Carbon\Carbon;
echo Carbon::now(); // 현재 날짜 및 시간 출력
6. Composer를 사용하는 PHP 프레임워크 및 라이브러리 예시
- Laravel (PHP 프레임워크)
- Symfony (PHP 프레임워크)
- PHPUnit (테스트 프레임워크)
- Monolog (로깅 라이브러리)
- Guzzle (HTTP 클라이언트)
7. Composer의 장점
✅ 의존성 자동 관리 → 패키지 간의 의존성을 자동으로 해결
✅ 버전 관리 → 최신 버전 유지 및 특정 버전 고정 가능
✅ 프로젝트 격리 가능 → 글로벌 환경과 충돌 없이 프로젝트별 독립적 패키지 관리
✅ PSR-4 자동 로딩 지원 → 클래스 자동 로딩으로 코드 간결화
8. 결론
Composer는 PHP 개발에서 필수적인 패키지 및 의존성 관리 도구,
PHP 프로젝트를 효율적으로 관리하려면 Composer를 활용하는 것이 필수적이며, Laravel, Symfony 등 최신 PHP 프레임워크에서도 기본적으로 사용된다.
'기술' 카테고리의 다른 글
CSS 가상 선택자 정리, 가상 클래스, 가상 요소 (1) | 2025.03.14 |
---|---|
CMD 커맨드창, 파워쉘, 터미널 차이에 대해 알아보자 (0) | 2025.03.09 |
SCSS vs SASS (0) | 2025.03.08 |
Styled Components 리액트 컴포넌트 스타일 (1) | 2025.03.08 |
GSAP 웹 고성능 애니메이션 JS 라이브러리 (0) | 2025.03.07 |
댓글