자바스크립트에서 비동기로 호출 된 특정 로직이 끝나고 나서 실행되도록 하는 함수를 콜백함수라고 합니다. 일반적으로 자바스크립트에서 비동기로 함수를 호출하게 되면 그 함수 로직이 끝날때까지 기다리는것이 아니라 바로 다음으로 넘어가게 되는데요, 12345678910111213141516function first() { setTimeout(function() { console.log(1); }, 1000);} function second() { console.log(2);} first();second(); // 2// 1// 출력cs first()를 실행하고 second()를 실행하였음에도 second가 먼저 실행이 되는 것을 볼 수 있습니다. 12345678910111213function doHomework..
자바스크립트에서 함수를 작성하는 2가지 방법(함수 선언문과 함수 표현식)이 있습니다. 함수 선언문 : function a () {}; 함수 표현식 : var a = function() {}; 이 2가지 방법에서 가장 큰 차이점은 호이스팅에서 나옵니다. 함수 선언문으로 작성한 함수는 함수 전체가 호이스팅 되지만, 함수 표현식으로 작성한 함수는 호이스팅이 되지 않습니다. 1234567891011121314151617console.log(sum(3,4)); // 7 출력, 호이스팅 가능 function sum(x, y) { return x+y;} console.log(sum(1,2)); // 3 출력 console.log(a(3,4)); // Uncaught TypeError: a is not a functi..
확장모듈을 사용하면 굉장히 간단하게 Node.js와 DB를 연동 할 수 있습니다. 1. npm으로 mysql 확장 모듈 설치하기 1 npm install mysqlcs 2. js파일에서 확잘 모듈 로딩 및 DB Connection 정보 설정 123456789const mysql = require('mysql'); // mysql 모듈 로드const conn = { // mysql 접속 설정 host: 'localhost', port: '3306', user: 'user', password: 'pw', database: 'monolithic'}; Colored by Color Scriptercs 3. 커넥션 생성, 쿼리 테스트 진행, DB 접속 종료 1234567891011121314151617181920..
이미지맵을 사용하다보면 모바일 기기별 혹은 PC 해상도 별 이미지 사이즈가 달라지는 경우에 설정한 좌표값이 어긋나는 경우가 종종 있습니다. rwdImageMaps 라이브러리를 사용하면 이런 고민을 간단하게 해결할 수 있습니다.(이 라이브러리를 쓰기 위해 JQuery 라이브러리가 필요합니다.) rwdImageMaps 라이브러리 Github : https://github.com/stowball/jQuery-rwdImageMaps 12345678910111213141516 // rwdImageMaps로 이미지맵 동적 할당하도록 설정 $('img[usemap]').rwdImageMaps();Colored by Color Scriptercs 이렇게 설정하면 간단하게 이미지맵 좌표를 사이즈에 맞게 유동적으로 적용할..
/** * sends a request to the specified url from a form. this will change the window location. * @param {string} path the path to send the post request to * @param {object} params the paramiters to add to the url * @param {string} [method=post] the method to use on the form */function post(path, params, method='post') { // The rest of this code assumes you are not using a library. // It can be ma..
순수한 Ip 타입 필드는 ES에서 제공하는 다양한 Geo 쿼리를 사용할 수 없습니다. 기존에 수집한 Ip 타입 필드 데이터들을 Geo 쿼리에 활용하고 싶을때에는 매핑을 추가하여 리인덱싱을 진행하면 되는데요, 이번 포스트에서는 로그스태시의 geoip 필터를 사용하지 않고, ingest-geoip 플러그인을 활용하는 방법을 알아보겠습니다. 1. ingest-geoip 플러그인 설치 다음 명령어를 통해 ingest-geoip 플러그인 설치합니다.(리눅스 기준. 사용하시는 환경에 맞게 ingest-geoip 플러그인을 설치하시면 됩니다.) sudo bin/elasticsearch-plugin install ingest-geoip 플러그인이 설치되면 ElasticSearch 리스타트 해 줍니다. 2. ingest..
ElasticSearch를 활용하여 검색을 처리하다보면 여러 Test 환경이 필요할 때가 있습니다. Docker의 Compose를 활용하여 "ElasticSearch 5.5.0 + Kibana 5.5.0" 테스트 환경과 "ElasticSearch 7.0.0 + Kibana 7.0.0 + Nori Analyzer" 테스트 환경을 구축해 보겠습니다. 먼저 "ElasticSearch 7.0.0 + Kibana 7.0.0 + Nori Analyzer" 환경의 커스텀 빌드용 이미지를 하나 만들어줍니다. $> vim Dockerfile 12345# ElasticSearch 7.0.0 + Nori Analyzer FROM docker.elastic.co/elasticsearch/elasticsearch:7.0.0WO..
Centos 7에서 Apache와 tomcat 여러대를 활용한 로드밸런싱 설정 방법입니다. http-devel, tomcat, tomcat-connectors(mod_jk) 를 먼저 설치한 후 아래 설정대로 설정하면 로드밸런싱이 설정 됩니다. 1. 아파치 httpd.conf 설정(%APACHE_HOME%/conf/httpd.conf) 변경 httpd.conf를 열어서 마지막에 아래 두 줄을 추가해줍니다. 12LoadModule jk_module modules/mod_jk.soinclude conf/mod_jk.confcs 2. mod_jk.conf 생성(%APACHE_HOME%/conf/mod_jk.conf) %APACHE_HOME%/conf/ 위치에 위에서 설정한 파일 이름인 mod_jk.conf 파일..