• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'분류 전체보기'에 해당되는 글 1246건

  • 2011.12.14 C#에서의 event와 Invoke. 1
  • 2011.11.17 TFS 2010에서 특정 Work Item을 지울 때…
  • 2011.10.20 [퍼온글-출처:요셉] 나경원 후보를 반대하는 두번째 이유는 이념적인 경직성입니다.
  • 2011.10.20 [퍼온글-출처:요셉] 저는 나경원 서울시장 후보를 반대합니다.
  • 2011.10.17 시장에서 본 박원순 후보자와 삿!
  • 2011.10.14 검색 엔진 비교.
  • 2011.10.13 헐.. 아이네임즈...네임서버.
  • 2011.10.10 마우스 G5 셀프 A/S 1

C#에서의 event와 Invoke.

기술자료/.NET 2011. 12. 14. 17:52

C#에서는 Listener 패턴을 구현하기 쉽다. 특히 event라는 예약어를 제공하고 있어서, Callback 형태의 구현이 어렵지 않다.


class Test 
{ 
        int m_nCurrentIndex = 0; 
        public delegate void IndexChangedEventHandler(); 
        public event IndexChangedEventHandler ChangeCurrentIndex; 
        public void ChangePage(int nIndex) 
        { 
               m_nCurrentIndex = nIndex; 
               ChangeCurrentIndex(); 
               m_nCurrentIndex = m_nCurrentIndex + 1; 
        } 
}

위의 코드는 바로 그 event 형태로 어떻게 구현하는지를 나타낸다.

이를 사용하는 로직은 아래와 같다.

class Program 
{ 
        [STAThread] 
        static void Main() 
        { 
             Test test = new Test();

             test.ChangeCurrentIndex 
                 +=  new IndexChangedEventHandler(test_ChangeCurrentIndex); 
             test.ChangePage(1);

             Console.WriteLine(“Complete!”); 
        }

        private void test_ChangeCurrentIndex() 
        { 
               Console.WriteLine(“event!”); 
        } 
}

 

“test.ChangeCurrentIndex” 이렇게 쓰고 “+=” 만 추가하면, 자동으로 코드가 생성되면서 아래에 함수가 하나 생긴다.
이것이 바로 event 구현 작업이다. 즉 test 내부에서 “ChangeCurrentIndex()” 이 함수가 불리는 순간, 이벤트 구독한 함수로 호출을 하게 된다.

즉 역으로 함수를 부르는 일종의 Callback  함수로 생각하면 된다.

위의 작업을 한 줄씩 실행되는 순서를 보면 아래와 같은 순서로 진행된다.

  1. Test test = new Test(); –> Test 클래스의 인스턴스를 만든다.
  2. test.ChangeCurrentIndex +=  new IndexChangedEventHandler(test_ChangeCurrentIndex); –> 이벤트를 구독한다.
  3. test.ChangePage(1); –> Test 클래스의 ChangePage 함수를 호출한다.
  4. m_nCurrentIndex = nIndex;   -> TestClass 내부 : m_nCurrentIndex에 nIndex 값을 대입한다.
  5. ChangeCurrentIndex();   -> Event를 발생시킨다.
  6. Console.WriteLine(“event!”)  -> Main 쪽의 이벤트 구독할 때 등록한 함수(test_ChangeCurrentIndex)로 들어가서 “event!” 라는 문자열을 찍는다.
  7. m_nCurrentIndex = m_nCurrentIndex + 1; –> +1 를 한다. 그리고 ChangePage 함수를 종료한다.
  8. Console.WriteLine(“Complete!”);   -> Main 으로 돌아와서 Complete를 찍고 종료한다.


이것을 실행하는 순서를 다이어그램으로 나타내면 아래와 같다.

 

Test라는 클래스와 Program이라는 클래스가 서로 통신을 한다고 했을 때, 위와 같은 Listen 구조가 안된다면, 결국 Program 이라는 클래스에서 호출하는 작업이 없다면 Test가 Program으로 데이터를 보낼 방법이 없다. 만일 저 위와 같은 형태가 안되는 구조라면, Test 클래스 안에는 Program 개체의 레퍼런스를 들고 있어야 한다.

class Test
{

        Program m_parent = null;
        int m_nCurrentIndex = 0;

        ~~~~~~~~~
}

그리고 Program 클래스 안에는 Test를 통해 처리해야 할 함수 부분에서 private를 public 으로 바꿔야된다.

        public void test_ChangeCurrentIndex()
        {
               Console.WriteLine(“event!”);
        }

