AllowOverride directive - Apache web server configuration

Apache web server  configuration


AllowOverride directive

Syntax: AllowOverride All|None|directive-type [directive-type] ...
Default: AllowOverride All
Context: directory
Status: core

When the server finds an .htaccess file (as specified by AccessFileName) it needs to know which directives declared in that file can override earlier access information.

Note: AllowOverride is only valid in <Directory> sections, not in <Location> or <Files> sections, as implied by the Context section above.

When this directive is set to None, then .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem.

When this directive is set to All, then any directive which has the .htaccess Context is allowed in .htaccess files.

The directive-type can be one of the following groupings of directives.

AuthConfig
Allow use of the authorization directives (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthDigestRealmSeed, AuthType, AuthUserFile, Require, etc.).
FileInfo
Allow use of the directives controlling document types (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, etc.).
Indexes
Allow use of the directives controlling directory indexing (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.).
Limit
Allow use of the directives controlling host access (Allow, Deny and Order).
Options
Allow use of the directives controlling specific directory features (Options and XBitHack).

Example:

AllowOverride AuthConfig Indexes

See Also: AccessFileName and Configuration Files



[펌]http://oops.org/?t=lecture&sb=apache&n=2

AllowOverride Directive


각 디렉토리에 위치한 .htaccess 파일에서 어떤 옵션을 마음대로 제어할 수 있는지 결정한다.  
"All" 또는 "Options", "FileInfo", "AuthConfig", "Limit"의 자유로운 결합이 가능하다.

.htaccess파일은 서버의 각 디렉토리에 만들어서 각 디렉토리에
  대한 접근을 제어하기 위한 것으로 디렉토리에 .htaccess파일이
  있으면, 서버 전체에 작용하는 access.conf 보다 우선권을 가진다.

  .htaccess파일에 대한 Override에 대한 옵션이다. 가능한 옵션은  다음과 같다.

None .htaccess파일을 읽을 수 없게 한다.
All 모든 지정에 대해 가능하게 한다.
Options 규정된 디렉토리 형식을 콘트롤하는 지정의 사용을 허락한다.
FileInfo 문서형식을 콘트롤하는 지정의 사용을 허용한다.
AuthConfig 사용자 인증 지정의 사용을 허용한다. 사용자 인증 변수를 사용한다.
Limit 호스트 접근을 콘트롤하는 지정을 허용한다.

07.10.18_20 대구여행, 그중 20일 (우방랜드)

대구 여행 마지막 날..
우방 랜드 입장!

사용자 삽입 이미지

한장은 BC TNT 카드로 50% 할인받고, 또 한장은 홈페이지서 그냥 주는 20% 할인ㅋ


우방랜드 자세한 내용은.. 여기를..


저녁은 중앙로의 '크림'이라는 곳에서 먹었어요
가격 착함 스프+샐러드+메인+후식 다 해서 인당 칠팔천원 합니다
아즈키는 치즈 돈까스 먹고 (완전 치즈가 줄줄줄..) 더헛은 해물스파게티 먹었던거 같습니다
후식으로 과일아이스크림하고 과일파르페 먹었는데 일반 카페에서 5천원~8천원하는거 수준
사용자 삽입 이미지



은근히.. 알찬 하루 보내고 왔습니다 (난생 처음 타보는 스케이트까지 타고왔으니까요)


출발하던 날 그 기차에서의 설레임. 더헛이 가진 추억들과의 만남...

새로운 이색적인 분이기에서 풍겨져오는 신비로움과 황홀함?

특히 저렴하고도 매우 맛있는 먹거리들 ;ㅂ;


ㅇㅏ -0- 대구 또 가고 싶네요
  • Favicon of http://iscat.org BlogIcon 더헛 2007.10.24 08:35 ADDR 수정/삭제 답글

    태그들의 압박..ㅋ 아 서울은 진짜 저렇게 주는데가 없어!! 인심이 야박해 ㅠ.ㅠ
    그리고 스케이트 재밌었다..ㅋ 사진을 보니 엉금엉금 기었던 사람들이라고는 생각되지 않는구나.. ㅋㅋㅋㅋㅋㅋㅋ 아 우방랜드 지니 넘 말랐어 ㅋㅋ 은근 탈거 없드라...ㅋ

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.24 09:35 수정/삭제

      응 하지만 돈많이내면 인심 올라감
      스케이트 너무 재미있었음 ㅎㅎㅎ 하지만 더헛님은 "스케이트 내가 다시 타자고 하나봐라" 라고 하셨던걸로 기억합니다 ㅋㅋ
      아웅 스카이 싸이클의 기억이 아직도 생생ㄷㄷㄷ

07.10.15 스시캘리포니아 당산점

간만에.. 스시 캘리포니아 궈궈=ㅁ=

세트 한개시켜서 같이 먹었습니다

아마 이름은.. 세트 A 인가요..

아무튼 사진입니다ㅋㅋ

나름 점보타입의 롤도 있어서 양도 괜찮고..

레인보우롤인가 다양한 회가 붙어나오는 롤이 있어서 맛도 다양히 느낄 수 있었던거 같네요

가격은 14,000 원

사용자 삽입 이미지

사용자 삽입 이미지

ps. 다른 곳에도 스캘 많지만, 그냥 위치를 설명: 당산역 1번 출구 나오자마자 오른쪽 건물 2층
  • Favicon of http://iscat.org BlogIcon 더헛 2007.10.18 13:28 ADDR 수정/삭제 답글

    그러나 알바는 얼버리 ㅋ

07.10.13 서울 세계 불꽃 축제


지난 토요일(10월 13일)에 열렸던 서울 세계 불꽃 축제에 다녀왔습니다

4시반쯤? 5시쯤? 도착했는뎅 사람 많더러구요 ㅎㅎㅎ

마제를 타고 가서 주차문제나 멀리 걸어다니는 문제는 없었지만 북적거려서 귀찮았습니다ㅋ

일단 자리 잡고서 더헛은 대기타고 (자리지키기) 저는 마제를 타고 여의도 역쪽으로 가서 홍초불닭과 맥주 숏다리(오징어다리), 오사쯔(과자), 김밥 등을 사왔죠

그걸루 저녁 때우고 PSP를 하면서 불꽃이 쏘아지길 기다렸죠

근대 자리 잡고서 앉아있는데 늦게 오신 분들이 두번 연속 우리한테 양해를 구하고? 자리 조금씩 비켜줬더니 우리도 자리 모질 -_-;; 하는 상황이 있었습니당

진짜 그럴꺼면 우리는 왜 빨리 와서 자리를 맡고 앉았나 하는 심정ㅋ

아무튼 카운트다운 하고 쏘아올려진불꽃 ㅎㅎ

감동이였습니다 하지만 나중에는 조금 더 가까이서 보고 싶다는 생각이 간절;



일본 - 미국 - 한국 순으로 진행했는데

듣기에 예전에는 유럽쪽에도 참여하고 그랬다고 하던데

이건 세계불꽃축제라 불러도 될까 의문이 가더러구요 팀이 딱 세나라인데 ㅋ

한-미-일 불꽃축제 정도면 괜찮겠네용

아무튼.. 일본 불꽃 끝나고 나니 다들 일어나 집에가기 시작-_- (나중에 한국끝나고 나갈려면 막히니까, 서둘러 가는 사람들이였습니다.)

뒤에 앉은 사람은 안보여서 짜증을 내고; 가는 사람들은 또 사람들 사이로 비집고 나갈려니 또 짜증나고 ㅋ

아무튼 여차여차해서 끝나고나니 다음과 같은 상황-.-;;

사용자 삽입 이미지

완전 인파가 밀려터져서 오토바이위에서 잠시 게임하면서 대기를 탔습니다 ;

사용자 삽입 이미지

사람 쫌 없어지고 도로로 나갔는데 . . .

도로위에는 신문지 조각들이 날리고 ㅡㅡ

도로인지 뭐 인도인지 모르게 사람들과 차가 뒤섞여 있고 -_-

여튼 보기 좋지가 않더러구요 무슨 데모하는 현장같았습니다


어째뜬 잘 다녀왔구요 불꽃도 나름 멋졌습니당

내년에도 다시 또 가볼 생각입니당 더헛님과 둘이서//

그리고 내년에는 조금 더 가까이서 하늘을 아주 다 뒤덮는 불꽃을 보고 싶습니다 ㅇ_ㅇ//
  • Favicon of http://iscat.org BlogIcon 더헛 2007.10.18 09:30 ADDR 수정/삭제 답글

    ㅇㅇ ㅋ 금비 속에서 불에 다 타는 경험 -_-b

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.18 09:32 수정/삭제

      ㅇㅇㅋ 금비 최고 하늘이 뒤덮이면 좋겠당

  • Favicon of http://www.unny.com BlogIcon flower delivery 2010.10.19 01:07 ADDR 수정/삭제 답글

    예전에도 사람들이 정말로 많았군여

2007. 10. 16. 09:26

PSP 디맥2 하는 더헛

보호되어있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

태왕사신기 OST 中 준서 - 허락


또 다시 태어나는 그 날에...

하늘이 허락하길 바래요...

우리의 이뤄질수 없었던, 사랑을...


하늘아 내사랑을 가려줘...

바람아 내 아픔을 날려줘...

그대가 내 눈물을 모르게, 부탁해..



