Editer 창에서 마우스 우측 클릭 후 > [ Prompt For Substitution Variables ] 항목의 체크 해제



**** F5 Key로 전체 스크립트 실행시에는 해당기능이 적용되지 않았다.....*****

Character-set이 UTF-8인 환경에서 EUC-KR환경으로 submit을 했을 때 한글이 깨져서 전송이 되는 문제로
JAVA 환경인 경우에는 통상적으로 전송 받는 쪽에서

request.setCharacterEncoding("euc-kr");   
또는 
String Variable_Name = new String( Input_Variable_Name.getBytes("UTF-8"),"EUC-KR") ); 

위와 같은 형식으로 한글에 대한 처리를 해주고는 합니다. 허나 이 방식은 JAVA에서 브라우저에 Data를 바인딩 하는 경우에는 원할하게 처리가 되었습니다만, 브라우저를 이용하는 사용자가 직접 입력한 값이나 Hidden 필드에 Script로 값을 넣어 전송 등, 위와 같은 처리를 해주어도 올바른 값을 전송받지 못하는 경우가 발생 할 수 있습니다. 특히 한글은 항상 깨지더군요.

확인한 방법으로는 Javascript로 Submit을 제어하는 경우 전송이 이루어지는 submit();구문 직전에 아래와 같은 구문을 추가해 주면 문제가 해결되었습니다. submit 직전에 브라우저 document의 설정을 변경하는 방법입니다.

// EUC-KR로 변경했던 Character-set을 폼 전송 후 원래의 Character-set으로 설정하기 위해
// 원래의 Character-set 정보를 변수에 담아 둡니다.
var defCharset = document.charset;    

if (/MSIE/.test(navigator.userAgent)) {
    document.charset = 'EUC-KR';
} else {
    form_name.acceptCharset = 'EUC-KR';
}

form_name.submit();
document.charset = defCharset;
요즘은 cvs보다 svn쪽을 더 선호하는 추세이기는 하지만...
아직 회사에서도 cvs를 사용하는 부분이 있다....

새로운 계정을 추가하고 비밀 번호를 생성해서 passwd파일에 넣어주는 일이 어렵지는 않지만...
어느정도 번거로운 것도 있고... 특히 자주 사용하지 않아서 쉽게 잊어 버린다...
웹을 검색하면서 apache나 perl을 이용해서 암호화된 비밀 번호를 생성하는 것을 공부하다 보니
Windows에서 perl을 이용해서 쉽게 계정을 생성하는 것을 해보려한다.

우선 http://strawberryperl.com/에 가서 원하는 버전을 받는다.
5.10.x.x버전은 아직 버그가 많이 존재한다고 해서 strawberry-perl-5.8.9.2버전의 바이너리 타입을 받았다.
(설치하는 걸 그다지 좋아하지 않기도 하지만... 대부분 바이너리로 실행이 가능하다면 포터블처럼 들고다닐 수 있기에 선호하는 편이다. )

적당한(원하는) 위치에 압축을 풀고,
[strawberry-perl-5.8.9.2\perl\bin\]을 살펴보면 perl.exe 파일을 확인할 수 있다.
perl.exe는 cmd 창에서 실행이 가능하다.
(전역으로 perl.exe를 사용하고 싶다면 환경변수[Path]에 해당 경로를 넣어주면 된다. 아래는 버전확인 부분)

perl의 설치는 이것으로 완료되었다. 이제 cvs에서 사용할 비밀번호 생성 스크립트를 작성해 보자.
이부분은 잘 모르는 부분이라서 아래 출처에서 참고하였으며, 자세한 설명이 되어있는 곳이니 한번쯤은 읽어보기 바란다.

출처 : http://wiki.kldp.org/wiki.php/DocbookSgml/CVS_Tutorial-KLDP  (+ 항목 3.2.2. )

파일명 : cvspasswdgen.pl

#!D:\04.Programs\strawberry-perl-5.8.9.2\perl\bin                           <- perl이 설치된 bin 디렉터리

($u, $p)=@ARGV;
@d=(A..Z,a..z);
$s=$d[rand(52)].$d[rand52];
print $u.":".crypt($p, $s).":cvs\n";


위의 내용을 작성하여 [\strawberry-perl-5.8.9.2\perl] 디렉터리에 저장한다.
( 다른 디렉터리에 저장을 해도 무관하지만 굳이 perl 폴더에 저장하는 이유는 아래의 .bat파일에서 확인할 수 있다. )

위의 cvspasswdgen.pl 만으로도 실행을 할 수는 있지만... perl 의 실행경로를 환경변수에 넣어주지 않았다면 아래 화면과 같이 매번 perl.exe파일의 실행경로를 적어주어야 하는 번거로움이 있다...

필자는 환경변수에 추가해서 사용하는 걸 별로 좋아하지 않다보니 너무 번거로웠다. 때문에 번거로움을 해결하기 위해서 cvsgen.bat라는 파일을 만들어봤다.
(많은 삽질을 했지만.. 덕분에 번거로움이 많이 줄어든 것 만으로도 뿌듯하다.^^;;;;)

파일명 : cvsgen.bat

@echo off
rem ========================================================
rem 아이디 값 입력
rem ========================================================
:select_id
@echo Enter your id
@echo off
set id=
set /p id=

rem 빈 값에 대해 다시 입력처리
if "%id%" == "" goto select_id

rem 한줄 띄우기
@echo.

rem ========================================================
rem 암호 값 입력
rem ========================================================
:select_pw
@echo Enter your passward : 
@echo off
set pw=
set /p pw=

rem 빈 값에 대해 다시 입력처리
if "%pw%" == "" goto select_pw

rem 한줄 띄우기
@echo.

rem ========================================================
rem 이부분의 %cd%값은 현재 실행되고 있는 bat파일의
rem 위치가 된다. 만약 실행 위치를 변경하려면 이곳을 수정한다.
rem ========================================================
%cd%/bin/perl.exe cvspasswdgen.pl %id% %pw%

rem 아래 명령어를 사용하면 실행이 완료되어도 창이 닫히지 않고 그대로 유지된다.
pause > nul

:end


cvsgen.bat 파일은 [\strawberry-perl-5.8.9.2\perl\]위치에 저장해두고 파일을 실행해 보면 아래와 같은 화면을 볼 수 있다.

해당부분을 복사해서 passwd파일에 넣으면 끝~!!

+ Recent posts