반응형

event 의 속성에 보면 target 과 currentTarget 이 있는데 이것이 의미하는 바는 다음과 같다.

currentTarget  = listener 를 등록하여 event를 받을려고 하는 Object
target = event 를 dispatch 시키는 Object

예를 들어 list 컴포넌트에 각 row를 나타내는 render를 addChild 했을 경우 row 를 클릭했을 때
render 가 먼저 click 을 받아서 dispatch 시키므로 target 은 render 가 된다.
이 때 list 에 addEventListener를 등록했다면 currentTarget 은 list 가 된다.
반응형
Posted by seungkyua@gmail.com
,
반응형
아주 우연한 기회에 플렉스 프로젝트를 시작하면서 간만에 실력있는 사람들을 만난것 같다.
ActionScript 를 이용하여 가벼운 Framework 를 만들었는데 이를 이용하면 Flex 를 대체하여 시스템을 개발할 수 있다.
향후 이 Framewokr를 오픈소스를 오픈할 생각이라고 하니 지금 프로젝트를 하면서 하나 하나 알게된 내용을 조금씩 적을까 한다..

물론 업체의 저작권을 생각해서 세부적인 내용을 제외하고 내가 나중에 찾기 편하게 참고가 될만한 내용만 적을 것이다.

[최초 생성 될 때]

createChildren() -> onStageOnce() -> invalidateProperties() -> commitProperties() ->
addLifeCycleHandler() -> lifeCycleHandler() -> updateDisplayList() -> creationCompleted()

[라이프사이클 등록]

invalidateProperties() 나 commitProperties() 를 통해서 등록


[라이프사이클]

commitProperties() -> measure() -> updateDisplayList()


[메소드 호출]

1. set width(), height() -> updateDisplayList()
2. get width(), height() -> lifeCycleHandler() -> commitProperties() -> measure()
3. invalidateSize(), invalidateWidth(), invalidateHeight() -> measure()
 
measure() -> measuredWidth() -> measuredHeight() -> setSize()
setSize() -> updateDisplayList()

반응형
Posted by seungkyua@gmail.com
,
반응형

네트워크 이론을 아세요?
1950년대 그 이전에도 네트워크 이론은 존재했습니다. 그러나 그 에 대한 개념이나 증명이 완벽한 것은 아니었죠..
1967년 하버드대 교수인 스탠리 밀그램(Stanley Milgram)은 어떤 집단에서도 6단계만 거치면 모두 연결된다는 이론을 발표했습니다.(Six Degrees of Separation)
이에 1994년 올브라이트 칼리지의 세 학생 (Craig Fass, Brian Turtle, Mike Ginelli) 는 케빈 베이컨의 6단계 게임 (Six Degrees of Kevin Bacon) 이라는 게임을 만들어 인터넷에 올립니다. 어떤 헐리우드 배우도 6단계만 거치면 역시 헐리우드 배우인 케빈 베이컨과 연결된다는 게임입니다. 물론 모두 영화, 드라마, 광고등 함께 작업을 한 배우만 연결을 시킨거죠.

1998년 미국 코넬 대학 수학자인 스티븐 스트로가츠와 컬럼비아 대학 수학자인 던컨 와츠는 케빈 베이컨의 6단계 게임 자료를 바탕으로 어느 집단이든 (예를 들어 전력 송전망, 생물의 신경망등) 특별한 연결고리만 있으며 (여기서는 일종의 지름길) 몇단계 안에 모두 연결되는 좁은 세상을 만들어 낸다는 사실을 확인했습니다.

1999년 미국 노트르담 대학의 물리학자 알버트 라즐로 바라바시(Albert-Laszlo Barabasi) 교수는 인터넷 월드 와이드 웹을 연구 하였습니다. 처음 그는 표준편차가 있는 분포도 그래프를 생각했다고 합니다. 즉 평균적 수의 웹페이지가 평균적인 링크를 가지고 연결된다고 생각한 것이죠.. 그러나 그는 대다수 웹페이지가 소수의 링크만을 갖고 있는 반면 몇몇 페이지는 엄청나게 많은 수의 웹페이지들과 연결돼 있다는 걸 발견했습니다. 즉, 유난히 많은 링크가 몰려있는 허브를 발견하고 모든 네트워크에서의 연결은 허브를 중심으로 연결된다는 것을 네이처지에 발표했습니다. 또한 바라바시 교수는 스티븐 스트로가츠와 던컨 와츠에게 케빈 베이컨의 6단계 게임 데이터를 받아 이를 다시 한 번 검증하였습니다.
바라바시 교수는 자신의 논문에 의해 앞으로 구글, 아마존과 같은 허브 사이트가 나올 것을 예견하기도 했습니다.
사실 스티븐 스트로가츠와 던컨 와츠는 분포도만 조사해 봤어도 먼저 발표할 수 있는 논문이었습니다.

