정규식 Regular Expression 기초 2/3

Posted by Myoa™
2016. 9. 9. 21:43 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)


정규식 Regular Expression 기초 2/3


문자집합까지 끝을 냈고 이번에는 OR연산 그리고 수량자(*, ?, +)에 대해 알아보겠습니다.


소괄호안에 |(Shift + \키) 를 넣으면 정규식에서의 OR연산이 됩니다.

“월요일 화요일 수요일 목요일 금요일 토요일 일요일”에서

(토|일)요일 로 검색하면 [“토요일”, “일요일”]이 매칭됩니다.


11. 

수량자에 들어가기 앞서 수량자는 크게 *, +, ? 3개로 나눌 수 있습니다.

*는 없거나 무한에 가까울때까지 검색,

+는 무조건 1개이상 이며 무한에 가까울때까지 검색,

?는 앞의 문자가 있거나 없거나 (한글자만) 검색을 하게 됩니다.


쉽게 정리하자면

*는 앞문자를 x번 검색합니다. ( 0 <= x )

+는 앞문자를 x번 검색합니다. ( 1 <= x )

?는 앞문자를 x번 검색합니다. ( 0 <= x <= 1 )


12. 

수량자 *에 대한 예들입니다.

아무개문자 . 와 수량자 *가 만나

문장전체가 하나의 매치로 발견되었습니다.



13. 

수량자 +에 대한 예들입니다.

수량자 +를 이해하기에 적절한 예시가 없어보여 새로운 예시를 들어보겠습니다.

“나는 사과를 2개 먹었다.” 에서

[0-9]+개 먹었다. 라는 식으로 검색하면

[“2개 먹었다.”] 가 검색됩니다.



“나는 사과를 15개 먹었다.” 많이도 먹었군요.

이 문장에서 같은 [0-9]+개 먹었다. 식으로 검색하면

[“15개 먹었다.”] 가 검색됩니다.

하지만

“나는 사과를 one개 먹었다.” 라는 식에서

[0-9]+개 먹었다. 식으로 검색하면

아무것도 발견되지 않습니다.

왜냐하면 “개 먹었다” 앞에 숫자가 1개 이상 오라고 식을 작성했기 때문이죠.

따라서 +는 최소한 해당 문자를 1개 이상 포함해야만 검색이됩니다.


14.

수량자 ?에 대한 예들입니다. 아까보다 더 적절하지 못하네요

마찬가지로 새로운 예시를 들어보겠습니다.


“게임을 하고싶다” 라는 문장과

“게임을 더 하고싶다” 라는 문장 2개가 있습니다.


어떻게 하면 두 문장 다 매치가 될까요?


“더? ”를 ?연산자로 넣으면됩니다. 물론 눈치가 빠르신 분들은 알아차리셨겠지만 *로 동작합니다.


“게임을 더? ?하고싶다” 라는 식은 분명히 “더”라는게 들어갔지만 두 문장다 이상없이 매치가 됩니다.

바로 수량자 ? 덕분에 “더”라는 글자가 들어가도 되고, 들어가지 않아도 되기 때문입니다.

여기서 한가지 보기 싫은부분은 “더? ?”죠. 우리는 더 ?를 원했지만 정규식을 이를 허가하지 않습니다.

따로따로 더가 있거나 없고, 공백이 있거나 없거나로 식을줘야만이 위 문장에서 정상적으로 검색이 가능합니다.


이에 대해 추후 나올 subexpression(하위식)에 해답이 있는데

(더 )?” 라고 식을주면 “더? ?” 와 같은 동작을 하고 이에 조금나아가 “(더 ?)?”로 작성을 한다면

“게임을 하고싶다”

“게임을 더하고싶다”

“게임을 더 하고싶다”

모두 매치가 됩니다 :)



http://myoa.kro.kr/” 라는 주소 문자열에서

https?:\/+w*\.?myoa\.kro\.kr 라는식으로 검색해봅시다.

하나씩 분석해보자면(보기좋게 자르자면)

http s? \/+ w*\.? myoa\.kro\.kr 입니다.


http : 말 그대로 http를 검색합니다.

s? : s 한글자가 있거나 없거나(1개이거나 0개)를 검색합니다.

\/+ : \/(/를 이스케이핑한 것)가 1개이상을 검색합니다.

w*\.? : w가 없거나 또는 여러개거나 그리고 “.”이 있거나 없거나를 검색합니다.

myoa\.kro\.kr : 그리고 마지막으로 메인주소인 “myoa.kro.kr”를 검색합니다.


이 정규식이 찾아 낼 수 있는 주소는 아래와 같습니다.

http://myoa.kro.kr

https://myoa.kro.kr

http://www.myoa.kro.kr

https://www.myoa.kro.kr


갑자기 장황한 식이 나와서 당황할 수 있으나 하나씩 차근차근 곱씹어 보시고, 모르는 것은 질문바랍니다.


15.

다음은 지정 수량자입니다. 사실 지정이라고 부르지는 않지만 의미상 편하게 부르기 위해 지정해봤습니다.

해선 안될 짓중 하나이긴 한데.. 너무 모호해서


수량자 ?는 너무적고 수량자 *는 너무 많다. 싶으면 브레이스( { } )를 이용합니다.

이는 수량을 직접 조절할 수 있으며 가독성에 좀 더 도움이 될 수도 있죠.


사용식은 {x,y}이며 x > y여야 합니다. 강력한 주의사항은 절대로. 절대로 {}안에 공백을 넣어서는 안됩니다.

또한 x나 y를 생략가능하며 문자 하나를 생략하여 단항일 경우 0은 제외하고 사용해야합니다. (infinity loop에 걸림)

{1} : 1개

{2,6} : 2개 이상 6개이하

{5,} : 5개 이상

{,6} : 6개 이하


가장 간단하게 .{5} 라는 식은 아무 문자나 5개를 찾는다 입니다.

