'Programming'에 해당하는 글 5건

블록체인은 무엇이길래, 그리고 어떤 이점이 있길래, 많은 사람들이 관심을 가지고 

또한 회자되는 것일까?


그리고 그 기본원리 등을 정리하기 위해 이 카테고리를 개설 한다.


물론 100% 확실한 정보만을 전달 하지는 못하겠지만, 그래도 비트코인이 블록체인 이다라는 인식은 깨졌으면 좋겠다.


WRITTEN BY
Peter Ryu
Crazy Programmer's World

,

이 카테고리를 암호화폐를 리뷰하고, 각각 특성을 기록 하기 위하여 개설 하였다.


암화화폐의 종류가 다양해지고, 또 기술적으로 발전함에 따라 기술적인 관점에서 분석 하는 것 이 필요할 것 같다.


암호화폐가 급등할 것인지, 아니면 급락할 것인지는 이 카테고리에서 언급하지는 않을 것 이지만


상당히 비판적으로 접근 할 것이다.


WRITTEN BY
Peter Ryu
Crazy Programmer's World

,

luhn 알고리즘

Programming 2012. 10. 17. 17:54

카드 숫자 체크하는 알고리즘

신용 카드상의 번호 검증을 위해 사용하는 알고리듬. 

1960년대에 개발된 개방형 공식이다. 원리는 


㉠카드 번호의 우측 숫자부터 매 2번째 숫자마다 2를 곱하고,

㉡위 ㉠에서 2를 곱하지 않은 숫자들과 ㉠에서 나온 숫자들을 합한다(㉠에서 나온 수가 2자리 수이면 2개의 숫자를 합한다). 

㉢위 ㉡에서 나온 수와 그 다음으로 큰 10단위 수와의 차이를 구한다(㉡에서 나온 수가 34이면 다음으로 큰 10단위 수 40과의 차이, 6을 구한다). 

㉢에서 나온 숫자가 카드의 점검 숫자와 일치해야 한다.



http://en.wikipedia.org/wiki/Luhn



Java로 간단하게 짜본 소스

	
public void luhnAlgorithm(){
		String cardNum = "123456789";
		int checkNum = 0;
		int sumCheck = 0;
		boolean times = false;
		for(int i =cardNum.length();i>0;i--){
			int charvalue = Integer.parseInt(cardNum.substring(i-1, i));
			if(times){
				charvalue =charvalue*2;
				if(charvalue > 10){
					charvalue = charvalue/10 + charvalue%10;
				}
			}
			times = !times;
			checkNum += charvalue;

		}
		if(checkNum%10 !=0){
			sumCheck = 10 - checkNum%10;
		}
		System.out.println("check : "+checkNum);
		System.out.println("sumcheck : "+sumCheck);
	}




WRITTEN BY
Peter Ryu
Crazy Programmer's World

,
 
1. test 폴더 생성
  프로젝트에서 오른쪽키를 눌러 New->Source Folder 를 차례대로 선택해 줍니다.
     

 

 

     
폴더명을 test (혹은 원하는 폴더명) 으로 만들어 줍니다. 
          
     
2. junit 4.0 Lib 추가
     프로젝트에 라이브러리를 추가하여야 합니다. 프로젝트에서 오른쪽키 클릭후 Properties 선택
     

    
 빌드패스의 라이브러리를 추가합니다.
Add Library 를 선택해 줍니다.

JUnit을 선택후 Next를 눌러 줍니다.

Junit 4를 선택해 주고 Finish 를 눌러줍니다.

라이브러리에 JUnit 4 가 있으면 추가 완료 되었습니다.

3.테스트 소스코드 생성
테스트로 Icafe 내에있는 JSonArrayConverter 를 테스트 하겠습니다.
JSonArrayConverter파일을 열고 상위 메뉴 file 에서 new -> JUnit Test Case 를 선택합니다.


Source folder 를 아래와 같이 전에 만든 cstore/test 를 선택해 주고 finish 해 줍니다.



