모든 사람들이 명세서 작업을 해야한다고 생각은 하지만, 아무도 명세서 작업을 하지 않습니다.왜 명세서 작업을 하지 않을까요?명세서 작업단계를 건너뛰면 시간을 절약할 수 있다고 말합니다.이런 사람들은 명세서 작성 작업이 NASA에서 우주 왕복선을 만드는 공학도나 큰 규모의 보험회사 직원에게나 필요한 사치쯤으로 치부합니다.명세서 작업을 하지 않는 관례는 소프트웨어 프로젝트에서 가장 크고 불필요한 위험 요인을 짊어지는 행동입니다. 이는 등에 옷가지만을 걸친 다음에 날기를 기대하며 모하비 사막을 건너려고 출발하는 것만큼이나 바보스럽습니다.명세서 작업을 생략하고 바로 코드 작성으로 뛰어드는 프로그래머나 소프트웨어 개발자는 스스로를 허리춤에서 순식간에 총을 뽑는 멋진 총잡이라고 생각하는 경향이 있습니다.하지만 결코..
1.Critical Section - 유저 레벨의 동기화 방법 중, 유일하게 커널 객체를 사용하지 않음. - 내부 구조가 단순하여 동기화 처리에 대한 속도가 빠르다. - 동일한 프로세스 내에서만 사용. - 커널 객체를 사용하지 않기 때문에 핸들을 사용하지 않고, CRITICAL_SECTION 이라는 타입을 정의하여 사용. ?12345678910111213141516// 크리티컬 섹션을 초기화한다. // 파라메터는 여러 개의 쓰레드에 참조되어야 하므로 전역으로 선언하도록 한다.void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); // 생성된 크리티컬 섹션을 삭제한다. void DeleteCriticalSection(LPCRITICAL_..
이 글은, c++을 기반으로 작성되었지만 예외 처리 기능 (try-catch, try-except 등)을 가진 모든 언어에 적용 되는 내용입니다. 파일에서 데이터를 읽는 코드를 작성해봅시다. c++로 작성해보겠습니다. int _tmain(int argc, _TCHAR* argv[]) { FILE* fp; fp = fopen("test.bin", "rb"); if(fp == NULL) { // 예외 처리 return 1; } char buffer[512] = {0, }; fread(buffer, 512, 1, fp); return 0; } 대부분 위 코드처럼 작성하게 됩니다. 위 코드에서 누락된 예외처리 발견하신분? 예. 바로 fread 부분입니다. 항목이 읽히지 않았을 때, fread는 0을 리턴하고, ..
Reactor 패턴- 어떠한 이벤트가 발생하면, 이곳으로 알려달라는 방식.- 윈도우 메시지 핸들러처럼, 특정 이벤트가 발생한다면 통지 받겠다는 방식. Proactor 패턴- 특정 작업을 시키고, 그 작업이 완료되면 알려달라는 방식.- IOCP에서 Completion Port가 이 방식을 취하고 있다. 얼추 비슷한데, 구현에서 차이점이 명확해진다. Proactor는 작업을 시키면서 콜백함수를 직접 넘김으로써 구현되고, Reactor는 디스패쳐를 구현하는 구조가 일반적. Reactor 패턴 사용시에는 디스패쳐를 통함으로써 스팟 포인트가 발생하게 되는 단점이 있다고 보면된다. 이에 비해 Proactor는 명령을 내린 작업에 대해서만 통지를 받게 된다. IOCP의 예를 들면, 내가 물려놓은 소켓에 Recv 이벤..
루비로 쉘 명령 내리는 방법 6가지 http://eriteia.blogspot.kr/2008/01/6.html 원문http://blog.bigbinary.com/2012/10/18/backtick-system-exec-in-ruby.html 루비로 쉘 명령을 내리는 6가지 방법에 대해 나와있습니다. 가장 선호되는 방식은 open4지만...현재 win32로는 open3까지만 지원하니 참고하세요. win32에서 현재로써는 stdio를 사용하기 위해선 open3를 쓰시는 것이 좋습니다. 간단하게 실행 성공 여부까지만 필요하다면, system 함수를 통하시는 것이 가장 좋고, 이 경우 주의사항은 exit code가 TrueClass로 반환된다는 점 입니다. TrueClass가 to_i를 지원하지 않는 만큼 확장..
성능베이스라인을 만들기 위해 최모군이 SSIS를 이용해서 자동화를 시키고 있는 중입니다. 해당 SSIS를 이용하여 자동화시키는 강좌는 SQLLEADER.COM에 가면 잘 정리되어 있습니다. 많은 시행착오를 거쳐 SSIS는 거의 완성단계에 왔고, 이제 어떤 성능카운터를 넣을지만 결정하면 되는 이 시점에서 SQL Server 성능 진단을 위해서는 어떤 성능 카운터를 수집을 해야 하는지에 대해서 정리를 해볼까 합니다.Processor\%Processor Time : % Processor Time이 성능카운터는 프로세서가 비유휴 스레드를 실행하는데 소비하는 시간의 백분율입니다. 이것은 프로세서가 각 샘플 간격 동안 유휴 스레드를 실행하는데 소비한 시간을 측정하여 간격 기간에서 그 값을 뺀 것입니다. 각 프로세서..
- Total
- Today
- Yesterday
- MS-SQL
- perfmon
- 조엘 온 소프트웨어
- 엘키
- RoR
- Rails
- EasyExec
- Ruby on Rails
- c언어
- 디자인 패턴
- ftp
- SDL
- 루비
- 바로가기 프로그램
- 멀티스레드
- svn
- 좋은 프로그래머
- 게임개발포에버
- 디버깅
- 리버스 엔지니어링
- EzShortcut
- 루비 온 레일즈
- 게임데브포에버
- TDD
- 임백준
- ruby
- SQLite Spy
- NDC2013
- CppSQLite
- TraceRoute
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |