본문 바로가기

설명18

linux svn status 중 ! 파일 전체 삭제 설명 및 예제 svn status 중 ! 파일 전체 삭제 svn commit 전 svn status를 통해 파일들의 상태를 확인하는데 상태가 !(느낌표)인 경우가 있다. 이는 repository 에는 파일이 존재하지만 local 에는 파일이 존재하지 않는다는 표시인데, 필요가 없어서 지운 파일인 경우에는 repository에서도 delete를 해줘야 한다. linux shell에서 svn 은 cli(command line interface) 특성상 delete를 하나하나 지정해줘야 하는 불편함이 있다. 몇 개 안되면 복사 붙여 넣기로 대충 처리할 텐데 수많은 파일이 삭제되고(!), 수많은 파일이 추가되고(A), 파일이 변경되고(M), repository에 없는 신규 파일이 생겼다던지(?) 그런 경우에는 delete 지.. 2021. 12. 30.
linux awk 사용법과 예제 설명 awk(오크; Aho Weinberger Kernighan) - awk의 기본 기능은 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력하는 것 1. 사용법 Usage: awk [POSIX or GNU style options] -f progfile [--] file ... awk [POSIX or GNU style options] [--] 'program' file ... Examples: awk '{ sum += $1 }; END { print sum }' file awk -F: '{ print $1 }' /etc/passwd 2. 설명 - awk는 패턴 처리 명령어로 직접 사용자로부터 입력을 받거나 지정한 파일을 가공하여 표준 출력한다. - 표준 출력을 리다이렉션 할 수 있다. - 검.. 2021. 12. 29.
sshpass 를 이용한 ssh 접속 방법 설명 sshpass 를 이용한 ssh 접속 방법 sshpass는 비대화형으로 ssh 비밀번호를 입력해주는 명령어이다. 우선 sshpass 가 설치되었는지 확인한다. dpkg -l | grep sshpass iisshpass1.05-1amd64Non-interactivessh 설치가 안되어있다면 apt-get 을 이용하여 설치하자. sudo apt-get install sshpass [sudo] password for muabow: 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 sshpass is already the newest version (1.05-1). 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: libexpat1:i386.. 2021. 12. 28.
[PHP] array_walk_recursive와 배열 순회 탐색 소스코드 공유 array_walk_recursive, 배열 순회 탐색, 전체 경로 찾기 array_walk_recursive - 전체 배열을 포인터 위치와 상관없이 탐색한다. - 모든 요소에 콜백 함수를 사용할 수 있다. - 사용자가 정의한 함수를 재귀적 사용이 가능하다. 쉽게 얘기하면 인자로 주어진 배열을 구성하는 모든 요소의 마지막 key/value를 찾아내 준다. 그리고 각 요소에 대한 함수를 정의할 수 있다. nested json format처럼 구조적으로 단순 패턴화 할 수 없는 경우 사용된다. array_walk_recursive 포맷 array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool array_wal.. 2021. 12. 28.
[javascript] jquery multiple select 예제와 소스코드 공유 jquery multiple select jquery를 사용할 때 가장 많이 사용하는 기능은 아마 event bind(e.g. click, change..)와 selector 가 아닐까 싶다. 특히 다중의 attribute를 선택할 때 빈번하게 사용하는 기능의 샘플을 정리해본다. name_1 name_2 name_3 id_1 class_1 selector는 id(#)와 class(.)를 키워드로 지정할 수 있고 그 외의 태그에는 name을 사용하면 된다. 더욱 자세한 설명은 jquery api 문서를 참고하면 도움이 된다. https://api.jquery.com/category/selectors/ Selectors | jQuery API Documentation Select all elements th.. 2021. 12. 26.
[javascript] jquery ajax 예제와 소스코드 공유 jquery ajax 소스 코드 $.ajax({ type: "POST", url: _target, data: _args, async: false, success: function(data) { if( data != null ) { result = data; } } }); jquery ajax를 POST 타입, sync ajax를 구성하여 data를 송수신하는 함수이다. ajax 내 파라미터의 추가/삭제 그리고 파라미터 값의 수정을 통해 sync/async 또는 error handle 및 success 외 행동들도 정의할 수 있다. 예제 코드 class CommonFunc { constructor() {} makeArgs(_key, _value) { var args = "&" + _key + "=" + _.. 2021. 12. 26.
[C/C++] signal handler library 활용과 소스코드 공유 signal handler library C/C++ 에는 signal.h 를 사용한 signal 함수가 존재한다. 시스템 인터럽트 외 여러 상황에 사용할 수 있기 때문에 필수로 시그널 처리를 하게 된다. 가장 쉬운 예를 들면 ctrl + c를 통해 SIGINT를 발생시켜 프로그램을 종료할 때 메모리 반환을 하여 메모리 누수를 막거나 소켓 또는 IO 핸들러들의 상태를 닫아주어 graceful 한 종료를 해야 할 때 사용된다. 수많은 프로그램을 작성하면서 번번이 signal에 대한 정의와 시그널 처리에 따른 콜백 함수 등을 작성하기 귀찮아 라이브러리로 작성하였고 이를 공유한다. https://github.com/muabow/home/tree/main/library/cpp/lib_signal GitHub - .. 2021. 12. 24.
go언어 HTTP get web page 받아오기 예제와 소스코드 golang/go언어 HTTP get, web page 받아오기 이번에 import 해서 사용할 모듈은 3가지다. bufio : buffer 관련 IO 처리를 하는 모듈, NewScanner 함수 사용. fmt : 포맷 모듈, 출력과 관련 함수 제공. net/http : network http 관련 method 모듈, Get 함수 사용. 이번 역시 go는 http 관련 처리가 무척 쉽다. 몇 가지 모듈로 몇 줄만에 훌륭한 기능을 동작하다니 신기할 따름. package main import ( "bufio" "fmt" "net/http" ) func main() { resp, err := http.Get("http://golang.com") if err != nil { panic(err) } defer r.. 2021. 12. 23.