세상의 모든 지식

[PHP] 의존성 관리 도구 Composer 설치하기 본문

Web/PHP & Laravel

[PHP] 의존성 관리 도구 Composer 설치하기

JuniorEinstein 2018. 3. 3. 18:14
728x90

도입


Composer는 'PHP 프로젝트들의 패키지를 관리할 수 있는 패키지 매니저'라고 저는 생각해왔습니다만, 이번 포스팅을 위해 자료를 찾아보던 중 'Composer는 패키지 매니저가 아니다'라는 사실을 알게 되었습니다. PHP로 프로젝트를 진행할 때 다양한 패키지들을 설치하고 사용할 수 있도록 하는 점에서는 pip, apt, npm등의 다른 패키지 매니저와 닮았지만, PHP의 언어의 특성을 고려해 만들어진 '의존성 관리 도구'라고 합니다.


composer? pip? apt? npm? 알지 못하는 용어들이 많이 나왔으니 일단 용어들에 대해서 간단히 설명해 보도록 하겠습니다!


패키지 매너지란?

말 그래도 패키지들을 관리할 수 있게 해주는 프로그램입니다. 어플리케이션을 개발할 때에는 우리가 직접 다 짜는 것 외에도 다양한 패키지들이 필요합니다. 우리는 필요한 패키지들을 패키지 매니저를 통해서 다운로드 받고, 업데이트하고, 삭제할 수 있습니다.


pip는 파이썬으로 개발할 때 패키지들을, apt는 리눅스 우분투에 패키지들을, npm은 Node.js 개발할 때 패키지들을 관리해 줍니다. 이 외에도 정말 많은 패키지 매니저들이 있습니다.


PHP는 패키지 매니저가 없는 언어였습니다. 현대의 프로그래밍 언어에 맞춰서 변화를 거듭하는 과정에서 composer가 생겨 났습니다. 그렇게 우리는 composer를 이용해서 패키지들을 설치, 업데이트, 삭제할 수 있게 되었습니다.


그런데 도입부에서 언급했듯이, composer는 정확하게 말하면 패키지 매니저가 아닙니다. 그러면 composer는 도대체 패키지 매니저랑 어떤 차이가 있는 걸까요? 그건 바로 '프로젝트 단위의 패키지 관리'입니다.


프로젝트 단위로 패키지를 관리한다? 그게 무슨 뜻일까요? 그에 대한 해답은 루트 권한으로 composer를 실행시켜보면 알 수 있습니다.



위의 사진에서 확인할 수 있듯이, composer를 루트 권한으로 실행하면, composer를 루트 권한으로 실행시키지 말라는 말이 제일 먼저 나옵니다.


기본적으로 composer는 절대 전역(global) 단위로 패키지를 설치할 수 없습니다. npm이나 다른 패키지 매니저들은 -g 옵션을 통해서 컴퓨터의 사용자 모두가 사용 가능하게 패키지를 설치할 수 있지만, composer는 오직 그 프로젝트에서만 사용 가능하게 패키지를 설치합니다. 그러므로 우리는 composer를 패키지 매니저가 아니라 '의존성 관리 도구'라고 부릅니다.


정확하게 말하면 PHP는 패키지 매니저를 사용하기 위한 언어로 적합하지 않았던 겁니다. 그래도 패키지들을 관리하기 위한 도구가 필요했기 때문에 composer가 생겨났고, PHP 개발에 문제점들을 많이 해결했습니다.


Composer가 해결한 PHP의 문제점은 다음과 같습니다.

  1. 프로젝트는 여러개의 라이브러리(패키지)에 의존적이다.
  2. 몇몇 라이브러리는 다른 라이브러리를 필요로 한다. (의존성이 있다.)
  3. 그러한 라이브러리가 어떤 라이브러리에 의존성이 있는지 선언하면 된다.
  4. 그러면 composer는 설치할 필요가 있는 패키지 버전을 찾아서 설치한다. (프로젝트 안에)
composer의 역할은 composer.json에 설정된, 우리가 설치하고자 하는 패키지를 설치해 주는 것입니다. 이 과정에서 그 패키지가 의존하고 있는 다른 패키지들을 함께 설치해 줍니다.

우리의 역할은 composer.json에 우리가 설치하고자 하는 패키지의 의존성을 선언해 주는 것입니다.


Composer 설치


Composer를 사용하기 위해서는 PHP5.3.2 이상의 버전이 필요합니다.


Composer 공식 사이트 : https://getcomposer.org/


맥/리눅스

맥/리눅스에서는 curl 명령어로 composer를 설치할 수 있습니다.


1
2
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
cs


curl 명령어로 composer.phar 파일을 받아오고, mv 명령어로, composer를 전역 사용하게 설정합니다.


윈도우

윈도우에서는 Composer Installer.exe를 통해서 쉽게 설치할 수 있습니다.


맥 (homebrew를 이용한 전역 설치)

맥 패키지 관리 도구인 homebrew를 이용해 설치할 수도 있습니다.


homebrew는 기본적으로 설치되어 있지 않으므로 따로 설치해 주어야 합니다.


Composer는 homebrew-php 프로젝트의 일부로, homebrew-php를 먼저 설치해 주어야 합니다.


1
2
3
$ brew tap josegonzalez/homebrew-php
$ brew install josegonzalez/php/composer
$ composer install
cs


php53이나 그 이상의 버전이 없다는 에러가 발생하면,


1
$ brew install php53-intl
cs

를 통해서 설치할 수 있습니다.



마치며,


혹시 에러나 설치할 수 없다는 문제가 발생하면 댓글로 물어봐주시면 성심 성의껏 답변해 드리겠습니다!


참고

  • https://www.haruair.com/blog/1860
  • https://xpressengine.github.io/Composer-korean-docs/


728x90
Comments