ps. OST가 안나와서 아직 풀버전은 없다고 한다
  • Favicon of http://iscat.org BlogIcon 더헛 2007.10.16 08:41 ADDR 수정/삭제 답글

    그러큰 ost가 아직 안나온 거여큰~! ㅡㅡ 근데 동방신기 같큰..

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.16 09:06 수정/삭제

      웅 하지만 동방신기는 딴 노래 ㅋㅋ
      이것은 '준서'님이 부르신거

남편님께서주신 소중한 자금

사용자 삽입 이미지


0 / 0 이 된 나의 승암중갑이 보인다

암흑 13이였는데 220 풀개조에다 내구도 16인가 남았었는데

괜히 떡갈을 덧바르다가 콰강!! 대실패.. 내구 -12 오기로 계속 발랐는데 결국 0 / 0

한참 울고 있는데ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

새로운 갑옷사라고 남편님이 거금을 주셨다 감동;ㅂ;

620만골드 대략 현재 시세가 (아이템베이기준) 100만당 2만원 정도 되니깐 10만원이 훨 넘네 ㅡㅡ

끄아 . . .

감자요 그런데 그 돈을 다 벌써 써버렸다는 ..

대신 기떡 6/4 여 발렌을 맞췄다는 ㅋㅋㅋ (이거 팔면 천만원이상?)

허얼.. 그러고보니 정말비싸네 ㅡㅡ

수표팔아서 맛있는거나 사먹을껄그랬나

-ㅁ-;;

어찌되었건 나를 위해 소중한 거금 ;ㅂ; 주신 남편님 감자


ps. 레즈키의 남편 더헛2
사용자 삽입 이미지

  • Favicon of http://azki.org BlogIcon 아즈키 2007.10.12 10:32 ADDR 수정/삭제 답글

    황금(?) 더헛 꽤나 뽀댄대ㅎㅎ

    • Favicon of http://iscat.org BlogIcon 더헛 2007.10.14 22:57 수정/삭제

      ㅋㅋ 내 갑옷 셋 니가 맞춰줬자나 ㅡㅡㅋㅋ 은혜를 갚아따 ㅋㅋ
      돈 없으면 별토 팔아야지 ㅡㅡㅋㅋ(시세 대략 현금 20만넘넹..ㄷㄷ)

정규표현식 with Javascript(자바스크립트)

항상 쓰고 나서는 까먹는 정규표현식ㅡㅡ
이번에 또 쓸일이 있어서 찾아보고 정리가 잘된 글을 발견해 훔쳐왔다
병민님감자


What is Regular Expression

정규표현식이란 어떤 문자열의 특정 케릭터 조합을 일정한 패턴으로 표현하는것이라고 할 수 있다.

즉, 어느 문자열에서 특정 패턴을 가지는 문자들을 찾아내는것이다. 이러한 특징 때문에 대부분 정규표현식은


1. 특정 변수가 가지는 일정한 패턴이 원하는 패턴과 일치하는지 확인할 때

2. 특정 변수에 들어있는 문자열에서 자신이 원하는 패턴의 특정 문자를 찾아낼때


사용된다. 또한 본 글에서는 with Javascript라 명시했지만 이는 Javascript뿐만이 아니라 곳곳에서 사용되는 일종의 규약임을

인식하기를 바란다.(즉, Javascrip 뿐이 아니라 정규표현식을 지원하는 것이라면 어디서든 비슷하게 사용된다. 크게 차이는 없음)


자바스크립트에서 정규표현식은 1.2 버젼부터 사용이 가능한 관계로 오래된 브라우저의 사용자는 이를 사용 할 수 없다.

또한 자바스크립트에서 정규표현식은 하나의 객체 이다.

Define Regular Expression

자바스크립트에서의 정규표현식은 객체이기 때문에 기본적으로 constructor function 형태로 사용이 가능할 뿐만이 아니라 object initializers 또한 지원한다.


  constructor function 형식 : re = new RegExp("[a-z]");

  object initializers 형식 : re = /[a-z]/;

Use Regular Expression

정규 표현식에 사용되는 형태, 문자는 다음과 같다.

Character

의미

\

\ 다음에 나오는 특수 문자를 문자열로 인식
가령, /라는 특수문자는 일반적으로 프로그램상에서 나누기로 인식하게 되어있습니다. 이것을 나누기가 아닌 그냥 문자열 / 로 인식시키려면 \/ 로 써주면됩니다.

^

라인의 처음과 패턴과 매치
가령, ^A 라고 써주면 검색하고자 하는 문장의 시작문자가 A인지를 검사하는 것입니다.

$

라인의 끝과 패턴과 매치
가령, ^A 라고 써주면 검색하고자 하는 문장의 마지막문자가 A인지를 검사하는 것입니다.

*

0개 이상의 문자와 매치(모든것이라는 의미)

+

1개 이상의 문자와 매치, {1,}와 같은 의미임.

?

0 또는 1개의 문자 의미.
즉, A?b 라면 A라는 문자와 b라는 문자사이에 문자가 0개 또는 1개 가 들어갈 수 있다는 말입니다. 즉, Ab, Aab, Acb등과 같은..

.

1개의 문자와 일치

()

한번 match를 수행해서 나온 결과를 기억함.
예: /(foo)/ 는 foo라는 단어를 검색한 후, 그 단어를 배열등과 같은 저장장소에 남겨두어 나중에 다시 호출할 수 있도록 합니다.

|

OR

{n}

정확히 n개의 문자
예: a{2} 는 a 문자 두 개, 즉, aa를 의미합니다.

{n,}

n개 이상의 문자

{n,m}

n이상 m이하의 문자

[xyz]

문자들의 set를 의미. 가령, [a-z]라면 a부터 z까지의 모든 문자와 매치하는 것으로 []안의 -는 범위를 나타냅니다.

[^xyz]

네가티브(-) 캐릭터 셋

[\b]

백스페이스와 매치

\b

단어의 시작 또는 끝에서 빈 문자열과 매치

\B

단어의 시작 또는 끝이 아닌 곳에서의 빈 문자열과 매치

\cX

control 문자와 매치

\d

0부터 9까지의 아라비아 숫자와 매치. [0-9]과 같은 의미

\f

form-feed와 매치

\n

linefeed와 매치

\r

캐리지 리턴과 매치

\s

화이트스페이스 문자와 매치. [ \t\n\r\f\v]과 같은 의미

\S

\s가 아닌 문자들과 매치. [^ \t\n\r\f\v]과 같은 의미

\t

탭 의미

\v

수직 탭 의미

\w

w는 문자와 숫자를 의미 = [a-zA-Z_0-9]

\W

W는 문자가 아닌 요소, 즉 % 등과 같은 특수 문자를 의미함 = [^a-zA-Z_0-9]

\n

n은 마지막 일치하는 문장

\ooctal
\xhex

8(octal)진수, 10(hex)진수 값

Regular expression(정규 표현식)과 함께 사용하는 함수들

exec

문장에서 매치를 위해 검색을 수행하는 정규 표현식 메소드
배열을 리턴

test

문장에서 매치를 위해 테스트하는 정규표현식 메소드
True 또는 False 리턴

match

문장에서 매치를 위해 검색을 수행하는 string 메소드
배열 또는 null 문자 리턴

search

문장에서 매치를 위해 테스트하는 string 메소드
목차나 -1 리턴

replace

문장에서 매치를 위해 검색을 실행하고 문장을 대체하는 String 메소드

split

문장에서 매치하는 부분을 배열에 할당하는 String 메소드



Sample of Ragular Expression

이는 가장 단순한 형태의 정규표현식으로 쉽게 설명하기 위해 만든것으로 실제로 사용할 수도 있지만 현실에 잘 맞지 않을 수도 있음을 염두하길 바란다.


 YYYY-MM-DD 형태의 날짜 판별 스크립트.

<SCRIPT LANGUAGE="JavaScript">
<!--

function validateDate(){

   if(frm.birthday.value.search(/[12][0-9]{3}-[0-9]{2}-[0-9]{2}/) == -1){
        document.getElementById("birthdayDIV").style.display="block";
        isValidate = false;
    }
    else {
        document.getElementById("birthdayDIV").style.display="none";
    }

}

//-->

이메일 판별용 스크립트.

<SCRIPT LANGUAGE="JavaScript">

function validateEmail(){

    if(frm.email1.value.search(/(\S+)\@(\S+)\.(\S+)/) == -1){
         document.getElementById("emailDIV").style.display="block";
         isValidate = false;
    }
    else {
        document.getElementById("emailDIV").style.display="none";
    }

}

//-->



