midas+son의 크리에이티브(creative) 이야기

성격유형 : “용의주도한 전략가”
윗자리에 있는 사람은 고독한 법, 전략적 사고에 뛰어나며 매우 극소수인 건축가형 사람은 이를 누구보다 뼈저리게 이해합니다. 전체 인구의 2%에 해당하는 이들은 유독 여성에게서는 더욱 찾아보기 힘든 유형으로, 인구의 단 0.8%를 차지합니다. 체스를 두는 듯한 정확하고 계산된 움직임과 풍부한 지식을 소유하고 있는 이들은 그들과 견줄 만한 비슷한 부류의 사람을 찾는 데 종종 어려움을 겪습니다. 건축가형 사람은 상상력이 풍부하면서도 결단력이 있으며, 야망이 있지만 대외적으로 표현하지 않으며, 놀랄 만큼 호기심이 많지만 쓸데없는 데 에너지를 낭비하는 법이 없습니다.

올곧은 태도로 계획 달성을 향한 돌진
이들의 지식을 향한 갈증은 어릴 적부터 두드러지게 나타나는데, 때문에 건축가형 사람은 어릴 때 '책벌레'라는 소리를 자주 듣습니다. 대개 친구들 사이에서는 놀림의 표현임에도 불구하고 전혀 개의치 않아 하며, 오히려 깊고 넓은 지식을 가지고 있는 그들 자신에게 남다른 자부심을 느낍니다. 이들은 또한 관심 있는 특정 분야에 대한 그들의 방대한 지식을 다른 이들과 공유하고 싶어 하기도 합니다. 반면, 일명 가십거리와 같이 별 볼 일 없는 주제에 대한 잡담거리보다는 그들 나름의 분야에서 용의주도하게 전략을 세우거나 이를 실행해 옮기는 일을 선호합니다.

당신은 의견을 가질 권리가 없습니다. 다만 제대로 된 의견을 가질 권리만 있을 뿐이죠. 그 누구도 무식할 권리는 없기 때문입니다.

HARLAN ELLISON
대부분 사람 누가 봐도 이들은 지극히 모순적인 삶을 살아가는 것처럼 보이지만 이를 객관적이고 이성적으로 놓고 보면 사실 이해가 가기도 합니다. 예를 들면, 이들은 비현실적일 만큼 이상주의자이자인 동시에 매우 신랄한 조롱과 비판을 일삼는 냉소주의자로 이 둘이 같이 공존한다는 것 자체가 불가능해 보입니다. 또한, 기본적으로 지혜와 노력, 그리고 신중함만 있으며 못할 것이 없다고 믿는 한편, 사람들이 실질적으로 그러한 성취를 끌어내는 데 있어서는 게으르고 근시안적이며 자기 잇속만 차린다고 생각합니다. 그렇다고 이러한 냉소적인 태도가 성취하고자 하는 이들의 욕구를 꺾지는 못합니다.

성격유형 : “용의주도한 전략가” (INTJ-A / INTJ-T)
돌부처와 같은 원칙주의자
확신에 찬 자신감과 함부로 범접할 수 없는 신비로운 아우라를 발산하는 건축가형 사람은 통찰력과 관찰력, 기발한 아이디어, 그리고 뛰어난 논리력에 강한 의지와 인격이 합쳐져 변화를 이끄는 데 앞장섭니다. 이따금 이들이 생각했던 아이디어나 계획을 뒤집고 재수립하는 과정을 거쳐 완벽함을 추구하고자 하거나 도덕적 잣대에 따라 재정비하는 시간을 가지기도 합니다. 건축가형 사람의 업무 스타일을 좇아오지 못하거나 심지어는 이들이 왜 그렇게 행동하는지 전혀 감을 잡지 못하는 사람은 단번에 신임을 잃거나 이들의 인정을 받지 못할 수도 있습니다.

