Annotation을 통해 더 강력해진 DI Container, Wandu DI

과거 Wandu DI를 이용한 레거시 리팩토링라는 포스팅으로 Wandu Framework의 Wandu DI를 소개한적이 있습니다. 현재 Wandu Framework 는 v3.1을 준비하는 있는데요, 더욱 강력해진 DI Container를 소개합니다. DI가 무엇인지, IoC 개념을 알고 있다는 전제하에 작성된 포스팅입니다. 또, wandu/di:3.1-dev를 통해서 테스트해보실 수 있습니다....

왜 Hacklang은 더 유명해지지 않을까?

PHP 프레임워크를 만들면서 다양한 프레임워크를 공부하고 있는데 그 중 하나가 스프링입니다. 그 중 메타프로그래밍과 AOP에 꽂혀서 doctrine/annotations를 가지고 놀고 있습니다. 실제로 PHP RFC에서도 표준을 책정하려는 움직임이 있었지만 아직은 표준이되지 못했습니다. 그러던 중, Hack에서 Attributes라는 기능이 있다고 알게되었습니다. 문득, 완두 프레임워크가...

Gulp 넌 왜 갑자기 말썽이냐... (feat. cssnano)

지난 3월 22일, Node 커뮤니티에서 발생했던 Left Pad 사건을 기억하시나요? www.bloter.net/archives/253447 최근, Left Pad 만큼의 임팩트는 아니지만 비슷한 일이 발생하였습니다. 유명패키지 cssnano가 의존하고 있는 reduce-css-calc라는 패키지가 말썽을 일으켰습니다. 아는 사람만 사용하는 패키지라 많은 분들은 몰랐을 수도 있습니다. 그치만 제가 그...

발표, Modern PHP란 무엇일까?

PHP를 안좋게 바라보는 개발자 분들 중에 상당 수가 옛날 방식을 이야기 하는 분들이 많습니다. 그런 분들에게 요즘의 PHP는 어떻게 좋아지고 있는지 어떻게 개발방법이 바뀌었는지 소개하고자 만들었습니다. 8월 GDG 인천에서 발표한 내용입니다.

발표, PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)

Modern PHP 7월 모임에서 발표한 내용.

Facebook Webdriver를 이용하여 Selenium 테스트하기

최근 서비스에 UI 테스트를 할일이 생겼습니다. PHP쪽 UI Test 툴에는 코드셉션(Codeception) 이라는 끝판왕이 있지만, 이미 기존에 PHPUnit 으로 꽤 많은 유닛테스트가 작성되어있어서 옮기기 귀찮았습니다. 그래서 그냥 PHPUnit 기반으로 할 방법이 없나 하고 고민을 하던 중, 코드셉션을 살짝 열어보았습니다. 그 안을...

초간단 Window 10 PHP 환경 구축

Modern PHP에서 단언컨데 Composer는 꽃이라고 할 수 있습니다. OSX(혹은 리눅스!)환경에서는 콘솔 사용하기가 쉬워서 개발환경 만드는 일 또한 큰 문제가 되지 않습니다. 그러나, 윈도우에서는 개발환경 만드는게 쉽지 않다는 것을 알게되었습니다. (언제까지 wamp를 사용할텐가!!) .. 그래서 정리해봅니다 .. Chocolatey 설치 OSX나 리눅스에서는...

서버 외부에 연결하기 전에 제대로 출력되는지 확인하기

현재 Localhost에 모든 서버 설정을 다 해놓고, 외부에 스위치에 연결하기 전에 서버가 제대로 출력되는지 확인하고 싶을 때가 있다. 보통 Nginx, Apache의 경우 헤더의 Host를 기준으로 설정을 불러오기 때문에 Bash를 통해서 헤더만 살짝 만져주면 된다. 예를들어 blog.wani.kr 도메인을 확인하려고 하면.. curl...

OSX에서 PHP를 여러버전 깔아놓고 쓸때 팁

보통 OSX에서 Homebrew를 많이 사용하실 겁니다. 그리고 몇몇 분들은 다양한 PHP 버전을 깔아놓고 테스트를 해야할 때 아마 다음과 같이 명령어를 사용할 겁니다. brew unlink php56 brew link php70 그런데 이게 유닛테스트를 버전을 돌려가면서 할 때 여간 귀찮은 일이 아니더군요. 그래서...

Nginx 하위 경로를 다른 서버로 보내기

서비스를 운영하다가 wani.kr라는 도메인은 A라는 서버에 물려있고, wani.kr/other은 B라는 서버에 물리게 할 일이 있었습니다. 그럴때는 nginx proxy를 사용하면 됩니다. 다음 설정은 wani.kr라는 서버에서 wani.kr/other로 요청할 경우 111.11.11.11과 111.11.11.12로 나누어서 요청을 보낼때의 설정입니다. server { listen 80; server_name wani.kr; # 여기에는...