호출할 때는 기존에 함수형태로 된 것을 Program을 통해서 부르도록 해야 된다.

        public void ChangePage(int nIndex)
        {
               ~~~~~~~~~~~
               m_parent .test_ChangeCurrentIndex();
               ~~~~~~~~~~~
        }

서로 인스턴스를 주고 받아야 저런 통신이 가능하게 되는 것이다.

하지만 위와 같이 하게 되는 경우 같은 DLL 이나 EXE 의 경우면 어차피 같은 프로젝트 안에 있는 내용이니 큰 문제가 없지만, 만일 서로 다른 프로젝트로 되어 구성된 경우라면, 서로 인스턴스를 주고 받으려면 상당히 난감해 질 수 밖에 없다.

이렇게 훌륭한 event 구성에도 심각한 문제가 있다.

그건 바로 실행되는 순서에 있다. 실행되는 순서 중 5~7 사이를 보도록 하자.
만일 5->7->6 의 순서로 실행하고 싶다면 어떻게 해야 할까? 즉, ChangePage 함수가 종료되면 자동으로 test_ChangeCurrentIndex 가 실행되고 싶을 때라는 것이다. 간단한 구조의 프로그램이나, 구성의 경우에는 이런 부분을 신경 쓰지 않지만, Multi Thread 나 Windows UI 응용 프로그램인 경우 문제가 발생한다.

왜 문제가 발생할까?

만일 저 Event 구조가 연달아 실행되는 형태라면? 이라는 가정으로 시작해보자.

만일 저런 형태라면, E에서 부터 시작해서 A까지 모든 작업이 끝나야 실제 동작이 끝나게 된다. 이 경우 함수를 연달아 부른 구조와 별 다를게 없다. 그래서 간혹 중간에 시간이 오래 걸리는 작업이 있는 경우, 메인 프로그램의 UI가 마치 다운된 것과 같다.

UI가 다운되지 않은 것처럼 하기 위해서는 E 가 완전히 끝난 뒤, D가 실행되고, 다음에는 D가 완전히 다 실행한 뒤, C가 실행되는 형태가 되어야 한다.

즉 맨 위의 예제 코드를 기준으로 보면, 1->2->3->4->5->6->7->8 이 아니라, 1->2->3->4->5->7->6->8 또는 1->2->3->4->5->7->8->6 순으로 실행되면 되는 것이다. 어찌되었던 간에, ChangePage 메소드가 종료 된 뒤에, 실행을 요청한 코드가 실행되어야 한다는 것이다.

이렇게 하려면 어떻게 해야 할까?

1가지 방법은 Windows Message를 사용하는 것이다. SendMessage 나, PostMessage 같은 것으로 호출하는 방법이다. 최소한 SendMessage나 PostMessage는 Windows Message Queue에다 던지는 형식이기 때문에, Windows Message Queue에서 해당 메시지가 나올 때 까지 나머지 부분을 계속 실행하게 된다. 즉 5 번 단계의 실행에서 바로 7단계로 넘어 간 뒤에, Windows Message Queue에서 Message 가 언제 나오는지에 따라, 6 번은 그에 맞게 실행되는 것이다.

이 작업은 .NET에서 Windows Message를 다루는 방법이므로 일단 이 방법은 넘어가도록 하자.

순수 .NET 코드에서는 어떻게 해야 할까?

바로 Invoke 라는 함수를 쓰는 것이다.

Invoke의 정확한 목적은 해당 개체에 있는 함수를 강제적으로 동작하게 하는 것인데, 이것은 상대 클래스내의 함수를 무조건 실행하는 것이다. public 이든, protected 든, 심지어 private 일지라도 강제적으로 실행하는 방법이다.

이 때, 중요한 것은 Invoke 명령어는 System.Windows.Form 네임스페이스에 있는 Control 기반의 Windows 개체만 동작한다는 것이다.  위의 예제 코드는 다음과 같이 다시 작성을 해야 한다. 먼저 Windows Form 기반 응용 프로그램이여야 할 것이다.

public partial class Form1 : Form 
{ 
        Test m_test = null; 
        public Form1() 
        { 
            InitializeComponent(); 
            m_test = new Test(this); 
            m_test.ChangeCurrentIndex 
              +=  new IndexChangedEventHandler(m_test_ChangeCurrentIndex); 
            test.ChangePage(1); 
            Console.WriteLine(“Complete!”); 
        }