이제 네트워크는 허브를 중심으로 6단계 안에 연결되는 구조라는 것을 모두가 알게 되었습니다.

그럼 이제 이론을 우리 주위에 접목해 볼까요?

혹시 여러 분들은 자신은 이름만 들었지만 인터넷 상에서는 유명한 IT 전문가를 알고 계십니까?
Flex, Java, 닷넷, 방법론, 웹표준 등 소위 에반젤리스트라 불리는 사람들을 잘 알고 있을 것입니다..
이들은 자신의 블로그나 동호회 사이트로 허브의 역할을 하며 많이 알려졌죠..
이제 6단계만 거치면 모두 이들을 알고 있을 것입니다.
하지만.. 그 유명한 전문가가 만약 프로그래머이거나 아키텍트라면 소문만 믿고 따르지는 마세요..
대부분은 평범한 실력에 허브사이트를 통해 유명할 뿐인 경우가 많습니다.
반드시 실력을 통해 확인하십시오.. 더욱이 프로젝트를 같이할 경우라면 인성까지도 확인하세요..
낭패보기 쉽습니다..^^

반응형
Posted by seungkyua@gmail.com
,
반응형
Flex 단위테스트는 FlexUnit 을 사용한다.
FlexUnit은 버전 4 가 현재 진행중이며 아래의 사이트에서 다운 받을 수 있다.

FlexUnit4 beta 2.0 다운받기 <- 요기를 클릭

FlexUnit4 사용법을 위해서 Adobe Flex Development Tool 인 Flex Builder 3 를 설치하여 Flex Sample 프로젝트를 만든다. (프로젝트명 : FlexUnitSample)

FlexUnit4 의 압축을 풀어 lib 디렉토리에 있는 FlexUnit1Lib.swc, FlexUnit4.swc, FlexUnit4UIRunner.swc 파일을 복사하여 Sample 프로젝트의 lib 디렉토리에 복사한다.

Unit Test 는 아래 절차에 따라 진행한다.

  1. Test Case 클래스를 만든다.
  2. 비즈니스 클래스를 만든다.
  3. Test Suite 를 만들어 Test Case를 등록한다.
  4. mxml 파일에 Test Suite 를 생성하여 실행한다.
  5. 이후 진행은 일반 TDD 방법과 동일하다.


1. Test Case 클래스 만들기..

package simple {
    import flexunit.framework.TestCase;
   
    public class BankAccountTest extends TestCase {
             
       public function testDeposit():void {
          var bankAccount:BankAccount = new BankAccount();
          bankAccount.deposit(100);
          assertTrue("100원을 입금하면 100원이 저축된다", bankAccount.getBalance() == 100);
          bankAccount.deposit(25);
          assertEquals("25원을 추가로 입금하면 125원 이다", 125, bankAccount.getBalance());
       }
     
       public function testWithdraw():void {
          var bankAccount:BankAccount = new BankAccount();
          bankAccount.deposit(100);
          bankAccount.withdraw(25);
          assertTrue("백원을 저축하고 25원을 찾으면 남은 돈은 75원 이다",
                           bankAccount.getBalance() == 75);
       }
    }
}

2. 비즈니스 클래스 만들기.

package simple {
 
  public class BankAccount {
    private var balance:Number = 0;
   
    public function deposit(amount:Number):void {
      balance = balance + amount;
    }
   
    public function withdraw(amount:Number):void {
      balance = balance - amount;
    }
   
    public function getBalance():Number{
      return balance;
    } 
  }
}

3. Test Suite 만들기

Test Suite 은 두가지 방식으로 만들 수 있다.
첫번째 방식은 초기 버전 방식 그대로 suite() 메소드를 static 으로 만들어 제공하는 것이다.

package simple {
    import flexunit.framework.TestSuite;
  
    public class AllFrameworkTests {
    
        public static function suite() : TestSuite {
            var testSuite:TestSuite = new TestSuite(); 
           
            testSuite.addTestSuite( BankAccountTest );
           
            return testSuite;
        }
    }
}

또 다른 방법은 클래스의 변수로 선언하는 것이다.

