Groovy를 사용하면 컬렉션을 매우 편리하게 다룰 수 있는데요, 그 중에서도 배열이나 리스트를 정렬하는 것은 자주 사용되는 작업 중 하나입니다. Groovy에서는 이러한 정렬 작업을 간단한 코드 몇 줄로 쉽게 처리할 수 있습니다. 오늘은 Groovy에서 배열을 오름차순과 내림차순으로 정렬하는 방법을 알아보겠습니다. 배열 정의 및 정렬하기 먼저 정렬할 배열을 정의해보겠습니다. 여기서는 정수로 이루어진 간단한 배열을 사용해보겠습니다: def array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] 오름차순으로 정렬하기 Groovy에서 배열을 오름차순으로 정렬하는 가장 간단한 방법은 sort 메소드를 사용하는 것입니다. 이 메소드는 배열의 원소를 자동으로 오름차순으로 정렬해줍니다: def ..
개요 Server에서 Server 로 데이터를 옮길 경우 매우 귀찮고 힘들다. 로컬이나 게이트웨이 서버에 내렸다가 올리는 그런 귀찮은 방법들.. Python 의 SimpleHTTPServer 를 이용하면 매우 쉽게 옮길 수 있다. 방법 서버 IP 를 확인한다. $ ifconfig 아래와 같은 명령으로 웹서버를 띄운다. $ python -m SimpleHTTPServer 8000 브라우저에서 잘 보여지는지 확인해 본다. http://:8000 파일을 받을 서버에서 wget 을 이용하여 다운로드 한다. $ wget http://:8000/files/test.log
import socket import sys import os try: hosts = os.environ['hosts'] print('=============================================') for host in hosts.replace('\n',' ').replace(',', ' ').split(): ip = socket.gethostbyname(host) print('{}\t{}'.format(host, ip)) print('=============================================') except IndexError as idxErr: print('Usage : python3 get_ip.py ')
https://stackoverflow.com/questions/32017527/access-config-values-in-flask-from-other-files manage.py myapp/ __init__.py config.py views/ __init__.py login.py ... 위 구성에서 다른 파일에서 해당 config 값을 불러오려면 아래와 같이 하면 된다.1. 해당 파일에서 from flask import current_app 2. config.py 파일에서 DEBUG 키 정의3. print(current_app.config['DEBUG'] confilg.pyDEBUG=True new_file.pyfrom flask import current_app print(current_app .c..
GIT : https://github.com/yuku-t/jquery-textcomplete $.fn.mention = function(param, callback){ // JSON 은 '아이디|이름|소속'으로 구성됨 var url = [주소]; var __this = this; $.getJSON(url, function(jdata){ $(__this).textcomplete([ { mentions: jdata.data, match : /\B@([\.\w]*)$/, search: function (term, callback) { callback($.map(this.mentions, function (mention) { if(mention.indexOf(term) === 0){ var arryMention..
Ajax 를 이용할 때 로딩 이미지를 보여주는 기능을 만들어 보자.이미지는 Bootstrap3 를 이용하였다. 사용법// 초기화 및 시작var loading = new AjaxLoading('list_id');// 종료loading.end(); function lodingImgTop(){ var h = document.documentElement.clientHeight; var y = (window.pageYOffset) ? window.pageYOffset : (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : (document.body) ? document.docume..
/** [Bootstrap3 paging html] totalSize : 총 건수 pageNum : 현재 페이지 countPerPage : 한페이지에 출력할 건수 **/ function pagingHtml(totalSize, pageNum, countPerPage) { var divisionVal = Math.floor(totalSize / countPerPage); var remainderVal = Math.floor(totalSize % countPerPage); if (remainderVal === 0) pageSize = pageSize - 1; var pageSize = divisionVal + 1; if (totalSize === 0) pageSize = 1; var nanugi = Math...
체크박스 체크 여부.is 와 .prop 를 통해서 체크여부를 파악할 수 있음 $('#inpt').change(function(){ var $input = $(this); console.log( $input.prop('checked') ) // true/false console.log( $input.is(':checked') ) // true/false }); JSON키 개수 구하기Object.keys(JSON_DATA).length
다운로드 : http://pecl.php.net/package/pecl_http 위 사이트에서 맞는 버전을 잘 골라 다운로드 한다.PHP 버전과 OS 버전을 잘 맞춰서 골라야 한다.필자는 설치하고자 했던 서버가 Linux RHEL5 였는데 curl 버전이 안맞아서 최신 버전이 설치되지 않아서 1.7.6 버전으로 설치하였다. 먼저 PHP가 설치되어야 한다. 설치: 여기서 $PHP_HOME 은 PHP설치한 위치임. 1. 다운로한 파일 디렉토리로 이동 후 아래 구문 실행 (여기서 $PHP_HOME 은 PHP설치한 위치)# $PHP_HOME/bin/phpize 2. 1번을 실행하면 configure 파일이 생성됨# ./configure -with-php-config=$PHP_HOME/bin/php-config ..
ex) http://mcpaint.tistory.com:8080/list.jsp?param1=val#1 location.protocal : http:location.port : 8080location.search : ?param1=vallocation.hash : #1location.href : http://mcpaint.tistory.com:8080/list.jsp?location.pathname : /list.jsp
// FF에서만 key event가 정상적으로 먹지 않는다. 아래와 같이 따로 해줘야 함 // 발췌 : http://bongdal.tistory.com/12 // IE function KeyCode(){ alert(event.keyCode); } // FF function KeyCode(e){ alert(e.which) } // cross browsing document.onkeypress = function(e){ var result = ""; if(typeof(e) != "undefined") result = e.which; else result = event.keyCode; alert(result) }
logger : 로그 정보 출력csrf : CSRF 보아을 수행basicAuth : 기본적인 인증을 수행bodyParser : POST 요청 매개 변수 추출cookieParser : 쿠키를 분해session : 세션 처리 수행compiler : 커피스트립트, Sass, Less 컴파일러를 설정methodOverride : 다양한 요청 방식을 수행할 수 있게 함responseTime : 응답 시간 계산router : 페이지 라우터를 수행staticCache : Static 미들웨어를 위한 메모리 캐시 층 생성static : 특정 폴더를 서버 루트 폴더에 올림directory : 서버 디렉토리 구조를 보여 줌vhost : 가상 호스트를 설정favicon : 파비콘을 생성limit : POST 요청 데이터를 ..
EJSvar http = require('http'); var fs = require('fs'); var ejs = require('ejs'); // custom tag ENV //ejs.open = ''; http.createServer(function(req,res){ fs.readFile('HTML.ejs','utf8',function(error,data){ res.writeHead(200,{'Content-Type' : 'text/html; charset=utf-8'}); res.end(ejs.render(data)); }); }).listen(9999); * http 대신 connect를 사용해도 된다. var connect = require('connect'); var fs = require(..
view 페이지는 상관이 없다만...js 수정 시에 다시 #node xxx.js 를 수행해야 하는 번거로움이 존재한다.nodemon을 이용하면지속적으로 파일 수정되는 것을 모니터링 하여 파일 수정시에 재기동 없이 바로 적용 가능하다.일종의 auto deploy라고 생각하면 되겠다. 설치# sudo npm install nodemon -g 실행- 기존의 # node xxx.js 가 아닌 아래와 같이 수행하면 된다.# nodemon xxx.js
발췌 : http://nodeqa.com/nodejs_ref/5 Winston 소개이번 cookbook은 logging에 대한 내용입니다. node는 독립적인 어플리케이션 혹은 웹서버가 될 수 있습니다. apache, nginx등 모든 솔루션에는 기본적으로 logging 을 하고 있습니다. 이것이 귀찮아서 console.log으로 남기고, stdout + logrotate 으로 땜방하는 형식으로 logging 하는 경우를 저도 처음에 겪어 보았습니다. 하지만, 이래서는 안되겠더군요.자 그럼 multiple transport (Console, File, remote...)를 지원하는 winston 에 대해서 알아보겠습니다. 참고로 winston wiki에서 실무에 실제 사용중인 부분과 부가적으로 유용한 부..
아래와 같이, fs.readFIle()을 사용하면 HTMLPage.html 페이지 파일 수정해도 적용이 안된다..js 파일을 다시 시작해야 함.. (# node app.js)당연한 건데.. 오타 있는 줄 알고 소스만 엄청 보는 멍청한 짓을..ㅡ..ㅡ; [app.js]... var server = http.createServer(function(req,res){ fs.readFile('HTMLPage.html',function(error,data){ res.writeHead(200,{'Content-Type':'text/html'}); res.writeHead(200,{'charset':'utf-8'}); res.end(data); }); }).listen(52273); ...
function getPosX(obj){ var tmpX = 0; if (obj.offsetParent) { do { tmpX += obj.offsetLeft; } while(obj = obj.offsetParent); } return tmpX; } function getPosY(obj){ var tmpY = 0; if (obj.offsetParent) { do { tmpY += obj.offsetTop; } while(obj = obj.offsetParent); } return tmpY; }
PointsPixelsEmsPercentPoint(Photoshop) / GulimPoint(Photoshop) / Dotum6pt8px0.5em50%8pt, 9pt8pt7pt9px0.55em55%10pt9pt, 10pt7.5pt10px0.625em62.5%11pt11pt8pt11px0.7em70%12pt, 13pt12pt9pt12px0.75em75%14ptx10pt13px0.8em80%15pt13pt10.5pt14px0.875em87.5%16pt, 17pt14pt, 15pt11pt15px0.95em95%18pt16pt12pt16px1em100%19pt17pt13pt17px1.05em105%20pt, 21pt18pt, 19pt13.5pt18px1.125em112.5%x20pt14pt19px1.2em120..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class LinuxCommander { public static String exec(String command){ String result = ""; Runtime rt = Runtime.getRuntime(); Process p = null; StringBuffer sb = new StringBuffer(); try{ p=rt.exec(command); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String cl = n..
- Total
- Today
- Yesterday
- vagrant
- 엔서블
- Linux
- DevOps
- 플레이북
- 엔시블
- PostgreSQL
- Ansible
- 쓰레드덤프
- Nexus
- iTerm2
- 파이프라인
- 젠킨스
- rsync
- rundeck
- JVM
- 데브옵스
- Docker
- ssl
- Thread Dump
- Playbook
- Config History
- URL Encoding
- 리눅스
- nginx
- Shell Script
- groovy
- Password manager
- Jenkins
- openssl
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |