SimpleIsBest.NET

유경상의 닷넷 블로그
이번 글은 최근 포스팅 중인 닷넷 가비지 컬렉션 시리즈의 네 번째 글입니다. 첫 번째 글에서는 가비지 컬렉션의 기본 작동 원리를 살펴보았고 두 번째 글에서는 세대별 가비지 컬렉션을 살펴보았습니다. 그리고 세 번째 글에서는 LOH(Large Object Heap)에 대해 살펴보았습니다. 이번 포스트에는 가비지 컬렉션이 언제 발생하는가에 대해 살펴보도록 하겠습니다. 이 내용은 원본 글에 언급되지 않은 내용이므로 이미 원본 글을 다 읽어본 독자들에게도 유용한 정보가 되리라 믿습니다. (아니면 말고… ㅡ,.ㅡ) 가비지 컬렉션 다시 보기 Part I – 기본 작동 방식 가비지 컬렉션 다시 보기 Part II – 세대별 가비지 컬렉션 가비지 컬렉션 다시 보기 Part III – LOH 가비... [상세]


4
13

Weak Reference

오후 12시 46분 | by 블로그쥔장 | Tags: ,
2004년 10월호 월간 마소에서 간단히 다루었던 Weak Reference 내용입니다. 원본 글 작성 이후로 Weak Reference는 크게 변경된 것이 없지만 내용을 다시 검토하고 보강 하였습니다. Introduction to Weak Reference 닷넷에서 객체에 대한 참조는 강력한 참조(strong reference)와 약한 참조(weak reference)로 나누어 볼 수 있다. 강력한 참조는 일반적인 객체 참조로서 지금까지 여러분이 쭈욱 사용해왔던 참조를 말한다. 약한 참조는 System.WeakReference 클래스를 통한 참조로서 약한 참조만을 갖는 객체는 루트 참조로부터 참조 그래프 내에 포함되어 있더라도 가비지 컬렉션의 대상이 된다.  루트 참조와 참조 그래프에 대한 내... [상세]


원래 이 시리즈(?)의 계획상, 3번째 글로는 가비지 컬렉션이 언제 발생하는지에 대한 글이고 그 다음이 LOH(Large Object Heap)에 대한 글이었습니다. 그런데 글을 쓰다 보니 LOH를 먼저 이야기 하는 것이 좋을 것 같아서 순서를 바꾸었습니다. LOH에 대한 내용은 월간 마이크로소프트웨어 2004년 10월에 기고한 원본 글에서는 이름만 살짝 언급한 수준이었습니다. 제 블로그 글들에서도 처음으로 상세하게 언급하는 토픽이므로 LOH에 대해 처음 접하시는 분이라면 알아두시면 정신/육체건강에 아주 초큼 도움이 되실 겁니다. LOH에 대해 이미 어느 정도 알고 계신 분들은 MSDN Magazine에서 Large Object Heap Uncovered를 읽어 보시길 권장합니다. 매우 상세하게 LOH에 대... [상세]


4
06

QueryString in HTTP-based WCF Service

오전 11시 19분 | by 블로그쥔장 | Tags:
어떤 분께서 질문하셔서 간단한 예제를 작성해 봤습니다. 다른 분들께서도 유용하실 것 같아서 알려드립니다. HTTP 기반 WCF 서비스에서의 쿼리 스트링 HTTP 기반의 WCF 서비스에서 서비스를 호출하는데 사용하는데 사용한 URL의 쿼리 스트링(query string)을 알아낼 수 없을까? 이 질문이 이번 포스트의 본질이 되겠다. 결론부터 말하면 "조낸 쉽게 알아낼 수 있다" 이다. HttpRequestMessageProperty Class HTTP 트랜스포트(transport)를 사용하는 WCF 서비스는 HttpRequestMessageProperty 클래스를 통해 서비스를 호출하는데 사용된 HTTP 요청(request)에 대한 정보를 얻을 수 있다. HttpRequestM... [상세]


이 글은 월간 마이크로소프트웨어(일명 마소) 2004년 10월호 닷넷 칼럼에 기고한 글을 다시 리뉴얼 한 것입니다. 원본 글이 오래되었기 때문에 현재와 맞지 않는 부분을 수정하면서 내용도 보강하였습니다. 지난 글이 어려웠다면 이번 글은 더 어려울 수 있습니다. 하지만 그림을 잘 이해하시면 도움이 되리라 믿습니다. 그럼 시작해 보죠. 가비지 컬렉션 다시 보기 Part I – 기본 작동 방식 가비지 컬렉션 다시 보기 Part II – 세대별 가비지 컬렉션 가비지 컬렉션 다시 보기 Part III – LOH 가비지 컬렉션 다시 보기 Part IV – 가비지 컬렉션 발생 시기 가비지 컬렉션 다시 보기 Part V – 가비지 컬렉션 모드 가비지 컬렉션 다시 보기 Part V... [상세]


