subversion and tags

일 이야기 2009. 5. 28. 10:39 posted by 찌지리

이제는 형상관리 Tool을 사용하는 것은 필수가 되었습니다.

우리 회사에서는 subversion을 사용하고 있습니다.

그런데 subversion을 사용하면서 보통 update와 commit은 자주 이용하는 반면에, branch/tags 는 잘 이용하지 않습니다.

각 모듈 별로 이력 관리를 잘 하셔서 그런지 몰라도 전 그게 쉽지 않았습니다.

그래서 사용하는 것이 바로 branch/tags 입니다.

제가 VS Team Suite는 사용해보지 않아서 잘 모르겠습니다만, 이전의 Visual Source Safe의 branch, tag와 subversion의 그 것은 약간은 다른 것 같습니다.

subversion의 경우 tags는  branch와 동일한 개념이더군요.

branch/tags를 잘 사용하시면 여러 좋은 점이 있습니다.

특히나 장애발생 시, roll-back 할 경우에는 특히나 도움이 됩니다. ㅋㅋ

Technorati 태그: ,,
오늘 ZDNET의 류한석님의 컬럼을 읽었습니다.

순진한 개발자가 사내정치에서 살아남는 법

제가 느낀 점은 말 그대로 순진하다는 것입니다.

개발자가 개발만 할 수 없습니다.

이상과 현실은 다르거덩요.

어떻게 보면 비겁하다고도 할 수 있지만, 자신의 이상과 처한 현실에 대해서 적응하고 타협해야 합니다.

바로 융통성이 필요한 거죠.

사전에 보면... 이런 말이 있습니다.

타협 : 두 편이 서로 좋도록 협의함

위의 말을 보고 생각해 보면, 오로지 개발만 하겠다는 것은 자신만 만족할 뿐이지, 다른 사람의 만족 여부는 상관하지 않겠다는 것과 다를 바가 없습니다.

물론, 여러 상황에 이끌려 가라는 뜻은 아닙니다.

아무튼, 누군지는 모르지만 참 순진한 생각을 가지고 사는 사람입니다.

세상에 자기가 하고 싶은 일만 하는 사람이 어디 있겠습니까?

'일 이야기' 카테고리의 다른 글

subversion and tags  (0) 2009.05.28
CreateProcess 와 Handle  (0) 2008.03.07
꽤 쓸만한 그리드 라이브러리 Ultimate Grid  (0) 2008.02.12
BOOST Library 사용...  (0) 2008.01.16
MSDN의 틀린 문서, 그리고 삽질  (0) 2007.12.21

CreateProcess 와 Handle

일 이야기 2008. 3. 7. 11:09 posted by 찌지리

오늘도 몰랐던 것을 하나 알았습니다.

CreateProcess를 호출하고 나면, LPPROCESS_INFORMATION lpProcessInformation  에 있는 Handle 들을 닫아줘야 합니다.

이거 안 해주면... Task Manager에서 확인하면 Handle 값이 계속해서 2개씩 증가하는 것을 확인할 수 있습니다.

MSDN에 보면... 이런 글이 있습니다.

Handles in PROCESS_INFORMATION must be closed with CloseHandle when they are no longer needed.

물론, 이 CreateProcess를 호출하는 Process가 한 번 실행 되었다가 종료되면 모르지만, 계속 실행하는 Service나 기타 다른 프로그램이라면, 주의할 대목입니다.

그리고 보면, 참 생각없이 코딩했다는 생각이 드네요...

MSDN의 Sample을 볼까요?

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

void _tmain( int argc, TCHAR *argv[] )
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    if( argc != 2 )
    {
        printf("Usage: %s [cmdline]\n", argv[0]);
        return;
    }

    // Start the child process. 
    if( !CreateProcess( NULL,   // No module name (use command line)
        argv[1],        // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        0,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi )           // Pointer to PROCESS_INFORMATION structure
    ) 
    {
        printf( "CreateProcess failed (%d)\n", GetLastError() );
        return;
    }

    // Wait until child process exits.
    WaitForSingleObject( pi.hProcess, INFINITE );

    // Close process and thread handles. 
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
}

혹시, 저처럼 삽질 하셨으면... 이제 하지 마시길...  ㅋㅋㅋ



 