        private void m_test_ChangeCurrentIndex() 
        { 
               Console.WriteLine(“event!”); 
        } 
} 

class Test 
{ 
        Form m_parent = null; 
        int m_nCurrentIndex = 0; 
        public delegate void IndexChangedEventHandler(); 
        public event IndexChangedEventHandler ChangeCurrentIndex; 
        public Test(Form parent) 
        { 
             m_parent = parent; 
        } 
        public void ChangePage(int nIndex) 
        { 
               m_nCurrentIndex = nIndex; 
               ChangeCurrentIndex(); 
               m_nCurrentIndex = m_nCurrentIndex + 1; 
        } 
}

앞서 event 기반의 Listen 패턴 관련해서 상호간 인스턴스가 필요없다고 했는데, 이번에는 필요하다. 왜냐면, event를 호출하는 로직을 할 때, Invoke를 해야 하는데, 그 Invoke를 당하는 대상의 인스턴스가 필요하기 때문이다.

다음 로직을 보자. 이제 ChangePage 라는 함수를 수정해야 하기 때문이다.

public void ChangePage(int nIndex) 
{ 
      m_nCurrentIndex = nIndex; 
      m_parent.Invoke(ChangeCurrentIndex); 
      m_nCurrentIndex = m_nCurrentIndex + 1; 
 } 

앞에서는 ChageCurrentIndex 라는 이벤트를 직접 함수처럼 실행했지만, 이번에는 Invoke 라는 것을 사용해서 실행하기 때문이다. 즉 Windows개체.Invoke(delegation함수) 형태로 실행하는 것이다.

m_parent.Invoke(ChangeCurrentIndex)라는 문구가 올 때, ChageCurrentIndex 에 연결된 함수가 실행되지 않고, 일단 m_parent 한테 실행하라고 지시만 한 상태가 된다. 일단 저 안의 함수 내용이 완료될 때까지는 저 Invoke가 실행되지 않는다. 그러므로 ChangeCurrentIndex에 구독한 부분은 나중에 실행되게 되고, 바로 그 아래에 있는 코드가 실행되게 된다. 그리고 그 함수가 완전히 종료되면, 그제서야 Invoke 한 함수를 실행하게 되는 것이다.

이 모든 작업은 COM Component 기반의 동작이 가능한 System.Windows.Form 계열의 Windows Form, Control 등만이 가능한 기능인 것이다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

TFS 2010에서 특정 Work Item을 지울 때…

기술자료/개발도구 2011. 11. 17. 12:58

TFS 2010에 Work Item을 등록하는 기능이 있다. 여기서의 WorkItem은 일종의 “작업” 같은 개념이다.

처음 사용하다 보면, 이 Work Item을 테스트 식으로 등록하기도 하고, 혹은 중복해서 등록하기도 한다. 또 가끔은 중복해서 올리기도 한다. 그럴 때, 늘 윈도우 프로그램 사용하던 방식대로 지우려고 하면 지워지지 않는데, 오른쪽 버튼을 눌러 컨텍스트 메뉴를 띄워도 Delete는 보이지 않고, 그렇다고 Delete 키를 눌러도 안된다. Toolbar에서는 아예 지원이 안된다. 결국 상태 변경을 해서 “완료” 혹은 “닫힘” 그런 것으로 변경해서 쿼리에서 안 나오게 정도 밖에는 못한다.

이를 확실하게 지우는 방법이 있었다.

먼저 Visual Studio 2010 이나, TFS Client 가 PC 내에서 설치되어 있어야 한다.(여기서는 Visual Studio 2010을 기준으로 설명)

이제 Cmmand Line 창을 띄워야 한다. 보통 Visual Studio가 설치되어 있으면 전용 Command Line 창이 있는데, 그것을 띄워도 된다.

image

Command Line 창이 뜨면 일단, 다음 명령을 입력한다.

cd ..\Common7\IDE

아이템을 삭제하기 위한 도구는 Visual Studio 2010이 설치된 폴더를 기준으로 Common7\IDE에 있다. 그래서 저 Command Line 창 최초 위치를 기준으로 해당하는 폴더로 이동하기 위한 것이다.

images0025

이제 본격적인 아이템 지우기. 아이템을 관리하는 모든 처리는 바로 witadmin.exe 이라는 프로그램이다. Command Line 명령이다. 그 형태는 아래와 같다.

witadmin destroywi /collection:{tfs 주소} /noprompt /id:{workitem id}

저기서 {tfs 주소}는 TFS 의 경로를 넣어준다.

