문서를 보니..... 향상된 것인지 아님 기능이 더 추가되고 복잡해진 것인지 모르겠군요-_- 익숙해지면 편하겠지만, 지금은 현재 Flex3방식의 state가 더 편해보이네요-_-

예전에 어도비에서 RIA CAMP할 때 STATE기능의 향상이 있을 것이라고 해서 찾아보니 완전히 바뀌었네요.

우선 Flash Builder 4 Beta 2를 다운로드 해서 설치를.....ㅠㅠ

기존 Flex3 방식은 <mx:states> 태그안에 <mx:State>태그가 있는데, 이 안에서 AddChild나 SetProperty태그를 이용해서 해당 state로 변경이 되면 컴포넌트를 삭제하고 추가하거나 값을 변경하는 코드가 들어갔었죠.

Flex4 방식은 위와 같은 방식에서 완전히 바뀌었습니다(사실..flex4로 오면서 거의다 바뀌었다는....).
<s:states>태그안에 <s:State>태그가 들어가는 것은 같지만, 여기서 컴포넌트를 추가하거나 변경하는 코드는 들어가지 않습니다. 그냥 다음에 xml코드에서 해당 컴포넌트들에게 적용을 하게 됩니다. 컴포넌트 태그에 해당 state값에 맞는 코드를 중복으로 선언할 수 있습니다.
해당 State의  Name들이 default, register라면 <s:Panel title="제목" title.register="등록제목" /> 이런형태로 써버리면 currentState가 register로 바뀌면 자동으로 Panel의 title이 title.register값으로 변경이 되게 됩니다.

상세한 기능 및 설명은 Flex 4문서를 보시는 게 더 빠를 듯 합니다.
http://help.adobe.com/en_US/Flex/4.0/UsingSDK/WS2db454920e96a9e51e63e3d11c0bf69084-7fb4.html
http://www.artima.com/articles/flex_4_states.html

1. 디자인모드에서 state설정
그럼 Flash Builder를 실행해서 여기서 State를 설정해봅시다.
Flex로 프로젝트를 하나 만듭니다.
Design모드로 전환!
오른쪽 States View가 있는데, 거기에서 New State를 선택해서 추가합니다.
addbutton이라는 state를 추가합니다. 그리고 기존에 있던 State1은 default로 변경합니다.
그럼 states를 addbutton으로 맞춰놓고, 버튼을 드래그해서 놓습니다.
그리고 Source뷰로 바꾸면 이런 코드가 완성이 되네요^^
[code]<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768">
    <s:states>
        <s:State name="default"/>
        <s:State name="addbutton"/>
    </s:states>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:Button includeIn="addbutton" x="308" y="231" label="Button"/>
</s:Application>[/code]
Button에 includeIn이라는 attribute값이 들어가있고 거기에 state값이 있네요. 이 버튼은 addbutton일 때만 보이겠다는 것이죠. 아마 이 새로 바뀐 state형태는 기존 ui를 구성하는 mxml코드를 최대한 방해받지 않게 하려고 만든 것 같습니다.
그리고 재미있는 것은 편집 상단에 Show state: 부분이 있는데, state를 default로 바꾸면 button태그부분이 회색으로 dim처리가 되어버립니다-_- 와 멋지네요. UI작성에 방해받지 않게 하려는 배려인 듯.
사용자 삽입 이미지

dim처리...-_-

2. STATE별 이벤트 추가
state별 이벤트 뿐만 아니라 뭐 다양하게 추가할 수 있어요.
Design모드에서 그냥 addbutton state선택하고, 아까 추가한 버튼을 누르면 Properties를 설정할 수 있는데 In states를 클릭해서 All States로 바꿔줍시다^^
그러면 default에서도 나오는데, 버튼선택해서 오른쪽버튼 누르면 generate Service Call이라는 것이 있는데, 그걸 누르면 자동으로 click이벤트 함수를 만들어줍니다.
두개의 state에서 동시에 만들어버리면 이렇게 나오는군요.
사용자 삽입 이미지

신기함-_- 다른 state함수만 dim처리됨-_-

그 외의 자세한 기능은 문서를 참조하면 돼요. 문서에 샘플예제가 참 잘 나와 있습니다. Flex의 장점은 잘 된 문서화(?)가 아닐까합니다. 한글화가 안되어있는 것이 아쉽긴 하지만....ㅠㅠ