건축가형 사람이 몸서리치게 싫어하는 것이 있다면 바로 질서, 한계, 그리고 전통과 같은 것들인데, 이들은 세상의 모든 것을 탐구와 발견의 대상으로 여기기 때문입니다. 만일 문제 해결을 위한 방안을 찾은 경우, 간혹 무모할 수 있으나 기술적으로 뛰어나며 언제나 그렇듯 비정통적인 기발한 방법이나 아이디어를 수립하기 위해 홀로 행동에 옮깁니다.
그렇다고 이들이 충동적이라는 말은 아닙니다. 얼마나 간절히 성취하기를 원하는지 상관없이 건축가형 사람은 기본적으로 이성적인 사고를 합니다. 내부에서 비롯되었든 아니면 외부 세계에서 기인하였든지, 매사 이들의 아이디어는 “실현 가능할까?”와 같은 ‘이성적 사고’라는 필터의 과정을 거칩니다. 이는 사람 혹은 아이디어에 항시 적용되는 기제로, 이 때문에 건축가형 사람은 종종 곤경에 빠지기도 합니다.

홀로 떠나는 여행, 깨달음의 시간
오랜 시간 방대한 지식을 쌓아 온 똑똑하고 자신감 넘치는 이들이지만, 인간관계만큼은 이들이 자신 있어 하는 분야가 아닙니다. 진리나 깊이 있는 지식을 좇는 이들에게 선의의 거짓말이나 가벼운 잡담은 그저 낯설기만 합니다. 그럼에도 불구하고 자신을 필요 이상으로 내몰아 부조리투성이인 사회적 관습을 경험하기도 합니다. 가장 좋은 것은 이들이 그들 자신 자체로 온전히 있을 수 있는 곳, 즉 스포트라이트 밖에 있는 것입니다. 건축가형 사람은 익숙하고 편안한 곳에서 본연의 모습으로 있을 때 비로소 연인 관계나 그 외 여러 상황에서 그들 나름의 빛을 발하며 사람들을 끌어들이기 때문입니다.

건축가형 사람의 성향을 정의하자면 이들은 인생을 마치 체스를 두듯이 새로운 계획이나 전술, 그리고 대책을 세워가며 상대방 머리 위에서 수를 두며 허를 찌르는 기술로 상황을 유리하게 몰고 가는 듯한 삶을 살아갑니다. 그렇다고 이들이 양심 없는 삶을 살아간다는 말은 아닙니다. 다만 감정에 치우치는 것을 싫어하는 이들의 성격상 타인의 눈에 그렇게 비추어질 수 있습니다. 이를 고려하면 왜 많은 허구 속 등장인물들(종종 오해를 받곤 하는 영화 속 영웅들)이 본 성격 유형으로 묘사되는지 이해할 수 있을 것입니다.

--------------------------------------

2년만에 다시 해본 검사인데 놀랍습니다.
예전에는 신중하게 생각만 오래했다면
요즘엔 어필도 해보려고 꽤 노력했는데
그게 그대로 지표로 나와버리네요.

[용의주도한 전략가]


https://www.16personalities.com/ko(무료 성격 유형 검사 사이트)


INTJ는 내향성(Introvert),통찰력(iNtuitive),사고형(Thinking),판단력(Judging)이 강한 성격을 뜻한다.(위키백과)


윗자리에 있는 사람은 고독한 법, 전략적 사고에 뛰어나며 매우 극소수인 건축가형 사람은 이를 누구보다 뼈저리게 이해합니다. 전체 인구의 2%에 해당하는 이들은 유독 여성에게서는 더욱 찾아보기 힘든 유형으로, 인구의 단 0.8%를 차지합니다. 체스를 두는 듯한 정확하고 계산된 움직임과 풍부한 지식을 소유하고 있는 이들은 그들과 견줄 만한 비슷한 부류의 사람을 찾는 데 종종 어려움을 겪습니다. 건축가형 사람은 상상력이 풍부하면서도 결단력이 있으며, 야망이 있지만 대외적으로 표현하지 않으며, 놀랄 만큼 호기심이 많지만 쓸데없는 데 에너지를 낭비하는 법이 없습니다.



올곧은 태도로 계획 달성을 향한 돌진

이들의 지식을 향한 갈증은 어릴 적부터 두드러지게 나타나는데, 때문에 건축가형 사람은 어릴 때 '책벌레'라는 소리를 자주 듣습니다. 대개 친구들 사이에서는 놀림의 표현임에도 불구하고 전혀 개의치 않아 하며, 오히려 깊고 넓은 지식을 가지고 있는 그들 자신에게 남다른 자부심을 느낍니다. 이들은 또한 관심 있는 특정 분야에 대한 그들의 방대한 지식을 다른 이들과 공유하고 싶어 하기도 합니다. 반면, 일명 가십거리와 같이 별 볼 일 없는 주제에 대한 잡담거리보다는 그들 나름의 분야에서 용의주도하게 전략을 세우거나 이를 실행해 옮기는 일을 선호합니다.