TFS 서버 주소가 tfs.knoie.net 이고, 프로젝트 이름이 MyProject 라고 한다면,

http://tfs.knoie.net:8080/tfs/MyProject

가 된다. 이 주소 값은 TFS 연결할 때, 연결 정보를 열어보면 쉽게 알 수 있다.

images0023

{workitem ID}는 지우려는 workitem이 가진 고유 ID 값을 넣는다. 보통 이 아이디 값은 1 부터 시작하는 단순한 번호 나열이므로, 쉽게 찾을 수 있다. 쿼리를 하면 나열 되는데, 아래 그림의 붉은 색 상자 안의 ID 값을 의미한다.

images0024

저 안의 내용 중 367 번을 지운다면,

witadmin destroywi /collection:http://tfs.knoie.net:8080/tfs/MyProject /noprompt /id:367

이라고 입력하면 된다.

실행하면 아래처럼 표시된다.

images0026

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[퍼온글-출처:요셉] 나경원 후보를 반대하는 두번째 이유는 이념적인 경직성입니다.

잡글 2011. 10. 20. 18:03

역시 퍼온 글입니다. 두번째 이유도 올라왔더군요.


원본글 URL : http://josephforyou.blog.me/140861052

선거법에서 어느정도 후보자에 대한 반대의견 진술을 허용하는지는 잘 모르겠습니다만,

저는 나경원의원을 인격적으로, 인간적으로 비방할 생각은 없습니다.

제가 국회에서 업무를 수행하는 과정에서의 객관적인 상황, 있었던 그대로를 근거로 반대하는 이유를 이야기하고 싶습니다.

앞선 글에서도 언급했다시피, 저는 성실함, 근면함이라는 면에서 나경원 후보를 본받아야겠다고 생각하고 있습니다.

나경원의원, 그분은 의정활동을 사법시험을 준비하는 자세로 성실하게 해왔다고 합니다.

그런 성실성을 가진 정치인은 그 자체만으로도 긍정적인 것입니다.

하지만, 제가 반대를 하는 것은 그런 성실성으로 국민을 이끌어가는 방향에 대한 염려입니다.

저는 정치인으로서의 옳고 그름에 대한 판단력의 미흡을 첫번째 반대이유로 이야기했었습니다.

두번째 이유는 모든 것을 듣고 조정하는 역량이 필요한 서울시장이나 그 보다 더 상위 선출직을 수행하기에는 이념적인 편향이 강하다는 점입니다. 사립학교법 개정과정에서의 나경원후보의 입장에 대한 논란이 있는 것으로 압니다만, 제가 아는 한 나경원 후보는 노조에 대한 강한 거부감을 가지고 계십니다. 보좌관으로서 일하면서 저는 대중정치인으로서 나경원후보의 주장이나 생각이 보다 중도적이고 실용적인 노선에 접근하는 것이 바람직하다는 조언을 많이 드렸었고, 그런 의미에서 참여연대와 같은 시민단체나, 노동조합까지도 두루 만나고 이야기를 들으실 것을 요청드렸습니다. 그런데, 당시의 나의원님은 노조에 대한 거부감이 너무 강하셨습니다. 특히 전교조에 대한 거부감이 너무 강했기때문에 제가 더 이상 이야기하기가 힘들었을 뿐만아니라, 결국 나경원의원의 보좌관을 그만두게된 이유도 제가 시민단체나 노조와 가까운 사람이라서 '당'에서 스파이라고 한다, 그러니 그만두든지 한나라당에 입당하라는 나의원님의 요구때문이었습니다.

물론, 나경원의원님은  부친이 이사장으로 계신 학교재단의 이사이기도 하기때문에 전교조에 대한 그런 입장을 가질 수도 있겠다 생각할 수도 있겠습니다.

암튼 그럼에도 불구하고, 7년만에, 도와줄 사람이 부족하다 도움을 달라는 나경원 의원님 요청을 받아 전당대회 선거의 기획책임자로까지 참여했던 것은 나경원의원께서 그동안의 의정활동 속에서 더 많이 듣고 공부하고 성장하셔서, 보다 이념적으로 유연하고, 또 포용성을 가진 대중정치인으로 성장하셨기를 기대하는 마음이 있었기 때문입니다. 저는 그동안 나경원 의원은 분명히 달라지셨기를 기대했습니다.

그러나, 올해 여름 한나라당 전당대회를 통해서 확인한 나경원 의원님의 생각은 이런 것이었습니다.

