한 SW기업의 의미있는 자정선언

우리 회사 (주)네트빌이 신문에 났습니다. 얼마전 소프트웨어 불법 사용이 적발되어 한차레 곤욕을 치른 계기로 전 직원이 정품 사용을 서약했는데… 현재 비교적 잘 지켜지고 있는 것 같습니다…^^ 기사에 난 사진은 어제 찍은 사진인데… 그날 이상하게 사장님이 디카 있는 사람을 애타게 찾으셨어요.. 제가 마침 디카가 있었는데 급하게 사진을 보내야 한다고 하셔서 다른 사람 디카로… (SD 메모리 리더기는 회사에 없어서…) 음.. 근데 사진이 이렇게 신문에 날 줄이야…. 전 이 사진 찍을때 제 자리에서 열심히 일하고 있었나봅니다… 아니면 화장실에 갔었거나…-_-;;


“정품SW만 사용하겠다”…한 SW기업의 의미있는 자정선언

<아이뉴스24> 소프트웨어를 개발해 이를 팔아 먹고 사는 기업들도 사실 남몰래 SW를 불법복제한다. 남의 소프트웨어는 불법복제해 쓰면서, 자신들이 개발한 SW는 지적재산권을 강조한다. 이런 이중적 행태에 대해 스스로 반성하고 자발적인 자정선언을 한 기업이 있어 눈길을 끈다. e비즈니스 솔루션 개발업체인 네트빌(대표 문기헌, www.netville.co.kr)은 12일 스스로 정품SW 사용기업임을 선언하고 앞으로도 정품 소프트웨어 사용을 자율적으로 이행해 나가겠다는 조촐한 결의대회를 가졌다. 결의대회에서 네트빌 전직원은 정품SW 사용에 대한 서약을 했으며 자율적으로 약속을 이행할 것을 다짐했다. 문기헌 네트빌 사장은 “SW산업에 종사하는 한 사람으로서 SW인들이 먼저 자발적이고, 자율적인 정품사용에 앞장서는 것이 바람직하다고 판단했다”고 결의대회 배경을 설명했다. 문 사장은 “우리도 SW를 불법복제해 사용하다 곤욕을 치른 적이 있다. 그러나 그것때문에 이같은 자정 결의대회를 한 것은 아니다”며 “단속과 처벌위주의 방식에는 명확히 반대하는 입장이다. 이는 장기적으로 SW인들에 대한 잘못된 인식을 만들게 되어 SW산업의 발전에 또 다른 장애요인을 만들 수 있는 면이 있다”고 말했다. 그러면서 “자발적인 정품SW 사용선언을 통해 자율에 의한 정품SW 사용문화를 SW인이 스스로 만들어 갈 때, SW산업의 발전을 견인해 나갈 수 있을 것”이라며 “이러한 문화조성을 위해 SW기업들이 먼저나서 자율적 문화를 만들어 나가는 계기가 되길 바란다”고 밝혔다. 네트빌은 이번 결의대회를 계기로 사내 인트라넷에 정품SW 사용내역을 파악할 수 있는 시스템을 구축했으며, 전직원의 자발적 참여에 맡겨 운영해 나갈 계획이다. ‘작은 기업의 작은 선언’이 어떤 반향을 불러올 지 주목된다. /김상범기자 ssanba@inews24.com IT는 아이뉴스24, 연예스포츠는 조이뉴스24 (Copyright ⓒ 아이뉴스24. 무단전재 및 재배포 금지) 기사 출처는: http://news.media.daum.net/digital/computer/200507/12/inews24/v9569173.html

High Performance Timer

Kernel32.dll의 기능을 직접 가져다 쓰는 타이머로서 0.0001ms 단위까지 정확한 시간 측정이 가능한 타이머입니다. 과거 데브피아에 올렸던 글과 소스코드를 다시 블로그에 포스트합니다..

사용 방법:
1. 아래 소스 코드를 별도의 클래스로 생성한다.

2. 타이머를 사용하는 소스 코드 상에서 HiPerfTimer MyTimer = new HiPerfTimer(); 로 인스턴스 하나를 생성한다.

3. MyTimer.Start(); 와 MyTimer.Stop(); 을 소스 코드에 삽입하고 이 두 명령줄 사이에 시간을 측정하고자 하는 내용의 코드를 삽입한다.

4. 컴파일하고 실행한다.

———————————-

using System;

using System.Runtime.InteropServices;

using System.ComponentModel;

using System.Threading;

namespace YourNameSpaceHere

{

internal class HiPerfTimer

{

[DllImport("Kernel32.dll")]

private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);

[DllImport("Kernel32.dll")]

private static extern bool QueryPerformanceFrequency(out long lpFrequency);

private long startTime, stopTime;

private long freq;

// Constructor

public HiPerfTimer()

{

startTime = 0;

stopTime = 0;

if (QueryPerformanceFrequency(out freq) == false)

{

// high-performance counter not supported

throw new Win32Exception();

}

}

// Start the timer

public void Start()

{

// lets do the waiting threads there work

Thread.Sleep(0);

QueryPerformanceCounter(out startTime);

}

// Stop the timer

public void Stop()

{

QueryPerformanceCounter(out stopTime);

}

// Returns the duration of the timer (in seconds)

public double Duration

{

get

{

return (double)(stopTime – startTime) / (double) freq;

}

}

}

}