따라서 [“One r”]이 첫 번째로 매치가 됐고 그 뒤를 이어서 [“ing t”, “o bri”.......]가 매치가 됩니다.

[els]{1,3} 식은 “e”, “l”, “s”중에 1~3번 반복된 부분을 찾는다 입니다.

그래서 e도 찾아지고 ll, ess가 찾아지는겁니다.


간단하죠?


16.

이번에는 수량자 *, +, ?와 수량자 { }의 상관관계를 배워보겠습니다.


15번을 잘 보신분이라면 각 수량자를 수량자{ }로 표현이 가능하다는 것을 눈치챘을텐데요,

 

* == {0,} #단항이 아니라 0이 올 수 있습니다.

+ == {1,}

? == {0,1}


위에 예시 또한 같은 의미를 담고있습니다.

하지만 보통의 경우 가독성을 위해 수량자 *, +, ?를 주로사용하며 특정 개수일때만 수량자 {}로 지정해서 사용한답니다.


17. 

이번에는 수량자의 특별기능입니다.


“하늘과 땅과 바람과 물과” 라는 문장에서

~~과 들을 추출하려고 합니다.

지금까지 배운바로는 .+과 또는 .*과(추천하지 않음)를 사용할텐데

그렇게 호락호락하게 원하는 결과를 내어주지 않습니다.

왜냐하면 위에 식의 결과는 다음과 같기 때문입니다.

[“하늘과 땅과 바람과 물과”]

왜 그럴까요?


정규식 수량자에는 크게 탐욕적 수량자(Greedy quantifier)게으른 수량자(Lazy quantifier)로 나뉩니다.

기본적으로 수량자를 사용할때는 탐욕적 수량자로 동작합니다. 하지만 수량자 뒤에 ?를 붙이면 게으른 수량자로 바뀌어 동작합니다.

탐욕적 수량자 : 최대한 넓은 범위를 매치시키려고 합니다.

게으른 수량자 : 최대한 좁은 범위를 매치시키려고 합니다.


.+?과를 사용해볼까요?

[하늘과”, “땅과”, “바람과”, “물과]


하나씩 차근차근 생각해보죠.

.+과

.는 아무 문자를 의미합니다.

맨처음 “하”가 매치되겠죠? 거기서부터 + 즉 1개이상의 아무문자를 잡습니다.

언제까지? 로 끝날때까지


늘과 땅과 바람과 물


합쳐서 [“하늘과 땅과 바람과 물과”]가 매치됩니다.

한 마디로 가장 크게잡는거죠 .+ 의 범위를


하지만 .+?과는 아까 말한것처럼 가장 좁은 범위를 매치시키려고 합니다.

.는 아무 문자를 의미합니다.

역시 맨처음 “하”가 매치됩니다. 거기서부터 +. 1개 이상의 아무문자를 잡습니다.

가 나올때까지


중요한부분은 나올때까지입니다.


------

------

.....


합쳐서 [“하늘과”, “땅과”, “바람과”, “물과”] 총 4개의 그룹으로 매치됩니다.



그렇다면

r.?? 식은 어떻게 해석될까요?

r 그리고 아무문자(.)인데 있어도 되고 없어도(0 or 1) 됩니다. 근데 최소로(?) 잡겠답니다.

당연히 최소로 잡으려면 아무문자가 0개여야하겠죠?

그래서 결과적으로 이식은 r 단일문자만 매치하게됩니다.





마지막 탐욕적 수량자랑 게으른 수량자를 너무 장황하게 설명했는데 수량자는 잘못이해하고 잘못사용하면 infinity loop에 빠지는건 둘째문제이고 논리적 오류가 어디서 발생했는지 못찾아서 골때리는 경우가 허다합니다.

따라서 수량자를 적절하고 잘 사용하고 다음에 배울 하위식(subexpression)과 적절히 조합한다면 자신에게 필요한 정규식이 완성될 것입니다.


기초 2/3편을 마치겠습니다. 수고하셨습니다.

정규식 Regular Expression 기초 1/3

Posted by Myoa™
2016. 9. 9. 18:24 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)


정규식 Regular Expression 기초 1/3


http://zvon.org/comp/r/tut-Regexp.html에 기반하여 설명합니다.

정규식 테스트는 http://regexr.com 을 이용하시기 바랍니다.


타 언어나 이론들을 배우기 위해서는 제 개인적으로 2가지 플랜이 존재합니다.

하나는 수많은 예제를 보면서 메커니즘을 이해하고 잘 정돈된 문서를 보는것과

다른 하나는 처음부터 문서를 정독하면서 마지막 장까지 나아가는 방법입니다.

콕 집어 어떤게 더 좋다 라고는 말할 수 없겠지만 정규식같이 사용되는 기호들이 생소한 경우에는 전자를 이용한 방법이 더 좋았습니다. 개인적으로도 그렇게 공부했고, 기초, 중급 강의를 진행하면서도 위에 사이트에 나와있는 예제들을 전부 풀어쓰고 후에 연산자들에 대해 기술하도록 하겠습니다.


기본적으로 식은 /“정규식표현”/g 이며 특수한 상황에서 //i //gi //gim 등에 대해 사용방법도 끝에 설명하겠습니다.

첨언으로 vim에서 /(슬래시)를 입력함으로써 //g의 형태를 사용하겠다는 의미에서 검색하는 단축키가 되겠습니다.



1.


정규식은 기본적으로 case sensitive(대소문자 구별)합니다. 그 말은 hello와 Hello가 서로 다른 식이라는 것을 의미합니다.

“Hello, world” 라는 문장에서 Hello라는 식으로 검색했을 때는 “Hello, world” 부분이 매치가 되네요. 하지만 hello라는 식으로 검색했을 때는 아무 부분도 매치가 되지 않습니다.


다시 한 번 강조하지만 정규식의 기본옵션에서는 대소문자를 구분합니다.


2.

