본문 바로가기

Slack 채널 정리

(87)
go 로 xml 파일 읽어서 db 에 저장 mariaDB의 polygon 타입 이용하기 위해 전처리했던 내용을 정리해서 올렸었는데( 특정 좌표가 어느 위치에 포함되어 있는지 찾기(ST_CONTAINS) ) 그 때 사용했던 python 스크립트를 연습삼아 go lang 으로 포팅해보았습니다. package main import ( "database/sql" "encoding/xml" "fmt" "io/ioutil" "os" _ "github.com/go-sql-driver/mysql" ) type Terminal struct { XMLName xml.Name `xml:"Terminal"` Bounds []Bound `xml:"Bound"` } type Bound struct { XMLName xml.Name `xml:"Bound"` Id strin..
json validation - readTree 간만에 자바 코딩. jackson 사용하고 있다면 json validation 은 readTree 를 이용해서 간단히 할 수 있네요(스택오버플로우에서 찾은 샘플 코드 ^^;). 좀 더 엄격하게 하려면 json 스키마를 이용하여 검증하는데 찾아보니 json-schema-validator 를 많이 사용하는 듯. private boolean isValidJSON(File file) throws IOException { boolean valid = true; try{ ObjectMapper objectMapper = new ObjectMapper(); objectMapper.readTree(file); } catch(JsonProcessingException e){ valid = false; } return v..
제목 붙이기 애매한 shell script 젠킨스 쓰려고 간만에 짜 본 쉘 스크립트. 요건은 이렇습니다. 인스턴스 기동 시키면 이 녀석이 서버와 접속하고 등등해서 정상 작동하는데 좀 시간이 걸립니다(정상 작동 되었는지 상태를 확인할 수 있는게 스크립트에서 사용한 sbc 란 streambase 솔루션에서 제공하는 유틸) sbc 란 명령 유틸로 상태 확인해서 정상 동작할 때 까지 COUNTER 의 횟수만큼 기동 상태 확인하는 기능을 합니다. 크게 어렵지 않은건데 점심 시간 날려 먹게한 놈이 두 군데 있었으니 1. sbc -p $1 status | grep -c "ERROR" 로 간단히 구현했는데 결과가 의도한대로 안 나와서 ... 한참을 헤매다가 2>&1 이거 추가하고 나서야 정상 작동 2. check_process "12102" echo "$?" ..
node.js child_process 한글 출력 문제 node.js child_process 이용해서 윈도우 명령어 실행해보니 한글 깨지는 문제 발생. 이것저것 해봤지만 해결 안돼서 일단 미봉책으로 ... var exec = require("child_process").exec; exec("chcp 65001 | dir/w", function (err, stdout, stderr) { console.log(stdout); ... }); chcp 65001 는 콘솔창 페이지 코드를 utf-8 로 바꿔주는 용도. 문자열의 charset 을 바꿔주는게 아니니 출력 메시지가 아예 영문으로 바뀌는게 흠이긴 하지만. 참고. node.js 에서 외부 애플리케이션을 실행하는 기본 방법. https://dzone.com/articles/understanding-execfi..
powershell 로 winrm 이용하는 예 오늘 작업한 powershell 로 winrm 이용해서 원격 컴에 현재 날짜시간으로 디렉토리 생성한 후에 생성한 디렉토리에 로컬 파일을 복사해넣는 스크립트 중 중요 부분입니다. $PSSession = New-PSSession -ComputerName 202.***.***.** -Credential "로긴ID" $RemoteDir = "D:\workspaces\Deployment" Invoke-Command -Session $PSSession -ErrorAction Stop -ScriptBlock {param($param1) cd $param1} -ArgumentList $RemoteDir $CUR_DATE = (get-date).toString('yyyyMMddHm') Invoke-Command -Ses..
grep, pgrep, fgrep 가령 특정 프로세스 상태를 보려면 이런 식으로들 할 것이다. crond 프로세스를 살펴보려면 ... % ps aux | grep crond 이 방식의 단점은 grep 이 crond 프로세스 뿐 아니라 grep crond 로 실행된 프로세스까지 잡아서 보여준다는 점.오늘 배운 간단한 grep 팁. % ps aux | grep [c]rond 이렇게 하면 깔끔하게 crond 프로세스만 딱 잡아낸다. 왜? '[c]' 는 정규식으로 내부 파싱되기 때문에 'grep [c]rond' 는 필터링이 되버린다.덤으로 ... 1. % ps aux | fgrep [c]rond 으로 하면 어떻게 될까? .... 'fgrep [c]rond' 으로 검색한 자신의 프로세스만 잡힌다. 왜? fgrep 은 문자열로만 검색하므로 속도가 ..
정규식 ([\s\S]?) 정규식은 진짜 애물단지인게 사용하려 할 때마다 문법 찾아봐야 되서 ㅜㅠ 오늘도 누가 질문한 문제 해결한거 기억 차원에서 기록해봅니다. 두 단어가 들어간 문장을 찾으려 하는데 문제는 이게 여려 줄로 된 문장인 경우. 가령, 한 줄로 된거라면 abc.xyz 식으로 찾으면 되는데 여러 줄이 되면 이걸로는 안됩니다('abc'와 'xyz'가 다른 줄일 ㄸ0). 이럴 땐 ([\s\S]?) 패턴을 쓰면 됩니다. 딴 부분은 굳이 설명 안해도 될거고 '?" 는 정규식에서 not greedy 한 검색할 때 쓴다는거 기억하시죠? ㅎ
intelliJ 변수 할당 핫키 코딩 동영상 보는데 순식간에 변수 할당하는거 보고 기능 찾아봄. https://blog.jetbrains.com/idea/2010/11/smarter-and-faster-introduce-variable-in-java/ 가령 메서드 콜하는 구문에서 Ctrl + Alt + V 누르면 자동으로 리턴값 변수 생성해준다. 이런거 보면 intellij 단축키 공부부터 해야겠다는 생각이 ... 이클립스에서는 이런 기능 어떻게 쓰는지 알려주세요.