[Tip] UTF-8 Bom 문제 해결방법

PHP 에서 string을 외부에서 받아와 json_decode 등을 할 때 아무 이유없이 syntax error를 반환 하는 경우가 있다. 이럴땐 여러가지 의심을 할 수 있는데, 이번 이슈의 경우 Data를 가져온 곳이 web임을 가만했을때 가장 추측할 수 있는 것은 UTF8-BOM이다. BOM은 (Byte Oder Mark, BOM)으로 UTF-8, UTF-16을 구분하기 위해 윈도우에서 사용된다고 한다. 이런 경우 간단히 위 함수를 통해 …

[laravel] GuLa library

소개 GuL(a)ibrary (이하 구라블러리 ㅎ)는 sir.kr에서 만든 그누보드와 영카트의 테이블의 모델들을 묶어둔 라이브러리입니다.바로 DB를 바꿀순 없고 api, scheduler등 더 다양한 기능들을 기존 그누보드, 영카트를 유지하면서 laravel로 구현하기 위해 만들어졌습니다. 실은 그누보드로 만들어진 사이트 서로 연동 하는 작업하는데 raw php론 너무 힘들어서 만들엇습니다. ㅎ 특징 구라블러리는 그누보드와 Laravel에서 사용할 DB를 따로 분리하여 운영이 가능합니다.구라브러리는 Laravel의 relation을 …

그누보드 Hook 사용법

최근 그누보드 업데이트 스크립트를 만들면서, 코어 코드가 수정되었을때 자동으로 업데이트 해주는 기능 구현에 애를 먹고 있다.하지만 그누보드 5.4부터 새로 추가된 hook을 사용하면 코어코드에 대한 수정을 최소한으로 하거나 혹은 코어 수정없이 진행가능하기에 업데이트가 용이하다. Hook Hook은 단어 그대로 갈고리처럼 코드 중간에 갈고리를 걸어, 코드를 실행시켜주는 기능을 한다.혹은 이벤트-리스너와 같은 기능을 한다고 생각해도 좋다. 그누보드가 Hook을 어떻게 …

PHPUnit에서 Laravel 에러 메시지 출력 패키지(Collision) 사용

원글 Collision PHPUnit Listener With Laravel ‘Collision‘는 Laravel에서 아래 이미지처럼 상세한 오류 내역을 출력해주는 패키지이다. Laravel로 개발하면서 정말 좋은 기능임을 알고있었지만, phpunit과 같은 외부 테스트 도구들을 통해 테스트할 때 오류가 발생해도 아래 이미치 처럼 단순히 Exception stack만 보여줘 ‘Collision’ 처럼 자세한 내용을 제공 받지 못해 아쉬웠던 적이 더러 있었다. 하지만 작년 12월 31일 Collision 패키지 …

[VSCode] NPM Rename Permission Error

NPM Rename permission error VScode에서 WSL Remote를 지원하면서 NPM을 이용한 패키지 관리도 VSCode 상에서 진행을 하는중 https://github.com/Microsoft/WSL/issues/2097 이슈처럼 계속 Rename 권한 이슈때문에 npm install이 진행되지 않는다.. 해결 방법은 단순한데 VSCode를 끄고 npm install을 진행하면 된다.VSCode가 실행되는 중에 npm install을 사용하면 VSCode의 폴더를 캐싱하는 부분과 겹쳐지면서 파일 쓰기가 되지 않아 생기는 문제로 보여진다. 이 문제로 고생하는 …

[번역] 스팸과 싸우는 5가지 방법

원본글 : 5 Ways of Battling Form Spam 만약 여러분이 웹 어플리케이션을 만든다면, 스팸 봇들에게 점렴당하는 것들을 막을순 없을것입니다. 내 프로젝트 중 하나는 회원가입 폼 부분을 당해서 17,000여개의 가짜 유저을 정리하는 것은 정말 힘들었습니다.이를 해결 하기위해 스팸 봇과 싸우는 방법을 트위터에 물어보았고, 많은 반응과 좋은 아이디어들을 얻을 수 있었습니다.나는 언급된 방법들을 공유해 만약 여러분이 공격 …

[Clipping] php-fpm slow log

서비스 응답속도 저하시 php-fpm 로그로 원인분석하기 원글: HeuJung php-fpm 기반의 웹 서비스에서 알 수 없는 문제로 응답속도가 저하되는 현상이 발생 할 경우가 있다. 원인은 여러가지일 수 있다. 몇 가지를 꼽자면, DBMS의 SQL 응답속도 저하 (Slow Query) 네트워크 지연 서버 리소스 점유율 (CPU, RAM 등) Disk 입출력 문제 등이 있다. 하지만, 서버 리소스나 네트워크에 별 다른 …