정규식에서는 모든 문자를 패턴을 위한 문자로 인식합니다. 무슨말인고 하면 “ ” 와 “  ”는 다르고 “.” 과 “..”는 다르다는 말이죠. 공백, 탭, 개행 전부다 이스케이핑(추후 나옴)없이는 전부 단일문자로 인식합니다.

위에 케이스에서도 “Hello, world!”를 Hello, world로 검색하면 “Hello, world!”가 매치 되지만

Hello,  world를 검색했을경우에는 아무것도 매치가 되지않습니다.


3. 

본격적으로 정규식 기호들에 대해 나오기 시작합니다.

^과 $는 각각 문장의 첫, 끝을 의미합니다.

“사과는 사과” 라는 문장에서


^사과 로 검색 시 “사과는 사과”

사과$ 로 검색 시 “사과는 사과

가 매치됩니다.


당연히 사과^ 와 $사과 는 컴파일 에러는 나지 않지만 실행중 논리에러가 나게되죠.

(문장에 시작앞에 다른 문자가 존재할 수 없으며, 문장에 끝뒤에 다른 문자가 존재할 수 없죠)


그냥 사과 로 검색하면 “사과사과”가 매치되며 파이썬 정규식 모듈에서는 이를 list의 형태로  [“사과”, “사과”]를 반환합니다.



4.

앞서 ^과 $는 각각 문장의 처음, 끝을 나타낸다고 말씀드렸습니다.

그런데 실제로 ^이나 $라는 문자가 필요할 땐 어떻게 할까요?

바로 이때 이스케이핑을 하게됩니다.

\(백슬래쉬)를 사용하려는 기호나 문자앞에 배치하면 그 기능이 이스케이핑되어(escape. 키보드의 esc가 escape) 새로운 기능으로 작동하게됩니다.


바로 \^, \$ 처럼요.


위에 예제 자체는 훌륭하나 배우는 입장에서 봤을때는 영 이해하기가 귀찮은 예제입니다.

예제를 살짝 수정해보겠습니다.


^^ 오늘도 좋은하루입니다.~^^!


이 문장에서 ^^를 찾으려면 어떻게 할까요?

\^\^로 검색하면되겠죠.


^^ 오늘도 좋은하루입니다.~^^!” 2개가 매칭됐네요.

아무래도 우리는 앞에 ^^만 구해야 할거같습니다.


^\^\^로 검색해보겠습니다.

^^ 오늘도 좋은하루입니다.~^^!”

정확하게 원하는 결과가 나왔습니다.


$의 경우도 같습니다. $문자 자체를 사용하려면 \$.

$라는 문장맨끝을 의미하는 기호로 사용하려면 $로 사용하시면됩니다.


만약 보기가 불편하다고 ^ \^\^ 와 같이 식을 정의하면 아무것도 검색이 되지않습니다.

이것은 마치

테스트\n 과 테스트 \n이

“테스트”

“테스트 ”처럼 둘은 엄연히 다른 문자열 리터럴을 의미하기 때문에 보기 불편하더라도 익숙해지도록 노력해야합니다.


5.

“.” 은 any character. 즉 아무개 문자를 의미합니다.

.에는 거의 대부분이 해당됩니다. 영소대문자, 숫자, 한글, 특수문자, 공백 등..

하지만 포함이 안되는 것이 있죠. 바로 new line(개행문자. 즉, 엔터로 개행한)입니다. new line을 포함해서 찾는방법은 따로 있는데 지금 설명할 타이밍이 아닌거 같습니다.


맛보기로만 보여드리자면

[\w\W] 또는 [\s\S] 등으로 정의할 수 있습니다.


Case2에서 ...... (점 6개)를 검색하는데 왜 powerf까지만 검색이될까요?

이유는 ul!!!의 길이가 5개이기 때문입니다.

쉽게 풀어쓰자면 Case2에서 매치되는 그룹은

[“Regula”, “r expr”, “ession”, “s are ”, “powerf”]입니다. 전부 6글자씩인데 ul!!!는 5글자이기 때문에 식에 부합하지않습니다.

뒤에 !가 하나 더 추가된다면 매치가 되겠죠.


/....../g

Regular expressions are powerful!!!!

>>> [“Regula”, “r expr”, “ession”, “s are ”, “powerf”, “ul!!!!”]


6.

5에서 “.”역시 일반적인 문자로 사용하는게 아닌 하나의 식으로 사용했었습니다.

그렇다면 정말로 .을 찾고싶다면 어떻게 할까요?

4에서 배웠던데로 이스케이핑(escape)이 필요합니다.

그저 \. 만 해주면 되는거에요.

. 으로 검색시에는 [“O”, “.”, “K”, “.”] 총 4개가 매치되는군요.

\.로 검색시에는 [“.”, “.”] 총 2개가 매치됩니다. 우리가 원하는 결과네요.


특정문자(아무개문자)와 .을 같이 찾고싶다,

.\. 식을 사용하면됩니다.

.과 특정문자를 찾고싶다면

\.. 이 되겠죠?



7.

[ ]는 문자의 집합을 나타냅니다. [ ]안에는 문자가 들어갈수도, 문자셋(set)이 들어갈수도, against식이 들어갈수도 있습니다.


배우기전에 앞서 아래와 같은 룰이 존재하므로 익히고 넘어갑시다.

- : 문자의 범위를 의미합니다.

[ㄱ-ㅎ가-힣]은 한글전체를 의미합니다.

[a-z]는 영소문자의 범위를 의미합니다.

[A-Za-z]와 같이 영문자 전부를 포함할 수도 있으며,

[0-9]처럼 숫자만을 포함할 수도 있습니다.

[ㄱ-ㅎ가-힣0-9]처럼 여러개의 문자집합을 섞어서 사용할 수도 있습니다.


^ : 문자집합을 부정합니다. 다시말해 문자 집합내의 문자를 걸러서 매치합니다.

[^a-z]는 a부터 z까지의 범위를 검색하지않습니다.