“당신은 의견을 가질 권리가 없습니다. 다만 제대로 된 의견을 가질 권리만 있을 뿐이죠. 그 누구도 무식할 권리는 없기 때문입니다.”

— 할란 엘리슨


대부분 사람 누가 봐도 이들은 지극히 모순적인 삶을 살아가는 것처럼 보이지만 이를 객관적이고 이성적으로 놓고 보면 사실 이해가 가기도 합니다. 예를 들면, 이들은 비현실적일 만큼 이상주의자이자인 동시에 매우 신랄한 조롱과 비판을 일삼는 냉소주의자로 이 둘이 같이 공존한다는 것 자체가 불가능해 보입니다. 또한, 기본적으로 지혜와 노력, 그리고 신중함만 있으며 못할 것이 없다고 믿는 한편, 사람들이 실질적으로 그러한 성취를 끌어내는 데 있어서는 게으르고 근시안적이며 자기 잇속만 차린다고 생각합니다. 그렇다고 이러한 냉소적인 태도가 성취하고자 하는 이들의 욕구를 꺾지는 못합니다.



돌부처와 같은 원칙주의자

확신에 찬 자신감과 함부로 범접할 수 없는 신비로운 아우라를 발산하는 건축가형 사람은 통찰력과 관찰력, 기발한 아이디어, 그리고 뛰어난 논리력에 강한 의지와 인격이 합쳐져 변화를 이끄는 데 앞장섭니다. 이따금 이들이 생각했던 아이디어나 계획을 뒤집고 재수립하는 과정을 거쳐 완벽함을 추구하고자 하거나 도덕적 잣대에 따라 재정비하는 시간을 가지기도 합니다. 건축가형 사람의 업무 스타일을 좇아오지 못하거나 심지어는 이들이 왜 그렇게 행동하는지 전혀 감을 잡지 못하는 사람은 단번에 신임을 잃거나 이들의 인정을 받지 못할 수도 있습니다.


건축가형 사람이 몸서리치게 싫어하는 것이 있다면 바로 질서, 한계, 그리고 전통과 같은 것들인데, 이들은 세상의 모든 것을 탐구와 발견의 대상으로 여기기 때문입니다. 만일 문제 해결을 위한 방안을 찾은 경우, 간혹 무모할 수 있으나 기술적으로 뛰어나며 언제나 그렇듯 비정통적인 기발한 방법이나 아이디어를 수립하기 위해 홀로 행동에 옮깁니다.


그렇다고 이들이 충동적이라는 말은 아닙니다. 얼마나 간절히 성취하기를 원하는지 상관없이 건축가형 사람은 기본적으로 이성적인 사고를 합니다. 내부에서 비롯되었든 아니면 외부 세계에서 기인하였든지, 매사 이들의 아이디어는 “실현 가능할까?”와 같은 ‘이성적 사고’라는 필터의 과정을 거칩니다. 이는 사람 혹은 아이디어에 항시 적용되는 기제로, 이 때문에 건축가형 사람은 종종 곤경에 빠지기도 합니다.



홀로 떠나는 여행, 깨달음의 시간

오랜 시간 방대한 지식을 쌓아 온 똑똑하고 자신감 넘치는 이들이지만, 인간관계만큼은 이들이 자신 있어 하는 분야가 아닙니다. 진리나 깊이 있는 지식을 좇는 이들에게 선의의 거짓말이나 가벼운 잡담은 그저 낯설기만 합니다. 그럼에도 불구하고 자신을 필요 이상으로 내몰아 부조리투성이인 사회적 관습을 경험하기도 합니다. 가장 좋은 것은 이들이 그들 자신 자체로 온전히 있을 수 있는 곳, 즉 스포트라이트 밖에 있는 것입니다. 건축가형 사람은 익숙하고 편안한 곳에서 본연의 모습으로 있을 때 비로소 연인 관계나 그 외 여러 상황에서 그들 나름의 빛을 발하며 사람들을 끌어들이기 때문입니다.


