subclipse 유저 변경하기

이클립스에서 svn 플러그인인 Subclipse를 사용할 때, 다른 사람의 아이디로 임시로 사용하다가 내 아이디를 발급 받아서 사용자 변경을 하려고 했는데, 도저히 메뉴를 찾을 수 없었다.

검색해보니 subclipse는 사용자 정보를 저장소 정의할 때 수집하지 않는다, 왜냐면 JavaHL과 SVNKit client adapter가 알아서 필요할 때 다시 물어보기 때문이다 (패스워드 변경됐을 때).

그래서 지금은 캐싱된 정보를 수동으로 지워서 다시 사용자 정보를 입력하는 수밖에 없다.

캐싱된 정보는 윈도우에서는 %APPDATA%\Subversion\auth 에 저장되고 리눅스에서는 ~/.subversion/auth 에 저장된다.

이 폴더를 지우고 이클립스를 재실행하니 다시 로그인 하라는 창이 뜬다.

참고 : http://stackoverflow.com/questions/914895/how-to-change-credentials-for-svn-repository-in-eclipse

이클립스 구버전에서 m2eclipse 설치

이클립스 구버전 사용자들의 고민은 플러그인들이 더이상 이클립스 구버전 용으로 나오지 않는다.

m2eclipse 라는 메이븐 플러그인을 사용하려 했더니 최신 버전의 이클립스만 지원하여 구버전을 설치했다.

http://wiki.eclipse.org/M2E_updatesite_and_gittags

위 사이트에 m2eclipse 구버전부터 신버전까지 골라서 받을 수 있다.


받고 싶은 버전의 p2_url 을 복사하여 이클립스에서 Help > Install New Software 로 가면 설치할 수 있다.



이클립스 기본 인코딩 설정

이클립스 메뉴에서 Window > Preferences 를 선택하면 창이 뜨는데

상단에 encoding 이라고 검색하면, 인코딩 설정할 수 있는 파일들 목록이 나온다.

여기서 property, html, css, jsp 등 파일들의 default encoding을 설정할 수 있다.

아래는 property 파일의 기본 인코딩을 utf-8로 바꾸는 그림이다.


왼쪽에 탭에서 html, jsp, css등 기본 인코딩도 원하는 대로 변경해주면 되겠다.

이클립스 플러그인 제거하기

이클립스 메뉴에서 Help > About Eclipse로 가면


이 창이 뜨는데, 여기서 Installation Details 로 가면


설치된 플러그인들이 나온다. 여기서 제거하고 싶은 플러그인을 Uninstall 하면 된다.

Eclipse is running in a JRE, but a JDK is required

오랜만에 이클립스 셋팅을 했다.

메이븐 플러그인을 설치하고 나서 설정쪽에 가려고 했더니

Eclipse is running in a JRE, but a JDK is required 라는 경고가 떴다.

이클립스 실행하기 전에 eclipse.ini에서 -vm값에 jdk로 설정을 해야 하는데,

어중간하게 밑에 설정했더니 적용이 안되서

맨 위에 설정했더니 경고가 없어졌다.


-vm
C:\Program Files\Java\jdk1.6.0_23\bin\javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

java에서 정규표현식으로 원하는 문자 파싱하기

글 쓰기에 앞서 정규표현식의 기본적인 문법을 알고 있다고 가정하겠다. 로그파일이나 html소스등 파싱해야 할 경우가 종종 생기는데 자바스크립트에서 정규표현식을 사용하여 원하는 문자열을 뽑아오는 방법이다.

"jekalmin 25 male 2014-08-22" 라는 로그가 있다고 가정하고 하나씩 뽑아와보자.

먼저 정규표현식을 작성해야 하는데, 작성할 때 유의할 사항은 뽑아내고자 하는 문자열을 괄호로 감싸야 한다.


위 코드의 실행결과는 다음과 같다.


group안에 0번은 매치되는 문자열 전체,

1번부터는 첫번째 괄호, 2번은 두번째 괄호에 상응 하는 문자열을 뽑아온다.

테스트 코드 주소 :

https://github.com/jekalmin/Jekal/blob/master/java/test/RegexpTest.java

javascript에서 정규표현식으로 원하는 문자 파싱하기

글 쓰기에 앞서 정규표현식의 기본적인 문법을 알고 있다고 가정하겠다. 로그파일이나 html소스등 파싱해야 할 경우가 종종 생기는데 자바스크립트에서 정규표현식을 사용하여 원하는 문자열을 뽑아오는 방법이다.

"jekalmin 25 male 2014-08-22" 라는 로그가 있다고 가정하고 하나씩 뽑아와보자.

먼저 정규표현식을 작성해야 하는데, 작성할 때 유의할 사항은 뽑아내고자 하는 문자열을 괄호로 감싸야 한다.

이제 이 정규표현식을 그대로 자바스크립트로 가져오자.

자바스크립트에서 정규표현식 선언하는 방법은 두가지가 있다.

1. new RegExp(정규표현식)

