일반 자료실

제목 PHP + Electron
글쓴이 꿈돌이 작성시각 2017/03/26 00:08:03
댓글 : 5 추천 : 1 스크랩 : 0 조회수 : 4711   RSS

안녕하십니까.

 

진행하는 일에 Electron을 한 번 적용해보려고 살펴보고 있는데, 소스코드 암호화를 지원하지 않아서 PHP를 한 번 얹어봤습니다.

표시되는 php 코드는 포럼 매뉴얼에 있는 news tutorial 이고요, "압축 풀린 폴더/Resources/app/" 에서 확인하실 수 있습니다.

소스 암호화는 php_screw를 사용했고, 위 폴더에서 CI폴더내 application/config/database.php 와 view/page/about.php 만 암호화 되어 있습니다.

 

이렇게 했을 때 장점은 (저에게) 익숙하지 않은 Node.js 스타일의 자바스크립트 대신, php 코드 위주로 로컬 구동되는 앱을 만들 수 있습니다.

단점은 조금 많이 느립니다. - 혹시, 이 부분에 대한 해결 방안이 있으신 분이 계시면 조언 좀 부탁 드립니다. ㅠㅠ

 

파일은 용량이 좀 커서 드롭박스 링크로 대신합니다.

---- 내용 추가 ----

PHP 내장 웹서버, NginX 모두 시도해봤는데 너무 느린 탓에 도저히 못 쓸 것 같아서 명령프롬프트에서 php.exe를 직접 실행하여 페이지에 뿌리는 식으로 시도를 해봤습니다. 화면 뜨는 속도는 좀 낫네요.

(두 번째 링크입니다.)

 

그리고 깜빡했는데, php_screw extension과 php 실행파일이 모두 윈도우 용이라서 맥과 리눅스는 동작이 안됩니다.

죄송합니다.

 

혹, 윈도우용 php_screw에 관심있으신 분은 아래 링크를 참조해주시면 되겠습니다.

https://github.com/edp1096/php_screw1.5-bab2

--------

브라우저 기반 데스크탑앱의 제작 예정이신 분들께 도움이 되었으면 좋겠습니다.

 

행복한 하루 되십시오.

 

관련링크 https://www.dropbox.com/s/mx4ossa6zfscr6l/ciNews-win32-x64.zip?dl=1
https://www.dropbox.com/s/g1ptxci2uaj74gc/ciNews_CLI-win32-ia32.zip?dl=1
 이전글 ci3 & reactjs 입니다. (1)

댓글

한대승(불의회상) / 2017/04/05 10:00:18 / 추천 0

일렉트론과 PHP를 합쳐서 뭔가 해보고 싶었는데 감사 합니다.

다운 받아 꼼꼼히 살펴봐야겠네요.

야리 / 2017/05/04 14:08:47 / 추천 0
빌트인 웹서버를 실행하는 방법보다 reactphp(libevent) 활용해서 비동기 코드로 작성하면 괜찮을것 같네요. 구동방식도 일렉트론 > php가 아니라 php > 일렉트론 쪽으로 바꾸면 좋을것 같구요...
반벽이 / 2017/05/17 17:30:58 / 추천 0
초보적인 궁금증이 있는데요.. 소스 암호화를 하는 이유가 무엇인지요? 
한대승(불의회상) / 2017/05/17 17:41:42 / 추천 0
@반벽이 DB를 로컬이 아닌 원격에 놓고 사용하고 싶을때와 같이 중요 정보를 보호할 수단이 필요할때 사용합니다.
꿈돌이 / 2017/09/08 16:07:18 / 추천 0

@한대승(불의회상) 댓글 주셔서 감사합니다. 누군가에게 도움이 되실 수 있으면 제가 더 기쁘고 감사합니다.

@야리 말씀해주신 reactphp를 조금 살펴봤는데요. 제 머리가 딸려서 ㅠㅠ 접근이 쉽지 않을 것 같네요. 쉽게 접근 가능한 샘플이나 튜토리얼 같은게 있다면 영문이라도 상관없으니 말씀해주시면 한 번 살펴보겠습니다. 조언 주셔서 감사합니다.

@반벽이 이유를 짧게 말씀 드리면, 전체 소스코드 보호와 라이선스 파일 운용입니다.

일반적으로는 한대승님께서 답변 주신대로 DB 접속 설정 같은 중요한 파일들이 털리지 않게 방지하는 목적이고요.

저는 php를 서버/클라이언트 개념이 아니라 로컬 어플리케이션 개념으로 사용하려고 하고 있습니다. 여기에 라이선스 파일 같은 것들을 사용해서 선별적으로 사용권을 부여해야 하기도 하고요.

굳이 php를 이런 식으로 사용하려는 이유는 (순전히 저의 관점에서) 처음 시작이 perl, python, ruby, java 등과 비교해봤을 때 가장 쉽기 때문입니다.

문제는 보통의 컴파일 언어들로부터 나온 결과물은 실행파일 자체가 바이트코드화 되어서 결과물의 불법적 사용이나 위변조가 쉽지 않지만 php는 그렇지 않다는 것이고요.

그래서 소스코드 자체는 숨겨야 하지만, 제 관점에서 Zend GuardLoader나 IonCube 같은 솔루션들은 대부분 서버/클라이언트를 전제로 한 경우가 대부분이었고 결국에는 관련 솔루션의 커스터마이징이 필요한데 여기에 유일한 대안이 php screw 였습니다.

오리지널 php screw가 윈도우에서 동작이 안되는 덕에 장시간 삽질을 했는데요.;;

운용하시는 주력 플랫폼이 윈도우라면 제가 작업한 것을 한 번 써보시고, 리눅스라면 다른 분께서 만드신 Screwim 이라는 php_screw 개량판도 있으니, 직접 한 번 경험해보시면 좋을 것 같습니다.