'표를 의식해서 한나라당이 좌클릭하는 것을 반대한다. 한나라당의 정체성을 찾아야 한다.'

'무상급식은 포퓰리즘이다.'

특히 이 무상급식의 문제는 매우 중요한 사안이기 때문에 저는 기획담당자로서, "이미 오세훈 시장도 무상급식이냐 아니냐가 아니라, 전면적 무상급식이냐 단계적 무상급식이냐로 후퇴한 국면입니다. 아이들 밥먹이는 문제입니다. 어머니로서 공감합니다라는 말씀을 하셨으면 좋겠다"는 제언을 드렸습니다만, 이 문제에 대한 나경원 후보의 입장은 단호했습니다.

7년만에 만난 나경원의원은 이제 '보수의 가치'를 지켜내기 위한 한나라당의 잔다르크를 자임하고 계셨습니다.

저와 대화를 하면서 '보수의 가치'가 무엇이라고 생각하고 계시는지를 이야기나눈 적이 있습니다.

안타깝게도 나경원의원께는 지키고자 하는 그 가치에 대한 확고한 정리, 그 보수의 가치가 무엇인지가 아직 없으셨습니다.

결국 대중정치인으로서의 이념적 포용성도 없고, 국민들은 판단력 제로라고 보며 무상급식이라는 포퓰리즘에 휘둘리는 어리석은 '대중'으로 생각하는 국민에 대한 그릇된 인식을 가지고 있는 것이 아닌지, 또 보수와 진보에 대한 정확한 본인의 생각조차도 제대로 서있지 않으면서 어쨋든 극명한 선명한 보수라는 입장만을 붙잡고 계시는 것으로 저는 판단했습니다.

저는 이런 면에서,

듣고 안고 조정해야 하는 서울시장의 자리에

이념적인 경직성을 가진 나경원 후보는 바람직하지 않다는 판단을 하고 있는 것입니다.

[출처] 나경원 후보를 반대하는 두번째 이유는 이념적인 경직성입니다.|작성자 요셉

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[퍼온글-출처:요셉] 저는 나경원 서울시장 후보를 반대합니다.

잡글 2011. 10. 20. 17:58

이 글을 퍼온 글입니다. 좋은 글입니다. 지워지기 전에 한번 옮겨 봅니다. 제 블로그야, 제한적으로 오시는 분들만 보는 곳인지라, 정치권에서 다가오지 않을거 같으니깐요 ㅎㅎ


원본글 URL : http://josephforyou.blog.me/140774308

블로그 이웃여러분들 가운데에서 아시는 분들은 아시겠지만,

저는 초선의원이던 나경원 의원의 보좌관도 했었고,

올해는 나경원 의원을 한나라당 최고위원으로 만든 전당대회에서

나경원 의원의 기획본부장을 맡았던 사람입니다.

저는 이번 서울시장 선거를 두고 너무 많은 고민을 했습니다.

저는 지금 어느 당의 당원도 아닙니다.

2007년말 열린우리당 국회의원의 보좌관을 끝으로 국회를 떠난 뒤 올초까지 정치권을 떠나 있으려고

참 많이 노력했던 사람입니다.

그런 입장에서, 저는 개인적인 경험과 판단으로는 나경원 의원은 절대 서울시장이 되어서는 안된다고 생각하고 있습니다.

안된다고 혼자만 생각하고 있어야 하는지 너무 고민스러웠습니다.

정치적인 입장은 다르더라도

한때 자신이 모셨던 국회의원을 반대하는 것이 도의적으로 비난받을 일은 아닐른지,

그래 혹시 시장에 당성될지도 모르니 그냥 가만히 있자,

이런 생각 때문에 너무도 괴로웠습니다.

저는 항상 무슨 판단을 할 때,

제 아이들을 봅니다.

저 아이들에게 떳떳한 일이 무엇일지,

저 아이들의 미래가 계속 지금과 같아서는 안된다.

저는 그런 생각을 합니다.

나경원의원이 좋은 집안에서 자라고 실패를 모르고 살았고 뭐 기타 등등의 이유때문에 서울시장이 되어서는 안된다는 이야기를 제가 하는 것은 아닙니다. 그것은 정치적으로나 할 수 있는 이야기고, 사람됨을 잘 아는 사람이 할 이야기는 아니라고 생각합니다.

저는 나경원의원의 성실함을 높게 평가합니다. 그리고 어찌되었든 장애아이들을 위한 정책에 나름 노력하시는 것을 잘 알고 있습니다.