테스트파일이 생성되면 템플릿으로 제공되는 내용만 있습니다.
-------------------------------------------------------------

 

package net.ion.icafe.util;

import static org.junit.Assert.*;

import org.junit.Test;

public class JSONArrayConveterTest {

     @Test
     public void test() {
          fail("Not yet implemented");
     }

}
---------------------------------------------------------------
다음과 같이 수정해 줍니다.
---------------------------------------------------------------
package net.ion.icafe.util;

import static org.junit.Assert.*;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;
import org.junit.Test;

public class JSONArrayConveterTest {

        @Test
        public void jsonConverterTest() {
               Map[] tmap = new Map[]{ new HashMap<String,String>()};
               tmap[0].put("test", "test is good");
              JSONArrayConveter jac = new JSONArrayConveter(tmap);
              String json = jac.getToString();
              
               StringBuffer sb = new StringBuffer ();
              sb.append( "{\"list\":").append(json).append("}" );
              
              JSONObject jsObj = JSONObject. fromString(sb.toString());
              
               assertEquals("test is good", ((JSONObject) jsObj.getJSONArray("list" ).get(0)).getString("test"));
       }
}
---------------------------------------------------------------
내용은 JSonArrayConverter에 데이터를 넣고 결과가 맞는지 확인해 보는 것 입니다.
ctrl+F11 로 실행하시거나 파일에서 오른쪽키 Run As -> JUnit Test 를 선택해서 실행합니다.


실행결과 

녹색이 뜨면 테스트 성공, 빨간색은 테스트 실패입니다.

참 쉽죠?

자세한 내용은 김연아 사원의 TDD 개발 책 을 참고하시면 됩니다.
(왜 JUnit 를 사용하는가? 등등)


 


WRITTEN BY
Peter Ryu
Crazy Programmer's World

,

KT_Wlan - 1234567890
헬로우 디 - 534f4b4354
Tbroadnet - 123456789
맥도날드 - 16005252
세븐일레븐 - 2127393302
sk - a123456789
일반 Egg - Password

 

myLGnet, myLG070 : 123456789a , 987654321a ,1234567890 , myLGNetfe07
KT SSID , KT_WLAN : 1234567890 , 123456789a , 1234567890c    //    KT QOOK AP : 1234567890

SK : a123456789

SO070VOIP : 534f4b4354

Tbroadnet : a123456789
      에러 - 신호는 잡혀도 미연결시, MAC 이 원인임
      방법 - http://게이트웨이주소 치면, 관리자 암호 입력에 admin/admin or admin/password 입력.

스타벅스 : 매장별 전화번호 (영수증 참조)   

세븐일레븐 : 2127393302
맥도날드  : 16005252 (매장 배달 번호)
HellowD (헬로우디) : 534f4b4354 
Hellowireless : 534f4b4354  
tobis : 1234

KWI-BxxxxT(택시) : SHOW3382 , password

Egg 택시, 친절콜 와이브로(KWI-B2200T-XXXXX,KWI-2200) : SHOW3382 => 대문자 필수

일반 Egg : Password

디폴트 Egg 뒷번호는 제품 시리얼 넘버와 일치. 이건 디폴트라면 ssid 뒷자리와 동일.
iptime (192.168.0.1), anygate(192.168.10.1), zio : 비번 필요없음. 암호설정시, 주인 임의로 그냥 포기.
admin : password

LINKSYS 설정(192.168.1.1) : 사용자명은 없고, 암호만 admin

 

 SK텔레콤이 연내 전국 1만곳에 설치키로 한 와이파이(WiFi)에 무료로 접속할 수 있는 비밀번호가 공개.
SKT가 정식 오픈하기 이전까지는 비밀번호만 있으면 무료로 무선인터넷을 이용가능.
자사 이용자 및 타사 이용자 모두가 사용 가능
비밀번호는 sktelecom


WRITTEN BY
Peter Ryu
Crazy Programmer's World

,