Reflection을 활용한 Private Method Test

ModernPUG모임에서 발표한 내용으로서 발표자료와 소스코드는 다음 링크에서 확인할 수 있습니다. ModernPUG May, 2015 : Mockery, Reflection, 성공적 최근, TDD에 미쳐서 테스트가능한 코드를 미친듯이 작성하고 있습니다. 그러던 중 몇가지 상황에서 테스트하기 힘든 경우가 있었습니다. 그 중 하나가 바로 Private 테스트입니다. 잘...

Zephir - Hello World

Zephir. 최근 PHP개발자 모임에서 프레임워크 이야기를 하고있었습니다. 그러던 중 과연 앞으로 PHP 프레임워크는 어떻게 대해 고민하게 되었습니다. 요즘 상태가 Laravel로 대동단결되는 분위기 였으니까요. 그러던 중 Phalcon이라는 Framework를 다른 이슈를 대화의 주제로 나오게 되었습니다. Laravel는 모던한 기능을 다 제공하는 대신에 속도가...

PHP 꼴랑이거(4) - Callable

PHP에서 오늘 살펴볼 녀석은 callable이라는 녀석입니다. 그전에 잠깐 array_walk()라는 함수를 보자면 다음과 같이 사용합니다. <?php array_walk([1,2,3,4,5], function ($item) { echo $item, " "; }); // print 1 2 3 4 5 현대 언어의 필수적 개념인 클로져(Closure)를 사용해서 함수를 불러 올...

Ubuntu 꼴랑이거(1) - 서버 시간이 차이가 날때..

맨날 조금조금씩 서버를 운영하면서 발생하는 문제에 대해서 어딘가에 정리를 해야할 것 같아서 작성하는 포스팅입니다. 어떻게 보면 참 간단한 것들인데 매번 구글에 찾는 것도 귀찮고, 한편으로는 제가 그만큼 서버에 대해 무지하지 않았나 스스로를 반성하기 위해서 정리하는 포스팅 시리즈입니다. 최근에 서비스를 운영하다가...

Mess Detector에서 나만의 커스텀 룰셋 적용하기

본 글은 기본적으로 Mess Detector와 PHPStorm을 사용하고 있는 분을 대상으로 삼고 있습니다. :) 문제의 발단. 이제는 PHP 코딩에서 필수 도구가 되어버린 PHP Mess Detector(이하 PHPMD), PHP 좀 하신 분들이라면 누구나 한번쯤 사용해 봤을 것입니다. phpmd.com PHPMD를 켜놓고 신나게 코딩을 하다...

JS 꼴랑이거(2) - setTimeout에서 발생하는 Exception 잡아내기

자바스크립트에서도 예외처리가 가능한데 단순하게 다음과 같이 사용할 수 있습니다. function throwException() { throw new Error("Hi"); } try { throwException(); } catch(e) { console.log("Error:)", e); } 아마도 실행하면 다음과 같이 나올 것입니다. $ node exception.js Error:) [Error: Hi] 다른 언어와 똑같이...

Swift 프로젝트에 Cocoa Pods 이용하기

맨날 웹개발 + 백엔드(수박겉핥기)만 죽어라 하다가 설도 껴있겠다 기념으로 전부터 보고싶었던 것을 가지고 놀아보자 라는 심정으로 스위프트를 시작해보기로 했습니다. 매번 Cordova만 사용하는데 네이티브앱을 도전해보기 위해서 였습니다. 그리고 이게 되면 아이폰도 앱의 형태이긴 하지만 내 맘대로 튜닝이 될것 같아서이기도 했습니다. 뭐...

PHP 꼴랑이거(3) - static과 self의 차이

원래 본글은 2013년 12월 26일날 포스팅 된 글을 꼴랑이거 시리즈로 묶으면 좋겠다 생각되어 이쪽으로 이전된 글입니다. :) PHP 객체지향에서 static은 상속이 됩니다. 그리고 그 static메서드 안에서 자기 자신 클래스를 생성하고 싶을때가 있습니다. 그때 사용할 수 있는 것이 static 일까요 self...

Node.js에서 Github oAuth에 접근해보자 (1).

Github API를 이용하는 프로그램을 만들일이 생겼습니다. 예전에 Facebook API를 이용한 웹사이트를 만들어본적은 있었는데 Github API는 또 처음이라 간단히 몇가지 실험을 해볼 필요가 있었습니다. 우선 해당 실험을 진행한 이유에는 몇가지 이유가 있었습니다. 일반적인 웹사이트의 경우 oAuth가 특정 URL을 통과해서 시작합니다. 그러나...

QUnit으로 브라우저, 노드 통합 유닛테스트 환경 구축하기

작업하는 몇몇 소스가 브라우저에서도 사용이 되고, 노드(혹은 io.js도 가능할 듯.)에서도 사용이 됩니다. 통합된 환경에서 어떻게 하면 유닛테스트를 할 수 있을까 고민을 해보았습니다. 그러던 중 QUnit이라는 도구가 눈에 띄었습니다. qunitjs.com 간단히 얘기하자면 jQuery팀에서 사용하는 테스트 도구입니다. 기존에 하는 유닛테스트와 가장 유사한...