if(frm.birthday.value.search(/[12][0-9]{3}-[0-9]{2}-[0-9]{2}/) == -1){

위의 날짜 판별용 스크립트에는 () 를 찾아볼 수가 없다. 즉 이를 나중에 다시 불러 쓸 수 없다.

하나하나 뜯어 살펴보도록 하자.


[12] : 1 혹은 2 둘중 하나

[0-9] : 0 1 2 3 4 5 6 7 8 9 중 하나

{3} : [0-9] 를 3번 반복


즉 여기까지 1000 부터 2999 까지의 숫자를 의미한다.

- 는 그냥 문자 -를 의미한다.


[0-9], {2} : 0~9까지의 숫자를 두번 즉, 00부터 99까지.


전부 표현하자면 1000-00-00 부터 2999-99-99까지 표현이 가능하게 되어있다.

if(frm.email1.value.search(/(\S+)\@(\S+)\.(\S+)/) == -1){

이는 각각이 ()로 묶여 있어 이후에 따로 불러서 사용 할 수 있다.


(\S+) : 한개이상 문자열. 이후 $1 로 불러올 수 있다.

\@ : @ 문자 표현

(WS+) : 한개이상 문자열. 이후 $2 로 불러올 수 있다.

\. : . 문자 표현

(WS+) : 한개이상 문자열. 이후 $3 로 불러올 수 있다.


qkfl2@korea.com 을 받았을 경우


alert("이메일은 "+ RegExp.$1 + "@" + RegExp.$2 + "." + RegExp.$3 + "입니다.");


로 불러올 수 있다.



* 갱신 내용 : /w 에 대한 잘못 된 정보. (죄송합니다. 긁어서 확인을 못했네요) 2007/10/9

작성자 : 백병민

출처 : http://blog.naver.com/qkfl4

마지막 갱신일 : 2007년 10월 9일


  • Favicon of http://blog.naver.com/qkfl4 BlogIcon 백병민 2007.10.10 21:01 ADDR 수정/삭제 답글

    부족한 정리만 한 글인데 크흑... 그저 감사할 뿐이네요 T.T

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.12 10:33 수정/삭제

      부족하긴요ㅎㅎ 잘되어있는데요ㅋ
      요긴하게 쓰겠습니다 ^^

07.10.05 캔모아 신천점

더헛님께서 개교기념일을 맞이하여 회사앞까지 오셨던 날

노부꼬라는 일본 식당서 라면먹고 캔모아 신천점을 갔다 (첫경험)

처음 가본 캔모아 (더헛님은 이미 나 빼놓고 많이 가보신 느낌)

의자가 흔들흔들 >_< 그네이더러구요

왠지 공중에 뜬기분과 흔들거리는 재미를 느낄 수 있었습니다

사용자 삽입 이미지

PSP 에 열중하는 더헛님.. 음.. 아즈키도 만만치않음;;

사용자 삽입 이미지

크헝..

딸기빙수랑 눈꽃빙수을 시켰습니다ㅠㅠ

맛이있었습니다

글고 서비스 식빵구운거.. (무한리필!) 생크림과 먹으니 환상이였죠ㅠㅠ

왠지 푸짐한.. 크크...

게임도 하고 데굴데굴하다가 잘먹고 왔습니다

사용자 삽입 이미지


다 좋았는데 다만 그네위에서 게임하다보니깐 나중에 어지럽다는 ㅡ ㅡ

다음번에는 그냥 의자에 앉아 먹어야겠습니다

가격은 개당 4천원이였던걸로 기억합니다

위치는 신천역 4번출구에서 맥도날드 골목으로 들어와 모델골목말고, 그 다음 골목(조금큰골목)에서 오른쪽으로 오다보면 오른편 2층입니다
사용자 삽입 이미지



ps. 이 경험을 살려서..

일요일에 경마장을 갔다가 캔모아 신림점을 갔었습니다

하지만 기대와는 다른 커다란 실망 orz..

인테리어도 별로였고 (의자에 때가 너무 타있었음ㅡㅡ) 아저씨도 서비스별로 ㅡ_ㅡ;;

화장실도 별로고 카드도 안받아주고.. 배불러서 1인분만 시킬려니깐 2명이 와서 1인분은 안된다는;

결론은 캔모아라고 다 같은 캔모아가 아니다ㅋ

신림점. 안 좋아요, 신천점. 좋습니다 :]
  • Favicon of http://iscat.org BlogIcon 더헛 2007.10.09 14:08 ADDR 수정/삭제 답글

    다 좋은데 모델골목은 뭐야? -.-;;

    그리고 나 너 빼고 그렇게 많이 가지 않았다 -_-;; 어디 나쁜 데 간거 같자나

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.09 15:35 수정/삭제

      모델골목: MT가 많은 골목을 조금 순화적으로 표현 (의도하진않았으나)

      그냥 많이 가본거 같길래ㅋㅋ

서버를 개선하였습니다 - apache 2.0 mod_deflate (gzip)

움,, KT에서 업로드 속도를 전혀 내주지 않고 있기때문에 결국-.-

gzip 을 사용해서 html 을 압축해 응답하도록 고쳤습니다

설치된 아파치를 보니 2.x 이네용..

찾아보니 1.3 에서 쓰던 mod_gzip 은 사라지고, 2.x 부터는 mod_deflate 이 대신한다 하는군요.

설치 결과 굉장히.. 빨라졌네요
(index 파일의 html 만 비교해보면 109kbyte 정도 되는 분량이 21kb 정도로 줄었습니다.)
(로드 속도도 눈에 띄게 빨라졌네요 다만 그림 파일은 압축을 하지 않습니다:: 이미 압축된 포맷이기때문에.)


gzip compress 기능을 활성화 하기 위해 httpd.conf 파일에 들어갔던 세팅입니다 (apache 2.0 기준 :: windows 설치 버전)


1. 아래 모듈의 주석("#")을 해제하거나 없을 시에는 작성.
# for gzip response 1
LoadModule deflate_module modules/mod_deflate.so
# for gzip response 2
LoadModule headers_module modules/mod_headers.so

2. 타입에 의한 설정을 이용하였습니다 (다른 방법도 있음)
압축률은 1~9까지 있는데 별로 차이는 없더군요, 테스트결과 1이 더 느린거 같아서 저는 9로 했습니다
########################################################################
# compress code '-'
########################################################################
AddOutputFilterByType DEFLATE text/html text/plain text/xml
# 1 ~ 9
DeflateCompressionLevel 9
########################################################################

3. 브라우저 따라 문제가 있는 것 같더군요 그외 압축을 회피할 경우에 대해 설정합니다(이미 압축이 되어있는 형식의 파일, 압축시 간헐적으로 FF에서 문제가 생기는 파일등)
########################################################################
# no gzip response.
########################################################################
# Netscape 4.x에 문제가 있다...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08에 더 문제가 있다
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE은 Netscape라고 자신을 알리지만, 문제가 없다
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# 압축하지 않을것목록..
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|css|js|java|c|t?gz|bz2|7z)$ no-gzip dont-vary
# 프록시가 잘못된 내용을 전달하지않도록 한다
Header append Vary User-Agent env=!dont-vary
########################################################################


VARIANT, BSTR & SAFEARRAY C++ Tutorial...

http://www.whooper.co.uk/excelvariants.htm

...VARIANT, BSTR & SAFEARRAY C++ Tutorial...

<--Back to Excel Home Page

Introduction

Frustrated by the lack of good articles on the VARIANT data type, I decided to write this short introduction.

The VARIANT type is an all purpose data type used by IDispatch::Invoke both to transmit and receive parameters. It can hold numbers, strings, arrays, error values and IDispatch pointers. An XLL developer could consider the variant to be the Automation equivalent of the do everything Excel XLOPER data type.

Structure

Here is a simplified version of the VARIANT definition. For the full definition see this link.

struct tagVARIANT {
    VARTYPE vt; // unsigned short integer type code
    WORD wReserved1;
    WORD wReserved2;
    WORD wReserved3;
    union {
    //  C++ Type      Union Name   Type Tag                Basic Type
    //  --------      ----------   --------                ----------

        long          lVal;        // VT_I4                ByVal Long
        unsigned char bVal;        // VT_UI1               ByVal Byte
        short         iVal;        // VT_I2                ByVal Integer
        double        dblVal;      // VT_R8                ByVal Double
        VARIANT_BOOL  boolVal;     // VT_BOOL              ByVal Boolean
        SCODE         scode;       // VT_ERROR
        DATE          date;        // VT_DATE              ByVal Date
        BSTR          bstrVal;     // VT_BSTR              ByVal String
        IUnknown      *punkVal;    // VT_UNKNOWN
        IDispatch     *pdispVal;   // VT_DISPATCH          ByVal Object
        SAFEARRAY     *parray;     // VT_ARRAY|*           ByVal array
        // A bunch of other types that don't matter here...
        VARIANT       *pvarVal;    // VT_BYREF|VT_VARIANT  ByRef Variant
        void          * byref;     // Generic ByRef       
    };
};

The variant type is 16 bytes in size.

Here is an example of creating a variant of type double:

VARIANT v;
v.vt= VT_R8;
v.dblVal = 999.999;

This example shows a variant containing all the actual data inside it's 16 byte structure. With the more complex string & safearry types, the data is stored separately and the VARIANT structure just contains a pointer to it.

The Variant String Type - BSTR

Conventional C strings are arrays of type char terminated by a null. Each character is stored in a single byte of 8 bits according to the ANSI encoding map called ASCII. The VARIANT string type, which is called BSTR, is more sophisticated. It has the following features:

(a) Each character is stored in two byes, or 16 bits, in order to allow for larger non Latin based character sets. This wide character storage is called UNICODE, while the conventional 8 bit storage is known as ANSI.

(b) There is an unsigned long integer (32 bit) byte count at the start of the string array, so the maximum length of a BSTR string is 2^32/2=2147483648 characters. The string "Hello World" has eleven characters, so at the start of the array one would find a byte count length of 22. A byte cont allows nulls to be stored inside the sting if required.

(c) There is a null terminating character at the end of the array.

(d) The BSTR pointer (stored in the variant as v.bstrVal) does not point to the start of the string structure, but rather to the start of the first character, ie four bytes forward of the actual start in which the length is recorded. The advantage of this is that as long as there is no early null character inside the string, a BSRT pointer can be consider as an ordinary pointer to a C style null terminated string, albeit of 16 bit character size. Alternatively, a BSTR can be consider as a buffer of a certain size in which conventional wide character null terminated strings can be stored.

