Ubuntu에 Composer를 설치하는 방법: 간편한 설치 안내서
소프트웨어 개발 과정에서, 프로젝트의 규모나 복잡성에 관계없이 외부 라이브러리, 모듈 또는 컴포넌트 의존성은 필수적입니다. 이러한 외부 자원을 '종속성'이라고 지칭하며, 이는 소프트웨어가 정상적으로 작동하기 위한 필수 요소입니다.
모든 프로젝트에서 종속성을 효율적으로 관리하는 것은 매우 중요합니다. 다행히도, 종속성 관리를 자동화하고 개발자가 더욱 편리하게 사용할 수 있도록 설계된 다양한 도구들이 존재합니다. 이러한 도구는 개발자가 사용하는 언어 및 생태계에 따라 다릅니다.
만약 PHP를 사용하여 프로젝트를 개발하고 있다면, 종속성 관리를 위한 도구로 'Composer'를 선택하는 것이 가장 효과적인 방법입니다.
Composer란 무엇인가?
Composer는 PHP의 종속성 관리를 위해 특별히 개발된 널리 사용되는 도구입니다. Node.js의 npm이나 Ruby의 Bundler에서 영감을 받아 만들어진 Composer를 사용하면 PHP 프로젝트에서 필요한 외부 라이브러리를 정의하고 관리할 수 있습니다.

Composer는 프로젝트에 필요한 모든 종속성을 설치하고, 최신 상태로 유지하는 역할을 합니다.
주의해야 할 점은 Composer는 Apt나 Yum과 같은 패키지 관리자와는 다르다는 것입니다. Composer는 라이브러리를 프로젝트별로 관리하며, 컴퓨터 전체에 설치하는 것이 아니라 프로젝트 디렉토리 내에 로컬로 설치합니다.
또한, Composer는 프로젝트에 필요한 패키지의 정확한 버전 정보를 파악하고 설치해줍니다. 프로젝트의 모든 종속성을 한 번에 업데이트할 수 있는 기능을 제공하기도 합니다.
Composer는 PHP를 사용하는 프로젝트에서 필수적인 도구입니다. Composer는 효율적인 종속성 관리를 가능하게 하며, Packagist라는 저장소와 연동되어 다양한 PHP 패키지와 라이브러리를 제공합니다.
Composer와 같은 도구를 통한 효과적인 종속성 관리는 모듈화된 소프트웨어 개발, 원활한 버전 제어, 팀 간 협업을 가능하게 합니다. 또한, 소프트웨어 호환성 문제를 예방하고 프로젝트 유지보수를 용이하게 합니다.
이제 Ubuntu에 Composer를 설치하는 방법에 대해 자세히 알아보겠습니다. 먼저, 설치하기 위한 선행 조건들을 확인해 보겠습니다.
Ubuntu에 Composer를 설치하기 위한 사전 조건
Ubuntu에 Composer를 설치하려면 다음 사항을 확인해야 합니다.
1. 시스템 터미널에 접근하여 루트 권한으로 명령을 실행할 수 있어야 합니다.
2. PHP 버전 7.2.5 이상이 컴퓨터에 설치되어 있어야 합니다. 터미널에서 다음 명령을 실행하여 PHP가 설치되어 있는지, 그리고 버전을 확인할 수 있습니다.
php -version
PHP가 설치되어 있다면 다음과 같은 출력 결과가 나타납니다.

만약 PHP가 설치되어 있지 않다면, 다음 명령을 사용하여 설치하십시오.
sudo apt install php
3. 버전 관리 시스템이 필요합니다. Git은 훌륭한 선택입니다. 다음 명령으로 Git이 설치되어 있는지 확인합니다.
git --version
Git이 설치되어 있다면, 다음과 같은 버전 정보가 표시됩니다.

Git이 설치되어 있지 않다면, 다음 명령을 실행하여 설치하십시오.
sudo apt install git
4. 파일 압축 해제를 위한 아카이브 관리자가 시스템에 설치되어 있어야 합니다. tar 명령으로 충분합니다. 다음을 실행하여 tar가 설치되어 있는지 확인하십시오.
tar --version

tar가 없다면 다음 명령으로 설치할 수 있습니다.
sudo apt-get install tar
위의 사전 조건이 충족되었다면, 이제 Composer를 설치할 준비가 되었습니다.
Ubuntu에 Composer 설치 방법
Composer는 컴퓨터 전체에서 사용 가능하도록 전역으로 설치하거나 특정 PHP 환경에서만 사용할 수 있도록 로컬로 설치할 수 있습니다. 전역 설치를 통해 컴퓨터의 어느 디렉토리에서든 Composer를 호출할 수 있습니다.
Composer를 전역적으로 설치하는 것이 일반적이며, 이 가이드에서도 전역 설치를 진행합니다.
터미널을 통해 Ubuntu에 Composer를 설치하려면 Composer의 다운로드 페이지에서 제공하는 스크립트를 실행해야 합니다.
Ubuntu에 Composer를 전역으로 설치하려면 다음 단계를 따르십시오.
1. 터미널을 열고 다음 명령을 실행하여 Composer 설치 프로그램을 현재 디렉토리에 다운로드합니다.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
2. 다음 명령을 실행하여 설치 프로그램의 SHA-384 해시값을 확인합니다.
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
설치 프로그램의 SHA-384 해시값은 설치 프로그램의 무결성을 확인하는 암호화된 값입니다. 이를 통해 다운로드한 설치 파일이 변조되거나 손상되지 않았는지 확인할 수 있습니다.
위의 명령을 실행하면 'Installer verified'라는 결과가 출력됩니다. 설치 프로그램의 무결성이 확인되면 다음 단계로 진행합니다.

