태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

달력

06

« 2017/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
  •  
2012.12.22 21:43

Evernote todo 검색 팁 분류없음2012.12.22 21:43

모든 자료를 에버노트에 둔다는 생각으로 에버노트를 쓰고 있는데, 그러다보면 검색이 잘되는 게 중요하죠.

에버노트 팟캐스트를 듣다가 알게된 검색 팁 한 가지가 유용한 것 같아서 블로그에 올려봅니다.

에버노트에 보면 체크박스를 넣는 기능이 있어요. 보통 todo 리스트 개념으로 쓰죠.

노트를 검색할 때 검색 칸에 todo:false 라고 쓰면 체크 표시가 되지 않은 체크박스가 들어있는 노트가 검색이 됩니다. 그럼 체크 표시된 체크박스를 검색하는 방법은 쉽게 떠오르겠네요. todo:true 겠죠.

그리고 todo:* 이라고 검색하면 체크 여부에는 상관 없이 체크박스가 포함된 노트가 모두 검색됩니다.


iPhone 에서 작성된 글입니다.
신고
TAG EverNote
Posted by wafe

댓글을 달아 주세요

  1. GanziOdin 2013.02.04 12:36 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다^^

블로그에 글을 쓴 적이 있는지 잘 기억나지는 않는데요 저는 지금 자이닉스라는 회사에서 일하고 있고 어느덧 10년차 자이닉스인이랍니다. 산업기능요원으로 근무를 시작했는데 지금은 산업기능요원 복무 관리를 하고 있죠 :) 저는 꽤 특이한 이력이라고 생각하는데 어떤가요?

저희 자이닉스에 올해도 산업기능요원이 배정이 되어서 채용을 시작했습니다. 흔히 "병역특례", "병특"이라고도 많이들 얘기하시죠

지난 번과 동일하게 올해에도 현역 1명 보충역 1명이 배정되었고, 12월 31일까지 이력서 접수를 받습니다. 자세한 내용은 자이닉스 홈페이지의 채용 공고란을 봐주세요.


신고
Posted by wafe