많은 사람들이 MS 욕을 많이 합니다.
그럼에도 불구하고 MS 제품을 많이 쓰고 있지요.
특히나 우리나라에서는 그럴 수 밖에 없죠.
MS 제품 중 Office에 있는 프로그램 중 Excel을 좋아라 합니다.
여기저기 쓸 데가 무궁무진하거덩요.
Word 대용으로 쓸 수도 있고....

근데... 이놈의 Excel 같은 표를 구현하는 거는 짜증이 나네요.
요즘 하는 일이 다른 회사 솔루션을 수정/보완 하는 작업인데요.
가장 많이 하는 작업이 바로 그리드 작업입니다.
기존 소스는 MSFlexGrid를 사용했는데... 이놈의 것이 VC++로 짜려고 하니 도대체 뭘 보고 만들어라고 하는지를 모르겠습니다.
VB를 하신 분께 여쭤보니... 많이 사용했었다고 하시더군요.
근데... VC++는 뭔가 시작하려니 좀 힘드네요.
그래서, 다른 라이브러리를 찾아보았습니다.
CodeProject에 찾아보니... 몇가지 있더군요.
그 중에서 제일 기능이 많아 보이는 거 한 가지를 소개해드리고자 합니다.

Ultimate Grid 라는 것입니다.
이걸 이용하면 아래와 같은 그림의 것들의 구현이 가능하다고 하네요.

Cell Borders

Focus Rectangles

Multi Selection styles

XP Themes

Excel Style



Cell Types...


... and more Cell Types

뭐... 홈페이지에서 뽀려온 그림들이지만... 참고는 될 것 같네요
MS FlexGrid는 잘 모르겠지만... 이 거 사용해보니 단점이 하나 있기는 하더군요.
화면에 뿌려주는 게 조금 느리다는 겁니다. ^^;

그래도 나름 고맙게 잘 사용하고 있습니다.

Ultimate Grid 홈피는... http://www.codeproject.com/KB/MFC/UltimateGrid.aspx 입니다.

BOOST Library 사용...

일 이야기 2008. 1. 16. 00:15 posted by 찌지리
새해 첫 포스팅이네요.
얼마 전부터 새로운 프로젝트가 시작되어 포스팅하기도 어렵게 되었습니다.

boost library를 쉽게 사용하는 방법을 발견했습니다.
아시는 분은 다 아시겠지만, installer가 있더군요.
팀 내부에서 boost library 중 일부를 반드시 사용하도록 강제가 되어서 필요한 부분만 빌드하여 사용하는데 진작에 알았더라면... 하는 생각이 간절합니다.
installer를 실행하면... hpp, cpp, dll, lib 파일들을 모두다 만들어 주더군요.
다운로드 받을 수 있는 곳은 아래와 같습니다.

http://www.boost-consulting.com/products/free


테스트는 해보지 않았습니다. ^^;

MSDN의 틀린 문서, 그리고 삽질

일 이야기 2007. 12. 21. 03:05 posted by 찌지리

짜증나기도 하고 우습기도 한 일이 생겼습니다.
Windows 프로그래밍을 하시는 분들은 아마 MSDN 없이 프로그램을 개발하기 힘들겁니다.
오늘, 프로그래밍을 하다가 여러가지 일이 생겨버렸습니다.

하나는 MSDN의 문서 중에 실제 동작과 틀린 내용이 있다는 것입니다.
아래 문서인데요...
http://msdn2.microsoft.com/en-us/library/ms806491.aspx
문서 중간에 다음과 같은 문장들이 있습니다.

If the authentication element is set to Shared, the following rules must be followed:

  • If the encryption element is set to None, then the keyProvidedAutomatically and IEEE802.1XEnabled elements must be set to 0. However, the XML data may contain a networkKey element.

encryption을 None으로 설정하면, IProvisioningWirelessProfile::CreateProfile() 함수가 오류를 반환합니다. ㅡㅡ;;;

또 하나는 더 재미납니다.
위의 함수를 호출할 때 첫번째 파라미터인 bstrXMLWirelessConfigProfile 에서 XML의 Element들의 순서가 틀리면 역시나 오류를 반환합니다.
정말이지 어떤 코드로 구현이 되어 있길래, XML의 Element의 순서가 틀리면 오류를 반환하도록 되어있는지 그 코드가 사뭇 궁금합니다. ㅋㅋㅋㅋ

