태공이의 라이프
개인적인 이야기들 , IT , 책, 영화 , 여행
IT 이야기 (18)
String 으로 된 xml 파일 xml 처럼 처리 하는 법
반응형

프로젝트를 하다가 xml 파일이 아닌 String 값으로 되어진 xml 태그 파일을 처리 해야 하는 일이 생겼다.

 

xml이라면 파싱해서 쓰면 될 것인데 String으로 담겨 있어서 난감한 상황이었다.

 

인터넷에 구글링 한 결과 해결 방안을 찾게 되었다.

 

		StringBuffer sb      =  new StringBuffer();
        //StringBuffer 만들어서 사용 할 것이기에 StringBuffer 선언
		sb.append("XML 형식으로 되어진 String 파일");
        //선언한 StringBuffer안에 xml 형식 String 파일을 삽입
		DocumentBuilderFactory factory  =  DocumentBuilderFactory.newInstance();
        //Document로 파싱 하여 사용 할 것이기에 DocumentBuilderFactory 선언
		DocumentBuilder builder    =  factory.newDocumentBuilder();
        //DocumentBuilderFactory로 DocumentBuilder
		Document document     =  builder.parse(new InputSource(new StringReader(sb.toString())));
        //sb.toString을 Document 형식으로 저장
        
        
        NodeList taglist     =  document.getElementsByTagName("Tag네임");
        //document 안에서 찾고자 하는 태그값을 가져 와서 NodeList로 저장
		Node tagtext      =  taglist.item(0).getChildNodes().item(0);
        //NodeList는 List 형태 이기에 Node로 변환 하여 저장
        
        
        String Tag =tagtext.getNodeValue();
        // tagtext에 있는 값은 Node로 선언 되어 있어서 getNodeValue()로 String으로 변환 하여 저장

 

복잡한 과정을 거치지만 이것만큼 xml 처리 하기 편한게 없음.

 

NodeList의 경우 같은 이름을 가진 모든 걸 저장 하기에

 

List형태로 처리 하기에 좋은 점이 많아 보임.

 

해당 구문들만 있으면 XML 파싱 처리 하기 좋아 보입니다.

반응형
  Comments,     Trackbacks
비밀번호 정규식을 이용한 체크 로직
반응형

프로젝트를 하던 중 비밀번호 대소문자 , 특수문자 , 숫자, 길이를 체크 해야 하는 로직이 필요 했다.

 

검색을 하던 중 다들 현란한 기술로 정규식을 짜서 사용 하였는데

 

실제로 짜여진 코드들을 보면 특수 문자의 갯수나 대문자나 숫자의 길이를 재는 로직은 없었다.

 

그래서 고민 끝에 새로 짜기로 마음을 먹고 새로 코드를 짜게 되었다.

 

일단 변수들을 선언 하였다.