In pictures:

        
In C++ the types are:

ANSI UNICODE
char
or CHAR
unsigned short
or WCHAR
char*
or LPSTR
LPWSTR
const char*
or LPCSTR
LPCWSTR

When working with conventional C strings it's easy to create and delete char arrays to hold the data. However, with the more complex BSTR type you should use the SysAllocString and SysFreeString functions for allocating and deleting; and certainly never never call delete on the pointer (which doesn't even point to the start of the data).

Here are three examples of creating a string VARIANT:

//////////////////////////////////
VARIANT v;
v.vt=VT_BSTR;
v.bstrVal= SysAllocString(L"Hello World"); // L for UNICODE characters

VariantClear(&v); // Calls SysFreeString(v.bstrVal) for us then sets v.vt=VT_EMPTY

//////////////////////////////////
LPVARIANT pV; // VARIANT*
pV= new VARIANT;
pV->vt=VT_BSTR;
pV->bstrVal= SysAllocString(L"Hello World");

VariantClear(pV); // Delete BSTR
delete pV;       // Delete Variant

//////////////////////////////////
VARIANT v;
const char c[12]="Hello World"; // 11 single byte char plus null
LPWSTR p= new WCHAR [ 12 ]; // 12 double byte characters
i=MultiByteToWideChar(CP_ACP, 0, c, -1, p, 12); // ANSI->UNICODE
v.vt=VT_BSTR;
v.bstrVal=SysAllocString(p);
delete p; // String has been copied out of the temporary buffer

VariantClear(&v);
//////////////////////////////////

The function VariantClear deletes any memory attached to the variant (in this case the BSTR "Hello World") and sets v.vt=VT_EMPTY meaning empty or no value. With our earlier example of a numeric variant of type VT_R8, there would of course be no need to call VariantClear because there is no attached data, the numeric value is held inside the structure.

The function VariantInit can be used to initialize a variant by setting v.vt=VT_EMPTY.  The function VariantCopy frees the memory associated with the destination argument and copies the source. VariantChangeType handles coercions between different types including string to numeric and visa versa.

And here is some code that won't work:

VARIANT v;
const char c[12]="Hello World";
char* p= new char [ 4 + (11+1)*2 ];
char* pS=p+4;
MultiByteToWideChar(CP_ACP, 0, c, -1, (LPWSTR) pS, 12);
*( (int*) p)=22;
v.vt=VT_BSTR;
v.bstrVal=(LPWSTR) pS;
VariantClear(&v);

Although it produces a valid variant, VariantClear() or SysFreeString() will not delete the manually allocated memory.

The old C functions strlen() etc will not work with wide character strings but the standard library contains alternatives such as wcslen(), wscpy(), wcscat() (see this link). You can also use SysStringLen() to return (byte_count /2); which will equal wcslen() only if there is no null character stored inside the string.

It's valid to pass a BSRT pointer equal to NULL in order to represent a NULL string.

You will sometimes see OLECHAR and OLESTR("Hello World") in place of WCHAR and L"Hello World". In modern Win 32 code this is equivalent.

Further reading: BSTR API at MSDN  Variant API at MSDN  COleVariant at MSDN  Article about Strings in C++ Part I, Part II

SAFEARRAYs

A SAFEARRAY is a multi dimensional multi type array. To pass a safe array in a variant v, set v.vt to VT_ARRAY | element VT type, and set v.parray to point to the safe array.

Here is the definition of a safe array:

// The SAFEARRAY structure
typedef struct tagSAFEARRAY
{

    USHORT cDims;                        // Number of dimensions
    USHORT fFeatures;                    // Misc flags inc element type
    ULONG cbElements;                    // Element size
    ULONG cLocks;                        // Lock count
    PVOID pvData;                        // Pointer to data
    SAFEARRAYBOUND rgsabound[ cDims];    // Array of dimension structures   

} SAFEARRAY;

// SAFEARRAY Dimension structure
typedef struct tagSAFEARRAYBOUND
{

    ULONG cElements;       // Number of elements in dimension
    LONG lLbound;          // Lower bound of dimension (usually 0)                   

} SAFEARRAYBOUND;

cDims gives the number of dimensions in the array. Eg a one dimensional array has cDims=1.

