엔지니어 230

futex 함수 (Fast User muTEX)

strace로 프로세스 상태를 체크하다가 보게 되었습니다. FUTEX 란?   출처 : http://www.hanbit.co.kr/preview/1492/sample_chap01.pdf리눅스 커널 2.6에는 새로운 프로세스 간의 통신으로 FUTEX라는 것이 있습니다. 이것은 동일 머신 상의 복수 프로세스 간에 잠금(Lock) 처리를 합니다. 동일 페이지를 프로세스에 매핑하고, 그 위에 잠금 변수를 공유하게 함으로써 경합이 발생하지 않는 한 시스템 콜 개입 없이 잠금 처리를 할 수 있습니다. 많은 프로 세스나 스레드가 협조하여 동작하는 응용 프로그램에서는 매우 유용한 구조입니다. FUTEX_WAIT ?                           출처 : https://meenakshi02.wordpre..

엔지니어 2016.02.04

org.codehaus.plexus.classworlds.launcher.launcher 못 찾고 maven 실행 불가

MAC에서 brew install maven 으로 설치한 이후 mvn 명령을 수행했더니 에러가 계속 발생. org.codehaus.plexus.classworlds.launcher.launcher을(를) 찾거나 로드할 수 없습니다 원인은 ~/.bash_profile에 설정한 M2_HOME이 잘 못되었다.brew로 설치한 것의 버전은 3.x.x이므로 M3_HOME으로 설정해야함. export M3_HOME=/usr/local/Cellar/maven/3.3.9export M3=$M3_HOME/bin 설정한 이후로 정상 동작함.아무래도 환경변수 설정은 버전에 의존하지 않게 해야할 것 같다.나중에 4.x.x 버전나오면 같은 오류 반복될지도 모르니..

엔지니어 2016.02.02

public static 의미

출처 : http://stackoverflow.com/questions/2390063/what-does-public-static-void-mean-in-javapublic - it can be called from anywhere 아무데서나 호출할 수 있다. static - it doesn't have any object state, so you can call it without instantiating an object 객체 생성 없이 변수나 함수를 사용 할 수 있다. static이 조금 난해해보여 더 찾아봄.출처 : http://rockdrumy.tistory.com/214 JAVA1. 클래스안의 멤버변수가 모든 인스턴스에 공통으로 사용하는 경우 -> 클래스 안의 전역변수..라고 이해하면 되려나....

엔지니어 2016.01.29

모듈이 없는 경우

mojo 라이브러리를 받아서 설치하는 과정에 경고가 발생함. $ perl Makefile.PLWarning: prerequisite IO::Socket::IP 0.37 not found.Writing Makefile for MojoliciousWriting MYMETA.yml and MYMETA.json MAC에서 수행, 내 PC에 내가 admin이므로 관리자 권한으로 설치함.모듈을 못 찾으니 찾을 수 있도록 그 모듈을 설치함.$ sudo perl -MCPAN -e shell cpan[1]> install IO::Socket::IPReading '/Users/jeonbyeong-u/.cpan/Metadata' Database was generated on Thu, 28 Jan 2016 19:29:02 G..

엔지니어 2016.01.29

[Intellij]com.google.common 패키지를 못 찾는 경우

출처: http://stackoverflow.com/questions/7065402/how-to-add-external-library-in-intellij-idea 1. 해당 라이브러리 다운로드https://code.google.com/p/guava-libraries/ 2. 작업중인 경로에 libs 폴더 생성 후 다운 받은 jar 파일을 둠 3. Intellij에서 컴파일을 하거나 refresh 수행 하여 좌측에 libs가 보이는지 확인 4. 다운 받았던 파일이 보이면 마우스 우클릭, Add as Library선택 시험 이후에는 추가했던 라이브러리를 global library로 변경함. 5. 정상적으로 컴파일 및 run 확인import java.util.*; import com.google.common...

엔지니어 2016.01.28

PERL 아파치 로그 정규식 라이브러리

참조: https://github.com/PeterHickman/Apache-LogRegex MAC에서 PERL로 구현해서 시험함. Apache-LogRegex에서 LogRegex.pm만 가져다가 Apache 디렉토리에 옮겨두고 시험함. 아래 main.pl 파일로 아파치로그 1줄에서 각각의 정보를 가져옴. #!/usr/bin/perl # use strict; use diagnostics; use warnings; use Apache::LogRegex print "=== test ===\n"; my $line1 = '212.74.15.68 - - [23/Jan/2004:11:36:20 +0000] "GET /images/previous.png HTTP/1.1" 200 2607 "http://peterhi...

엔지니어 2016.01.27

PERL 확장자 *.pm *.pl 차이

.pl : perl script.pm : perl script module 두 확장자의 perl 파일 해석은 동일함..pm은 특정 디렉터리안에 파일을 두고 모듈로서 라이브러리 처럼 사용. 예시) ./Apache/LogRegex.pm ./main.pl 2개의 파일이 있다면 pm에 선언된 내용은 pl 파일에서 Apache::LogRegex 이런 형태로 호출되어야 한다. 참고: http://stackoverflow.com/questions/3402821/in-perl-what-is-the-difference-between-a-pm-perl-module-and-pl-perl-script 작은 시험용이면 동일 디렉터리에 있지만따로 지정된 경로를 사용하고 싶다면 환경변수에 path 지정하거나-I 옵션으로 지정한다...

엔지니어 2016.01.27

sh, bash 스크립트의 if문 사용할 때 추가 조건/옵션 항목

스크립트 작성할 때 if 조건문의 옵션들.. 문법#!/bin/sh if [ -f "$1" ] then echo "$1 is a file" else echo "$1 is not a file" fi String ComparisonDescriptionStr1 = Str2Returns true if the strings are equalStr1 != Str2Returns true if the strings are not equal-n Str1Returns true if the string is not null-z Str1Returns true if the string is nullNumeric ComparisonDescriptionexpr1 -eq expr2Returns true if the expression..

엔지니어 2015.12.10