26.10.2015 Views

Modern PHP - 맛보기 PDF

조시 록하트 저 | 정병렬 역 | 한빛미디어 | 2015년 10월 | 22,000원

조시 록하트 저 | 정병렬 역 | 한빛미디어 | 2015년 10월 | 22,000원

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

트가 이미 있는데 HTTP 요청, 응답 라이브러리를 코딩하느라 왜 시간을 낭비하는가? aura/<br />

router (https://packagist.org/packages/aura/router )와 orno/route (https://packagist.<br />

org/packages/orno/route)라는 훌륭한 컴포넌트가 있는데 왜 새로운 라우터를 만드는<br />

가? aws/aws-sdk-php(https://packagist.org/packages/aws/aws-sdk-php)와 league/<br />

flysystem (https://packagist.org/packages/league/flysystem) 컴포넌트를 쓸 수 있는데 뭐<br />

하러 시간을 들여 아마존 S3 온라인 스토리지 서비스 어댑터를 코딩하는가? 요점을 말하자면<br />

이렇다. 다른 개발자들이 무수히 많은 시간을 들여 만들고 다듬고 테스트한 전문 컴포넌트들이<br />

이미 있으며, 이런 컴포넌트는 어떤 한 가지 일을 처리하는 데 매우 능숙하다. 이들을 충분히<br />

활용하면 더 나은 애플리케이션을 신속하게 제작할 수 있고 무의미한 일에 시간을 낭비하는 우<br />

를 범하지 않을 수 있다.<br />

4.2 컴포넌트란 무엇인가<br />

컴포넌트는 <strong>PHP</strong> 애플리케이션의 특정 문제를 해결하도록 도와주는 코드 모음이다. 예를 들어<br />

<strong>PHP</strong> 애플리케이션에 HTTP 요청을 주고받는 기능이 필요하다면 그런 기능의 컴포넌트를 사<br />

용하면 된다. 그리고 쉼표(, )로 구분된 데이터를 파싱하거나 로그 메시지를 기록하는 등의 기<br />

능이 필요하다면 각각을 수행하는 컴포넌트 역시 존재하므로 그 컴포넌트를 사용하면 된다. 그<br />

러므로 이미 해결된 기능을 다시 만드는 대신 <strong>PHP</strong> 컴포넌트를 사용함으로써, 프로젝트 본연<br />

의 목적을 달성하는 일에 더 많은 시간을 할애할 수 있다.<br />

기술적으로 말하자면 <strong>PHP</strong> 컴포넌트는 한 가지 문제를 해결하는 데 관련된 클래스, 인터페이스, 트<br />

레이트 모음이다. 컴포넌트를 이루는 클래스, 인터페이스, 트레이트는 보통 동일한 네임스페이스 하위에 있다.<br />

어느 상점이든 좋은 상품과 나쁜 상품이 있듯이 <strong>PHP</strong> 컴포넌트에도 같은 개념이 적용된다. 식<br />

료품점에서 사과를 살펴볼 때처럼 <strong>PHP</strong> 컴포넌트를 볼 때도 좋은 컴포넌트를 알아보기 위한<br />

비결이 있다. 좋은 <strong>PHP</strong> 컴포넌트의 몇 가지 특징은 다음과 같다.<br />

● 목적이 정확하다<br />

<strong>PHP</strong> 컴포넌트는 오직 한 가지 문제를 정밀하게 겨냥하고 이를 능숙하게 처리하기 위해 존재한다. 넓고 얕은<br />

재주를 가진 사람이 아닌 한 분야의 장인인 셈이다. 한 가지 문제를 해결하는 데 온통 사로잡혀 있고, 간결한<br />

46 2부 모범 사례

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!