The bits of the fFeatures flag are described as followed: (Note: it looks complicated but don't worry too much as we will use an API to create our safe arrays and it will take care of this detail for us)

#define FADF_HAVEVARTYPE 0x0080 // An array that has a general VT type.

// If set the two byte VT type is stored four bytes before
//  the start of the SAFEARRAY structure.
// Any VT type except VT_EMPTY and VT_NULL is OK

#define FADF_BSTR 0x0100 // An array of BSTRs.
#define FADF_UNKNOWN 0x0200 // An array of IUnknown*.
#define FADF_DISPATCH 0x0400 // An array of IDispatch*.
#define FADF_VARIANT 0x0800 // An array of VARIANTs.
#define FADF_RESERVED 0xF0E8 // Bits reserved for future use.

#define FADF_AUTO 0x0001 // Array is allocated on the stack.
#define FADF_STATIC 0x0002 // Array is statically allocated.
#define FADF_EMBED invokeURLs=false autostart=trueDED 0x0004 // Array is embedded in a structure.
#define FADF_FIXEDSIZE 0x0010 // Array may not be resized


The SAFEARRYBOUND structure describes each dimension. Eg, in VB Dim x(10 to 100) would equate to lLbound=10 and cElements=91.

There is an API for manipulating safe arrays (see this link: Array Manipulation API), and a variant safe array class derived from the variant structure (see this link: COleSafeArray).

Here is an example of creating a variant containing a one dimensional safe array of longs with size 100 and lower bound 0 using the API.

VARIANT v;
SAFEARRAYBOUND rgb [] = { 100, 0 };
v.vt = VT_ARRAY | VT_I4; // Array of longs
// Now call SafeArrayCreate with type, dimension,
//  and pointer to vector of dimension descriptors

v.parray = SafeArrayCreate(VT_I4, 1, rgb);
long *rgelems; // Pointer to long elements
// Now lock the array for editing and get a pointer
// to the raw elements

SafeArrayAccessData(v.parray, (void**)&rgelems);
// Loop through setting the elements
for (int c = 0; c < 100; c++)
    rgelems[c] = c;
// Release the lock on the array
// (which also invalidates the element pointer)

SafeArrayUnaccessData(v.parray);

// Clear the array releasing the memory
VaraintClear(&v)


And here is another example in which we create a 10 row by 15 column array of variant elements:

v.vt = VT_ARRAY | VT_VARIANT;
SAFEARRAYBOUND sab[2];
sab[0].lLbound = 1; sab[0].cElements = 10;
sab[1].lLbound = 1; sab[1].cElements = 15;
v.parray = SafeArrayCreate(VT_VARIANT, 2, sab);
// Fill with some values...
for(i=1; i<=10; i++) {
    for(int j=1; j<=15; j++)
    {
        // Create entry value for (i,j)
        VARIANT tmp;
        tmp.vt = VT_I4;
        tmp.lVal = i*j;
        // Add to safearray...
        long indices[] = {i,j};
        SafeArrayPutElement(v.parray, indices, (void *)&tmp);
    }
}

VaraintClear(&v)

This code uses the slower technique of multiple calls to SafeArrayPutElement instead of locking the array and accessing directly as in our first example. Another useful function in the API (link above) is SafeArrayGetElement. It also possible, for performance purposes, to avoid the API and create the array by hand, but you will have to get to grips with fFeatures etc.

Conclusion

This concludes my short tutorial on the Variant Data Type. I hope you found it useful!



[MSDN]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap6_7zdz.asp

VARIANT and VARIANTARG

Use VARIANTARG to describe arguments passed within DISPPARAMS, and VARIANT to specify variant data that cannot be passed by reference. When a variant refers to another variant by using the VT_VARIANT | VT_BYREF vartype, the variant being referred to cannot also be of type VT_VARIANT | VT_BYREF. VARIANTs can be passed by value, even if VARIANTARGs cannot. The following definition of VARIANT is described in OAIDL.H automation header file:

To simplify extracting values from VARIANTARGs, Automation provides a set of functions for manipulating this type. Use of these functions is strongly recommended to ensure that applications apply consistent coercion rules.

Value Description
VT_EMPTY No value was specified. If an optional argument to an Automation method is left blank, do not pass a VARIANT of type VT_EMPTY. Instead, pass a VARIANT of type VT_ERROR with a value of DISP_E_PARAMNOTFOUND.
VT_EMPTY | VT_BYREF Not valid.
VT_UI1 An unsigned 1-byte character is stored in bVal.
VT_UI1 | VT_BYREF A reference to an unsigned 1-byte character was passed. A pointer to the value is in pbVal.
VT_UI2 An unsigned 2-byte integer value is stored in uiVal.
VT_UI2 | VT_BYREF A reference to an unsigned 2-byte integer was passed. A pointer to the value is in puiVal.
VT_UI4 An unsigned 4-byte integer value is stored in ulVal.
VT_UI4 | VT_BYREF A reference to an unsigned 4-byte integer was passed. A pointer to the value is in pulVal.
VT_UI8 An unsigned 8-byte integer value is stored in ullVal.
VT_UI8 | VT_BYREF A reference to an unsigned 8-byte integer was passed. A pointer to the value is in pullVal.
VT_UINT An unsigned integer value is stored in uintVal.
VT_UINT | VT_BYREF A reference to an unsigned integer value was passed. A pointer to the value is in puintVal.
VT_INT An integer value is stored in intVal.
VT_INT | VT_BYREF A reference to an integer value was passed. A pointer to the value is in pintVal.
VT_I1 A 1-byte character value is stored in cVal.
VT_I1 | VT_BYREF A reference to a 1-byte character was passed. A pointer the value is in pcVal.
VT_I2 A 2-byte integer value is stored in iVal.
VT_I2 | VT_BYREF A reference to a 2-byte integer was passed. A pointer to the value is in piVal.
VT_I4 A 4-byte integer value is stored in lVal.
VT_I4 | VT_BYREF A reference to a 4-byte integer was passed. A pointer to the value is in plVal.
VT_I8 A 8-byte integer value is stored in llVal.
VT_I4 | VT_BYREF A reference to a 8-byte integer was passed. A pointer to the value is in pllVal.
VT_R4 An IEEE 4-byte real value is stored in fltVal.
VT_R4 | VT_BYREF A reference to an IEEE 4-byte real value was passed. A pointer to the value is in pfltVal.
VT_R8 An 8-byte IEEE real value is stored in dblVal.
VT_R8 | VT_BYREF A reference to an 8-byte IEEE real value was passed. A pointer to its value is in pdblVal.
VT_CY A currency value was specified. A currency number is stored as 64-bit (8-byte), two's complement integer, scaled by 10,000 to give a fixed-point number with 15 digits to the left of the decimal point and 4 digits to the right. The value is in cyVal.
VT_CY | VT_BYREF A reference to a currency value was passed. A pointer to the value is in pcyVal.
VT_BSTR A string was passed; it is stored in bstrVal. This pointer must be obtained and freed by the BSTR functions, which are described in Conversion and Manipulation Functions.
VT_BSTR | VT_BYREF A reference to a string was passed. A BSTR* that points to a BSTR is in pbstrVal. The referenced pointer must be obtained or freed by the BSTR functions.
VT_DECIMAL Decimal variables are stored as 96-bit (12-byte) unsigned integers scaled by a variable power of 10. VT_DECIMAL uses the entire 16 bytes of the Variant.
VT_DECIMAL | VT_BYREF A reference to a decimal value was passed. A pointer to the value is in pdecVal.
VT_NULL A propagating null value was specified. (This should not be confused with the null pointer.) The null value is used for tri-state logic, as with SQL.
VT_NULL | VT_BYREF Not valid.
VT_ERROR An SCODE was specified. The type of the error is specified in scodee. Generally, operations on error values should raise an exception or propagate the error to the return value, as appropriate.
VT_ERROR | VT_BYREF A reference to an SCODE was passed. A pointer to the value is in pscode.
VT_BOOL A 16 bit Boolean (True/False) value was specified. A value of 0xFFFF (all bits 1) indicates True; a value of 0 (all bits 0) indicates False. No other values are valid.
VT_BOOL | VT_BYREF A reference to a Boolean value. A pointer to the Boolean value is in pbool.
VT_DATE A value denoting a date and time was specified. Dates are represented as double-precision numbers, where midnight, January 1, 1900 is 2.0, January 2, 1900 is 3.0, and so on. The value is passed in date.

This is the same numbering system used by most spreadsheet programs, although some specify incorrectly that February 29, 1900 existed, and thus set January 1, 1900 to 1.0. The date can be converted to and from an MS-DOS representation using VariantTimeToDosDateTime, which is discussed in Conversion and Manipulation Functions.

VT_DATE | VT_BYREF A reference to a date was passed. A pointer to the value is in pdate.
VT_DISPATCH A pointer to an object was specified. The pointer is in pdispVal. This object is known only to implement IDispatch. The object can be queried as to whether it supports any other desired interface by calling QueryInterface on the object. Objects that do not implement IDispatch should be passed using VT_UNKNOWN.
VT_DISPATCH | VT_BYREF A pointer to a pointer to an object was specified. The pointer to the object is stored in the location referred to by ppdispVal.
VT_VARIANT Invalid. VARIANTARGs must be passed by reference.
VT_VARIANT | VT_BYREF A pointer to another VARIANTARG is passed in pvarVal. This referenced VARIANTARG, pvarVal, cannot be another VT_VARIANT|VT_BYREF. This value can be used to support languages that allow functions to change the types of variables passed by reference.
VT_UNKNOWN A pointer to an object that implements the IUnknown interface is passed in punkVal.
VT_UNKNOWN | VT_BYREF A pointer to the IUnknown interface is passed in ppunkVal. The pointer to the interface is stored in the location referred to by ppunkVal.
VT_ARRAY | An array of data type was passed. (VT_EMPTY and VT_NULL are invalid types to combine with VT_ARRAY.) The pointer in pparray points to an array descriptor, which describes the dimensions, size, and in-memory location of the array. The array descriptor is never accessed directly, but instead is read and modified using the functions described in Conversion and Manipulation Functions.

07.10.01 300일기념 더헛 수제 케이크 ♡

지난 1일(10월 1일)은 더헛과 아즈키의 300일이였죠 -ㅁ-aa

평일이라서 저녁에 만났는데 뚜둥!! 하고 더헛이 제게 준 케이크 ㅋㅋㅋ

사용자 삽입 이미지

골판지 잘라가며 붙여가며... 손수 만든 >_<;;

손수 저걸 다했을 생각을 하니 그 정성이 갸륵합니다

감동하고있는데 뚜껑(?) 열었습니당

사용자 삽입 이미지

조각 케이크가 여러조각 ㅋㅋ

윽.. 저거 어떻게 다 하지 ㅠㅠㅠ

저는 죽어도 못할지도요 orz....

조각 케이크 속에 다시 또 선물 들어있었습니다 :]

사용자 삽입 이미지

이쁘게 포장된 쿠기와 귀여운 양말 크크

왠지 내가 양말에 자꾸 집착을 보여서-.- 사준듯??ㅋㅋ

사실 쿠키는 직접구운게아니지만 그래도 정성 대략 엄청난

크크... 특히 케이크 너무 이쁩니다 여친이라서 편드는게 아니고 너무 잘 만든거같음


쿠키 잘 먹었고요 양말도 잘 신어요 =ㅁ=

골판지케익 정말 오래걸리고 힘들고 돈도 좀 많이 든다고 하던데 감사합니다 :]



ps. 잭 양말을 신어 보았습니다 ㄱ- 귀엽죠?? ㅋㅋㅋㅋㅋ

사용자 삽입 이미지

  • Favicon of http://iscat.org BlogIcon 더헛 2007.10.04 13:11 ADDR 수정/삭제 답글

    응..사실 나혼자 만든게 아니고 근로들을 좀 이용했지 ㅋㅋㅋㅋㅋㅋ
    .... ㅡㅡ..

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.04 13:13 수정/삭제

      권력남용이구만 ㅋㅋㅋ

마비노기 타이틀

마비노기 쓸만한 인챈-ㅁ-



  • Favicon of http://azki.org BlogIcon 아즈키 2007.10.01 20:25 ADDR 수정/삭제 답글

    심해의 [접미 6랭크]

    방패에 인챈트 가능
    조금 약해보임
    [수리비 12% 증가]


    회복의 [접미 8랭크]

    힐링 랭크 9 이상일 때 최대 생명력 20 증가
    힐링 랭크 7 이상일 때 지력 5 증가
    힐링 랭크 5 이상일 때 의지 5 증가
    [최대 스태미나 10 감소]


    노르만 [접두 9랭크]

    노르만 워리어 세트에 인챈트 가능
    크리티컬 8% 증가
    돌진 랭크 8 이상일 때 체력 6 증가
    돌진 랭크 B 이상일 때 최대 스태미나 6 증가
    [솜씨 12 감소]

    노르만 워리어 세트 : 투구, 갑옷


    그레이스 [접두 8랭크]

    그레이스 플레이트 세트에 인챈트 가능
    밸런스 6% 증가
    카운터 랭크 9 이상일 때 최소 대미지 3 증가
    카운터 랭크 6 이상일 때 최대 대미지 3 증가
    카운터 랭크 3 이상일 때 최대 대미지 3 증가
    [의지 10 감소]

    그레이스 플레이트 세트 : 헬멧, 경갑, 건틀, 부츠.

    밑작업 인첸 : 은여우



    위 인첸들 입수방법 : 원양 어선에서 낚시로 획득

무기 개조표 리스트 (쓸만한것만::2006년작)

한손 둔기/도끼


 한손


양손 검


활/석궁

인챈트 성공률

사용자 삽입 이미지


숫자랭 인챈 누적 성공률 (평일 엘리트 가루 사용시)

A: 77 %
9: 41.58 % (54%)
8: 21.2058 % (51%)
7: 9.754668 % (46%)
6: 3.99941388 % (41%)

07.09.24 양수리 - 미사리 나들이

스크롤의 압박ㅋ

more를 눌러 보십시요 -ㅁ-




  • Favicon of http://iscat.org BlogIcon 더헛 2007.09.27 16:54 ADDR 수정/삭제 답글

    나의 이야기는 귓등으로 듣는구나

    오데뜨가 오리라니

    • Favicon of http://azki.org BlogIcon 아즈키 2007.09.27 18:03 수정/삭제

      백조였던가ㅋㅋㅋㅋㅋ미안

07.09.22 케이크와 오뎅바

사용자 삽입 이미지
주말에 민정이가 먹고싶어서.. 사먹었던 케이크 (맛있었다ㅋ)
블루베리 쉬폰이였나 아무튼.. 1/5 정도 남기고 한번에 다 해치움 ㅋㅋ
초도세우고 불도 붙이고 ㅋㅋ 분이기 좋았었다 >_<//