빌더는 여기서 다운로드를...ㅠㅠ


 
Posted by 머드초보
,
 
또 새로운 곳의 서울을 갔다왔습니다. 서울 파트너스 하우스라는 곳에서 했었습니다. 지도삽입해볼까....
아....지역검색에서 아쉽게도 다음지도에서는 검색하니 안나오는데, 네이버에서는 나오네요. 지역검색에서 왜 다음에는 등록안했을까-_-

지도 크게 보기
2009.11.15 | 지도 크게 보기 ©  NHN Corp.

A위치입니다. 한강진역에서 가깝지만, 전 서울역에서 402번을 타고 갔습니다.
근데 네이버지도에서도 한강시민공원 사업소라고 나오는 걸 보니 지도는 업데이트가 안되었나보네요. 지도가 좀 이상하네....-_-

서울파트너스하우스라는 곳 매우 좋네요. 우선 시설이 쌔삥입니다. 지은지 얼마 안됐나봅니다. 조쿰 고급스러워서 웬지 여기서 회의하고 싶은 생각이 많이 듭니다. 근데 숙박시설인가봅니다. 워크샵을 와서 지낼 수 있는 곳인 것 같습니다. 나중에 워크샵 여기로 오자고 건의해야겠습니다-_-(다들 반대하겠지.....워크샵은 놀러가는건데-_- 진짜 워크샵하실 분들만 여기로 오세요-_-)

원래 중소기업을 위한 시설인데, 다음은 원래 중소기업이 아니였는데, 특별히 허락해주었다고 하네요-_-

아놔 파트너스하우스가 너무 좋아서 파트너스 하우스에 대한 홍보글이 되고 있어요. 이제 본론으로-_-

다음 devday는 두번째인데요. 예전에 지도할 때 가서-_- wii를 탔었던....-_- 어떤 주제를 가지고 코딩할 수 있는 점이 참 재미있는 것 같습니다. 이런 행사 앞으로 계속 했으면 좋겠네요 ^^

1. 환영사 및 강사 소개
다음에디터 만드신 분들이 강의하고, YouFree라는 서비스를 개발하고 계시는 박사님 한분이 발표를 했습니다. 유프리라는 것을 대충 보니 어디서는 같은 환경에서 사용할 수 있고, 쉽게 플러그인 같은 걸 개발하고 사용할 수 있는 툴같습니다. 아직 자세히 안봤는데, 한번 들여다봐야겠습니다^^

2. Ice Breaking (자기 소개)
아이스 브레이킹-_- 하면 자꾸 그거 생각나네. 아이스브레이커라는 사탕-_- 이거 엄청 맛있음 ㄷㄷ


와 오늘 글쓰면서 많이 새네.... 이거 왓슨인가 거기서 팜 ^^ 조쿰 비싸서 부르주아들만 먹을 수 있어요. 아이스브레이커스하면 지드래곤의 HeartBreaker가 생각나죠.
암튼 각자 자기소개를 했습니다. 70명온다고 했는데 50명도 안온 것 같은 느낌이 들더군요. 빈자리도 많고-_- 제 생각이지만, 하필 그 전날 13일의 금요일이어서 갑자기 추워져서 그런 것 같아요.저도 사실 추워서 가기 싫었지만, 갔었죠-_- 자기소개를 들어보니 다들 엄청난 아이템을 준비해오셨더라구요. 결과도 다들 엄청난 걸 만드셨어요 대단합니다^^

3. YouFree 소개
http://www.youfree.or.kr/html/
유프리에 대한 소개가 잠깐 있었는데요. 설명을 들어도 아직 잘 모르겠군요. 뭐든 백번 듣는 것보다 한번 하는 게 나은 듯. 이것도 써보기 전엔 뭔지는 자세히 모르겠군요. 모든 것을 유프리에서 다 제공하겠다는 것이라고 강조를 하는데요. 유프리를 usb같은 저장공간에 설치를 하게 되면 이 PC에서 사용하고 관리하던 자신만의 기능들을 또 다른 PC에서도 그대로 사용할 수 있는 장점을 내세운 것 같습니다.
또한 이 플랫폼에 한에서 특정 기능을 추가하고 개발할 수 있는 기능도 제공하는 듯 합니다. 그걸 이용해서 현재 공모전을 준비하고 있더군요. 아...아니다 공모전은 이용사례나 어떻게 활용하는지 등의 컨텐츠 공모전이군요. 다음주가 마감인데, 선착순 90명한테는 기념품을 주더군요. 내봐야겠습니다. 기념품을 받기위해....-_-
유프리는 나중에 직접한번 써보고 다시 포스팅해야겠습니다^^

