본문 바로가기

분류 전체보기355

CSR8635 주파수 응답 특성 CSR8635https://www.qualcomm.com/products/csr8635요렇게 생긴 모듈의 주파수 응답 특성을 확인해봤습니다. 측정기기 : Scarlett solo gen2 (Line input)Frequency sweep : Android어플을 통해 내장된 이퀄라이져가 있는건진 확인해보지 못했습니다. 2017. 12. 23.
[JsGreenTeaPHPFramework] GreenTea Framework 시작! PHP에서 사용할 Framework을 만들고 있습니다.애초에 Spring framework을 비슷하게 만들려고 했습니다.이름짓는게 제일 어려운듯...ㅋㅋㅋㅋ 처음엔 봄(Spring)을 생각하다 Sprout Framework으로 하려고 했는데 이런 이름이 이미 있어서..봄느낌의 단어를 생각하다가 GreenTea으로 정했습니다. 어찌되었든...자잘한 부분을 Spring문법?과 비슷하게 만들고 있고bean같은 것도 구현하고 있습니다.AutoWiring이라고 해서 Spring의 AutoWired annotation같은건데xml에서 클래스를 생성하고 Controller내에서 만든 Class을 불러와서 사용 가능합니다.(Interceptor 등도 구현 가능) Spring는 객체들을 만들어 놓고 프로세스내에 상주해 .. 2017. 12. 19.
php는 bytecode으로 배포할 수 없다... 지난 1.5주일정도? 동안... php을 bytecode으로 바꿔서 배포하는 방법을 구상했었다.하지만 지금.. 내가 내린 결론은, 불가능하다 이다. php 5.3버전 이하에는 bcompiler이란 extension이 있다.php소스를 bytecode으로 변환하는 확장라이브러리이다. 하지만 5.3버전 이후에는 bcompiler가 호환되지 않는다. php에서 공식적으로 bcompiler을 없앤데는 다 이유가 있었을 터인데...왜 객기를 부려서 다시 이걸 만들려고 했는지...ㅠㅠ 나는 opcache을 통해서 php코드를 bytecode으로 저장하는걸 만들려고 했다. 간단하게 opcache을 수정해서 php을 opcache파일 (bytecode)으로 저장하는 건 가능했지만. Serialize 구조상 32bit에.. 2017. 12. 5.
zend(php) 소스 끄적끄적 [accel_interned_strings]아직 잘 모르겠으나... 문자열을 저장하는 것으로 보이고interned_strings_saved_top, interned_strings_top 등이 있는데 이를 통해서 한번에 어떠한 context을 지우고(pop)할 수 있는거 같다.문자열 단위 push/pop이 가능하고,어떠한 context가 끝나면 그 context에서 사용한 문자열들을 전체 삭제가 가능하다.-> accel_interned_strings_restore_state(현재 context의 위치를 기록하는건 -> accel_interned_strings_save_state) accel_interned_strings_save_state 후에accel_new_interned_string 이런걸로 문자열을.. 2017. 12. 1.
php_screw는 소스배포용으로는 적합하지 않다. (복호화 모듈 소스) php_screwphp_screwim https://github.com/OOPS-ORG-PHP/mod_screwim 이 둘은 php코드를 암호화하여 저장하고 별도로 컴파일한 모듈을 로드해소스를 보지는 못하지만 실행만 가능하게 하는 php모듈이다. php_screw.so 모듈과 암호화된 php파일을 입수하면 물론 리버스엔지니어링을 통해 Key을 알아내서 복호화 할 수 있지만 그래도 복잡한 작업이다.따라서 설정파일 등을 암호화해서 저장해놓고 screw 모듈을 올려놓으면 web shell등에 대해서는 어느정도 보안성이 증가한다. 하지만 screw을 php소스 배포용으로 사용하는것은 부적절하다.1. screw을 자기만의 key으로 컴파일한다.2. 컴파일한 screw을 통해 php소스를 암호화한다.3. 암호화된 .. 2017. 11. 30.
끄적끄적... Non-blocking socket에서 recv하는 도중 -1리턴과 함께 errno==EAGAIN이면 더이상 읽을 데이터가 없단 뜻.. epoll & tcp listen socket 사용시 EPOLLET(Edge trigger)사용시 epoll_wait을 통해 이벤트 받았을 때 한번씩만 accept하면 accept못하는 클라이언트 발생.(확인안해봄) EAGAIN이 나올때까지 accept하거나Listen socket에는 Edge trigger을 사용하지 않고 그냥 Level trigger만 사용.당연히 Receive에는 ET사용. epoll사용시 같은fd에 대한 이벤트가 여러Thread에서 처리될 수 있다.이런경우 순서의 문제 등이 발생할 수 있는데 EPOLLONESHOT을 통해 이러한 문제가 해결 가능하.. 2017. 11. 29.
반응형