[^ 0-9]는 0부터 9까지 그리고 공백을 검색하지 않습니다.

[^ A-Za-z0-9]와 같이 여러 집합을 섞어서 사용할 수도 있습니다.



제 위에 식을 보면

How do you do?에서 [oyu]를 검색하면

[“o”, “o”, “y”, “o”, “u”, “o”] 만 매치가됩니다.

말 그대로 o,y,u를 하나의 문자집합으로 두고 이중에 하나라도 들어가면 매치하는거죠.


[dH]. 처럼 대소문자도 구문합니다.


[가나라][방면]

“가방안에 나비가 들어왔노라면.”

이라는 문장에서 위와 같은 식으로 검색을하면

[“가방”, “나비”, “라면”] 이 매치가 되는것이죠.

이는 가방, 가면, 나방, 나면, 라방, 라면 의 경우를 검색하는 식이 의미합니다.


8.

위에서 짚고 넘어간 것처럼 –은 문자의 범위를 지정합니다.

[C-K][CDEFGHIJK]와 동일하고 [2-6][23456]과 동일하단 의미이죠.


9.

8과 마찬가지로 위에서 ^는 문자집합을 부정하는 식이라고 언급했습니다.

예제를 보면 [^CDghi45]는 C, D g, h, i, 4, 5를 제외하고 검색한다는 뜻입니다.

[^W-Z]처럼 범위를 부정하는 방법도 있습니다.


추후에 배우겠지만 정규식은 \s \w \S \W \d \b처럼 자주 사용되는 문자집합을 사전에 정의해두고 사용할 수 있도록 만들어져있습니다. 매우 강력한 힘을가진 식입니다.


2부에서 뵙겠습니다.

[HP Touchpad] HP 터치패드 안드로이드 포팅 방법 (CM9 Alpha 0.6)

Posted by Myoa™
2012. 1. 31. 15:36 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)



사실 Alpha 0.5를 올리려고 했으나 미루고 미루다가 갑자기 0.6 소식에 놀라

'계속 미루다간 CM9 Final이 나오겠군!'
하고 생각해서 바로 포스팅합니다.

설치방법은.. 솔직히 말하자면 같습니다. 파일만 다른거죠. 그리고 약간 추가된 부분.

터치 장애 개선이 거의 이뤄졌다고 합니다. 하지만 전 CM9 FInal이 나오기 전까지는 CM7기반 XRON 롬 쓰려고 합니다.
아직은 CM9가 워낙 먹통이기도 하고 MTP가 아주 마음에 안듭니다. 이건 마지막 부분에 부연 설명할 것이구요.

들어가기에 앞서 부탁드립니다.

[HP Touchpad] HP 터치패드 안드로이드 포팅 방법 (CM7 Alpha 3.5)
기본적인 셋팅 및 간단한 설명은 ↑↑↑↑ 미리 읽어주시기 바랍니다.
여기서 같은 내용을 반복할 필요는 없겠죠.. 그래도 일단 Copy/Paste를 해놔야겠죠 뭐..


또한 진저브레드에서 아이스크림 샌드위치라는 다른 커널로 갈아타는것이기 때문에
확실한 와이프(Wipe) 작업이 필요합니다.
HP 터치패드 안드로이드 제거 방법 (CM7, CM9)



미리 포스팅 해두길 잘했네.


1. W-SDK 설치




충분히 구분하시리라 믿습니다..

설치 후, 재부팅을 권장합니다. 아니 하세요.

※ 커스텀에서 SDK만 설치하셔도 됩니다. 포팅에 PDK는 필요없습니다.



 

2. HP Touchpad-PC 연결



연결 후, 터치패드 상단에 뜨는 메뉴에서 USB Drive를 선택해주세요. 



아래와 같은 화면이 뜨면 연결이 된것입니다.



 내 컴퓨터에 가보시면 HP TOUCHPAD 드라이브가 생겼을 겁니다.


최상위(root)에 "cminstall"이라는 폴더를 만들어주세요.


이제 CM9 설치파일을 옮겨야 됩니다. 위 파일을 모두 받아서 part01.exe를 실행시키신 후, 압축을 풀면됩니다.





요 3파일을 모두 cminstall에 넣어주세요.

이제 옮기는 작업은 끝났습니다. USB 연결을 해제해주세요.

OWWW! That hurts!

걍 무시해주세요. 안전하게 장치 제거 해도 같은 메시지가 뜨더군요.



3. W-Recovery모드


Menu-> Setting -> Device Info 로 들어가주세요.

Reset Options를 눌러주세요.

Restart를 누릅니다. 그리고 바로 볼륨 업 버튼을 누르고 유지해 주세요.




(4번째 울궈먹기)

위처럼 나오면 성공입니다. 


4. ACME Installer 및 novacom 셋팅


자바 SDK(JDK)가 없으신 분들은 미리 받아서 설치를 해주세요.
32비트용    64비트용

JDK가 설치되있다는 가정하에, 바로 진행하겠습니다.


ACMEInstaller2를 W-SDK를 설치한 폴더로 옮겨줍니다.
ex) C:\Program FIles\\Palm


다음으로 UniversalNovacomInstaller를 설치합니다.
그냥 실행하면 됩니다.

만약, 자바로 실행이 안된다면 압축 프로그램 때문인데, 압축 프로그램 설정 -> 파일 연결항목에서 "JAR"을 해제해 주세요.



Palm폴더에 내용물이 이렇게 있으면 정상입니다.
물론 SDK폴더와 ACMEInstaller2, novacom.exe 만 있으면 됩니다.

후에 포스팅하겠지만 ACMEInstaller는 CM7, ACMEUninstaller는 CM 제거용 입니다.
(내용 수정하는게 감쪽같네요.)




5. CM9 설치


시작 -> 실행 또는 윈로고 + R을 눌러줍니다.


혹시라도 CMD 커맨드를 모르시는 분을 위해 미리 적어놓고 시작하겠습니다.