사용자 삽입 이미지
그날 저녁에 갔던 개봉역 부산오뎅바 ㅋㅋ
가격도 나쁘지않고해서 가끔가는 곳..
정종 따뜻한거 한잔, 시원한거 한잔을 시키고, 오뎅 집어먹다가 새우소금구이ㅠ 시켜먹었다ㅋㅋ
오동통.. 새우살이 최고였다-_-ㅋㅋ
오뎅 국물도 괜찮고ㅋ 단무지가 맛있는 집ㅋㅋ
물론, 오뎅두 맛있다ㅋ
ps. 치밀한 계획하에 이루어진 결제
  • Favicon of http://iscat.org BlogIcon 더헛 2007.09.27 13:27 ADDR 수정/삭제 답글

    마지막 줄을 보니 갑자기 분노가 치솟아 오르는구나.^^

  • nusys 2007.10.02 16:37 ADDR 수정/삭제 답글

    가본지 오래됐다. 오뎅빠 번개는 언제하누

    • Favicon of http://www.azki.org BlogIcon 아즈키 2007.10.04 12:39 수정/삭제

      번개.. 인가요
      번개는 번쩍하고 하는겁니다
      언제 한번 번쩍하고서 뵙겠습니다=ㅁ=

[PSP다그커펌체험기] 5. 한글 폰트 설치 + 몬헌을 위한 폰트 설치

이 글은 커펌 3.52 M33 update4 를 설치한 환경에서 체험한 것을 바탕으로 합니다. 다른 버전시 주의하세요

현재 버전은 3.52 M33 update4 이고, 폰트 지원을 하긴 하지만 기본적으로 한글 폰트가 안깔려있다ㅠㅠ

폰트를 설치해보자..


준비물 소개
한국어 폰트
일어 폰트 (몬스터헌터 포터블 2 한글날 패치를 위한 버전)


  1. 전원버튼을 위로 3초정도 눌러서 PSP를 완전히 셧다운한 후에, R트리거버튼(오른쪽 위쪽에 있는 오른손 검지로 눌러지는 그 버튼)을 누른채 전원을 올려보자. 아래와 같이 커펌 M33 의 리커버리 메뉴가 뜬다
    사용자 삽입 이미지
  2. PSP를 USB로 컴퓨터와 연결한 후에, 네번째 Advanced 에서 X버튼으로 선택해 들어가 Toggle USB (flash0) 를 X버튼으로 선택한다 (이것은 내장 플래시 부분을 컴퓨터에서 직접 접근하는 것으로 용량을 초과하여 write 하는 경우 벽돌이 될 가능성이 매우 크다. 특히 컴퓨터에 외장 메모리 장치에 관련한 악성코드나 바이러스가 있는 경우 벽돌이 될 수 있다. 건전하고 깨끗한(?) 컴퓨터가 아니면 다른 방법(파일러를 이용한 방법이 있습니다 찾아보세요)을 사용하여 하는 것이 좋다.)
  3. 내장 플래시의 용량을 확인한다. 등록정보를 통해 확인을 한다 (한글 폰트인 kr0.pgf 파일이 들어갈 여유 385KB 가량이 충분한지 -> 충분하지 않은 경우에 낸드플래시 최적화 하는 방법을 찾아보세요)
  4. 내장 플래시에서 /font/ 에 받은 kr0.pgf (385KB) 를 복사한다 (한글 폰트 설치가 끝남)
  5. 내장 플래시안의 /font/jpn0.pgf 파일과 받은 몬스터헌터용 jpn0.pgf (1,871KB) 파일과의 용량차이를 계산하여, 내장 플래시이 부족하지 않을까 다시 한번 확인한다. (꼭 해야한다. 다시 거듭 설명하지만 부족할 경우에 덮어쓰면 벽돌이 될 수 있다 ㄱ-)
  6. 내장 플래시안의 /font/jpn0.pgf 파일을 지우고, 그 위치에 몬스터헌터용 jpn0.pgf (1,871KB) 파일을 복사한다 (몬스터헌터 포터블 2용 폰트 설치ㅋ)
  7. PSP에서 Back 를 선택한 후에 다시 Back 을 선택하고  Exit 를 선택한다. (선택은 모두 X버튼을 이용한다) 그럼 끝.. (시스템 언어와 캐릭터셋을 korean으로 변경가능)
    사용자 삽입 이미지
    사용자 삽입 이미지

몬헌2 한글날패치 버전 실제 구동
사용자 삽입 이미지
사용자 삽입 이미지



  • ajtmzrns 2007.09.29 18:46 ADDR 수정/삭제 답글

    좋은 충고가 되엇습니다.

    • Favicon of http://www.azki.org BlogIcon 아즈키 2007.10.04 12:36 수정/삭제

      넵 도움이 되셨다면 다행입니다 ㅎㅎ

  • 2007.10.15 20:32 ADDR 수정/삭제 답글

    ㄷㄷ 무슨 말인지 대충은알것같기도하면서 못알아들음 ...;

    한글 패치하구 일어패치 하구같이해야한다는건가요 ?

    • Favicon of http://www.azki.org BlogIcon 아즈키 2007.10.15 23:07 수정/삭제

      한글패치는 해야하고요ㅎㅎ (한글폰트쓸려면)
      일어 패치는 몬헌 한글날패치 설명한 것입니다 (몬헌전용!)

  • 아테네 2009.05.06 18:33 ADDR 수정/삭제 답글

    감사합니다 ㅎㅎ
    무사히 했다는..
    한때는 용량 딸리는줄 알고 놀랐지만
    아슬 아슬 하게 51MB 남아있었다능,

  • psp삿는데 일본어게임 2009.07.08 20:55 ADDR 수정/삭제 답글

    메모리 스틱이 필요한건가요

    • Favicon of https://blog2007.azki.org BlogIcon 더헛 2009.07.09 09:53 신고 수정/삭제

      세이브 파일을 위한 용량은 필요하겠죠 -.-;;

  • 2010.08.07 22:36 ADDR 수정/삭제 답글

    순정화작업에서 net이없어서 안됨니다

[PSP다그커펌체험기] 4. 커펌 설치 (커스텀 펌웨어 인스톨) 정펌 1.5 -> 커펌 3.52 M33 (+update4)

주의: 혹시나해서 말씀드리지만, 나의 경험을 (순정 1.5 상태에서 설치) 써놓은 것 입니다. 이미 하신 분들은 아시겠지만, 다른 버전의 커펌이 설치된 상태에서는 순정화 시키는 작업이 필요하다고 합니다. 확인하세요

자, 1.5 상태에서 커펌을 설치한 과정을 적어보겠다

PSP 는 다음과 같은 1.5 상태
사용자 삽입 이미지




자 준비물 -ㅁ-

http://dl.qj.net/General-Apps/pg/12/fid/14167/catid/151
3.52 M33 커스텀 펌웨어

http://dl.qj.net/PSP-Firmware-1.50-File-(EBOOT)-North-America-PSP/pg/12/fid/163/catid/163
1.5 펌웨어다 (아까 다운그래이드시 사용했었던 정펌)

http://do01a.psp.update.playstation.org/update/psp/image/oa/2007_0723_9e8da3f26e06b6b04fd31f3fda6069a5/EBOOT.PBP
3.52 펌웨어다 (=정펌)


3.52 M33 update4 이다 (따로 사이트가 없어서 걍 올림)


준비물도 참 많다 ㅡㅡ

시작하자.

  1. 커펌 3.52 M33 의 압축풀면 1.5only 라는 디렉토리가 나온다. 그 안의 kxploitpatcher 디렉토리와 kxploitpatcher% 디렉토리를 메모리스틱의 /PSP/GAME/ 디렉토리로 복사한다.
  2. PSP메뉴 게임 - 메모리스틱에서 KXploit Permanent Patcher 를 실행하고 X 버튼을 누르라고 나오면 누르면 된다 (메뉴로 자동으로 돌아옴)
  3. 이제 커펌 3.52 M33 M33CREATOR 안에 다음과 같이 1.5 펌웨어3.52 펌웨어를 넣는다.
    1. 1.5 펌웨어EBOOT.PBP 파일의 이름을 150.PBP로 고쳐서 넣는다.
    2. 3.52 펌웨어EBOOT.PBP 파일의 이름을 352.PBP로 고쳐서 넣는다.
    3. 그럼 M33CREATOR 디렉토리 안에는 150.PBP (13,575KB)352.PBP (21,045KB)EBOOT.PBP (445KB) 가 있게 된다.
  4. 3번에서 만든 M33CREATOR 디렉토리를 통채로 메모리스틱의 /PSP/GAME/ 디렉토리에 복사한다.
  5. PSP메뉴 게임 - 메모리스틱에서 3.52 M33 CREATOR 를 실행하고 10분 정도 기다려보자
    사용자 삽입 이미지
    사용자 삽입 이미지
  6. 나의 경우에는 이렇게 까만 화면이 지속되고, 메모리카드 사용하는 표시가  반짝반짝거렸다. 10분쯤 지나고나니 메모리카드를 사용하는 표시가 뜨지 않고 스크린 까만 상태로 지속되어서 20분쯤 더 있다가 껐다가 켰다 -.-.. 부팅하면서 다그시 안 빼놓았던 루미네스가 기동되고  스크린이 붉은색으로 변하고.. 다운이 되었다 (순간 벽돌된줄 알았다ㅠ) 루미네스를 빼고 다시 기동하니 정상적으로 부팅 성공!
    사용자 삽입 이미지
  7. 부팅에 성공하면 다음과 같은 커펌 설치 파일이 생성된다. (게임 - 메모리스틱)
    사용자 삽입 이미지
  8. 혹시나 들어있는 UMD를 제거하고, 배터리가 부족하지 않은지 다시 한번 확인하고 3.52 M33UPDATE를 실행!
  9. 설치할꺼냐 물어보고 또 역시 X를 누르면 설치되고, R트리거를 누르면 취소된다
    사용자 삽입 이미지
  10. X를 누르면 설치가 시작된다.  완료가 되면 다시 X를 누르라고 나오고 누르면 PSP가 꺼진다.  그럼 3.52 M33 커펌 설치는 완료 (시스템정보에서 확인해보자)
    사용자 삽입 이미지
    사용자 삽입 이미지
  11. 이제 M33Update4를 설치해보자. (이것을 설치하면 한글을 지원하는 커펌이 된다고 한다. 물론 폰트는 설치해야 되지만 별도의 한글 패치를 안해도 되는 장점이 있다. 또 이것저것 좋게 바뀐 점들이 많다고 한다. 참고로 이 패치는 07년 08월 21일에 나왔다.)
  12. 받은 M33Update4.zip을 풀면 M33Update4 디렉토리가 나온다. 이 디렉토리를 통채로 메모리스틱의 /PSP/GAME150/ 폴더에 넣고 PSP메뉴 게임 - 메모리스틱에서 달력모양이 3월 33일로 뜨고 3:33:33 시계뜨는 아래 이것을;; 실행시키면 된다. 끝..
    사용자 삽입 이미지
    사용자 삽입 이미지