package simple {
    import simple.BankAccountTest;
    
    [Suite]
    [RunWith("org.flexunit.runners.Suite")] 
    public class FlexUnit4Suite {
        public var testDeposit:BankAccountTest;
        public var testWithdraw:BankAccountTest;
    }
}

4. mxml 파일 만들기

Flex 프로젝트를 만들면 디폴트로 FlexUnitSample.mxml 파일이 생성되어 있을 것이다.
이를 아래와 같이 수정한다.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    creationComplete="runMe()" xmlns:flexUnitUIRunner="http://www.adobe.com/2009/flexUnitUIRunner"
    styleName="flexUnitApplication" >
 
    <mx:Script>
        <![CDATA[
            import simple.BankAccountTest;
            import simple.FlexUnit4Suite;
            import simple.AllFrameworkTests;
            import mx.logging.LogEventLevel;
            import org.flexunit.internals.TextListener;
            import org.flexunit.listeners.UIListener;
            import org.flexunit.runner.Request;
            import org.flexunit.runner.FlexUnitCore;
           
            private var core:FlexUnitCore;
        
            public function runMe():void {

                core = new FlexUnitCore();
                core.addListener( new UIListener( uiListener ));
                core.run( FlexUnit4Suite );

            }
        ]]>
    </mx:Script>
    <mx:Style>
        Application {
            backgroundColor: #3872b2;
            backgroundGradientColors: #3872b2, #0c1a3d;
            backgroundGradientAlphas: 1, 1;
            themeColor: #ffffff;
            color: #444444;
            fontFamily: "Myriad Pro Semibold";
            fontSize: 12;
        }
    </mx:Style>
   
    <flexUnitUIRunner:TestRunnerBase id="uiListener" width="100%" height="100%" />
 
</mx:Application>

runMe() 메소드를 보면 FlexUnitCore 클래스를 생성해서 UI 리스너를 등록한 후 Suite 를 돌리는 것을 알 수 있다.
리스너는 UI 리스너와 Text 리스너가 있어 둘중에 하나 편하게 사용하면 된다.

Text 리스너를 사용하고 싶다면 아래와 같이 등록하면 된다.

core.addListener( TextListener.getDefaultTextListener( LogEventLevel.DEBUG ) );

Suite 는 3번에서 만든 두가지를 다 등록할 수 있다.
앞에서는 변수 방식의 Suite 를 표현했으니 이번에는 suite() 메소드로 만든 Suite 를 등록해 보자.

core.run( AllFrameworkTests );

Suite 대신 Test Case 클래스를 직접 등록하여 사용할 수 도 있다.

core.run( BankAccountTest );

혹은, Test Case 클래스의 특정 메소드만 사용할 수 도 있다.

core.run( Request.method( BankAccountTest, "testDeposit" ) );

이제 디버그 모드로 실행하면 아래와 같은 성공적인 화면을 볼 수 있다... 짜~잔~~

반응형
Posted by seungkyua@gmail.com
,
반응형

유튜브에 올라온 인터넷버전...^^

반응형
Posted by seungkyua@gmail.com
,
반응형

누가... 나의 이 게으름 좀 잡아주세요...!!!
Help me~~!!!
반응형
Posted by seungkyua@gmail.com
,
반응형
사람들이 하도 hadoop이야기를 많이 하길래 한 번 살펴봤다..
마침 회사에서 클라우데라(구글GFS 개념으로 클라우드컴퓨팅을 주장하여 적용한 사람들이 창업한 회사로 hadoop을 이용한 클라우드컴퓨팅 구축 및 컨설팅하는 회사)랑 MOU도 맺었겠다....

현재 첨부를 저장하는 NAS나 DAS 대용으로도 가능하네...
역시 분산/병렬시스템을 지원하는 오픈소스라 가능하구나..

NAS의 경우 장애가 나면 전체 서버의 장애로 이어지는 개념때문에 HA, 고가의 디스크를 쓰면서 돈도 많이 드는데...
사무실 리눅스 서버에 오픈메일서버 구축하고 파일시스템을 hadoop으로 한 다음에 내 메일을 이리로 포워딩하면~~ 메일 저장을 hadoop 기반으로 할 수 있겠는데?

가장 큰 문제는 마스터서버 장애시 HA 방법이네..
이걸 짜볼까??