그럼에도 불구하고, 저는 나경원의원이 국회의원 이상의 정치적인 책임을 가지는 것은 옳지 않다고 생각합니다.

정치적인 지도자는 자신의 판단에 의해 국민을 이끌어가야 하는 자리입니다.

서울시장이라면 서울시민들의 내일을 책임지고 이끌어가야 하는 지도자입니다.

그런 지도자는 최소한 올바른 판단으로 대중을 이끌어 갈 수 있어야 합니다. 그러나, 제가 아는 나경원 의원님은 그만한 판단력이 없다고 생각합니다. 여러분이 잘 아시다시피, 나경원의원은 자위대 창립행사에 참석하셨습니다. 이명박 대통령 후보의 대변인으로서 '주어가 없으므로 아니라는' 논평도 냈습니다. 노무현 대통령의 사저를 아방궁이라고 논평하신 것도 논란이 되고 있는 것 같습니다.

제가 아는 한 이런 것은 나의원님 이야기한대로 모르고 하신 한나라당 대변인이라서 어쩔 수 없이 하신 일은 맞습니다. 그런데, 문제는 무엇을 몰랐느냐 대변인이라면 그렇게 하는 것이 옳은지 하는 것입니다.

예컨대 자위대 행사인지 모른 것이 아니라, 그렇게 하는 것이 옳은지 그른지를 모른 것이 문제입니다.

이런 판단력의 부재는 지도자의 흠결로서는 아주 큰 것입니다.

정책적인 결단을 해야할 때, 무엇이 옳은지 모르고 결론을 내리게 된다는 것, 이것은 서울시민, 그리고 앞으로 나의원께서 서울시장 이후에 꿈꾸고 계시는 더 큰 꿈을 꿀 때 대상이 될 우리 국민 모두에게는 몹시 불행하고 위험천만한 일입니다.

인사에 대한 결단을 해야 할 때, 누가 바른 사람이고 아닌지를 스스로 판단해낼 능력에도 문제가 있다면, '인사가 만사'라는 것을 생각하더라도 일천만 서울시민의 미래, 그리고 나아가서 대한국민의 미래를 맡길 지도자로서의 판단력은 가지고 있지 않으시다고 저는 생각합니다. 스스로 부족하면 좋은 사람을 들어쓰면 된다지만, 좋은 사람을 골라내는 판단력 역시 '판단력'입니다.

아울러, 더욱 제 이런 판단을 굳히게 된 것은 7년전에 보좌관으로서 보았던 나경원의원이 올해 한나라당의 전당대회 과정에서 보았을 때에도 전혀 변하거나 성장하시지 않았다는 점 때문입니다. 제게 일할 사람이 없어서 기획본부장이라는 자리를 맡겼지만, 저는 선거에 출마해야 할지 말지, 선거의 구도를 어떻게 가는 것이 옳은지, 선거의 예산이 어느 정도 들게 될 것인지, 후보는 무엇을 하고 캠프는 뭘 해야하는지, 선거전략을 어떻게 잡아야 할지, 나를 지지하는 사람들이 있는지 없는지, 정말 나를 도울 내 사람이 있는지, 나를 돕는 저 사람은 무슨 생각에서 돕는 것인지, 이런 것들에 대한 판단력을 저는 나경원 의원으로부터 전혀 확인하지 못했습니다.

저는 국회의원으로서 성실하게 자신의 소신을 가지고서 노력하시는 것으로서,

나경원의원의 달란트는 충분하고 또 적합한 것이라고 생각합니다.

몸에 맞지 않는 옷은 옷을 상하게 하고 나아가서 몸도 상하게 할 수 있습니다.

제가 나경원의원이 서울시장이 되는 것에 반대하는 이유는 너무 많지만, 우선 첫번째가 바로 이 판단능력입니다.

저는 나경원 후보가 서울시장이 되는 것을 반대합니다.

[출처] 저는 나경원 서울시장 후보를 반대합니다.|작성자 요셉

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

시장에서 본 박원순 후보자와 삿!

잡글 2011. 10. 17. 13:06

어제 집사람과 함께, 시장을 갔다가, 우연히 보게되었다. 주말이니 당연히 유권자들과 만나기 위해 직접 만나는.. 많은 취재진들과 구경꾼들과 함께 있었다. 나는 항상 이름이나, TV에서만 접하던 사람을 생얼로 본다는 신기한 기분에 그 분을 찍기 위해 샷을 날렸는데, 왠걸.. 유세 지원 오신 박영선님만 제대로 찍힌 것.