다음화에는 한글 폰트 설치와, 폰트 설치를 하는 김에 몬헌2를 위한 폰트 패치를 해보도록 하겠습니다

[PSP다그커펌체험기] 3. 다그 (다운그래이드) 3.5 -> 1.5



위 동영상 보고서 따라했다 -ㅁ-

결론부터 얘기하자면 성공ㅋ

기판은 구기판이고 저번에 업글해서 3.5 인 상태에서 진행하였다

주의할 것은
시스템 설정 초기화를 하고, (그럼 재부팅된다)
재부팅시에 처음 설정에 나오는 언어 설정을 English 로 맞추고, (기본값 korean)
다시 설정에 들어가서 문자셋을 US Latin 으로 맞추고 시작한다. (기본값 korean)
나도 뭐 여러가지 실험을 해보지는 않아서 (하다가 벽돌나면 난감ㅋ) 잘은 모르겠지만..
이렇게 위험(?)한 작업에 굳이 변수를 만들 필요는 없으니까 왠만하면 다 초기화하고 시작하였다
(ps. 다른 실험자들의 얘기에 따르면 해야한다고 한다.)

일단 필요한 파일들을 받고 시작하였다

http://dl.qj.net/Hacks-Exploits/pg/12/fid/13978/catid/114
3.50 다운그래이더이다

http://dl.qj.net/PSP-Firmware-1.50-File-(EBOOT)-North-America-PSP/pg/12/fid/163/catid/163
1.5 펌웨어


파일 압축을 풀고 동영상보고 따라하면 되지만 간단하게 한글로 설명하면 다음과 같다

  1. 3.50 다운그래이더속의 MS_ROOT 디렉토리 안에 있는 PSP 폴더를 메모리스틱 루트 디렉토리에 덮어쓰기로 복사한다
  2. 1.5 펌웨어의 EBOOT.PBP 파일 이름을 UPDATE.PBP로 바꾸고, 메모리스틱의 다음 경로 /PSP/GAME/UPDATE/ 에 복사한다. (주의할 것은 EBOOT.PBP 파일이 이미 존재하는데 이것을 덮어쓰거나 삭제하면 안된다는 것.. 꼭 이름을 바꿔서 올려야한다.)
  3. 루미네스 UMD를 넣고 구동한다
    사용자 삽입 이미지
  4. psp 가 고장날듯 스크린 색상 매우 격하게 바뀌고; 재부팅된다
  5. 정상적으로 적용되었다면, 시스템 정보에서 시스템 버전이 3.50 HEN 으로 뜬다.확인 후 작업한다
  6. 게임 메뉴의 메모리스틱에서 다운그래이드(x.yz update)를 실행한다
  7. 내 구기판은 X 버튼을 한번만 누르면 되었지만, 신기판은 한번 더 물어봐서 두번 눌러야 된다고한다 (취소는 R트리거 버튼(위에 달린거 오른쪽꺼)을 누르면 된다.)
  8. 완료 후 커다랗게 OK가 뜨고, X 버튼을 누르라고 나온다. 누르자. 재부팅된다, 다른 분들은 설정오류 화면이 뜬다고 하지만 난 안떴다, 신기판만 뜨는 걸지도 모르겠다. 아무튼 설정오류화면은 네트워크 설정파일의 문제라고 한다, 3.50 다운그래이드 패키지에 포함된 NetConfigBackup을 실행하여 restore 를 선택하면 자동으로 복구 된다고 한다.
    사용자 삽입 이미지
  9. 시스템 정보에서 버전을 확인하면 1.5 버전이 되어있음을 확인할 수 있다
    사용자 삽입 이미지


다음번에는 지금 만든 1.5 에서 커펌 3.52 (M33) 을 설치하고 3.52 M33 4패치를 해보도록 하겠다

흥부부대찌개 @ 놀부부대찌개 #07.09.18

사용자 삽입 이미지
크항..
간만에 밥 먹었음 -ㅁ-;;
하지만 메뉴판의 사진과 사뭇 사뭇 넘 다른 모습 . .
정말 소시지 몇조각과 이파리에 국물뿐..
프렌차이즈지만 초큼 별로인듯하다ㅋ
내가 부대찌개를 별로 안좋아해서 그런걸지도 ㅎㅎ
혹시나 다시 가면 그땐 놀부부대찌개를 먹어야겠다;;
  • Favicon of http://iscat.org BlogIcon 더헛 2007.09.18 13:33 ADDR 수정/삭제 답글

    움 정말 간만에 밥 먹었다 ㅋㅋ 그리고 찌게->찌개 -_-;; 님아

커플요금제 절감효과 -.-..

8월 초에 시작한 커플요금제
SHOW CGV 영화커플패키지
LGT보다 기본요금이 높고 통화요금도 높지만 커플요금을 해서 저렴해졌다
게다가, 무료 영화가 한 사람당 한편씩ㅋ (이거 따지면 정말 싸졌음ㅋ)

8월달 사용량은 다음과 같다
SHOW기본료  22,452원 (SHOW CGV 영화커플패키지)
국내음성통화료  101,935원 (894분)
국내영상통화료  2,280원 (12분)
단문메시지  28,560원 (952건)
요금할인액  -120,598원
총 34,629원.. 부가세 3,462원을 더해도 나름 3만원대ㅋ
요금 할인 ;ㅂ;
감동이다
영화도 두편 봤고 (2사람 * 2편, 부담금: 동반인 5천원 * 2편, 22,000원 절감효과)
이래저래 따지면 싸다ㅋㅋㅋ
예전에 LGT를 쓰면서 8만원 정도 나오던 요금(ㅠ)에서 많이 저렴해졌다
커플요금제 감동 ;ㅂ;

가입비랑 USIM카드 비용은 일단 제외하였습니다 (처음에만 내는거니깐)
(가입비는 1만원씩 분납 3달 총 3만원, USIM카드발급비는 9,900원)

이명박 왈, “덜 예쁜 여자 골라야 서비스 좋아"..

잠잠하더니 간만에 또 한발언 하셨다

한나라당 경선에서 이긴 지 1주일 정도 지난 8월 28일 서울의 한 중국음식점에서

주요 일간지 편집국장 10여명과 저녁식사중..

"인생의 지혜"라며,

"특수 서비스업’에 종사하는 여성을 고를 때 덜 예쁜 여자를 골라야 한다" 고 했다

"마사지걸들이 있는 곳을 갈 경우 가장 얼굴이 덜 예쁜 여자를 고른다더라. 예쁜 여자는 이미 많은 손님들을 받았겠지만 예쁘지 않은 여자들은 자신을 선택해준 게 고마워 성심성의껏 서비스를 한다고 하더라. 일종의 지혜라 할 수 있다"고..

한 참석자는 “여성 대변인까지 있는데 그런 발언을 해 듣는 사람이 몹시 민망했다”고 전했다.



아.. 성매매 기술의 심오한 세계군요 ㅎㅎㅎ

뭐, 어차피 이 후보의 도덕성에 기대를 한건 아니지만 여성분도 있는 자리에서 그런 말 까지 해야하나?

이게 인생의 지혜인가 싶네요 -ㅁ- 잘 배웠습니다

다시 또 생각나네요.. 나이든 배우를 무시하고 장애인들 낙태시켜야 한다고 하신거..

세상 사는 지혜를 그런 곳에서 찾지말고 입 조심부터 해주신다면 좋겠습니다



  • Favicon of http://iscat.org BlogIcon 더헛 2007.09.14 10:36 ADDR 수정/삭제 답글

    음, -.- 수도 서울을 하나님께 봉헌하다니.. 서울살면 천국가겠네 ㅋㅋ

  • Favicon of http://paxcholy.myid.net/ BlogIcon paxcholy 2007.09.16 00:34 ADDR 수정/삭제 답글

    ㅋㅋ 커플블로그 하는거 이제 알았네. 옛날 데이터 다 날아간거야?

    • Favicon of http://azki.org BlogIcon 아즈키 2007.09.17 09:48 수정/삭제

      아니요, 숨겨놨어요ㅋㅋ