전에 Sun One Ldap 도 마스터 ldap을 HA로 했을 경우 프로세스는 살아있었지만 실제로는 마스터가 작동을 안해서 HA에 실패한 적이 있는데..
마스터가 비정상적으로 동작하는데 heart beat은 살아있는 경우도 있고..
또 잠시 연결이 안되 다운된 줄 알고 HA가 가동되어 2개의 마스터가 작동된 적도 있었는데..

재미는 있겠다.. 우선 소스부터 봐야지..^^
반응형
Posted by seungkyua@gmail.com
,
반응형
안철수 교수 이메일 : drahn@ahnlab.com

1. 회사의 핵심가치
   "성공하는 기업들의 8가지 습관", 1994, 하퍼비즈니스  -> "Built to Last", 제리 포라스

2. CEO의 고민
   "편집광만이 살아남는다", 앤드류 그로브

3. M&A
   "시스코 커넥션"

4. 회사 발전기의 전략
   "Inside the Tornado", 제프리 무어

5. 평생 좌우명
   "학문의 즐거움", 히로나카 헤이스케

6. 뛰어난 사람
   "파인만 씨, 농담도 잘 하시네요", 파인만 (노벨 물리학상 수상자)

7. 면접
   "면접의 달인"

8. 벤처기업의 마케팅 이론
   캐즘이론 : 벤처기업 제품이 초기에 조금 판매된 후 대중적인 판매로는 잘 연결되지 않는 현상


반응형
Posted by seungkyua@gmail.com
,

의문사

영어/토익 2009. 5. 17. 18:21
반응형

I. what
- 시점을 묻는 경우 (=When)
   . What time ~ ?
   . What is the deadline ~ ?

- 장소를 묻는 경우 (=Where)
   . What is the place ~ ?
   . What school ~ ?
   . Which company ~ ?

- 이유나 원인을 묻는 경우 (=Why)
   . What is the reason ~ ?
   . What makes (made) you ~ ?
   . What caused ~ ?

- 인물을 묻는 경우 (=Who)
   . Which person ~ ?
   . Which one ~ ?

- 가격이나 비용을 묻는 경우 (=How much)
   . What is the price (cost, charge, rate, fee) ~ ?
   . What is the estimate ~ ?
   . What is the deposit ~ ?

- 기간을 묻는 경우 (=How long)
   . What is the length of time ~ ?

- 문제점을 묻는 경우
   . What is wrong with ~ ?
   . What is the problem with ~ ?
   . What is happening with ~ ?
   . What is the matter with ~ ?

-  직업을 묻는 경우
   . What is your job (occupation, profession)?
   . What does Mr.Baker do (for a living)?
   . What kind (type) of work do you do?
   . What kidn of company do you work for?
   . What line of work are you in?

- 생각이나 의견을 묻는 경우
   . What do you think about (of) ~ ?
   . What is your impression for ~ ?
   . What is ~ like?
   . What is your prospects for ~ ?

- 계획이나 의도를 묻는 경우
   . What will you do ~ ?
   . What are you going to do ~ ?
   . What is your plan for ~ ?
   . What are you planning to do ~ ?

- 수단이나 방법을 묻는 경우 (=How)
   . What should I do ~ ?
   . What should we do ~ ?


II. when
 - 시간을 나타내는 부사, did (과거)를 조심

1. the opening : 공석, (회사의) 빈자리
2. put in add : 광고를 내다.
3. legal assistant : 변호사 보좌역
4. labor dispute : 노동분쟁
5. reach a resoluction, be settled : 해결되다. 타결되다
6. messenger : 배달원, 퀵서비스맨
7. in + 시간 : 몇시간 후에      after + 상황 : ~ 한 후에

반응형
Posted by seungkyua@gmail.com
,

사진묘사

영어/토익 2009. 5. 14. 17:45
반응형
pick up sth from somewhere : ~에 들려서 ~을 가져오다.
cleaner, laundry : 세탁소
greenhouse : 비닐하우스
pick fruit : 과일을 따다
product, goods, items, merchandise : 상품
line up,  stand in line : 줄을 서다
for the night : 밤의 일을 끝마치고
for the day : 하루 일과를 마치고
be towed : 견인되다
tow : 견인하다
tow away area(zone) : 견인구역
load & unload only : 정차만 되는 구역 (주차안됨)
cut down : (인건비, 임금등을) 삭감하다. (나무를) 자르다
road maintenance : 도로보수공사
binoculars : 쌍안경
tear down : 허물다    be torn down  : 허물어지다
outdoor shop(market) : 야외시장
the counter : (주방의) 조리대, (식당,바 등의) 카운터
반응형
Posted by seungkyua@gmail.com
,