다시 시도했으나, 얼굴이 안찍히는 슬픔!!!!!

아쉬운 마음에 발걸음을 돌릴까 하다가, 용기를 내어 다가가서 한 컷 양해를 구했더니, 바로 자세 잡아주시는 후보님! ㅋ (지금 보니, 꼭 무슨 인계된 느낌 ㅎㅎ)

찍은 기쁨에 잽싸게 올릴려고 했더니, 박영선님이 기왕이면 10번 포즈까지 찍으시라는 권유. 덕분에 한컷 더 찍었다. ㅎㅎ

지금 보면 볼 수록 역시 자연스럽게 웃으시는 모습이 짱이신듯!

이런 직샷은 다른 이들의 직샷같은 것은 다른 세계 이야기처럼 들릴 정도로 엔간한 노력 없으면 불가능할 거 같았는데, 너무 우연하게 얻은 기회라 신기했다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

검색 엔진 비교.

잡글 2011. 10. 14. 10:15

말도 많고 탈도 많은 NAVER. 예전 연예인을 필두로 TV 광고도 좀 하고, 각종 다양한 업체들이 인터넷으로 광고하고 NAVER 질문 답변 컨텐츠들로 한동안 인터넷 초보자들로 부터 표준 아닌 표준 검색이 되었다. 최소한 내가 보아왔던 컴퓨터 초보 분들중 대부분은 시작 페이지가 네이버인 경우가 많고, 또 특정 문제가 발생할 때도 네이버에 검색해서 그 결과값을 마치 정답인양 역으로 전문가들을 공격하기도 한다.

오늘 hind.pe.kr URL 수리 후 과연 몇 명이나 유입되었나 보는데, 신기한 것을 보았다.

Image0001

유입경로라는건, 내 홈페이지를 과연 어디를 통해서 들어오셨나 하는 부분이였다. 저기서 “2010파워포인트 1935어셈블리 구성요소 설치..] 라는 항목. 내 블로그 내용을 전체다 기억하는 것은 아니지만, 파워포인트 관련된 글이 그다지 없고, 저런 문제도 없을텐데 하면서 들어가보았더니…이런 결과물.

Image0002

SharePoint Foundation 2010 설치 에서 2010 설치로 찾았따는 말.

진짜.. 헐 이라는 느낌.

이 참에 한번 더 검색해봤다. 이번에는 DAUM.

Image0003

진짜 뭐야 이건.. 이란 느낌. 20세기 웹검색 결과를 본 기분. 달랑 2개라니?

GOOGLE에서 검색해봤다.

Image0005

많다고 좋은 것은 아니지만, 최소한 다양한 부분을 체크해볼 수 있지 않은가…

실제 해결에 도움되는 문서의 URL은 http://support.microsoft.com/kb/926804/ko 로 MS 사이트에 있는데, 이 정보를 제대로 들고 온 것은 DAUM과 GOOGLE. 내가 봤을 땐 DAUM은 왠지 GOOGLE에서 훔쳐 온듯 싶지만, 어쨌던. 검색. 이젠 가급적 GOOGLE로 해주었으면 한다. 그저 NAVER나 DAUM 으로 검색한 결과를 가지고 나에게 평가 잣대로 쓰지 않아주셨으면 한다. 만일 그들의 정보가 너무 옳바르다 생각되면, 시시비비를 가리지 말고, 그냥 그 NAVER나, DAUM의 정보를 써주셨으면 한다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

헐.. 아이네임즈...네임서버.

잡글 2011. 10. 13. 11:23
아침에 잠시 홈페이지에 들어가려고 하니까, 왠걸 접속이 안되는 것이였다.
더욱이 hind.pe.kr을 조회하니, 조회가 안되는 것.

이건 대체 무슨일인가 싶었다.

그런데, 확인해본 결과 hind.pe.kr 에 대한 네임서버를 아이네임즈 것을 사용했었는데,
이 네임서버를 통해 조회가 안되는 것이였다.
해킹을 당한건지, 아니면 관리자의 실수인지는 도무지 알길은 없지만,
결국 실망감만 가득 안게 했다.

포기. 포기. (어쩐지 어제 접속수가 2자리 수더니만...)


그래서 오늘 dnsever 쪽으로 옮겼다. 
옮기니까, 바로 되는 구먼... 헐.

여튼, 아이네임즈 조만간 망할지도 모르겠다 싶다. ㅎㅎ
 
