Dev. Tips : 초기화의 두 가지 형태 (Lazy or Eager)

간단한 클래스가 있습니다.

Class CVal
{
    public:
        void Run();
    private:
        A m_A;
}

이 클래스를 구현할 때, 두 가지 초기화 형태에 대해 고민을 합니다.


▶ 1번
CVal:: CVal()

    m_A = new A();
}

void CVal ::Run()
{
    // m_A를 바로 사용...
}

▶ 2번
CVal:: CVal()
{
    // 초기화 하지 않음
}

void CVal ::Run()
{
    if(m_A == NULL)
        m_A = new A();

}


Q. 1번과 2번 중 어느 형태가 좋을까요?

저의 경우, 2번 형태를 사용하는 이유는
"버그를 잡다보니..." 혹은 "혹시 모르니 보험을 들자.." 둘 중 하나 였습니다.

결국 수정하는 부분에 대해 확신 할 수 없는 경우 이런 형태를 사용하게 되었습니다.

또한, 2번 형태로 코딩할 때, "어느 책에 절대로!! 2번 형태로 코딩하지마라" 라고 써있는 건 아닐까?" 걱정도 됐습니다.

최근 이에 대한 조언을 해준 사람이 있었는데, 바로 "켄트 백"이네요. ^^


[호칭]
    1번 형태 : Eager Initialize (열성적 초기화)
    2번 형태 : Lazy Initialize (게으른 초기화)


[장점]
    Eager : 디버깅이 쉽다
    Lazy : 남용하면 디버깅이 어려워 질 수 있다.(권장)

[그럼 언제써?]
    Eager : 초기화가 퍼포먼스에 무리를 주기 않는 환경일 때
    Lazy : 초기 구동시간을 줄이거나, 특별히 퍼포먼스에 집중해야 할 때

[예를 들어봐]
    VS2005, Netscape, Photoshop 들의 공통점이 있다. 초기 구동시간이 오래걸려서 참으로 지루하다!!
    반면, 최근의 Eclipse. 초기 구동시간이 예전에 비해 엄청 빨라졌다.

[결론]
    "반드시" 해야할 것들만 남기고, "게으른 초기화"를 사용하면,
    초기구동시간을 줄일 수 있을 까~ 하는 생각이 듭니다. ^^
    문제를 대충 해결하려는 목적으로 쓰지 말고, 고민 좀 해서 잘 사용하면, 좀 더 훌륭한 어플을 만들 수 있겠네요.

▶ 참고문헌 : 켄트 벡의 구현 패턴 / 켄트 벡저 / 전동환 역 / 에이콘출판사

by 너굴너굴 | 2009/10/28 15:45 | nUgURi_GURU | 트랙백 | 덧글(0)

wWw wOrLd #2 (Guitar Lesson)

Riff Of the Week™
    http://www.daveweiner.com

by 너굴너굴 | 2009/07/29 11:21 | wWw wOrLd | 트랙백 | 덧글(0)

Stop motion with wolf and pig.

우아!!

반짝반짝 아이디어, 열정 그리고 재력 고개를 숙이다!!

by 너굴너굴 | 2009/07/15 12:57 | fReE nOtE | 트랙백 | 덧글(0)

광고 ^^

이런 광고 너무 좋아!

by 너굴너굴 | 2009/07/09 17:50 | 트랙백 | 덧글(0)

처방약 확인하고 드세요 ^^

감기 증세가 있어, 병원에 다녀왔습니다.

처방을 받고, 약국에 가서 약을 받아왔습니다.

집에와서 받아 온 약을 확인해보니,

한 봉에 알약 4개와 캡슐약 1개 추가로 시럽약 1개가 따로 들어 있었습니다.

가벼운 증상이었는데, 약 5개와 시럽약 1개까지 먹어야 한다니 납득이 되지 않았습니다.

그래서, 찾은 사이트... 추천드립니다.

대부분의 약이 어떠한 용도인지 쉽게 찾을 수 있는 사이트가 있네요.

KIMS Online (대한민국 의약정보센터)
http://www.kimsonline.co.kr/drugsearch/identitysearch.asp

여기서 1개를 제외하고 모두 검색했습니다.

UT ACTC2000이라고 적혀있는 캡슐약은 검색이 되지 않더군요.

나머지 알약 4개는 모두 소염제였습니다.

"이 의사가 미쳤나!!!!!!"

이 글 보시는 분들은 약이 너무 많다 싶으시면 꼭 확인하고 드세요!!

아무리 생각해도 가벼운 감기 증세에 소염제 4개는 과하지 않나요?? ^^;;;

[Addition]
1408님이 보내주신 정보입니다.
폐의약품을 아무렇게나 버리면 생태계를 파괴하고 결국 인간에게 피해가 온다는 글입니다.
무섭네요. ㅠ.ㅠ
http://blog.daum.net/hellopolicy/6977988

by 너굴너굴 | 2009/07/07 15:03 | fReE nOtE | 트랙백 | 덧글(51)

◀ 이전 페이지다음 페이지 ▶