위의 2개 때문에 삽질에 삽질을 거듭했습니다. ㅠ,.ㅠ
원숭이도 나무에서 떨어진다지만 혼자 떨어지면 좋으련만 밑에 있다가 다친 꼴이 되어버렸습니다.

저는 Windows XP SP2에서 VisualStudio 2003 .NET 환경에서 개발을 하고 있습니다.
어제 Windows Vista SDK를 설치할 일이 있어서 다운로드 받아서 설치를 했습니다.
그런데 이런... VS2003 .NET에서 프로젝트를 생성할 때, "자동화 서버는 개체를 작성할 수 없습니다." 라는 오류가 발생하더군요.

사용자 삽입 이미지








먼가 잘 못 되었구나... 라고 생각하고 지나갔습니다.
어제는 다른 더 급한 일이 있어서 넘어갔는데... 오늘 작업하려니 또 이런 오류 창이 뜨더군요.
바로 구글링해서 찾아보니, 역시나 먼가 잘 못 되었습니다. ^^;
MSDN 기술 자료 ID 323885번에 나와 있더군요...
URL : http://support.microsoft.com/kb/323885/ko
다운로드 받아서 설치하라네요...
근데.. 여기 링크페이지 클릭하면, 없다고 합니다. ㅋㅋㅋ

아래 사이트에서 다운로드 받아서 설치했습니다.
URL : http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa
리부팅 하라네요 ㅠ,.ㅠ
(개인적으로 뭐 설치한 후에 리부팅하는 거 정말 시로라 합니다)

리부팅 후, 정상동작합니다.
Vista SDK 덕분인지, 뭔 일 덕분인지 고맙네요 ㅋ
 

'일 이야기' 카테고리의 다른 글

BOOST Library 사용...  (0) 2008.01.16
MSDN의 틀린 문서, 그리고 삽질  (0) 2007.12.21
VC 2003.NET Project Options 삽질...  (0) 2007.11.29
Windows에서의 grep과 tail  (0) 2007.11.28
일을 바라보는 태도가 성공의 관건  (0) 2007.11.21

VC 2003.NET Project Options 삽질...

일 이야기 2007. 11. 29. 19:32 posted by 찌지리

Application을 작성하다보면, 다른 사람이 만든 Library 파일이나 DLL 파일을 많이 링크해서 빌드하게 됩니다.

저의 경우에도 마찬가지로 가능하면, 다른 Application을 작성할 때 좀 편하게 사용하기 위해서 DLL이나 Lib 파일을 많이 만들고 있습니다.


오늘은 평소와 다름없이 그런 일을 하다가 삽질을 하고 말았습니다.

(사실 항상 삽질하고 댕깁니다. -_-)

서비스 모듈을 하나 만들고, 이 서비스와 통신하기 위한 I/F DLL을 하나 만들고 또 이 DLL을 테스트하기 위한 테스트 프로그램을 하나 만들었습니다.

근데, DLL 프로젝트 이름과 DLL 테스트 프로젝트 이름을 잘 못 작성했습니다.

서비스 이름과 DLL 이름에 들어가는 Command와 Common이란 단어를 헷갈려서 Command로 이름을 지어 버렸습니다.

물론, Output 이름만 바꾸면 되지만, 그래도 찜찜한 지라 프로젝트를 다시 하나 더 만들고(이름도 확인하고 ^^;) 파일을 복사하고 프로젝트에 추가시켜주었습니다.

근데... 이런... 테스트 프로그램에서 DLL을 로드한 후 함수를 찾지 못하는 것이었습니다.

GetLastError() 반환값이 127번, ERROR_PROC_NOT_FOUND입니다.

찾아보니 Module Definition File 과 관련된 문제였습니다.

뭔고 하니.. 평소에는 "Add New Item..." 에서 DEF 파일을 생성하였는데, 파일을 복사하고 이름만 바꿔주다 보니, 아래의 그림에 빨간 동그라미에 있는 부분이 빠져있었던 것입니다.

 