3. 다음 명령을 실행하여 설치 프로그램을 실행합니다.
php composer-setup.php
Composer가 성공적으로 설치되었다는 메시지가 표시됩니다.

Composer 실행 파일인 'composer.phar'가 설치된 디렉토리에 생성되었는지 확인합니다.
4. Composer가 성공적으로 설치되었으므로, 더 이상 필요하지 않은 설치 프로그램을 삭제합니다.
php -r "unlink('composer-setup.php');"
5. Composer를 전역에서 사용할 수 있도록 'composer.phar' 파일을 PATH 디렉토리로 이동합니다. 다음 명령을 실행하고, 비밀번호를 입력합니다.
sudo mv composer.phar /usr/local/bin/composer
6. Composer가 성공적으로 설치되었는지 확인하려면 다음 명령을 실행합니다.
composer
Composer가 성공적으로 설치되면 다음과 같은 결과가 표시됩니다.

Composer 사용법
Composer가 설치되었다면, 다음 단계는 Composer를 사용하여 종속성을 관리하는 것입니다. 앞에서 언급했듯이 Composer는 Packagist 저장소를 통해 다양한 패키지를 제공합니다.
Composer 사용법을 알아보기 위해 http-message 패키지를 설치해보겠습니다. 이 패키지는 HTTP 메시지를 설명하는 인터페이스입니다.

Composer를 사용하여 'http-message'를 설치하려면 다음 단계를 따릅니다.
1. 'ComposerDemo'라는 새 폴더를 만들고, 터미널에서 다음 명령을 실행하여 폴더 안으로 이동합니다.
mkdir composerDemo
cd composerDemo
2. 다음 명령을 사용하여 '.gitignore' 파일을 생성합니다.
touch .gitignore
이 파일을 사용하면 Git이 추적하지 않아야 할 파일을 지정할 수 있습니다.
3. 다음 명령을 사용하여 프로젝트의 'composer.json' 파일을 생성합니다.
composer init
'composer.json' 파일은 Composer에서 사용되는 핵심 설정 파일입니다. 이 파일에는 프로젝트에 대한 메타데이터와 종속성 정보가 포함됩니다.
위 명령을 실행하면 다음과 같은 결과가 나타납니다.

이 가이드에서는 'composer.json' 파일을 생성하는 과정을 안내합니다. 첫 번째 프롬프트에서 프로젝트 이름을 입력하거나 Enter 키를 눌러 기본값을 사용할 수 있습니다.
4. 다음 프롬프트에서 프로젝트에 대한 간단한 설명을 입력하고 Enter 키를 누릅니다. 다음 설명을 붙여넣고 Enter 키를 누를 수 있습니다.
A demonstration of how to use PHP Composer
5. 다음 프롬프트에서 저자를 묻습니다. 기본값을 사용하려면 Enter 키를 누릅니다.
6. 다음으로 최소 안정성을 지정하라는 메시지가 표시됩니다. Enter 키를 눌러 다음 프롬프트로 넘어가 공백으로 둡니다.
7. 다음 프롬프트에서는 패키지 유형을 지정해야 합니다. 'project'를 입력하고 Enter 키를 누릅니다.

8. 라이선스를 묻는 메시지에서는 Enter 키를 눌러 공백으로 두고 다음으로 이동합니다.
9. 다음으로 종속성을 지정할지 묻습니다. Enter를 눌러 Yes를 선택하면 패키지를 검색하는 프롬프트가 나타납니다.
10. 패키지 검색 프롬프트에 'http-message'를 입력하고 Enter 키를 누릅니다. 그러면 검색 결과가 표시됩니다.

여기서 우리가 필요한 패키지는 'psr/http-message'입니다. 이 패키지를 선택하려면 관련된 번호를 입력하고 Enter 키를 누릅니다. 따라서 0(영)을 입력하고 Enter를 누릅니다.
11. 다음 프롬프트는 필요한 버전 제약 조건을 입력하거나 최신 버전을 사용하려면 비워두라는 메시지입니다.
패키지의 최신 버전을 확인하려면 Packagist의 해당 페이지로 이동합니다. 현재 최신 버전은 2.0입니다.