4. 쉬는 시간
와....배고팠는데, 먹을 것이 있네요. 다음 디브(데브가 맞나요 디브가 맞나요? 디브로 발음하던데-_-)데이에는 먹을 것이 많아서 좋음. 전에도 그랬던 것 같음-_-

5. Daum 오픈에디터 구조 소개
오픈에디터에 대해서 설명을 하는데요. 전 전날 좀 보고 왔었는데, 중간중간 모르던 것이 설명으로 이해가 되더군요.
다음오픈에디터는 nhn의 스마트에디터랑 좀 틀린 구조로 되어있는데요. 다음에디터는 완전 프레임워크를 지향하고 있습니다. 기능 추가 및 삭제, 또는 수정이 매우 유용하게 되어있습니다. 그래서 그런지 merge_and_compress_all을 돌려도 300k의 엄청난 js파일이 나옵니다-_- 배포버전은 300k정도 되는 듯. 스마트에디터는 지금 받아서 보니까 160k정도 되는군요. 딱 절반이네요. 암튼, 최적화가 필요하지 않은가 싶네요^^
아놔 오늘 왜이리 얘기가 새지.

암튼, 다음 에디터에 대해서 설명을 하는데, 여기서 모든 것을 다할 수 있더군요. 외부에 있는 데이터를 쉽게 가져올 수 있는 함수도 제공하구요. Prototype JS Framework을 이용해서 개조해서 다음에디터에 맞게 새로운 프레임워크를 만든 것 같습니다. Prototype처럼 class형태를 지향하도록 되어있네요^^

그리고 다음에디터개발환경이 apache + tomcat + velocity입니다. 그래서 제가 집에서 개발환경을 셋팅해봤는데요. 셋팅하다가 삽질 많이 했습니다-_- 셋팅문서에 좀 안나온 부분도 있고 그래서^^ 또 apache + tomcat환경 셋팅안해본지는 2년이 다된 것 같기에....
암튼, apache + tomcat개발환경이 필요한 이유는 제가 셋팅해본 봐로는 그렇습니다. www폴더는 tomcat이 돌아가고 daumeditor폴더는 아파치가 돌려야하기 때문에....-_-
velocity는 잘 모르지만, 마크업랭귀지인데, 기능 추가 삭제를 손쉽게 하기 위해서 이런 식으로 한 것 같습니다. 안에 매크로파일이 있는데, 거기에 기능을 추가하고, daumeditor.html파일에 #을 사용해서 추가하면 나중에 merge_and_compress_all할 때 필요한 기능만 들어가서 release되나봅니다. 저도 자세히 안봤기 때문에-_-

6. Tutorial
daum openapi를 이용해서 영화제목을 검색해 본문에 삽입하는 튜토리얼이였습니다. 문경두님이 발표하셨는데....사전에 이런말을 하셨죠. 오타를 내가 좀 많이 낸다. 오타를 찾으면 상품권을 주겠다. 이제부터 다들 튜토리얼 따라하기에 바쁜 게 아니라 오타찾기에 눈에 불이 들어옵니다-_- 예상외로 많은 오타를 내주셨고, 여기저기에서 오타에 대한 지적이 마구 들리기 시작했습니다-_-
그래도 꿋꿋이 튜토리얼을 진행하시더니 결국 끝내셨습니다. 튜토리얼을 보면서 느낀점은 정말 기능추가가 쉽네요^^

7. 점심시간
와....Daum DevDay는 항상 밥이 잘나와요-_- 저번엔 아웃백 갔었는데, 이번엔 부페라니....-_- 날씨가 춥고, 출입문 근처에 있다보니 음식이 차가워졌지만, 그래도 완전 맛있었음^^ 음료수도 충분히 준비되어있고, 다만 제가 3번째 먹을 때(-_-) 디저트를 먹으려고 갔는데, 좀 늦었는지, 제가 좋아하는 파인애플이 딱 2조각 남았던 것이 아쉬웠네요.

