dev 136

php7 캐슁

배경 DB가 느려서 사이트 성능이 안나옴 DB 쿼리 캐싱이 필요한 상황 캐싱 방식 APC(Alternative PHP Cache) / Memcached / SQLite 등등 mysqlnd_qc라는 라이브러리가 있으나, 13년 후로 빌드가 없음 결론은 Memcached를 적용하자. PECL 설치 yum install php-pear php-devel 설치 확인 pecl version Memcached 설치 yum install libevent libevent-devel memcached php-memcached 데몬 실행 memcached -d -m 512 -l 127.0.0.1 -p 11211 -u nobody 실행 및 설정 확인 echo "stats settings" | nc localhost 1121..

dev/etc 2019.10.20

[Git] 서버 배포 설정 From 리모트 레파지토리(bare 레파지토리 활용)

bare 레파지토리를 활용하여, .git디렉토리가 분리된 배포를 수행할 수 있다. 예제 변수 리모트 레파지토리: git@remote-repository:user/project.git 배포 디렉토리: /var/www/html 브랜치: master 깃 디렉토리: /home/user/repo/project.git 1. bare 레파지토리 생성 mkdir ~/repo cd ~/repo git clone --bare git@remote-repository:user/project.git 2. 배포 git --work-tree=/var/www/html --git-dir=/home/user/repo/project.git checkout -f master 이 후엔 쉘 스크립트를 활용한, checkout & pull(fe..

dev/linux 2019.08.26

[Troubleshooting] php-fpm 504 Gateway Time-out

nginx + php-fpm 조합으로 서버를 사용중인데, 갑자기 서버가 반응이 느려지더니 504 Gateway Time-out 발생함. /var/log/php-fpm/error.log를 확인하니 WARNING: [pool www] child xxxx said into stderr: "ERROR: Unable to set php_value 'soap.wsdl_cache_dir'" 라고 적혀있다. /etc/php-fpm.d/www.conf 를 열어보니 php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache 로 되어있다. 해당 경로로 가보니 단순한 권한 문제가 있어 보여서 수정했지만, 문제는 해결되지 않았다. session_start(); 에서 문제가 발생함을 확인..

dev/linux 2019.07.26

Spring @Validated 어노테이션 사용하기

@Validated 어노테이션은 JSR-303 스펙의 @Valid 어노테이션을 확장(?)한 스프링의 어노테이션이다. Bean validation을 하는데 추가로 group을 지정할 수 있다. @Validated에 group을 지정하면 bean에서 groups를 지정한 bean validation annotation만 동작하며@Validated에 group를 지정하지 않으면 bean에서도 groups를 지정하지 않은 bean validation annotation만 동작한다. 이것을 피하려면 javax.validation.groups.Default 를 groups에 함께 지정하면 된다.(group interface가 javax.validation.groups.Default 를 상속하는 방법도 있지만, 정상..

dev/java 2018.07.22

카카오 SDK android key hash 이슈

안드로이드에서 카카오 SDK 적용시 카카오 개발자 사이트에 안드로이드 키해시를 등록해야 한다. 그리고 키해시 구하는 방법은 개발가이드에 잘 설명되어 있다.https://developers.kakao.com/docs/android#%ED%82%A4%ED%95%B4%EC%8B%9C-%EB%93%B1%EB%A1%9D 그런데 이번에 SDK동작 이상으로 디버깅 하다보니 위 가이드에서 설명한 커맨드라인 방법과, 자바코드 방법의 결과가 다르다! [참고]커맨드라인으로 구하기keytool -exportcert -alias androiddebugkey -keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64자바코드로 구하기pu..

dev/android 2018.04.12