ex.) var reg = new RegExp("(.+)\\s(\\d+)\\s(male|female)\\s(\\d{4}-\\d{2}-\\d{2})");

여기서는 이스케이프 처리(\ -> \\)를 해줘야한다.

2. /정규표현식/

ex.) var reg  = /(.+)\s(\d+)\s(male|female)\s(\d{4}-\d{2}-\d{2})/;

가능하면 new 보다는 정규식 리터럴인 이 방법을 사용한다.



방법은 두가지이다.

하나는 string의 replace를 이용해서 $1, $2 가 첫번째, 두번째 괄호에 해당하는 문자열을 가리킨다.

두번째는 정규표현식의 exec을 이용하면 array를 리턴하는데, 0번째는 매칭되는 전체 문자열, 그 이후로는 첫번째, 두번째 괄호에 해당하는 문자열을 담고있다.

위의 코드 결과는




이런식으로 나타난다.

테스트 코드 주소 :

https://github.com/jekalmin/Jekal/blob/master/html/test/regexp_test.html



Regex Util - 정규표현식 tool

이클립스에서 정규표현식 테스트할때 사용되는 정규표현식 플러그인이고 보기가 편하게 표기되는 Regex Util 을 소개한다.

설치 방법은 이클립스 메뉴에서 Help > Install New Software 로 간 후에

Add 버튼을 누르면 창이 뜨는데, Location부분에

http://regex-util.sourceforge.net/update/

를 입력하면 아래와 같은 화면이 된다.

이후 계속 다음을 눌러서 설치를 완료하면 이클립스가 다시 실행된다.

설치가 됐으면 이클립스 메뉴에서

Window > Show View > Other 에 가서

regex로 검색하시면 아래와 같은 화면이 될 것이다.

확인을 누르면

이제 개발하면서 테스트 할 수 있는 공간이 생길 것이다.

아래 주소는 Regex Util의 홈페이지 주소이다.

http://myregexp.com/eclipsePlugin.html


[javascript] url parameter handling

url의 파라미터를 유연하게 핸들링하기 위해 고민하다가 JSON.parse와 JSON.stringify 와 비슷하게 만들었다.


jekalURL = {
	parse : function(url){
		var urlParameter = {};
		var httpCheck = /(http|https):\/\/.*/;
		
		if(!httpCheck.test(url)){
			url = 'http://' + url;
		}
		var a = document.createElement('a');
		a.href = url;
		var urlParamString = a.search;
		
		if(urlParamString.length > 1 && urlParamString.charAt(0) == '?'){
			var urlParamArray = urlParamString.substring(1).split('&');
			var i, len, eIdx, urlParam;
			for(i=0, len=urlParamArray.length; i < len; i++){
				urlParam = urlParamArray[i];
				eIdx = urlParam.indexOf('=');
				urlParameter[urlParam.substring(0, eIdx)] = decodeURIComponent(urlParam.substring(eIdx+1));
			}
			
		}
		return urlParameter;
	},
	stringify : function(obj){
		if(typeof obj != 'object'){
			return '';
		}
		var urlPairs = [];
		for(var key in obj){
			urlPairs.push(key + '=' + encodeURIComponent(obj[key]));
		}
		if(urlPairs.length < 1){
			return '';
		}
		return '?' + urlPairs.join('&');
	}
};

위에는 소스코드이고 밑에는 사용예제이다.

var params = jekalURL.parse("http://jekalmin.tistory.com?name=Min&age=25&sex=mail");
console.log(params); // { name : "Min", age : 25, sex : "male" }

delete param.age;
delete param.sex;

param.address="seoul";
console.log(params); // { name : "Min", address : "seoul" }
console.log("http://jekalmin.tistory.com" + jekalURL.stringify(params));

http://jekalmin.tistory.com?name=Min&age=25&sex=male 에서

http://jekalmin.tistory.com?name=Min&address=seoul로 변환하는 예제이다.

콘솔에서 로그를 세번 찍었는데 결과는 


이런식으로 나타난다.

source code : 

https://github.com/jekalmin/Jekal/blob/master/html/urlParameter.html



string을 json으로, json을 string으로 변환

자바스크립트에서 코딩 하다보면 json 구조인 object 타입과 string 타입으로 변환해야 하는 경우가 자주있다.

이 경우 JSON.parse()와 JSON.stringify() 함수로 변환이 쉽게 가능하다.

먼저 쉬운 stringify 함수부터 써보자.


person 이라는 object를 만들어서 string으로 변환하는 코드를 실행해보면


이렇게 잘 변환된다.

하지만 거꾸로 올 때는 조금 까다롭다.


이렇게 네가지의 string을 만들어놓고 firebug의 console에서 JSON.parse() 함수를 이용해서 변환해보자.


person_str4 변수만 정상적으로 parse 됐다.

자바스크립트 안에서 object로 만들때는 네가지 방법 다 가능하지만

JSON.parse() 를 이용할 때는 key와 value가 모두 쌍따옴표로 감싸져야 한다.