사용자 삽입 이미지

문제를 찾고 해결하는데는 얼마 걸리지 않았으나, 기본적인 내용이라 솔직히 많이 부끄부끄 하더군요.

뭐... 지금은 문제없이 잘 돌아갑니다. ㅋㅋㅋ

Windows에서의 grep과 tail

일 이야기 2007. 11. 28. 11:35 posted by 찌지리

오늘 아시는 분이 Windows에서 사용할 수 있는 grep 이 있는지 찾아봐 달라고 하더군요.

구글링하면 다 나올텐데...

그래도 찾아봤습니다.

GNU grep도 있고, 뭐 여러가지 많이 있더군요.

마음에 드는 게 하나 있더군요

WindowsGrep 입니다.


저같은 경우에는 Unix계열에서는 "ps -ef | grep xxx"이란 명령을 제일 많이 사용해서 소스코드나 문서의 문자열을 검색하는데는 grep을 많이 사용하지 않았습니다만, 익숙하신 분들은 정말 잘 사용하시더군요.

Windows를 사용하다보면 Unix 명령 중에서 아~ 이거 참 좋은데... 하는 것들이 있습니다.

대표적인 것이 바로 tail 인 것 같습니다.

저는 Windows용 tail 프로그램으로 두가지를 쓰는데, BareTail 과 mTail입니다.

처음에는 mTail을 쓰다가 요즘에는 BareTail을 사용하고 있습니다.

이유는 Highlighting이 지원되기 때문입니다(이거 정말 멋집니다).

아래 사이트에 스크린샷이 있으니 한 번 보십시오. ^^

mTail : http://ophilipp.free.fr/op_tail.htm

bareTail : http://www.baremetalsoft.com/baretail/

일을 바라보는 태도가 성공의 관건

일 이야기 2007. 11. 21. 10:28 posted by 찌지리

이전에 이직을 하기 위해서 여기저기 헤드헌팅 회사에 이력서를 발송한 적이 있습니다.
워낙에 자랑할 만한 것들도 없고 실력도 없고 하니 그랬었습니다. ^^;
헤드헌팅 회사 중에서 가끔 연락을 주시는 분이 계십니다.
그 분 소개로 바이러스 백신으로 유명한 A사 면접을 보기도 했었지요.
(뭐 서로 원하는 position이 달라서 가지 않았습니다만...)
아무튼 그 분께서 그 회사에 이력서를 등록한 분들께 메일을 보냅니다.
뭐... 굳이 분류를 하자면 광고성 메일이지요 ^^
근데... 그냥 메일을 보내는 게 아니고, 괜찮은 글들을 같이 보내주십니다.
오늘도 출근하니 메일이 왔길래... 같이 읽어보면 괜찮을 것 같아서 원문을 약간 수정해서 아래에 붙여봅니다.

<일을 바라보는 태도가 성공의 관건>

가장 성공한 사람들은 정말 자신이 좋아하는 일을 하는 사람들이라고 생각한다.
 무엇도 에너지와 열정을 따라갈 수는 없다.
성공은 자신이 원하는 것을 알고 아무리 힘들어도 꿈을 추구하는 사람들의 것이다.
-
자크 A 내서 포드자동차 회장

일을 즐겁게 하는 자는 세상이 천국이요 일을 의무로 생각하는 자는 세상이 지옥이다
- 레오나르도 다 빈치

하고 싶은 일에는 방법이 보이고, 하기 싫은 일에는 변명이 보인다.”
-필리핀 속담

일하지 않는 사람은 절대 올바른 생각을   없다.
게으름은 비뚤어진 마음을 갖게 만든다.
긍정적인 행동이 따르지 않는 사고는 병균과도 같다
- 헨리 포드


모든 노동은 인간을 고결하게 한다.
어린이에게 일하는 즐거움을 가르치지 않으면 그를 미래의 약탈자로 만들 것이다
- 탈무드


뭐.. 위와 같은 글이야 아무나 할 수 있는 말인 것 같습니다.
그래도, 한 번 읽어보고 다시 마음을 가다듬게 되면 그것도 좋은 것 같습니다.
개인적으로 필리핀 속담이 참 재미있습니다. ㅋㅋㅋ