"드라이브명":
=> 해당 드라이브로 이동합니다.

cd "경로"
=> 해당 경로로 이동합니다.


두 커맨드를 모두 활용한 예로 설명하겠습니다.




다음으로 넘어가서 

novacom boot mem:// <ACMEInstaller2
라고 입력해줍니다. (이제는 그냥 적읍시다. txt는 안올림!)


자 이제 엔터를 치면 
PC에선 더 이상 반응이 없을겁니다.

하지만 터치패드를 보면

남극의 눈물에서 본 펭귄과는 사뭇 다른 리눅스 펭귄이 2마리 나오면서
흰 글씨로 로그(기록)가 계속 올라오고 있을겁니다.

정상입니다.

조금 기다리시면 CM9 설치가 끝납니다.


마치며..


혹시 제대로 진행이 안되시는분은 리플이나 원격으로 도움드리겠습니다.


감쪽같은 Copy/Paste 후 수정!




[HP Touchpad] HP 터치패드 안드로이드 제거 방법 (CM7, CM9)

Posted by Myoa™
2012. 1. 25. 18:03 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)


바로 전 포스트에서 작성한 CM7 Alpha 3.5 설치 가이드. 
혹시 "CM9로 올리고 싶다!" 아니면 "그냥 Web OS 쓰려고 -.-" 같은 상황이 생기면 어떡하지?
당연하지만 터치패드는 원래 WebOS 제품이고 지원을 그만둔 HP. 당연히 자동 업데이트가 될리가 있을턱이 없다.

그래서 언인스톨 방법을 써드립니다.

1. Intro

 
Case.1) CM7 -> WebOS or CM9 -> WebOS

Case.2) CM9 -> CM7 or CM7 -> CM9

경우에 이 방법을 거쳐야 합니다.
안하고 문제생기면 ^ㅠ^ 

 

2. 초간단 방법

 
저번 강좌를 보셨다면 바로 가능합니다. 안 보셨다면 5번만 봐주세요.[HP Touchpad] HP 터치패드 안드로이드 포팅 방법 (CM7 Alpha 3.5)
5번 읽어달라는게 아니라 5번 항목을 봐달라구요.

전적으로 ACMEInstaller 하는 방법과 99% 같습니다.
대신 ACMEUninstaller 가 필요합니다.


ACMEInstaller를 W-SDK를 설치한 폴더로 옮겨줍니다.
ex) C:\Program FIles\\Palm

CMD에서 novacom boot mem:// < ACMEUnInstaller 입력하면 끝.


그럼 또 PC에서는 반응이없고, 터치패드에서는 리눅스펭귄 두마리가 나오면서
흰글씨가 작렬할겁니다.

로그를 읽어보면 제거하고 있습니다.

참 쉽죠?


마치며..


혹시 제대로 진행이 안되시는분은 리플이나 원격으로 도움드리겠습니다.

다음 포스팅은  CM9 Alpha 0(안드로이드 4.0 아이스크림 샌드위치)설치방법을 올리겠습니다.
아마 CM9 포스팅도 울궈먹을듯!




[HP Touchpad] HP 터치패드 안드로이드 포팅 방법 (CM7 Alpha 3.5)

Posted by Myoa™
2012. 1. 24. 17:28 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)



오랫만에 제대로 된 포스트를 올려봅니다.
최근에 HP 터치패드를 구입하게 되어 CM7 Alpha 3.5 버전과 CM9 Alpha 0 버전을 설치해보았습니다.
물론 CM9는 아직 똥입니다 똥!

오픈소스를 이용하는 것 뿐입니다. 마침 프로세서도 ARM이고!
당연히 안드로이드 OS 임포팅이 가능하죠. 조건이 너무나도 좋군요.

아무튼 긴 서론은 집어치우고, 바로 본론으로 들어가겠습니다.



1. W-SDK 설치




충분히 구분하시리라 믿습니다..

설치 후, 재부팅을 권장합니다. 아니 하세요.

※ 커스텀에서 SDK만 설치하셔도 됩니다. 포팅에 PDK는 필요없습니다.
 

2. HP Touchpad-PC 연결



연결 후, 터치패드 상단에 뜨는 메뉴에서 USB Drive를 선택해주세요. 



아래와 같은 화면이 뜨면 연결이 된것입니다.



 내 컴퓨터에 가보시면 HP TOUCHPAD 드라이브가 생겼을 겁니다.


최상위(root)에 "cminstall"이라는 폴더를 만들어주세요.


이제 CM7 설치파일을 옮겨야 됩니다. 위 파일을 모두 받아서 part01.exe를 실행시키신 후, 압축을 풀면됩니다.

요 4파일을 모두 cminstall에 넣어주세요.

이제 옮기는 작업은 끝났습니다. USB 연결을 해제해주세요.

OWWW! That hurts!

걍 무시해주세요. 안전하게 장치 제거 해도 같은 메시지가 뜨더군요.


3. W-Recovery모드


Menu-> Setting -> Device Info 로 들어가주세요.

Reset Options를 눌러주세요.

Restart를 누릅니다. 그리고 바로 볼륨 업 버튼을 누르고 유지해 주세요.




(울궈먹기)

위처럼 나오면 성공입니다. 

4. ACME Installer 및 novacom 셋팅


자바 SDK(JDK)가 없으신 분들은 미리 받아서 설치를 해주세요.
32비트용    64비트용

JDK가 설치되있다는 가정하에, 바로 진행하겠습니다.




ACMEInstaller를 W-SDK를 설치한 폴더로 옮겨줍니다. 폴더가 아니라 안에 있는 파일을 옮겨주세요.
ex) C:\Program FIles\\Palm


다음으로 UniversalNovacomInstaller를 설치합니다.
그냥 실행하면 됩니다.

만약, 자바로 실행이 안된다면 압축 프로그램 때문인데, 압축 프로그램 설정 -> 파일 연결항목에서 "JAR"을 해제해 주세요.




