발표, Vue SSR vs Prerender

PHP서비스를 Vue로 리팩토링 하면서 발생한 SEO 문제를 해결하는 내용입니다. SSR과 Prerender를 고민하였고, 최종적으로 Prerender를 사용하였습니다. 2017년 10월 GDG 인천에서 발표한 내용입니다.

디자인패턴 공부하기 - 3. 추상팩토리 (Abstract Factory)

그동안의 팩토리 패턴들은 일반 객체를 생성했습니다. 그런데 만약에 생성해야 하는 객체가 특정 인터페이스를 구현하고 있는 클래스라면 어떻게 되어야 할까요? 서비스에서 Cache를 사용한다고 가정합시다. <?php class ArrayCache { protected $caches; public function get(string $key, $default = null) { return $this->caches[$key] ??...

디자인패턴 공부하기 - 2. 정적팩토리 (Static Factory)

정적팩토리(Static Factory)의 경우 단순팩토리를 그저 정적함수(static method)를 통해서 호출하는 것 뿐이기 때문에 아주 간단합니다. <?php class User { /* ... */ } class UserFactory { public static function factory(): User { return new User(); } } 그리고 사용할 때는 다음과...

디자인패턴 공부하기 - 1. 단순팩토리 (Simple Factory)

일반적인 팩토리 패턴은 무언가 객체를 생성하고자 할 때 사용하는 패턴입니다. 특히나 이 중, 단순팩토리(Simple Factory)는 그 중 가장 기본이 됩니다. 표현하면 다음과 같습니다. classDiagram UserFactory --> User : create user UserFactory : +factory() <?php class User { /* ... */...

디자인패턴 공부하기 - 0. Intro

프레임워크를 작업하면서 두루뭉술하게 알고 있던 디자인 패턴들을 최근에 다시 복습겸 공부하기 시작하였습니다. 예전에 학부시절에 수업으로 한번 공부했었던 내용이지만, 이제와서 보니 더 새로운 부분이 많고, 그때는 이해가지 않았던 내용들도 있어서 다시한번 정리할겸 글을 작성해보려고 합니다. 아무래도 제가 이해한 내용을 기반으로 작성한...

yarn global 설정하기

요즘 Node.js 쪽 패키지 관리자는 Yarn을 사용하고 있습니다. 메모리나 속도면에서 npm보다 우수하기 떄문입니다. 전에 npm을 사용할 때는 global 설치가 크게 어렵지 않았습니다. 기본적으로 node를 설치할 때 같이 따라오기 때문에 bin 디렉토리들이 알아서 설정되어있기 때문입니다. 하지만 yarn의 경우는 바로 사용되지 않았습니다....

우분투 resolv.conf 세팅 정리

서버는 AWS EC2(Ubuntu 16.04) + RDS 를 사용하고 있습니다. 일단, 문제의 발단은 다음 에러였습니다. SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known PDO쪽에서 Exception이 발생했는데 처음보는 메시지였습니다. 네트워크 쪽에 능통하신 분들이라면 아마도 쉽게 해결하셨겠지만 네트워크를 눈대중으로 배운 저에게는...

MinHash란?

MinHash 알고리즘을 이해한 만큼 적어보려고 합니다. 요즘, 회사에서 사용할 봇을 제작하고 있는데요, 약간의 자연어 처리 기능을 넣어보려고 했습니다. 어떻게 하면 효율적으로 처리가 가능할까 하다가 MinHash 라는 Collaborative Filtering에서 사용하는 알고리즘을 찾게 되었습니다. 활용 할 수 있을 것 같아서 일단 뜯어보기로...

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라는 기능이 있다고 알게되었습니다. 문득, 완두 프레임워크가...