개발
-
초단위 cron 설정 ( nodeJS )개발/javascript 2018. 11. 9. 17:41
환경체크 (노드와 npm 설치 진행) node -v v8.9.3 npm -v 6.4.0 crontab 설치 (https://www.npmjs.com/package/cron) cd /home/crontab npm install cron vim test.js var CronJob = require('cron').CronJob; new CronJob('* * * * * *', function() { console.log('You will see this message every second'); }, null, true, 'America/Los_Angeles'); node test.js You will see this message every second You will see this message ever..
-
PHP 대용량 엑셀다운로드개발/php 2018. 11. 9. 17:41
소개300 백만건 이상의 엑셀 다운로드 파일 요청이 들어와서 기능을 검토하던 도중 다운로드 크기가 200MB 를 넘어 버리는 현상이 발생해 서버 설정에 잡아둔 메모리를 초과하는 현상이 나타났다. ini_set 설정으로 ini_set('memory_limit', -1) 로 진행 하려했지만 서버에 무리가 갈거 같아서 라이브러리들을 찾는 도중 괜찮은 라이브러리가 있어 메모해둡니다. 공식 홈페이지에서는 데이터 기록시 한번에 한줄 혹은 여러줄씩 데이터를 읽어서 메모리에 저장해 둔다음 파일을 쓰고 메모리를 해제 하는 방식을 채택한다. (읽기 기능도 마찬가지로 한줄 혹은 여러줄씩 데이터를 읽어오고 해제 한다고 합니다.)github공식 홈페이지 CODEcomposer require box/spout use Box\Sp..
-
php 에서 한글포함 여부를 체크해보자개발/php 2018. 11. 9. 17:39
1. 환경체크php -v PHP 7.2.9 (cli) (built: Aug 15 2018 08:05:45) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.9, Copyright (c) 1999-2018, by Zend Technologie php -m |grep mbstring mbstring2. 코드샘플 실행
-
ECMAScript vs JavaScript개발/javascript 2018. 11. 9. 17:38
ECMAScript ECMA International에 의해 표준화되고 TC39위원회가 감독하는 언어. 이 용어는 일반적으로 표준 자체를 지칭하기 위해 사용됨 JavaScript ECMAScript 표준 구현에 일반적으로 사용되는 이름 이 용어는 특정 버전의 ECMAScript 표준과 관련이 없으며 특정 ECMAScript 버전의 전체 또는 일부를 구현한것을 지칭하기 위해 사용될수있음. 1995년 넷스케이프 네비게이터의 초기버전인 라이브 스크립트를 1년후 자바스크립트로 이름을 바꾸기를 원함 당시 자바의 인기를 활용하기위함, 1996년에 Netscape 표준화를 위해 JavaScript 라는 명칭으로 ECMA International 에 제출함. 이때부터 ECMAScript 라는 새로운 표준이 생김 즉 J..
-
JavaScript Transcompile 을 진행해보자개발/javascript 2018. 11. 9. 17:37
예전 진행한 프로젝트에서 function 을 arrow function 으로 변환하는 도중 다음과 같은코드가 있었다.let someThingObject = { something : 'test' , getSomthing : function () { return this.somthing; } } someThingObject.getSomthing(); //test해당코드를 다음과 같이 변환하고있는데 일반 function 에서는 잘되던 this 값이 arrow function 으로 이동되면서는 전달되지 않는 문제가 생겼다. arrow function 은 this 를 that 이나 bind 함수 없이 쓸수있도록 도와준다고 알고있었는데 적용이 안되어서 테스트를 진행해 보았다.let someThingObject = ..
-
tcpdump 와 wireshark 를 이용해 디버깅 하기개발/etc 2018. 11. 9. 17:36
서버를 운영하다보면 A 서버에서 B 서버로 API 를 호출하는데 기대값이 아닌 엉뚱한 값이 나오는 경우가 있다. 보통 이경우에는 A 서버의 application layer 에서 input 값을 변환하기 때문에 실제로 B 서버에 요청하는 값은 달라질수가 있다. 이럴때 디버깅을 하기위해서는 디버깅코드를 심어서 배포를 하거나 로그코드를 심어서 배포를 하는경우가 있다. 이럴때 유용하게 사용할수있는 tcpdump 와 wireshark 를 이용해보자.단 ssl 적용시 내용 확인 불가하다.tcpdump 설치[root@localhost ~]# yum install tcpdump노드서버 디렉토리생성 및 세팅[root@localhost ~]# mkdir /home/node [root@localhost ~]# cd /hom..
-
css aysnc load개발/etc 2018. 11. 9. 17:35
어느날 웹페이지로딩이 느려 확인해해보니까 css 로드될때까지 화면이 로딩이 되지않는다. 찾아보니 다음과 같은 이유가 있다.FOUCCSS 가 로드되기 전에 스타일 없이 페이지가 로드 되는경우가 있다. 이런 경우를 FOUC(Flash Of Unstyled Content) 라고 부른다고 한다. 이를 다루기 위한 방법은 `rel="stylesheet"` 방식을 사용하여 페이지 렌더링 차단으로 로드한다. DOM 렌더링 및 JavaScript 실행은 모든 렌더링 차단 `rel="stylesheet"` 리소스가 로드되고 CSSOM (CSS Object Model) 로 변환된다고 한다. FOUC 란?chrome 렌더링 과정해결우선순위를 지정하는 방식이지만 rel 옵션이 preload 로 변경되면서 페이지 렌더링 차단이..