Palm폴더에 내용물이 이렇게 있으면 정상입니다.
물론 SDK폴더와 ACMEInstaller, novacom.exe 만 있으면 됩니다.

후에 포스팅하겠지만 ACMEInstaller2는 CM9, ACMEUninstaller는 CM 제거용 입니다.



5. CM7 설치


시작 -> 실행 또는 윈로고 + R을 눌러줍니다.


혹시라도 CMD 커맨드를 모르시는 분을 위해 미리 적어놓고 시작하겠습니다.

"드라이브명":
=> 해당 드라이브로 이동합니다.

cd "경로"
=> 해당 경로로 이동합니다.


두 커맨드를 모두 활용한 예로 설명하겠습니다.


아 정말 설명을 잘하는 것 같아요.



다음으로 넘어가서 

novacom boot mem:// <ACMEInstaller

라고 입력해줍니다. 치기 힘든 분들을 위해 파일을 준비했습니다.
 (붙여넣기는 CMD 화면에서 오른쪽 클릭-> 붙여넣기)





자 이제 엔터를 치면 
PC에선 더 이상 반응이 없을겁니다.

하지만 터치패드를 보면

남극의 눈물에서 본 펭귄과는 사뭇 다른 리눅스 펭귄이 2마리 나오면서
흰 글씨로 로그(기록)가 계속 올라오고 있을겁니다.

정상입니다.

조금 기다리시면 CM7 설치가 끝납니다.


마치며..


혹시 제대로 진행이 안되시는분은 리플이나 원격으로 도움드리겠습니다.

다음 포스팅은 CM7 지우기, 그 다음은 CM9 Alpha 0(안드로이드 4.0 아이스크림 샌드위치)설치방법을 올리겠습니다.
제가 CM9에서 CM7로 다시 내려온 이유는.. 생략합니다. 





 

2차 도메인 DNS 호스트 IP 이용 제한 안내 및 해결법

Posted by Myoa™
2011. 10. 11. 18:02 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)



원문: http://notice.tistory.com/1686

안녕하세요, TISTORY입니다.

지난 8월 30일 안내해드린대로 구서버에서 제공되고 있는 DNS 호스트 IP 이용이 11월 4일 제한될 예정입니다. 이용에 제한이 되면 해당 IP가 설정된 2차 주소로는 블로그에 접근이 제한되게 되니, 아래의 내용 확인하시기 바랍니다.

> 2차 도메인 DNS 호스트 IP 이용 제한 안내
- 종료일시 : 2011년 11월 4일(금)
- 이용 제한 예정인 DNS 호스트 IP
  121.254.206.21 / 121.254.192.211 / 211.172.252.15 / 211.172.252.123

- 이용 가능한 DNS 호스트 IP : 110.45.229.135 / 180.70.134.239
- 2차 주소를 사용하기 위해 사용하신 외부 DNS 서비스에서 위의 IP로 DNS 설정을 변경해주시기 바랍니다.
- 이용이 제한되면 해당 IP로 설정된 2차 주소로는 블로그에 접근이 제한되게 되니, 이용 가능한 DNS 호스트 IP로 변경해주시기 바랍니다.

☞ 2차 도메인 블로그의 DNS 호스트 IP 변경 안내 공지보기 


신규 서버의 DNS 호스트 IP로 미리 변경하시어, 블로그 이용에 불편이 없으시기 바랍니다.


감사합니다. 





티스토리에서 날라온 한통의 메일.
DNS 호스트 IP에 따른 접근 제한을 걸어놓는다고 했지만 사실 별거 없습니다.
자신의 서브 DNS를 제공해주는 사이트에 들어가서 호스트 IP만 수정하면 됩니다 :)

저는 DNSEver.com을 사용하므로 이곳 기준으로 설명하겠습니다.
(무료로 DNS서버를 제공해주는 DNSEver.com 에게 감사드립니다.)






로그인 하면 자신이 등록한 도메인을 관리 할 수 있게 목록이 뜨는데요, 도메인 목록에서 현 블로그 주소를 눌러줍니다.



호스트 IP(A) 관리 를 눌러주세요




- 이용 가능한 DNS 호스트 IP : 110.45.229.135 / 180.70.134.239 를 참고해서 수정해주시면 됩니다.
 
(DNSEver.com 측에서 미리 변경을 해주신 것 같더군요.. :D) 

110.45.229.135, 180.70.134.239 둘 중 하나만 입력해도 되구요, 둘 다 혼용해서 적으셔도 됩니다.

 

간단하죠?  






Adobe - error 16: configuration error 해결법

Posted by Myoa™
2011. 9. 9. 21:25 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)



스터디 에디션 정품을 설치하고 실행 해보니 승상오야! 
Adobe error 16 configuration error! 라고 뜨더군요.
어좁이에서 오류를 뿜어내는 건 오랫만에 보는 듯 했습니다.
당장 AE를 사용해야되서 얼른 해결해야 했습니다. 다행히 Adobe Error 16만 쳐도 해결법이 나오네요.

오류 해결에 도움을 받은 건 해외 윈도우즈 포럼중 한 곳입니다.

"번역+ 간략화"로 내용 수정합니다.



제일 먼저 "폴더 옵션" 에서 공유 마법사 해제를 해주시기 바랍니다.



폴더 옵션 설정이 끝났으면,

32비트 운영체제의 경우 root\Program Files (x86)\Common Files\Adobe
64비트 운영체제의 경우 root\Program Files\Common Files\Adobe

로 이동해주세요 

Adobe PCD폴더가 보이실 겁니다. 속성으로 들어가주세요.




보안탭으로 이동하고, 권한 설정을 변경해야 하므로 고급으로 들어갑니다.
 


"사용 권한 변경"을 눌러 주세요.



거의 다 왔습니다. 편집으로 들어갑니다.

※어드민 계정(주 계정)을 편집해줘야 합니다.
 