8. 개별 프로젝트(Live Coding)
개별 프로젝트 시간입니다. 저는 에디터에 음악검색을 넣으려고 했는데, 역시나 아이디어는 너무 평범했습니다-_- 그래서 이 에디터를 이용한 게시판 까지 만들어버린......-_-
음악검색은 소리바다에서 제공하는 앨범위젯과 음악URL을 삽입하는 기능을 넣도록 했었습니다. 여기에 삽입되는 위젯은 소리바다사이트에서 자동로그인을 한 유료사용자라면 전곡듣기가 가능하고, 아닌 사람들은 1분 미리듣기만 됩니다-_- 그래서 결제를 해야.....-_-
암튼, 하다보니 시간도 남고 해서 글을 미투데이로 포스팅하는 짓까지 해버린......-_-
결과물은.....-> http://mudchobo.tomeii.com/MusicBoard/

9. 발표
와...정말 대단한 작품들이 많이 나왔습니다.
여러 작품들 중에 맘에 드는 작품은 에디터에서 개발자들이 주로 사용하는 Control + Space기능을 추가한 작품인데요. 역시나 이분이 대상으로 wii타가셨습니다^^ 사실 드래그해서 기능버튼을 클릭해도 같은 기능이지만, 현재 사용자는 키보드를 사용하고 있고, 마우스를 쓰지 않고도 이렇게 사전검색 같은 기능을 할 수 있다는 것이 UI측면에서 훨씬 좋은 기능입니다.
그리고, 스펠링체크하는 프로그램을 만드신 분도 잘하셨고, 타이핑 속도 체크해서 알려주는 기능을 만드신 분도 있고, 코드하이라이트 기능도 적용하신 분도 계시고, 뭐 오늘 에디터로 할 수 있는 모든 기능이 다 나온 것 같습니다^^

일하다보면 가끔 초간단 게시판을 만들게 되는 일을 하게 되기도 하는데요. 그러면 에디터 같은 경우에는 직접 만드는 미친 짓을 하는 것보단 오픈소스를 가져다 쓰려고 주로 합니다. 나중에 게시판을 만들게 되는 일이 있으면 한번 적용해봐야겠네요^^
사용자 삽입 이미지

기념품입니다^^



 
Posted by 머드초보
,
 
기존에 Flex3에서 HTTPService는 직접 xml을 확인하여 valueobject를 만들던지 자동으로 파싱해주는 객체를 그냥 쓰던지 그런식으로 했었는데요. Flex4에서는 쉽게 Service객체를 만들어주고, ValueObject를 만들어줍니다.

근데, 그냥 기존방식을 쓰는 게 나을 것 같아요-_- 뭔놈의 클래스를 뭐이리 만들지-_-
그래도 제공하는 기능이니까 한번 사용해서 만들어봅시다-_-

다운로드는 여기서....-_-

1. 프로젝트 생성

New -> Flex Project -> Application type은 Desktop(구글의 httpservice를 가져올 것이어서 데탑으로-_-) -> Finish.

2. 서비스생성
구글에서 날씨를 가져오는 Service를 추가해봅시다.
아래 Data/Services탭에서 Connect to Data/Service..클릭.
HTTP선택 -> Opearation 첫번째 항목에 getWeather로 변경. url은 http://www.google.co.kr/ig/api?weather=seoul 입력.
url만 입력하면 ?붙은 파라메터는 자동으로 Parameters탭에 들어갑니다. weather가 들어가는데, 캐쉬문제 때무넹 캐쉬파라메터도 하나 추가합니다.
Add누르고, cache입력하고, DataType은 Number.
Service name은 WeatherService로 하죠. Finish.

여기서 이름 네이밍룰에 주의해야하는데, Service name이랑 parameter name이랑 같은 게 있으면 안됩니다. 에러나더군요.

3. 서비스에 대한 리턴타입 지정
이제 리턴타입을 지정해줘야하는데요.
그전에 데이터를 잘 가져오는지 테스트를 해볼 수 있습니다.
방금 생성한 WeatherService의 getWeather를 선택하고 오른쪽버튼 누르면 Configure Return Type이 있습니다.
이거 선택하기전에 Test Opearation이라고 해서 테스트를 해볼 수 있는 게 있네요.
테스트를 쉽게 해볼 수 있어서 참 좋네요. Test를 누르면 데이터를 가져와서 Tree View 또는 Raw View로 볼 수 있습니다.
사용자 삽입 이미지
근데, 이상한 점을 발견했는데, 네이버오픈API나 몇몇 XML은 이걸로 하면 잘 안돼요. 왜그런지 모르겠네요. 이런 에러메세지를 뿜습니다.
InvocationTargetException:The response is not a valid XML or a JSON string
이거 왜그런지 아시는 분은 답변좀....굽신굽신....-_-