건축가형 사람의 성향을 정의하자면 이들은 인생을 마치 체스를 두듯이 새로운 계획이나 전술, 그리고 대책을 세워가며 상대방 머리 위에서 수를 두며 허를 찌르는 기술로 상황을 유리하게 몰고 가는 듯한 삶을 살아갑니다. 그렇다고 이들이 양심 없는 삶을 살아간다는 말은 아닙니다. 다만 감정에 치우치는 것을 싫어하는 이들의 성격상 타인의 눈에 그렇게 비추어질 수 있습니다. 이를 고려하면 왜 많은 허구 속 등장인물들(종종 오해를 받곤 하는 영화 속 영웅들)이 본 성격 유형으로 묘사되는지 이해할 수 있을 것입니다.



========================

어느 정도 맞는 듯... 이런 검사는 할때 마다 깜짝 놀람

========================


unreal 4.16.1로 HTML5 패키징 테스트 마무리 단계에 왔다.


다국어 지원을 위한 한글과 영어의 텍스트들을

cpp내에서 특정 배열로 저장해 컨트롤 하는 부분이 있었는데

TEXT("한글") 처럼 한글을 지정한 부분에서

HTML5 패키징 시에만 에러가 발생했다.(PIE 중에는 에러 없음)


여러가지 테스트를 해봤는데

정리도 못할 만큼 갖가지 시도를 해봐서

결과, 조치 방법만 알려주겠다.

(Window용으로는 문제 없는데 HTML5 패키징 때에만 발생한 문제임을 다시한번 강조한다.)


한글 Win OS(64bit), Unreal 4, Visual Studio 2015 기본 설정 기준으로

cpp를 생성해 작성하면 그 파일의 인코딩은 자동 EUC-KR로 되어있다.


한글 처리해야 하는 cpp를 

인코딩 변환이 되는 문서편집기(필자는 notepad++ 사용)를 이용하여

UTF-8-BOM 으로 인코딩을 바꾸고 저장한다.

그냥 UTF-8로는 안되더라. 

(BOM의 유무 차이에 대한건 각자 구글에 검색해보자.)


UTF-8-BOM으로 바꾸고 나서 파일을 저장한 뒤

Visual Studio 에서 다시 보면 한글이 깨져 있을 수 있다.

cpp파일을 안닫고 변환해서 그렇다. 

그 상태로 다시 cpp를 저장하면 이전 인코딩으로 돌아가 버린다.

Visual Studio 통체로 끌 필요 없이 열려진 cpp파일만 닫고

UTF-8-BOM으로 바꾸고 저장한 뒤 

Visual Studio에서 cpp파일을 열면 된다.

혹시 계속 문제가 있다면 notepad++에 있는 안깨진 한글 부분을 복사에 

Visual Studio에서 붙여넣기 하면

UTF-8-BOM 포맷을 유지하며 붙여넣어진다.

cpp저장 후 notepad++에서 갱신해서 파일 인코딩을 계속 확인하자.


이제 Rebuild 하고 언리얼 PIE로 테스트 먼저해보자.

이는 확인 절차로 HTML5 패키징이 오래 걸려 혹시 모를 문제에 대비하는 것이다.

혹시 한글이 ??????로 나오면 cpp 인코딩이 잘못됐거나 TEXT("")나 L""이 안 붙어있는 것이다.


PIE에서 잘되면 HTML5 패키징을 해보자.

HTML5 패키징은 시간이 오래 걸리니 인내심을 가지자.

에러가 없이 빌드가 됐으면 Tomcat에도 띄워서 테스트 해보자.

에러가 있으면 다시 한번 인코딩을 확인해보자.


cpp에서 지정했던 한글이 제대로 나오면 굿!!!


언리얼 4.16.1 

HTML5패키징(WebGL2) 테스트 중...

빌드 후 톰캣에 올려서 테스트 하는데 2시간 뻘짓한 이야기.


요즘 브라우저들은 기본적으로 캐시가 디폴트 설정이다.

즉 특정 사이트들마다 각 상태값을 자동으로 저장하고 있는 것이다.


HTML5 빌드 테스트 중 아래와 같은 에러 메세지가 여러번 나왔었다.

그 브라우저 캐시를 생각 못해서 엄한 문제만 잡고 있었다.

이런거라든가

저런거라든가

결과적으론 위 같은 것들...


엄한 코드만 뒤적거리고 다른 문제만 잡고 있었다가 갑자기 머리가 번쩍여서 해결(?) 했다.


일단 위처럼 메세지가 나오면 캐시를 의심하라.