CLR(Common Language Runtime)의 가비지 컬렉션(Garbage Collection)의 작동 원리를 파악한다는 것은 매우 중요한 일입니다. 가비지 컬렉션의 작동 방식을 충분히 파악해야만 어플리케이션의 메모리 문제를 해결할 수 있거나 왜 Dispose 코딩 패턴의 코드가 그 따구로 생겼는지 이해할 수 있기 때문입니다. 이 글은 월간 마이크로소프트웨어(일명 마소) 2004년 10월호 닷넷 칼럼에 기고한 글을 다시 재정리 한 것입니다. 원본 글은 오래되었고 닷넷 프레임워크 1.1 기준으로 작성되었던 것이기 때문에 이번에 새로이 리뉴얼 하는 것입니다. 리뉴얼 한 글은 여러 회에 나누어 게시될 것이고 내용이 상당히 보완될 것입니다. 가비지 컬렉션 다시 보기 Part I – 기본 작동 방식 ... [상세]


Inside Windows Internals란 책에서 스레드의 퀀텀(quantum)에 대한 내용을 읽고 관련된 테스트 프로그램을 짜다가 우연히 발견한 내용입니다. 이 포스트의 내용은 제한된 환경(그러나 무시할 수 없는)에서 SQL Server 2008이 노트북 배터리의 수명을 줄일 수 있다는 것입니다. 행동에 옮기시기 전에 포스트의 내용을 잘 읽어 보시기 바랍니다. Introduction 컴퓨터의 시간은 대개 타이머 인터럽트(timer intrrupt)라 불리는 메카니즘에 의해 갱신된다. 타이머 인터럽트는 일정 주기마다 발생하는데 컴퓨터 마다 다르다. 대부분의 x86 단일 CPU 상에서는 10 msec 내외이고 x86/x64 다중 CPU 상에서는 15.6 msec 정도이다. 타이머 인터럽트가 발생하면 W... [상세]


블로그나 게시판 등을 이용하다 보면 이 망할 놈의 스팸 댓글이나 스팸 메일에 조낸 시달리게 된다. 1시간 동안 80개의 스팸 댓글이 올라오기도 했으니까 말이다. 그런데 예전에 사용하던 .Text란 블로그 엔진은 댓글 하나를 지우려고 해도 한번에 하나의 댓글 밖에 지울 수가 없어서 스팸이 많아지면 욕이 나올 수 밖에 없었던 것이다. 이번 개편 전에 블로그 포스트 댓글에 아무런 장치도 하지 않았을 때에는 쓰바 엿 같은 스팸들 때문에 블로그 관리자 사이트를 들락 날락 해야만 했다. 스팸 댓글을 지우다 지우다 지친 필자는 스팸 지우는 것 보다 코드 몇 줄을 짜는 게 낫다고 생각했다. 그래서 간단한 코드를 작성해서 포스트 댓글을 입력할 때 랜덤 숫자를 입력하게 강제 함으로써 스팸을 어느 정도 막을 수 있었다. 행복... [상세]


3
27

개편 전 글들 목록

오후 11시 17분 | by 블로그쥔장 | Tags:
블로그 개편 전에 작성했던 글들에 대한 목록 입니다. 기존 데이터 베이스에서 제목 하고 링크 추출해 내고 분류하느라 약간 고생 했습니다만 SQL 쿼리로 HTML 태그 까지 생성하도록 만들어서 그런지 많이 빡시진 않았습니다. 카테고리 별 목록 년도 별 전체 글 목록 2008년 글 목록 2007년 글 목록 2006년 글 목록 2005년 글 목록 네… 2009/2010 년 글은 없습니다. ㅡ,.ㅡ


3
27

블로그 개편 작업 완료

오후 07시 18분 | by 블로그쥔장 | Tags:
블로그 개편 작업이 완료 되었습니다. 한 동안 버려져 있던 제 블로그. 더 이상 방치하기도 그렇고… 무엇보다도 다시 글이 쓰고 싶어져서 블로그 개편 작업을 시작했습니다. 제가 사용했던 .TEXT는 더 이상 업그레이드 되지도 않고, 무엇보다도 닷넷 프레임워크 1.1 기반인지라 수정하기도 거의 불가능 해서지요. 새로운 블로그 엔진은 WebMatrix 사용하다가 우연히 주워온 BlogEngine.NET 을 사용하기로 했습니다. WordPress와 같은 것도 생각해 보았지만 왠지 귀찮기도 하고, 처음 접했던 BlogEngine.NET이 괜찮은 듯 해서 이걸 사용하기로 했지요. 개편에서 문제점은 과거 제 포스트들의 마이그레이션이었습니다. 대략 포스트가 130개 정도 되는데 수작업으로 해볼만하다 생각했지만... [상세]