728x90
저작자표시 (새창열림)
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

마우스 G5 셀프 A/S

잡글 2011. 10. 10. 10:11

지금 집에서는 좀 비싼 마우스를 사용하고 있다. 로지텍 G5 라는 모델의 마우스로 기왕 사는거 나중에 A/S를 한번 받아보려고 샀다. 그리고 한참을 이용했는데, 어느날 보니까, 마우스가 잘 움직이지 않는 것이다. 어떤 자세에서는 연결되서 제대로 연결되는데, 어느자세에서는 제대로 연결되서 사용할 수 있었다.

IMG_20111007_134116

그러다 갑자기 아예 연결자체가 안되더니, 결국 완전 침묵을 했다. 이 기회에 드디어 A/S를 받아 보려고 했다. 고객지원실 전화는 00798-601-8207 이였다. 일단 이 제품을 A/S 받기 위해서는 P/N 이라든가, 파트번호 등의 정보가 필요하다고 해서 마우스를 가지고 와서 전화를 했다.

그런데, 결과는 아주 예상 가능 레벨로 참담했다.

1년 내에 구매한 제품이면 A/S가 가능하나, 3년 내 구매한 제품은 영수증 및 구매한 증명 문서가 필요하다고 한다. 헐… 도데체… 2년 전 내가 구매한 내역을 뽑아달라고 하니 이 참…

뭐 상담 받는 애들이 뭐라 하겠는가? 그래봐야 메뉴얼 대로 대응할 뿐..

내 생각에는 결국 로지텍이든, MS 든, 뭐가 되든, A/S를 고려한 고가 마우스를 구입하겠다면 절대 말린다. 마우스든, 키보드든, 결국 소모품이다! 라는 생각으로 구매를 할 것. 퀄리티가 아닌 지속적으로 오래 사용할 마음이면, 절대 고가를 사지 말았으면 한다.

아무리 좋아도, A/S 받으려면, 신경을 많이 써야 된다. ㅋ

서론이 길었고, 스스로 A/S 하는 방법을 소개한다.

1. 마우스 분해

일단 원인을 찾아봤다. 그러기 위해서는 마우스를 분해해야 한다. 이를 위해서는 몇가지 수고 스러운 짓을 해야 한다.

밑바닥에서 다음 그림 처럼 붉은색 박스 부분의 나사를 뜯어내야 한다. 특히 맨 아래쪽과 맨 위쪽은 서퍼를 뜯어내야 그 안에 담긴 나사를 뺄 수 있다. 총 4 개를 뜯으면 된다.

Untitled

그러자 문제가 생긴 부분을 찾을 수 있었다.

2. 나의 문제는?

무척 간단했다.
아래의 그림에서 붉은 색 박스 안의 선 부분의 단선이였다. 그 자랑하는 천으로 감싸서 외부 충격에 강하게 만든것은 좋지만, 결국 천 부분이 꼬이더니, 결국 멋대로 빙글 빙글 돌다가 결국 USB 선 자체가 끊어졌다.

IMG_20111007_134217

결국 이 선을 따로 구매하면 좋을 텐데, 우리나라에서는 저 선은 따로 구매할 방법을 못찾았다. 찾아보니, G1 마우스 케이블은 쉽게 찾을 수 있는데 말이다. 결국 저 끊어진 부분은 강제로 연결하는 수 밖에 없었고, 안의 선을 까서, 납땜으로 연결해버렸다.

내부는 대략 아래 처럼 생겼다.

IMG_20111007_134207

생각 보다 뜯는 것은 어렵지 않고, 적당하게 문제해결을 할 수 있다.

마지막으로 마우스 밑면의 서퍼를 붙여야 되는데, 이 부분은 별도 구매를 통해서 처리해야 한다.
(로지텍에서는 파는 곳이 없는 듯.) 찾아본 결과,

http://www.rantopad.co.kr

라는 업체를 통해 구매를 하면 된다.

찝찝한 A/S를 스스로 하고 난 뒤, 훗 .. .하고 웃고 만다.

다음에는 절대 비싼 마우스 사지 않는다… 이게 내가 내린 결론!

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • ···
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • ···
  • 156
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

비스킷 불만 협업 인터파크 moss windows 오류 Visual Studio 수 Buscuit me2photo 매뉴얼 twi2me me2dayzm SharePoint 친구 개발환경 Tutorial Google Apps Engine WSS 블로그 me2sms 좀 java e-book 것 지름신 2010 MOSS 2007 Azure

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바