그리고 브라우저단위 테스트를 할 때에는

크롬의 시크릿 모드를 활용하자.

캐시를 저장 안해서 매번 새로이 갱신이 잘된다.



// Deprecated Functions
DEPRECATED(4.16, "FindEnumIndex is deprecated, call GetIndexByName or GetValueByName instead")
int32 FindEnumIndex(FName InName) const { return GetIndexByName(InName, true); }

DEPRECATED(4.16, "FindEnumRedirects is deprecated, call GetIndexByNameString instead")
static int32 FindEnumRedirects(const UEnum* Enum, FName EnumEntryName) { return Enum->GetIndexByNameString(EnumEntryName.ToString()); }

DEPRECATED(4.16, "GetEnum is deprecated, call GetNameByIndex instead")
FName GetEnum(int32 InIndex) const { return GetNameByIndex(InIndex); }

DEPRECATED(4.16, "GetEnumNameStringByValue is deprecated, call GetNameStringByValue instead")
FString GetEnumNameStringByValue(int64 InValue) const { return GetNameStringByValue(InValue); }

DEPRECATED(4.16, "GetEnumName is deprecated, call GetNameStringByIndex instead")
FString GetEnumName(int32 InIndex) const { return GetNameStringByIndex(InIndex); }

DEPRECATED(4.16, "GetDisplayNameText with name index is deprecated, call GetDisplayNameTextByIndex instead")
FText GetDisplayNameText(int32 NameIndex) const { return GetDisplayNameTextByIndex(NameIndex); }

DEPRECATED(4.16, "GetEnumText with name index is deprecated, call GetDisplayNameTextByIndex instead")
FText GetEnumText(int32 NameIndex) const { return GetDisplayNameTextByIndex(NameIndex); }

DEPRECATED(4.16, "GetEnumTextByValue with name index is deprecated, call GetDisplayNameTextByValue instead")
FText GetEnumTextByValue(int64 Value) { return GetDisplayNameTextByValue(Value);  }

윈도우 빌드나 에디터 플레이 중에는 상관 없는데

HTMl5 빌드하니 에러가 발생하여 패키징에 실패함.


WebGL2가 4.16버전부터 적용되었으니

이전 함수와 호환을 안시켜주었나보다...바뀐 함수로 수정하자.

정규 프로젝트 외에 WebGL테스트를 위해 언리얼4 엔진은 4.16.1로 업그레이드 하였다.


프로토타입용으로 4.15.1버전을 그대로 놔두고 

이 WebGL 프로토타입 용으로만 프로젝트를 새로 만들었다.


4.15.1에서는 엔진 자체 버그로 HTML5 패키징이 실패 했었는데

4.16 버전부터 WebGL2로 HTML5 패키징 시스템이 바뀌면서 다시 테스트를 하게 되었다.


4.16버전부터 c++ 프로그래밍 h헤더파일의 include 방법이나 빌드 코드가 조금 바뀌었고


마이그레이션 작업을 시간을 들여 다시 하게 되었었는데 


헤더를 필요한 것만 추가해놓으니까 비쥬얼 스튜디오의 인텔리센스(IntelliSense) 속도가 향상된 것을 느꼈다.


주된 내용으로 넘어가서 

HTML5프로젝트는 기본적으로 모바일 플랫폼 개발 방법을 따라간다.


테스트로 Windows용 dll이나 exe를 참조하는 부분을 제외한 나머지 기능들에 대해서만

별도로 프로젝트를 구축했고 HTML5빌드에 성공했는데

화면에 검게 나오는 현상이 있었다.

Widget으로 만든 UI는 제대로 나오는 것을 확인해보니 빌드 오류는 아닌 것 같았다.


구글링으로는 답이 안나와서 언리얼 정식 docs를 찾아 답을 구했다.


모바일 디바이스용 퍼포먼스 지침서 : 

https://docs.unrealengine.com/latest/KOR/Platforms/Mobile/Performance/index.html


모바일 플랫폼에서의 포스트 프로세스 이펙트 : 

https://docs.unrealengine.com/latest/KOR/Platforms/Mobile/PostProcessEffects/index.html


프로젝트 셋팅의 mobile HDR 옵션이 체크 해제되어 있었다.

이 부분을 체크 하고 에디터를 재시작한 뒤에

다시 HTML5로 빌드를 하면