암튼, 날씨API는 되니까 해봅시다-_-
Configure Return Type선택 후, Auto-detect the return type from sample data선택. 뭐 그냥 object로 받아도 되는데, 필요한 데이터만 가져온다고 하면 쉽게 valueobject를 만들 수 있는 장점이 있어요.
파라메터 방식을 선택하고, seoul을 입력합니다.
그러면 결과값이 나오는데, 여기서 필요한 건 현재 날씨이기 때문에 select root에서 current_conditions를 선택합니다. 그리고, Finish를 누르면 valueObject가 만들어지는데, 한개의 node마다 클래스가 2개씩 생겨요-_-

4. UI생성
UI를 만들어봅시다.
[code]<s:Button id="btnClose" label="X"  width="29" x="67" y="1" click="btnClose_clickHandler(event)"/>
<mx:Image x="6" y="32" width="40" height="40" id="imgIcon"/>
<s:Label x="0" y="80" width="100" textAlign="center"  id="labelCondition" />
<s:Label x="59" y="45" text="30º" fontSize="20" id="labelTemp"/>[/code]
초간단 UI...UI라고 불리지도 못하는 UI.

5. 데이터 바인딩
이제 데이터를 불러와야해요.
Design모드로 가서 아무라벨이나 붙잡고, 오른쪽버튼 눌러서 Bind To Data를 선택. 그리고 방금 만든 서비스를 바인딩해요. 전 labelCondition을 선택했는데, 그러면 WeatherService, getWeather의 condition을 선택합니다.
그러면 service태그도 알아서 들어가고 해당 라벨에는 creationComplete이벤트핸들러가 추가되었네요.
getWeather파라메터는 "seoul"과 cache는 랜덤값을 넣어줍니다.
그리고 실제 태그에는 condition.@data에 값이 있기 때문에, label의 text부분에 getWeatherResult.lastResult.condition.data로 변경해주시면 됩니다.
[code]protected function labelCondition_creationCompleteHandler(event:FlexEvent):void
{
    getWeatherResult.token = weatherService.getWeather("seoul", Math.random());
}[/code]