모든 권한 부분의 허용 체크박스를 체크하고 확인을 누르시면 됩니다.







어도비 16에러 해결법 포스팅을 올리려고 전부터 준비는 하고 있었는데 미루다가 1주일정도 만에 올리게 됩니다.
 
아무쪼록 오류에서 벗어나시길.. 








[윈도우7] Windows 7 사용자 폴더 접근이 거부될 때

Posted by Myoa™
2011. 8. 27. 22:02 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)



파코즈에서 본 글중 윈도우7 사용자 계정 폴더 엑세스가 불가하다고 하셔서 제가 직접 해결한 방법을 적어봅니다..
이 방법으로 해결되면 좋겠습니다..



첫번째 베이스 셋팅입니다.(必) 컴퓨터 -> 관리(G)에 들어가주세요



컴퓨터 관리(로컬) -> 로컬 사용자 및 그룹 -> 사용자 에서

Administrator 속성으로 들어가주세요.


계정 사용 안 함(B)에 체크해줍니다.



두번째 베이스로 제어판 -> 시스템 보안 -> 관리 센터 -> 사용자 계정 컨트롤 설정 변경에서 벨류를 최하로 맞춰줍니다.
(이 설정은 개인적으로 필요로 한거라 필수가 아닐 수 있습니다)



접근 권한이 필요한 사용자 폴더를 우클릭하여 속성에 들어가줍니다.



보안탭으로 이동, 고급(V)을 눌러줍니다.



탭은 그대로, 사용 권한 변경(C)를 눌러줍니다.


편집을 해야겠죠?



"이 폴더, 하위 폴더 및 파일"을 베이스로 두고, 모든 권한을 눌러서 권한을 넘겨준 다음 확인을 누릅니다.
이 방법을 어드민과 유저계정에 모두 적용해줍니다.

꼭 해결되셨으면 좋겠습니다^^
 
 



[TDU2] Test Drive Unlimited 테스트 드라이브 언리미티드2에서 PS3패드 사용하기

Posted by Myoa™
2011. 8. 7. 18:00 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)






X_input 을 이용해 PS3 패드(를 포함한 모든 사제패드)로 TDU2좀 플레이 해보려고 했는데
어째 컨트롤러 인식 파일만 옮겨넣으면 무한로딩에 검은화면만 뜬다?

간단합니다. dinput8.dll 만 제외하고 옮겨주시면 됩니다.






 이 3개만 \TDU2 폴더에 넣어주시면 PS3 패드로 정상적인 플레이가 가능합니다.

옵션 -> 컨트롤러에서 디바이스 선택하셔서 Keyboard -> Xbox Controller 로 바꿔주시면 되빈다.







DDNS와 베리즈 웹쉐어를 이용해 FTP 만들기

Posted by Myoa™
2011. 7. 30. 08:59 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)


베리즈 아이피가 많이 오픈되서 어떻게 해결할까 생각하던 차에
저번에 삭제한 iptime DDNS계정을 다시 활성화 시켜 베리즈와 조합을 해봤습니다.

세컨드라이브도 완전유료화로 바뀌고 그러다보니 다른 방법을 찾았습니다.
24시간 풀가동은 힘들더라도 적어도 유료화된 세컨드라이브를 대체해보려고 했습니다.

일단 미디어 스트리밍[각주:1] 지원됩니다. 권한조절도 되구요. 파일 조절이 쉽고 모바일 장치부터 데탑까지 권한만 주어지면 업로드도 가능합니다.
베리즈만의 장점이기도 한 RAR,Zip으로 묶어받기도 있습니다.

만약 세컨드라이브 정액권을 질렀다 하더라도 무료방법 하나쯤은 익혀두면 좋을 것입니다 :)

그럼 지금부터 환경구축을 시작해보죠.

 


준비물: 웹쉐어, DDNS서비스를 지원하는 사이트 계정 또는 공유기, 기본적인 지식
 




1. 쉐어 설치하기


어때요 참 쉽죠?

가 아니라.. UPnL에서 제작한 웹쉐어는 현재 저작권 문제로 공식 배포가 중단 되었습니다. 따라서 이 건은 각자 해결하셔야...(...)
(주: 저작권 문제로 블라인드 먹은적이..)

어쩔수 없습니다. 그래도 다행인건 나베르[각주:2]에 검색하면 바로 나옵니다. 걱정할 것 없어요.
 



2. 쉐어 셋팅하기