위젯 외에도 Actor들이 크롬에서 정상적으로 나오는 것을 확인하였다.


위의 링크들을 들어가보고 읽어보면 포스트 프로세싱을 위해서는 저 옵션이 적용되어있어야 되었고

그외 여러 세팅들도 Mobile HDR 옵션이 필요하다고 한다.


MSAA(안티앨리어싱)은 사용하고자 하는 기능에 따라 꺼야 하는 경우도 있다.

주의하여 세팅해보자.

이건 지난 글에서 이어가는 것일 수도 있다.

왜냐면 지난 글에서는 Actor계열 BluePrint를 C++에서 SpawnActor할 때의 문제가 생겼을 때의 경우지만

이 글은 C++에서 UObject계열의 BP를 참조하는 방법에 대한 글이기 때문이다.


마찬가지로 4.15로 리팩토링 한 뒤부터 StaticLoadObject가 잘 안먹혔다.

그래서 수정 중 Actor계열은 처리 했지만 UObject계열 중 UMaterialInterface을 Load하는 것에는 실패 했다.

UObject계열은 _C를 붙인다고 해서 되지 않는다.


그래서 찾은 방법이 미리 만들어 두는 방법이다.

CDO가 생성될 때 설정하는 방법은 아래와 같다.

.h파일

UPROPERTY()

UMaterialInterface* mOpaque = nullptr;

.cpp파일

클래스이름::클래스이름()    //생성자

{

static ConstructorHelpers::FObjectFinder<UMaterialInterface> mInterfaceOpaque(TEXT("Material'/Game/Member/Member_Opaque.Member_Opaque'"));

mOpaque = mInterfaceOpaque.Object;

}

꼭 생성자에서 해야 한다.

위와 같이 해놓으면 빌드 후 exe실행으로 테스트 해도 변수에 제대로 값이 들어가 있다.


참고 페이지 : https://docs.unrealengine.com/latest/KOR/Programming/Assets/ReferencingAssets/index.html

한글로는 (생성 시간 레퍼런싱), 영어로는 (Construction Time Reference) 부분을 참고하자.

4.12.5버전을 사용할 때에는

아래처럼 블루프린트 경로를 설정하여 사용하였었는데

FName Path = TEXT("Blueprint'/Game/Actor/My_BP.My_BP'"); //My_BP.My_BP_C였던거 같은데...4.15에서는 _C붙이면 NULL이 됨.

UBlueprint* GeneratedBP = Cast<UBlueprint>(StaticLoadObject(UBlueprint::StaticClass(), NULL, *Path.ToString()));

GetWorld()->SpawnActor<AMyActor>(GeneratedBP->GeneratedClass, location, FRotator::ZeroRotator);

4.15버전에서는 에디터에서만 되고

실행 모드나 빌드 후 exe로 게임을 실행하면 Error가 발생한다.


그래서 여러 방도를 찾다가 아래와 같이 UClass를 찾으면 된다는 걸 알아냈다.

FName Path = TEXT("Class'/Game/Actor/My_BP.My_BP_C'"); //_C 꼭 붙여야 한다.

UClass* GeneratedBP = Cast<UClass>(StaticLoadObject(UClass::StaticClass(), NULL, *Path.ToString()));

GetWorld()->SpawnActor<AMyActor>(GeneratedBP, location, FRotator::ZeroRotator);

전 버전에서도 _C붙이는 것과 안붙이는 차이가 있었긴 한데

4.15 이상으로 오면서 BP Class와 BP 레퍼런스를 받아오는 게 명확히 나뉜거 같다.

새삼 우리나라 인터넷이 빠르다는 걸 실감합니다.


어제까지 3박 5일 동안 푸켓 내에서는

카톡으로 사진 하나 올리고 받는 것도 쩔쩔맸는데

우리나라 들어오고 나서 데이터 켜자마자

몇 십장의 사진 데이터가 순식간에 끝납니다.


평소엔 멋모르고 막 썼는데

이제는 우리나라 발전에 고마움을 느낍니다.


푸켓 첫 아침 조식 후

스벅

'개인사 > ' 카테고리의 다른 글

20170505_족발  (0) 2017.05.06
20170420_마라샹궈  (0) 2017.04.21
20170420_편도  (0) 2017.04.20
20170417_편도  (0) 2017.04.17
20170414_라멘  (0) 2017.04.16