6. 완성된 코드
그럼 1분마다 데이터를 가져오는 타이머도 만들고 윈도우틀도 없애서 위젯형태로 만들어버리고, 나머지 label에도 값에 맞게 바인딩 시키면 완성이 됩니다.
[code]<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/halo"
                       xmlns:weatherservice="services.weatherservice.*"
                       width="150" height="150"
                       applicationComplete="windowedapplication_applicationCompleteHandler(event)"
                       showStatusBar="false"
                       backgroundColor="#48FF00">
    <fx:Script>
        <![CDATA[
            import flash.events.MouseEvent;
            import flash.events.TimerEvent;
            import flash.utils.Timer;
           
            import mx.controls.Alert;
            import mx.events.FlexEvent;
           
            import spark.components.mediaClasses.VolumeBar;
           
            private var timer:Timer;
           
            protected function windowedapplication_applicationCompleteHandler(event:FlexEvent):void
            {
                timer = new Timer(1000, 0);
                timer.addEventListener(TimerEvent.TIMER, timerHandler);
                timer.start();
            }
           
            protected function btnClose_clickHandler(event:MouseEvent):void
            {
                nativeWindow.close();
            }

            protected function labelCondition_creationCompleteHandler(event:FlexEvent):void
            {
                requestData();
            }

            protected function labelTitle_mouseDownHandler(event:MouseEvent):void
            {
                nativeWindow.startMove();
            }
           
            protected function timerHandler(event:TimerEvent):void
            {
                requestData();               
            }
           
            private function requestData():void
            {
                getWeatherResult.token = weatherService.getWeather("seoul", Math.random());
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <s:CallResponder id="getWeatherResult"/>
        <weatherservice:WeatherService id="weatherService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"/>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
   
    <s:Label id="labelTitle" text="서울날씨"  x="0" y="0" height="22" width="121" verticalAlign="middle" mouseDown="labelTitle_mouseDownHandler(event)"/>
    <s:Button id="btnClose" label="X"  width="30" x="120" y="1" click="btnClose_clickHandler(event)"/>
    <mx:Image x="25" y="47" width="40" height="40" id="imgIcon" source="http://www.google.co.kr{getWeatherResult.lastResult.icon.data}"/>
    <s:Label x="2" y="114" width="148" textAlign="center"  id="labelCondition"  creationComplete="labelCondition_creationCompleteHandler(event)" text="{getWeatherResult.lastResult.condition.data}"/>
    <s:Label x="92" y="58" fontSize="20" id="labelTemp" text="{getWeatherResult.lastResult.temp_c.data}ºC"/>
</s:WindowedApplication>
[/code]

7. Network Monitor로 데이터 확인
HTTPService 요청이 제대로 갔는지 확인할 수 있는 Network Monitor 기능이 추가되었습니다. 기존에는 확인하려면 직접 그냥 노가다로 해보거나 와이어샤크나 firebug 등의 http watcher를 이용해서 했었죠. 근데 이제 Flash Builder에 포함되어져있네요. 그냥 모니터링 하는거라 조금만 만져보면 알 수 있네요. row데이터로 볼 수도 있고, hex데이터로도 볼 수 있고 그러네요. 근데 한글이 깨지네-_-
사용자 삽입 이미지
사용자 삽입 이미지


 
Posted by 머드초보
,
 
그 전에 애드센스를 통해 환전을 할 때에는 수표로 받게 되어서 환전을 하였는데요. 그렇게 되면 이런 상황과도 같은 것인데, 구글 -> 한국 -> 외국은행 으로.....-_- 해서 돈을 받게 되는 현상이......

그래서 이번에 구글에서 웨스턴유니온 퀵 캐시(Western Union Quick Cash)라는 지급방식을 새롭게 지원을 했는데요. 이게 뭔가 찾아보니 빠르게 송금해주는 서비스인 듯 합니다. 송금자가 웨스턴유니온을 통해 송금을 하고 MTCN이라는 것을 송금 받는 사람에게 알려주면 그 MTCN를 통해 가맹점에서 쉽게 돈을 받을 수 있습니다.

이걸 이용하면 수표로 추심을 하는 삽질이 줄어들게 됩니다-_- 아마 구글 애드센스 사용자들이 많은 요청이 있었을 듯...전 국민은행을 주로 이용해서 추심수수료 10000원 내고, 돈을 환전을 했었죠. 10000원이면.....몇클릭인데....ㅠㅠ

암튼 환전 사례를 차례대로 나열하면.....

1. 웨스턴 유니온으로 지급방식 변경.
이건 오래전에 해놔서 기억이 가물가물하지만..... 내계정 -> 지급 세부사항 수정 -> 지급 형식을 Western Union Quick Cash로 하고, 계속을 누르면 이름을 넣으라는 칸이 2개 나오는데 이게 좀 헷깔렸음-_-
맨 위에 현재 수취인 이름에 "Jong-Cheon Seong"이 되어있으면 아래에는 이거 2개를 나눠서 입력하니까 되더군요-_- 위에는 Jong-Cheon, 아래는 Seong이라고.....안그럼 "현재 수취인 이름을 성 및 이름으로 구분하여 입력해야 합니다. 이름을 업데이트해야 할 경우 저희에게 알려주시기 바랍니다" 뜨더군요. 암튼, 나눠서 입력하는 게 포인트-_-

2. 지급내역 확인하기
웨스턴 유니온으로 받았다고 한다음에 $100가 다모이게 되면 지급이 되었을 겁니다.
지급내역 클릭 -> 그러면 "지급됨 - 세부정보"부분에서 세부정보 클릭.
사용자 삽입 이미지
여기서 가장 중요한 것은 MTCN입니다. 이것만 적어서 가면 됩니다^^

3. 기업은행에서 수령
웬만하면 기업은행에서 하라고해서 기업은행으로 갔습니다. 기업은행은 태어나서 왠지 처음 가본 것 같습니다-_- 가자마자 제가 어리버리 하고 있으니-_- 무슨 일로 오셨냐고 하니까, 아....웨스턴 유니온 수령하러 왔다고 하니 외환창구로 절 안내했습니다.
거기서 작성하는 것이 있는데.....전 MTCN만 알고 있어서 금액과 발송자 정보는 몰랐는데, 거기서 알려주더라구요.
사용자 삽입 이미지
기업은행에서 검색해보니...송금인이 Google In으로 나온다고 하더라구요-_- Inc가 아닌가 싶었는데.....-_- C가 짤렸나봅니다-_- 수취금액은 모른다고하니 그냥 넘어가더군요. 결론은 MTCN만 알면 됨-_-
기업은행은 계좌도 없는데도 친절하게 환전해주고 좋은 것 같네요^^
사용자 삽입 이미지
번외로 추심매입 비교-_-
기존에 국민은행과 외환은행에서 추심매입으로 환전했었는데요. 비교를 좀 해보면요.

국민은행 - 거래내역이 좀 많아서 그런지 몰라도 수표를 가져간 당일날 환률계산해서 주고, 추심수수료를 10000원받습니다. 뭐 당일날 바로 돈을 받을 수 있어서 좋지요.
외환은행 - 외환은행은 진짜 비추-_- 제가 거래가 별로 없어서 인지 몰라도 돈은 한달 뒤에 들어온다고 말합니다. 그래서 한달뒤에 들어오니 다른은행가서 하지 않겠냐며-_- 수표를 안받으려고 했었습니다-_- 하지만, 오기로 그냥 해달라고해서 받았던 기억이 나네요^^

웨스턴 유니온을 쓰면 추심수수료 10000원을 아낄 수 있고, 월말에 지급되는 수표를 다음달 중순쯤에 받게 되어서 15일정도 기다려야 되는 단점을 한방에 해결할 수 있습니다. 쉽고 빠르게 수령할 수 있어서 참 좋네요^^
 
Posted by 머드초보
,
 
아.....책은 오래전에 읽었는데, 이제야 서평을 쓰네요. 사실 실습도 안해봐서 내용도 다 까먹은 듯하지만, 불현듯 열이아빠님의 서평이벤트가 생각나서 글을 적어봅니다-_- 내일이 마감임 ㄷㄷ

우선 Flex어플은 그냥 기본으로 제공하는 스킨이 있는데요. 대부분이 그대로 쓰지 않습니다-_- 고객들이 싫어해요-_- 어쨌든 디자....

아놔....갑자기 회의 불려갔다왔네....

암튼, 디자인을 해서 입히고 그러는 작업이 추가적으로 들어가는데, 이거 해보면 해볼수록 스트레스가 만빵이에요. 왠지 디자인대로 안입혀지고-_- 어떻게 입히는지 모르겠고 그런 것이 많은데, 플렉스에 디자인을 입히는 방법을 알려주는 책입니다.
게다가 타 애플리케이션(플래시, 포토샵, 일러스트레이터, 파이어웍스 등)과 쉽게 협업을 할 수 있는 내용도 잠깐 나오구요.
사용자 삽입 이미지

음....왠지 이 디자인패턴책이랑 색감이 좀 맞는데?-_-


이 책의 구조는 조쿰 특이합니다. 앞에 이론이 나오고, 뒤에 실습예제가 나오는....
즉 책의 앞부분서부터 절반은 이런식으로 하면 바꿀 수 있다가 나오고, 절반부터 뒷부분은 약간의 실습예제가 나옵니다. 왜 이런 구조를 택했는지 모르겠지만, 전 이 방식이 적응이 되지 않는군요. 왠지 이론을 설명하고 예제가 바로 뒷바쳐줘야 내용을 그나마 이해를 하는 스타일이라-_- 앞에서 이론을 다 읽고, 뒷부분 예제를 읽으려니 왠지 앞부분이 생각이 안나는군요 ^^

그리고, 뒷부분에 나오는 부록도 참 맘에 드네요. 각각 컴포넌트에 대해서 style속성에 대해서 그림을 통해 잘 나타내어주었구요. 그리고, 필터속성이나 유용한 사이트들도 잘 나왔구요^^
사용자 삽입 이미지

마지막으로 디자이너와 보면 참 좋을 듯 한데...디자이너들이 보기엔 Flex를 좀 알아야할 듯. 디자이너들과 함께 협업하는 그날까지~^^
 
Posted by 머드초보
,