댓글을 달아 주세요

  1. 2012.12.19 15:36  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • wafe 2012.12.20 11:20 신고  댓글주소  수정/삭제

      지원해주셔서 고맙습니다 ^^

      공고에 이력서/자기소개서 관련 내용이 누락된 거 같아서 공고를 수정해놨어요. 번거로우시겠지만 공고에 첨부된 이력서 양식으로 한 번 더 보내주시면 좋겠습니다.

  2. 2012.12.20 13:06  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • wafe 2012.12.20 15:09 신고  댓글주소  수정/삭제

      저희는 정보처리 분야 업체라서 기본적으로 관련 학과 전공자라야 합니다. 예전에 제 블로그에 올렸던 내용 ( http://wafe.kr/entry/jungbo-sanup-jeongong ) 을 참고 하셔도 되는데, 확실한 것은 병무청에 전화 연락을 통해서 확인하시는게 좋겠습니다.

      관련 학과 전공자라는 조건이 충족된다면 학과의 4년제 여부나 이수 학점수에 따라서 정보처리 산업기사 자격증이나 정보처리 기사 자격증이 필요합니다. (혹은 전자계산기조직응용 자격증도 가능하다고 합니다)

  3. 2013.03.08 14:12  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

탐색기에서 파일이나 폴더 이름을 바꾸거나, 다른 곳으로 이동하려고 할 때 권한이 없다거나 다른 프로그램이 사용 중이라면서 되지 않을 때가 있습니다.


특히 TortoiseSVN을 이용해서 subversion 저장소에서 체크아웃 해 놓은 소스 폴더에서는 자주 발생하는 일이죠.


TortoiseSVN 사용 시에 폴더를 붙잡고 있는 주범은 TortoiseProc.exe 인 경우가 많긴 하지만, 무조건 이녀석을 나쁜 놈으로 몰아버리면 좀 억울하겠죠? 그리고 소스 폴더가 아닌 경우에도 문제를 해결할 수 있는 방법이 필요하니까요.


구글링을 해보면 여러가지 unlocker 유틸리티들이 많긴 합니다. 하지만 왠지 신뢰가 안가고 찜찜하다는 생각이 듭니다. 좀 믿을만한 녀석이 없나할 때 떠오르는 이름이 바로 Sysinternals 죠.


Sysinternals 에서 제공하는 Process Explorer 라는 툴이 있는데요, 이 녀석은 윈도우에서 기본 제공하는 작업관리자 기능을 보강하면서도, 프로세스별로 어떤 DLL이 로드되었는지 보여주는 등의 기능이 있어서 개발할 때 유용하게 사용하고 있습니다. 개발하다보면 괜히 엉뚱한 곳에 있는 DLL이 로드되어서 삽질하는 경우가 있거든요 T.T


Process Explorer 에는 프로세스가 로드한 DLL 뿐만 아니라 사용하고 있는 핸들 정보들을 보여주는 기능도 있는데, 이걸 이용하면 어느 프로세스가 어떤 파일을 사용하고 있는지 확인할 수가 있습니다.


Process Explorer 를 관리자 권한으로 실행시키고, Find 메뉴에서 "Find Handle or DLL..." 을 선택합니다. 그러면 다이얼로그가 하나 표시되는데, 거기에 폴더 이름이나 파일 이름을 써넣고 Search 버튼을 눌러줍니다. 검색 결과를 보면 여러가지 타입의 결과들이 같이 표시가될 수 있는데, File 타입으로 되어 있는 것이 우리가 찾으려는 대상입니다.



검색 결과 목록에서 원하는 항목을 마우스로 클릭하면 Process Explorer 메인 윈도우에서도 해당 프로세스가 선택이 됩니다. 이제 어떤 프로그램이 파일을 사용중인지 알았으니 정상적으로 프로그램을 종료시켜주면 되겠죠. 미운 녀석이라면 Process Explorer 메인 윈도우에서 마우스 오른쪽 클릭 후 표시되는 메뉴에서 Kill Process 해서 강제로 종료시켜주면 되겠습니다.


신고
Posted by wafe

댓글을 달아 주세요

2012.11.13 02:06

Google Cloud SQL 서비스 오픈 분류없음2012.11.13 02:06

블로터에 "구글, 클라우드 SQL 개봉... 첫 6개월은 무료"라는 기사가 올라왔습니다. 우연히 저도 며칠 전에 구글의 클라우드 서비스에 대해서 간단히 조사를 했기에 조금 첨언을 하려고 합니다. 


구글은 각 서비스들의 API는 적극적으로 제공하지만, PaaS로 분류할 수 있는 Google App Engine 외에는 특별히 PaaS나 IaaS 류의 클라우드 서비스를 제공하지는 않는 걸로 알고 있었는데 근래 1년 사이에 여러 가지 클라우드 서비스를 오픈했더군요. 서비스들의 개요는 'Google Cloud Platform' 웹 사이트에서 볼 수 있습니다. 


그 중에서 Cloud SQL 은 블로터 기사에서도 언급되어 있는 것처럼 구글의 클라우드 인프라 위에서 동작하는 MySQL 데이터베이스입니다. 직접적인 파일 작업 외의 거의 모든 MySQL 기능을 제공하면서 복제 서비스 등의 부가기능을 제공하는 형태라고 하네요. 


개발자 문서 중 'Tools and Resources' 에서 Google Cloud SQL을 이용하는 방법을 보면 Google App Engine의 Java SDK와 Python SDK, Google Apps Script, 그리고 Java 로된 google_sql 라이브러리를 사용해서 Cloud SQL 을 이용할 수 있습니다. 외부 어플리케이션에서 사용하려면 Java 로만 할 수가 있다고 하니, 우선 기존의 외부 어플리케이션이 Cloud SQL 로 이전하는 것보다는 자사의 기존 서비스 이용자들이 Cloud SQL 을 이용하도록 하는 것에 중점을 둔 것 같습니다. 아시아쪽 서버도 없고... 기존에 Google App Engine 을 사용하지 않는 입장에서는 왠지 매력도는 좀 떨어지네요. 


Google App Engine 처럼 무료로 사용할 수 있는 쿼터가 있나 봤더니 소개 기간인 내년 5월까지만 무료로 제공하고 그 이후에는 유료로만 제공이 되네요. (Pricing - Google Cloud SQL 참조)  


신고
TAG cloud, Google, SQL
Posted by wafe

댓글을 달아 주세요

Yammer 의 고질적인 문제 중 하나가 모바일 알림이 오지 않는다는 건데요, 앱 업데이트가 나오면 되는 것 같다가도 다시 아예 안오기 시작하는 문제를 오랫동안 겪고 있습니다. 다른 사람들은 별 문제가 없는건지 구글링을 해봐도 딱히 별 내용은 없는게 이상하네요. 결국 직접 회피책을 찾아보기로 했습니다.


간단히 이야기하면 메일 알림을 이용하는 방식인데요, 저는 회사에서 Google Apps for Business 를 사용하고 있기에 Gmail 기준의 설정이 되겠네요. (메일 필터링을 해서 포워드할 수만 있으면 되니까 다른 메일을 사용하더라도 충분히 적용할 수 있습니다)


1. 우선 Yammer 에서 오는 알림을 메일로 받도록 설정합니다.

a. Yammer 웹사이트에 들어가서, Edit Account > Notification 설정화면으로 갑니다.

b. 화면 가장 하단에 보면 "Subscribe to feeds in real time (by email or SMS)" 항목이 접혀 있는 것을 펼쳐 봅니다.

c. 메일로 받고 싶은 항목을 체크해줍니다. (SMS 가 되면 좋을텐데 휴대폰 인증에서 실패하더군요.)


2. 회사 메일 계정(Gmail)에 가서 포워딩 메일 주소를 추가해줍니다.

a. Gmail 웹사이트에 가서, 환경설정 > 전달 및 POP/IMAP 설정 화면으로 갑니다.

b. "전달 주소 추가" 버튼을 누르고 Yammer 알림 전용으로 사용할 메일 주소를 넣어줍니다. (gmail 등 메일 주소 만들기 좋은 서비스가 많으니 하나 새로 만들어서 사용하면 되겠죠. for_yammer@gmail.com 를 하나 만들었다고 칩시다.)

c. for_yammer@gmail.com 쪽으로 확인 메일이 발송되니까 메일 내용을 확인하고, 메일에 포함된 링크를 클릭하면 포워딩 주소 추가는 완료됩니다.


3. 회사 메일 계정에서 Yammer 메일을 필터링 및 포워딩하도록 설정을 합니다.

a. 회사 메일(Gmail)에서 상단의 검색창에 from:(@yammer.com) 라고 넣고 검색을 합니다.

b. 검색창 우측의 아래쪽 세모를 눌러서 검색 옵션을 표시하고, "이 검색 기준으로 필터 만들기"를 클릭합니다.

c. 아래 이미지처럼 설정해주고 "필터만들기" 버튼을 눌러 필터를 만듭니다.


4. 이제 아이폰에서 메일 계정을 추가합니다.

a. 아이폰 설정 앱에서 Mail, 연락처, 캘린더 설정 항목으로 들어가서 계정 추가... 를 합니다.

b. for_yammer@gmail.com 계정을 추가할 거지만, 푸쉬 알림을 받고 싶기 때문에 Exchange 타입으로 추가를 해야 합니다.

c. 내용이 길어지니까 설정 방법은 MS Exchange를 활용, 아이폰 구글메일 세팅 가이드 (푸시 기능) 을 참고 하세요. 


5. 그리고 아이폰에서 메일 계정에 대한 알림을 설정합니다.

a. 아이폰 설정 앱에서 알림 설정으로 들어갑니다.

b. 메일 앱을 찾아서 들어가보면 계정별로 알림을 설정할 수 있도록 되어 있습니다. (저는 iOS6 사용중입니다.)

c. for_yammer@gmail.com 계정 설정으로 들어가서 입맛에 맞게 알림 설정을 합니다.


자, 이제 설정이 완료되었고, Yammer 에서 이벤트가 발생할 때마다 푸쉬 알림을 (메일을 통해서) 받을 수 있게 되었습니다.


신고
TAG ios, Yammer
Posted by wafe

댓글을 달아 주세요

MFC에서 GDI+를 사용하다보면 소스에 자동으로 추가되는 DEBUG_NEW 때문에 귀찮아 지죠. operator newdelete 를 재정의해버려서 컴파일이 안된다거나 실행 중 메모리 오류를 발생시키거든요.

그렇다고 DEBUG_NEW 를 아예 꺼버리기도 굉장히 찜찜하죠. 메모리 관련된 오류를 잡아주는 가장 기본적인 장치니까요. 그래서 GDI+ 개체를 생성하고 지울 때는 좀 번거롭지만 ::new, ::delete 같이 일일이 재정의되지 않은 버전으로 사용하기도 하는데, 그것도 Bitmap::FromHBITMAP 메소드 같이 내부에서 포인터를 생성해서 리턴하는 메소드를 사용할 때는 해결책이 되지 않습니다. GDI+ Bitmap 의 경우에는 FromHBITMAP 메소드와 동일한 역할을 하는 생성자가 있어서 그나마 다행이긴 합니다만 일일이 신경쓰는 것도 귀찮은 일인 것은 분명합니다.

이번 기회에 잠깐 검색을 해보니 이미 유명한 문제인지 MS의 support 사이트에 해결책이 올라와있네요. ( PRB : MFC DEBUG_NEW does not work with GDI+ )

좋습니다. 그런데 MS에서 제공하는 헤더를 집어넣으니 이제는 C4100 unreferenced formal parameter 경고가 왕창 뜹니다. 모든 문제가 한 방에 깔끔하게 해결되지는 않는군요.

#pragma warning 으로 꺼버릴 수도 있는데, 실제로 문제가 되는 상황에서 경고가 안나오는 것도 문제니까 헤더에서 4100 경고를 꺼버리고 싶지는 않습니다. #pragma warning push / pop 으로 감싸주는 것도 방법이긴 하지만 이렇게 거창한 방법까지 써야하나... 역시 검색을 해보았습니다.

검색을 해보니 역시 이 상황에 맞는 해결책이 있네요. 바로 UNREFERENCED_PARAMETER() 매크로였습니다. 무려 WinNT.h 에 정의되어 있는 녀석이군요. DBG_UNREFERENCED_LOCAL_VARIABLE() 같은 친구들도 있네요.

MS에서 제공해준 Gdiplus.h 대용 헤더 파일에 UNREFERENCED_PARAMETER() 매크로를 적용하는 걸로 모든 문제가 해결되었습니다.

신고
TAG c++, Gdiplus
Posted by wafe

댓글을 달아 주세요

오랜만에 C++ 코드를 작성하고 있습니다. C#으로 WPF/Silverlight 만 다루다가 오랜만에 C++로 ATL/COM을 만지려고 하니 사소한 것에서 난관이 많네요. 툴도 바뀌기도 했고 말이죠. 오랜만에 C++을 쓰다보니 새로 알게 되는 지식도 생기는군요.

Visual C++ 2010 에서는 STL 컨테이너에 대해서 for each, in 구문을 사용할 수 있다는 걸 알게되었습니다. (MSDN 문서 항목을 보면 2005 버전부터 존재하긴 합니다.)

도입된 목적은 역시 C++/CLI 에서 IEnumerable 등의 형식을 순차적으로 처리할 때 C#의 foreach, in 구문과 동일하게 쓰기 위한 것으로 보입니다. 하지만 C++/CLI가 아닌 win32 프로그래밍에서 STL 컨테이너에 대해서도 사용할 수 있는 것이지요.

Visual C++ 2010 에서는 c++0x 표준안의 일부가 이미 포함되어 있기에 아래와 같이 별로 C++ 스럽지 않은 코드가 나오게 됩니다. (c++0x는 이제 ISO C++ 표준으로 승인이 되어 C++11 이라고 부르는 것이 정식입니다.)

	
        std::<CString, CString> _uriMap;
        std::list<CString>&& candidates = GetUriMappingCandidates(uri); // r-value reference
	CString foundKey;
	CString foundValue;
	for each (auto c in candidates)
	{
		auto it = _uriMap.find(c);
		if (it != _uriMap.end()) 
		{
			foundKey = it->first;
			foundValue = it->second;
			break;
		}
	}

C++11의 auto 키워드와, 비록 비표준 키워드이긴 하지만 for each 를 써주니까 STL 컨테이너를 두 가지나 사용하고 있는데도 예전처럼 콜론과 부등호가 난무하지 않고 코드가 깔끔해보여서 좋네요.

신고
Posted by wafe

댓글을 달아 주세요

2011.12.02 12:39

VS10x Code Map v2 - VS 2010 확장 기능 분류없음2011.12.02 12:39

며칠 전에 Visual Studio 2010에서 확장 기능 갤러리 구경하다가 인기 항목에 있길래 깔아봤는데 썩 괜찮습니다.

C# 작성할 때에는 깔끔하게 정리하려고 region 이라는 Preprocessor 블락을 많이 쓰는데요, 남이 만든 코드이거나 코드가 길어지면 어떤 영역들이 만들어져있는지 잘 찾기 힘들어서 정리하는 의미가 줄어들곤 했습니다.

그런 가려운 부분을 잘 긁어주는 확장 기능입니다. 코드 레이아웃을 잘 보여줘서 region의 활용도를 더 높여주고요, 추가로 메소드 바로가기 같은 걸 상단에 등록해서 코드 분석할 때에도 유용합니다.

신고
Posted by wafe

댓글을 달아 주세요

2011.10.18 09:21

MVVM에서 IoC의 중요성 분류없음2011.10.18 09:21

MVVM 패턴을 사용할 때 초기화하는 패턴만 대략 10가지 정도의 패턴이 있습니다. 그중에 Expression Blend와 VisualStudio의 디자인 타임에 잘 보이게 하려면 리소스에 ViewModel Locator를 넣는게 가장 좋습니다.

당연히 중복을 피하고 싶고 컨트롤마다 로케이터가 생성될 필요는 없으니 Window나 UserControl 모두에 Locator 리소스를 넣기보다는 App의 리소스(글로벌 리소스)에 넣는 방법이 먼저 시도되는 것이 바람직합니다.

그런데 여기서 디자인타임 지원에 문제가 생깁니다. Blend에서 윈도우나 사용자컨트롤에 포함되어 있는 사용자컨트롤을 생성할 때, 글로벌 리소스에는 접근할 수가 없는거죠. 검색을 좀 해보면 이것을 Blend의 버그로 보는 경향이 많습니다. 몇가지 해결책도 제시하고 있는데 완벽하지는 않습니다.

결국 컨트롤마다 XAML의 리소스 사전에 로케이터를 정의하는 방식으로 선회할 수 밖에 없었습니다. 이때 우리를 구해준 것이 IoC 컨테이너였습니다. MVVM Light를 사용하는 프로젝트라서 사실은 이미 SimpleIoc라는 내장 IoC 컨테이너가 사용되고 있는 상황이었지요.

IoC 컨테이너 자체가 이미 싱글턴이고, 이 싱글턴 인스턴스가 하는 일은 사용자가 등록해둔 타입별 인스턴스를 관리하는 일입니다. 즉 프로그램의 어느 부분에서나 쓰고 싶은 타입만 지정하면 그 타입의 동일한 인스턴스를 얻을 수 있다는 거죠.

그래서 ViewModel Locator를 모든 컨트롤에서 매번 생성하는게 아무 문제 없는 거였습니다.

MVVM 패턴을 쓸 때 걱정했던 부분이 패턴 자체의 학습 곡선이었습니다. 그리고 부가적으로 따라올 것처럼 보이는 다른 패턴들에 대한 학습이었습니다. 확실히 학습에 시간을 좀 더 쓰게 되는 것 같기는 합니다. 하지만 다행히 MVVM Light 프레임워크가 적절한 수준에서 문제 범위가 너무 커지는 걸 막아주었다는 생각이 듭니다.

iPhone 에서 작성된 글입니다.


신고
Posted by wafe

댓글을 달아 주세요

2011.09.22 17:09

Windows 8 - COM의 역습 분류없음2011.09.22 17:09

"윈도우 8, PC와 태블릿 SW 호환안돼"라는 블로터닷넷 기사를 보고 관심이 생겨 살짝 구글링 하다가 Win 8에 추가되는 Windows Runtime(WinRT) 라는 녀석에 대해 기술적으로 설명한 글이 있어서 공유합니다.

원문 : Microsoft's high-risk Windows 8 .NET switch - Revenge of COM, or something like it


원문을 쓴 사람은 MS가 태블릿 환경에서 아이패드를 따라잡는 것을 가장 중요한 목표로 잡고 있다고 보고 있네요. 그래서 모든 에너지를 WinRT 기반의 메트로 앱과 클라우드 환경에 쏟고 있다고 보고 있습니다. (닷넷과 실버라이트는 뒷전이라는 얘기죠.)

아래 내용은 제가 요약한 버전입니다.



WinRT : COM으로의 회귀(혹은 아주 비스무레한 새로운 녀석)

MS는 터치 인터페이스에 잘 어울리는 기반이 필요했다. 윈폰7에서 닷넷 기반 XNA나 실버라이트를 시험해 봤지만, 결국 새 API 모델을 만든 셈이다.

WinRT는 닷넷에 의존하지 않는다. 닷넷이 등장하기 이전에 윈도우를 구성하던 COM 스타일의 런타임이다. 거기에 닷넷에서 가져온 메타데이터 시스템을 채용하여, .winmd 라는 파일에 메타데이터를 저장한다. 그 덕분에 닷넷, C++, IE 엔진에서 모두 호출할 수 있는 런타임이 되었다. UI는 WPF/Silverlight에서 사용하던 XAML 을 채용했지만, 닷넷 기반이 아니라 Native 로 재작성한 것이다.

메트로 스타일 앱 환경 자체는 실버라이트와 비슷한 보안 모델을 사용하고 있어서 굉장히 제한적이다. 네이티브 DLL을 만들 수 있지만, 역시나 허용한 기능만 사용할 수 있다. 다른 앱과 공유된 익스텐션을 만들 수 없게 되어 있다.  파일 I/O 도 앱 전용 Isolated Storage에 대해서만 허용된다. (거의 애플 iOS 의 어플리케이션 모델과 비슷하게 보이네요.)

메트로 스타일 앱을 위한 UI 시스템은 프로그래머들이 사용하기 쉬우면서도 높은 성능을 제공한다. 모든 화면은 DirectX로 렌더링된다. 또한 비동기 프로그래밍 기능이 아주 쉬워졌다. await 라는 새로운 키워드가 제공되어, 프로그래머는 동기적인 것처럼 간단히 프로그래밍하면 내부적으로는 콜백을 써서 비동기적으로 동작한다.



추가로 InfoQ의 WinRT: An Object Orientated Replacement for Win32 라는 포스트도 참고할 만 합니다.

신고
TAG Windows 8
Posted by wafe

댓글을 달아 주세요