ANSI와 UTF-8과의 상호 변환

또 엄청나게 삽질 -.-
이번에는 ANSI <-> UTF-8 문제가 아니라, WideByte 쪽으로 고생 했다

ASP 에서 인자값으로 C++로 넘기는 부분이였는데
VARIANT 타입의 변수를 다루는 것에 뭐 이런게 다있나 하면서 해메고 -_-
그 변수에서의 스트링이 나는 ANSI 나 유니코드로 들어올 줄 알았고 혼자서 삽질을했다

계속 삽질하다가 나중에 char 포인터로 한 바이트씩 디버그해보니까
'<' + '\0' + 'x' + '\0' + 'm' + '\0' + 'l' + '\0' + ......
WideByte 타입 이였었다 -ㅁ-

결국은 답은 간단:
ANSI 코드로 바꿀 경우에는 W2A() 를 쓰고,
유니코드로 바꿀 경우에는 WideCharToMultiByte() 를 쓰면 되더라ㅋ

오랫만에 C++ . . 어렵더라 역시나 공부 좀 할껄 그랬어.. (원래 촘 못한다;)
음 공부 한 것은.. VARIANT 타입에 대해서 조금은 공부했고, (글구 SAFEARRAY 도)
ASP가 보통의 경우에 유니코드, ANSI 이런거 안쓰고 Wide Character 를 쓴다는거 ? ?


[PSP다그커펌체험기] 2. 다그를 위한 업그

PSP 커펌을 하는 방법은 여러가지지만 그중에..

루미네스를 이용한 정펌 3.5 -> 1.5 다그 이후 커펌을 설치하는 방법을 택하였다


일단, 3.5 에서 1.5 로 다그를 하기전에 내 PSP 펌웨어 버전을 살펴보았다

사용자 삽입 이미지

앗.. 3.10 이다

3.5 로 업그래이드를 하자.

(주의: 모든 다그, 커펌 작업이 그렇지만 배터리가 떨어질 염려가 있으므로 100% 완충 상태에서 진행하도록 하자)

http://dl.qj.net/PSP-Firmware-3.50-(North-America)-PSP/pg/12/fid/13840/catid/163

로 가서 아래쪽에 DOWNLOAD 버튼을 누르면 13840_EBOOT.PBP 파일을 받을 수 있다 (약 20MB)

다른 설명서를 보면 13840_EBOOT.PBP 파일을 압축을 풀라는 말이 있는대..

zip 등으로 압축되어 있을 경우 그런것이고 PBP 파일은 상관없다.

13840_EBOOT.PBP 받고 일단 이름을 EBOOT.PBP 로 고친다

PSP하고 PC를 연결하고 (설정 -> USB연결)

PSP 드라이브의 \PSP\GAME\UPDATE 폴더를 만든다.

난 PSP 폴더 까지 있어서 그 안에 GAME 폴더를 만들고, 그 안에 UPDATE 폴더를 만들었다.

\PSP\GAME\UPDATE 안에 EBOOT.PBP 를 복사한다

다 복사한 후 연결을 해제하고 PSP에서 업데이트를 진행한다 (게임 -> 메모리스틱)

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

몇가지 동의하고 하는게 나오는대 동의만하면 된다

사용자 삽입 이미지

완료 ! !

사용자 삽입 이미지


이제 다그를 위한 업데이트가 완료되었다

다음번에는 루미네스를 이용하여 다그를 하는 방법을 올리겠다 -ㅁ-ㅋㅋ
  • 하고싶음 2009.04.26 12:54 ADDR 수정/삭제 답글

    손상된데이터라는데요

[PSP다그커펌체험기] 1. 다그와 커펌에 관하여..

글은 계속 [PSP다그커펌체험기] 를 통해 올려보겠다

다그는 다운그래이드의 약자로 커펌을 위한 준비과정이다.

높은 버전에서 바로 커펌이 불가능하여 선행해야 하는 과정인거다


커펌은 커스텀 펌웨어의 약자로..

반대말은 정펌이 있다 (정식 펌웨어)

말 그대로 정식이 아닌 어둠의 -_-.. 펌웨어이당

해킹이라고 할 수 있다

PSP에 정식이 아닌 이 커펌을 설치하면 상당히 많은 기능을 사용할 수 있다

사용자(프로그래머? 해커?)들이 만들거나 PC나 PS1등에서 돌던 응용프로그램을 포팅한 프로그램을 사용할 수 있다.

수많은 애뮬레이터도 돌아가며, 심지어 네비게이션 어플리케이션까지 있다고 한다.

정발로는 안나온(일본어버전) 한글화 버전 게임도 있다 (개인팀에서 100% 한글화를 했다니 정말 놀랍다.)

더 좋은 기능의 비디오 플레이어도 있고.. 아무튼 좋다 많이...

다만 커펌 자체가 불법일뿐

그리고 위험성이 촘 따른다.. 잘못하다가 벽돌이라는 상태에 빠진다 (PSP가 벽돌로 변한다..)

그래서 커펌의 경험이 있는 분들이 돈받고 해주기도 하고, 용산에서도 해준다 (2만원정도)

하지만 돈도 아깝고 커펌에 대해 조금 더 알고 활용하고 싶기에 나는 직접해보는 방법을 택하였다

지금부터 커펌을 하는 과정을 하나하나 올려보겠다

#2007.09.08 Steaky Pan(스테키 팬) - 숭실대입구

더헛 수업 덕분에 숭실대에서 찾은 괜찮은 맛집♥

Steaky Pan(스테키 팬).

스테이크를 파는 집이였는데 가격대 맛이 괜찮았다ㅎ

위치는 숭실대 앞 스타벅스서 살짝 아래ㅋ (3거리에서 작은 길 언덕으로 촘 올라가면있다)

주말이였지만 딱 12시라서 런치로 즐길 수 있었다. 찍은 사진들 공개 : :


사용자 삽입 이미지
메뉴에 딸려나오는 빵과 스프

사용자 삽입 이미지
샐러드


사용자 삽입 이미지
내가 시킨 인디안 커리

사용자 삽입 이미지
더헛이 시킨 스위트 파인애플


처음에 양이 적어보였는데 생각보다는 많았음ㅋ

뭐 고급 스테끼나 정말로 맛있거나 그런건아니지만 가격대 성능 굿..

그리고 얼려있는 물티슈 나옴 ㅋㅋ (물 부으면 불어나는거 장 신기ㅋ)
  • Favicon of http://iscat.org BlogIcon 더헛 2007.09.11 15:40 ADDR 수정/삭제 답글

    웅 태그 외식의 압박 -.- 물휴지 장신기 ㅋㅋ 뭔가 촌년 될뻔했다 -.-;;

  • Favicon of http://lisgoon.tistory.com BlogIcon 리스 2007.09.13 08:36 ADDR 수정/삭제 답글

    음..
    일단 코맨트 남기는데 name 부분의 html이 좀 이상해 ㅡㅡ 어케 좀 해바 ㅋㅋ

    그리고 신촌에도 스테이크 꽤 괜찮게 하는데가 있지.

    니들 노는 곳이 홍대도 좋지 않나??

    홍대는 파스타와 스위스음식 맛나게 하는데가 좀 있지.

    여튼 장소를 좀 자세히 제공하란 말이지.. ㅋㅋ

    • Favicon of http://iscat.org BlogIcon 더헛 2007.09.13 08:50 수정/삭제

      언니야말로 그 파스타와 스위스음식 맛나게 하는 장소를 자세히 제공해주세요 ㅡㅡ! ㅋㅋ

    • Favicon of http://azki.org BlogIcon 아즈키 2007.09.14 06:15 수정/삭제

      그렇네요 ㅎㅎㅎ

      정확한 장소 좋은 의견 감사드려용

  • 후훗 2007.10.08 14:08 ADDR 수정/삭제 답글

    오 저도 여기 좋아해요ㅎㅎㅎ 근처 분식집하고 비교하면 가격이 나가지만.... 그래도 서비스 좋고 해서리 ㅎ

    • Favicon of http://azki.org BlogIcon 아즈키 2007.10.08 15:27 수정/삭제

      히릿 서비스 괜찮은거 같아요ㅎㅎ

2007 여름 휴가 @ 강원도

촘.. 많이 늦었지만

이번 여름에 다녀온 피서의 내용 =ㅁ=ㅋㅋ


추린다고 엄청추려냈지만 스크롤의 압박★



역시나 함께해서 행복햇었던 피서였지용


  • Favicon of http://iscat.org BlogIcon 더헛 2007.09.10 10:10 ADDR 수정/삭제 답글

    ㅋㅋ 넘 좋았어 피서 짱이였어.. 24살 먹은 애들치곤 너무 맛집기행이였지만.....................
    담엔 돈 더 모아서 더 럭셔리한 휴가 가보세~!ㅋ

    • Favicon of http://azki.org BlogIcon 아즈키 2007.09.11 09:47 수정/삭제

      웅 ㅋㅋ 최고최고 ㅎㅎㅎ
      이히 다음에 더욱 좋은 추억을 만들어봐요ㅋㅋ
      하지만 맛집이 중요한거다 -ㅁ-