Composer는 패키지를 자동으로 업데이트하지만, 현재 프로젝트와 호환되지 않는 버전으로 업데이트되면 문제가 발생할 수 있습니다. 이를 방지하기 위해 다음을 입력하여 특정 버전으로 제한합니다.
^2.0
이는 Composer에게 2.0 이상, 이전 버전과 호환되는 버전으로 설치하도록 지시합니다.
12. 다른 패키지를 검색하라는 메시지가 표시되면, Enter 키를 눌러 다음 프롬프트로 이동합니다.
13. 개발 종속성을 정의하라는 메시지도 Enter 키를 눌러 건너뜁니다.
14. PSR-4 자동 로드 매핑을 추가하라는 메시지도 Enter 키를 눌러 건너뜁니다.
15. 이제 생성된 'composer.json' 파일의 미리보기가 표시됩니다.

Enter 키를 눌러 생성을 완료합니다.
16. 다음 프롬프트는 지정한 종속성을 설치할지 묻습니다. Enter 키를 눌러 설치를 시작합니다.

17. 코드 편집기에서 생성된 프로젝트를 열려면 터미널에서 다음 명령을 입력합니다.
code .
결과는 다음과 같습니다.

'composer.json' 파일이 생성되었으며, 종속성이 'require' 키 아래에 지정되어 있습니다. 설치된 종속성은 'vendor'라는 디렉토리에 저장됩니다.
18. 모든 종속성을 포함하는 'vendor' 디렉토리는 너무 커질 수 있으므로 '.gitignore' 파일을 열고 다음 줄을 추가하여 Git 추적에서 제외합니다.
/vendor/
이는 매우 큰 디렉토리이며, 'composer.json' 파일에서 자동으로 설치될 수 있으므로 추적하지 않는 것이 좋습니다.
19. 'composer.json' 파일을 생성한 후에는 'require' 섹션을 편집하여 새로운 종속성을 쉽게 추가할 수 있습니다. 예를 들어, 'log'라는 패키지를 추가하려면 다음과 같이 'require' 섹션에 추가합니다.
"require": {
"psr/http-message": "^2.0",
"psr/log": "^3.0.0"
},
20. 프로젝트에 새 종속성을 설치하려면 터미널에서 다음 명령을 실행합니다.
composer update

방금 'composer.json' 파일에 추가한 패키지가 설치됩니다.
이제 PHP 프로젝트 개발을 시작하고 Composer를 사용하여 프로젝트의 종속성을 관리할 준비가 되었습니다.
더 나은 패키지 관리를 위해 Composer 최적화하는 방법
Composer를 더욱 효율적으로 사용하려면 종속성에 대한 정확한 버전 제약 조건을 지정해야 합니다. 예를 들어, 앞에서 사용한 '^2.0'과 같은 방법입니다.
'*'와 같이 모든 버전을 설치할 수 있도록 설정하는 것은 좋지 않습니다. 이로 인해 호환성 문제와 불안정성이 발생할 수 있습니다. 정확한 버전을 지정하거나 ^ 기호를 사용한 제한적인 범위를 설정하는 것이 좋습니다.
또한, 'composer.json' 파일에 불필요한 사용자 정의 스크립트를 과도하게 추가하지 마십시오. 필수적인 스크립트만 추가하는 것이 좋습니다. 너무 많은 스크립트는 종속성 관리 과정에 부담을 줄 수 있습니다.
Composer의 작동 속도를 높이려면 PHP cURL 확장 프로그램을 활성화하고, 병렬 패키지 설치를 지원하는 'hirak/prestissimo'와 같은 Composer 플러그인을 사용해 보세요.
또한, 성능 최적화를 위해 Composer 캐시를 정리하여 오래되거나 사용하지 않는 패키지를 제거하는 것이 좋습니다. Composer가 패키지를 설치하는 'vendor' 디렉토리는 추적하거나 커밋하지 마십시오. 이를 통해 프로젝트 저장소 복제 및 업데이트 속도를 향상시킬 수 있습니다.
Composer 제거 방법
Ubuntu에서 Composer를 더 이상 사용하지 않으려면 다음 명령을 실행하여 제거할 수 있습니다.
sudo rm -rf /usr/local/bin/composer
다음 명령을 실행하여 Composer가 성공적으로 제거되었는지 확인할 수 있습니다.
composer
Composer가 성공적으로 제거되었다면 다음과 같은 출력이 나타날 것입니다.

결론
종속성 관리는 프로젝트 개발에서 매우 중요한 과정입니다. 효율적인 종속성 관리는 프로젝트의 호환성 문제를 방지하고, 유지보수성이 뛰어난 프로젝트를 만들 수 있도록 도와줍니다.
또한, 모듈화된 소프트웨어 개발을 가능하게 하고, 개발팀 간의 협업을 향상시킵니다. PHP로 프로젝트를 개발하고 있다면 Composer를 효과적으로 활용하여 프로젝트 종속성을 편리하게 관리하는 것을 고려해 보세요.
다음으로 Ubuntu PPA가 무엇이며 어떻게 설치하는지 알아보실 수 있습니다.