우선 스킨부터 넣어야 합니다.
스킨은 계속 배포가 되니 여길(http://berryz.upnl.org/metabbs/board/webshare_addon) 참고하세요.


전 2페이지의 프레임 폴더 스킨으로 작업했습니다.



스킨(*.zip)을 다운받고 압축을 푼 뒤, 웹쉐어 폴더중 skin에 폴더째로 넣어주시면 됩니다.


이제 웹쉐어를 실행시켜 봅시다.

환경설정으로 갑니다.

제일 먼저 스킨으로 가서 아까 받아둔 스킨을 선택합니다.


트레이 상태로 프로그램을 시작함 (옵션)
Windows를 시작할 때 자동으로 실행(옵션)



"접속자가 공유 항목 최상위 목록을 볼 수 있게 함" 해제(필수)
외부로부터 자동으로 알아내기 선택(필수)
하드디스크의 숨길 파일 및 폴더도 웹페이지에 표시(옵션)

 계정 항목으로 갑시다.
관리자 계정을 만들어 주세요. 

전 절대 저 계정을 사용하지 않으므로 제 베리즈에서 삽질하지 않으셔도 됩니다.






그리고 마지막으로 공유 항목을 아무거나 추가해주세요. 드라이브를 통째로 올려도 됩니다.


공유 항목 권한 설정방법
공유된 파일 또는 폴더를 더블 클릭하면 이름 변경 및 권한 창이 뜨게됩니다.




이제 자신의 아이피+포트번호를 이용해 베리즈가 정상적으로 뜨는지 확인해주시기 바랍니다.
(베리즈 우측 상단에 "탐색"버튼을 누르시면 됩니다.)

"이 서버에서는 최상위 목록 보기가 금지되어 있습니다." 라고 뜨면 정상입니다.


공유기를 사용중이라 고정 아이피를 못 잡거나, 페이지가 안 뜰때는 DMZ 설정(http://myoa.wo.tc/472) 해주시면 됩니다.
 




3. DDNS 설정하기


2번의 가장 마지막 "이제 자신의 아이피+포트번호를 이용해 베리즈가 정상적으로 뜨는지 확인해주시기 바랍니다.
이 부분을 무조건 성공해야 이 단계로 넘어올 수 있습니다. 


공유기 설정 페이지에서 아마 DDNS란 항목을 보적이 있으실 겁니다.

DDNS를 사용해 유동적인 아이피 걱정없이 네임서버로 2차 호스팅을 해주시면 됩니다.


서비스 공급자: ipTIME DDNS (또는 타 공유기 공급자등) 선택


호스트 이름: asdf.iptime.org 식으로 이름.iptime.org로 적어주시면 됩니다.


사용자 계정: 자신이 자주 사용하는 이메일 주소를 적어주시기 바랍니다. 나중에 암호를 잊어버려도 메일로 발송되므로.


사용자 암호: 이건 절대 사용자 계정에 대한 비밀번호가 아닙니다. 자신이 쓰고 싶은 비밀번호를 입력하면 됩니다.

(한 번 DDNS계정을 추가하게 되면 다음에 다른 DDNS계정을 만들때도 전에 사용했던 비밀번호를 쓰셔야 됩니다.
그렇지 않으면 사용자 인증 오류가 발생합니다. -_-;)

 



정상적으로 계정이 등록됬다면 이제 사용해야 겠죠.
 

다시 베리즈 웹쉐어의 환경설정 -> 서버 로 가서
IP주소 표시에 항목을 "표시할 주소 직접 지정"으로 바꾸고
좀전에 설정한 DDNS 계정의 호스트이름을 그대로 적어주시면 됩니다. 


이렇게요. 


이번에도 역시 베리즈 웹페이지가 정상적으로 뜨는지 확인해주시기 바랍니다.




4. 리즈 웹쉐어 스킨 편집하기


마지막으로

"이 서버에서는 최상위 목록 보기가 금지되어 있습니다." 라고 뜨는데 어떻게 사용하나요

에 대한 답입니다.

이 밑에 링크를 이용해 사용할 것입니다.



베리즈 skin폴더에 들어가서 받아둔 폴더로 들어갑니다.

그러면 skin.html이란 파일이 있을겁니다.

이걸 메모장으로 열어주세요



맨 아래로 내려가시면 다음과 같은 부분을 찾을 수 있습니다.

</form>

</div>

#end

<div class="footer">

Powered by 

<A href='http://berryz.upnl.org/webshare' class='footer' target='_blank'>Berryz WebShare

v$version (rev.$revision)</A>

by 

<A href='http://upnl.org' class='footer' target='_blank'>UPnL</A>

<A href='http://berryz.upnl.org/main.php/WebShare/Info/' class='footer' target='_blank'>[Project Info]</A>

<A href='http://berryz.upnl.org/main.php/HelpUs' class='footer' target='_blank'>[Help Us]</A>

<!--

<p id="validator">

<a href="http://validator.w3.org/check?uri=referer"><img

src="http://www.w3.org/Icons/valid-xhtml10"

alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>

</p>-->

</div>

</body>

</html>

(단, 스킨에 따라 조금 다를 수 있습니다. 비슷한 부분을 찾아주세요. a href를 검색해도 됩니다.)

</form>

</div>

#end

<div class="footer">

D:\

<A href='http://myoaftp.iptime.org:4343/Drive-D/?action=Login' class='footer'>Login</A>

</p></p>E:\ 

<A href='http://myoaftp.iptime.org:4343/Drive-E/?action=Login' class='footer'>Login</A>

</A>

<!--

<p id="validator">

<a href="http://validator.w3.org/check?uri=referer"><img

src="http://www.w3.org/Icons/valid-xhtml10"

alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>

</p>-->

</div>

</body>

</html>

이렇게 바꿀겁니다.
 

형식은 다음과 같습니다.

<div class="footer"> 다음 줄에
표시할 문자열을 넣어주시고

<A href='자신의 DDNS계정 URL + 폴더명?action=Login' class='footer'>하이퍼링크 문자열</A>
입니다.

</p> 나 </br>은 개행(html상 엔터)을 의미합니다.
 
즉, D:\<A href='http://myoaftp.iptime.org:4343/Drive-D/?action=Login' class='footer'>Login</A>
가 의미하는것은

"D:\"을 일반 문자열로 표시하고 Login이라는 문자열에 내 베리즈 공유항목중 Drive-D 폴더에 연결한다

입니다. 실제로 Login을 누르면 로그인 창이 나오고 로그인을 하면 제 PC의 D드라이브가 뜹니다.




위 처럼 수정한 결과
 
에서


처럼 되는거죠.
D:\ Login이 보이시나요? 




이제 당신만의 FTP서버가 완성되었습니다. 





치며...

여러분들에게 유익한 포스팅이 될지는 모르겠습니다만 그래도 뭔가 시도해본다는게 중요한거죠.. (-_ - 풉)

막상 글을 쓰다보니 상당히 긴 글이 되었네요. 잘 성공하실지 걱정이 되네요. 막히는 부분있으면 바로바로 물어봐주세요.



아.. 그리고 피어3 공략은 오늘부터 다시 재게됩니다.
결국 프랩스로 찍기로 했어요. 윈7에서는 피어3가 말썽이네요. xp에서는 playclaw가 말썽이더니 -_- 






눌러주실꺼죠?



  1. 리얼타임 재생 방식. [본문으로]
  2. NAVER [본문으로]