var pattern1 = /[0-9]/; // 숫자 정규식
var pattern2 = /[a-z]/; // 소뮨자 정규식
var pattern3 = /[~!@#$%^&*()_+|<>?:{}]/; // 특수문자 정규식
var pattern4 = /[A-Z]/; // 대문자 정규식
var str = $("#passwordinput아이디").val();
var pattern1length=0; // 숫자 정규식의 길이를 재기 위해 선언
var pattern2length=0; // 소문자 정규식의 길이를 재기 위해 선언
var pattern3length=0; // 특수문자 정규식의 길이를 재기 위해 선언
var pattern4length=0; // 대문자 정규식의 길이를 재기 위해 선언
var strlist = str.split(""); // 문자들의 길이를 재기 위해서 input value를 split으로 배열에 담음
var PS_min_length ="${DB안에서가져온데이터}"; // DB에서  최소 길이 값을 가져와서 변수에 저장
var PS_special_char ="${DB안에서가져온데이터 }"; // DB에서  특수문자 길이 값을 가져와서 변수에 저장
var PS_upppercase ="${DB안에서가져온데이터 }"; // DB에서  대문자 길이 값을 가져와서 변수에 저장
var PS_lowercase = "${DB안에서가져온데이터  }"; // DB에서  소문자 길이 값을 가져와서 변수에 저장
var PS_digit="${DB안에서가져온데이터  }"; // DB에서  숫자 길이 값을 가져와서 변수에 저장

기본 적으로 받아야 하는 것들과 비교해야 할 값들이 많아서 다 선언 해 주 었습니다.

 

선언 한 변수들을 조건문과 반복문을 이용 해서 비교할 예정 입니다.

 

 

$("#비밀번호입력input아이디").change(function(){ //input 박스를 벗어 나게 되면 발생 하게 만들었습니다.
					
if(!pattern1.test(str) || !pattern2.test(str) || !pattern3.test(str) || str.length < 4 ) // 기본적으로 특수 문자 , 숫자 , 문자와 텍스트의 길이를 측정합니다.
{ 
	for (var i = 0; i < strlist.length; i++) { //배열에 담긴 값을 
		if(  pattern1.test(strlist[i])==true) // 숫자 개수 카운팅
			{
				pattern1length =pattern1length+1;	//true면 카운팅 
			}
									 
		else if(  pattern2.test(strlist[i])==true) //소문자 카운팅
			{
				pattern2length =pattern2length+1;//true면 카운팅
			}
									 
		else if(  pattern3.test(strlist[i])==true) //대문자 카운팅
			{
				pattern3length =pattern3length+1;
			}

		else if(  pattern4.test(strlist[i])==true) //숫자 카운팅
			{
			pattern4length =pattern4length+1;//true면 카운팅
			}
		}
	if(PS_min_length < str.length || PS_special_char < pattern3length || PS_upppercase < pattern4length || PS_lowercase < pattern2length || PS_digit < pattern1length)
			{
				alert("비밀번호는 4자리 이상 문자, 숫자, 특수문자로 구성하여야 합니다.");	 
			}
								 
	return false; 
		} 
		else 
{ 
		return true;
}


});
						
						$("#패스워드비교 input 아이디").change(function(){
							if($("#패스워드 아이디").val()!=$("패스워드비교 input 아이디").val()){
							alert("비밀 번호가 다릅니다.");
							$("#패스워드비교 input 아이디").val(''); //패스워드가 다를 경우 비교할 input 값 비우기
							$("#패스워드비교 input 아이디").focus(); // 커서 이동
							}
						});

 

해당 로직은 패스워드 변경 건으로 작성 하게 되었지만

 

기존 회원 가입 로직에서도 사용 가능 합니다.

반응형
  Comments,     Trackbacks
구글 애드센스 일시정지
반응형

구글의 답변이 왔군요. 일시정지라네요. 제가 클릭한게 문제가 되었다고 합니다.

 

 

2월 22일 까지 정지 된다고 하네요.

 

다행이네요 그래도 영구정지가 아니라서 다시 한번 더 열심히 할 계기가 되었네요.

 

제가 실수로 라도 클릭하지 않게 조치는 취해 두어야 겠군요.

 

다시 한번 더 하면 영구정지라네요.

 

일단은 좋은 경험이 되었습니다. 

 

언제나 실수는 있는 법이지요. 

 

다시 그 실수를 하지 않으면 되니깐요.

 

다들 애드센스 하시면서 자기가 클릭 하는건 기피 하시길 바랍니다.

 

 

반응형
  Comments,     Trackbacks
구글 애드센스 '표시할 수 있는 광고의 수가 제한되었습니다' 문제
반응형

구글애드 센스가 문제가 발생 하였군요. 

 

후 잘 나가고 있었는데 갑자기 하루에 5달러라서 놀랐습니다.

 

왜 인지 몰라서 방문자가 몇 되지도 않는데 왜 이렇게 올랐지?

 

하고 검색하니

1. 구글에서 트래픽 검사를 평가하는 동안 일시적으로 제한

2. 애드센스 계정에서 무효 트래픽 문제 확인

 

두가지 중 하나라고 하더군요

 

1번일 경우에는 몇일 뒤에 풀릴꺼라고 하고요.

 

2번일 경우는 무효트래픽 문제라면 계정 정지라고 하더군요.

 

후 얼마 되지 않지만 10달러를 잃게 될수도 있군요.

 

하지만 저는 당당하니 곧 다시 살아 날것이라고 생각 합니다.

 

실수로 몇번 클릭은 해봤지만 갑자기 저렇게 오른게 저도 이상하다 생각 했는데 제 실수일 가능성도 없진 않으니 마음 졸이긴 하네요 ㅠㅠ

반응형
  Comments,     Trackbacks
주소를 확인하지 않아 지급이 보류 중입니다.?
반응형

오늘 아침에 구글 애드센스를 들어 가니. 이런 문구가 뜨더군요.

 

뭐지? 뭘 잘못 설정 했나? 라고 생각 해서 웹에서 들어 가도 같은 문구가 뜨더라고요.

 

그래서 구글링 했습니다.

 

10달러가 되면 핀 번호를 인증 해서 우편물로 받으면 된다는 구글링!

 

그래서 진행해 보았습니다.

 

그래서 자동 신청이 되었습니다.

 

혹시나 모르니 제대로 주소가 되어있는지 확인해 두셔야 합니다.

 

일단 지급 탭을 클릭 합니다.

 

 

 

지급에는 설정 탭이 있습니다.

 

설정관리를 클릭.

 

 

 

저는 지웠지만 이름 및 주소 탭에 제대로 적혀 있으면 됩니다.

 

한글로 하셔도 오긴 하는데 간혹 안온다 하시더군요. 한달이 지나도 오지 않으면 재발송을 요청 할수 있습니다.

 

pin 번호가 오게 되면 다시 또 포스팅 하겠습니다.

 

시작 한지 얼마 안되었는데 10달러라니! 앞으로 더 열심히 해야겠네요. 100달러를 향해 가즈아~

반응형
  Comments,     Trackbacks