SimpleIsBest.NET

유경상의 닷넷 블로그
Dispose 패턴 두 번째 글로써 고급 기법에 대해 설명하고자 합니다. 지난 포스트에서는 Dispose 패턴의 기초적인 구현 방법을 설명했었습니다. Dispose 패턴을 구현할 때 관리되지 않는(unmanaged) 자원을 해제할 때에는 약간 더 주의를 기해야 하기 때문에 고급이란 이름으로 별도의 포스트를 작성하게 되었습니다. “나는 패 죽여도 unmanaged 자원을 직접 사용하지 않는다”라고 자신하실 수 있는 독자 분은 이 글을 읽지 않으셔도 되겠습니다. 만약 여러분이 WIN32 API를 직접 호출하여 핸들 값을 얻어내거나 하는 등의 코드를 작성하셔야 한다면 한번쯤 고민을 해 보실 필요가 있습니다. Dispose 패턴 – 정리 필자가 지금까지 여러 차례의 포스트에서 닷넷 CLR의 가비지 컬렉션을 설명... [상세]


8
22

Dispose 패턴 (기초)

오후 01시 23분 | by 블로그쥔장 | Tags: ,
너무 간만에 씨리즈 글을 이어나가자니 뻘쭘 하네요. 이 글을 읽으시기 전에 가비지 컬렉션 다시 보기 씨리즈 글을 먼저 읽어 보시거나 기억을 떠올려 보시는 것이 좋을 듯합니다. 가비지 컬렉션 다시 보기 Part I – 기본 작동 방식 가비지 컬렉션 다시 보기 Part II – 세대별 가비지 컬렉션 위 글을 읽어 본 후에 조금 더 여력이 생긴다면 다음 두 글까지도 읽으시면 더욱 도움이 될겁니다. 가비지 컬렉션 다시 보기 Part III – LOH 가비지 컬렉션 다시 보기 Part IV – 가비지 컬렉션 발생 시기 이 글은 Finalizer 사용 시 주의 사항들 이란 글의 다음 내용이기 때문에 이 글은 반드시 정독 하시거나 기억을 되살리신 후에 본문을 읽으시는 것이 정신 건... [상세]


8
18

블로그질 재개?

오후 03시 54분 | by 블로그쥔장 | Tags:
안녕하세요. 블로그 쥐장입니다. 이 핑계 저 핑계로 블로그질을 몇 달 쉬다가 다시 시작하려 하니 막막하네요. ㅎㅎ 지금까지 포스트들 중에서 GC 다시 보시 씨리즈에서 마무리 못한 Dispose 패턴 관련 글(들?)하고 가상 메모리 관련 글들이 아직 마무리가 안된 것 같습니다. 먼저 요놈들 마무리를 하면서 다른 글들도 다시 포스트를 해야 할 것 같습니다. 그래서 금주 혹은 다음주 월요일까지 Dispose 패턴 글을 마무리하고 가상 메모리 관련 글을 이어서 완료하도록 하겠습니다. 몇 달 동안 잠수 타다가 갑자기 글을 다시 올리겠다고 나타난 이유는… 뭐 나중에 기회를 잡아서 이야기 하도록 할께요. (벌써 눈치 채신 분들이 많이 계실 듯 하네요… ㅋㅋ)


안녕하세요. 정말 간만에 글을 쓰네요. 뭐 구차한 핑계는 대지 않겠습니다. 그냥 제가 게을러서죠. 혹시나 제 글을 기다리신 분이 계셨다면 정말 죄송할 따름입니다. 이번 포스트는 제가 개발 팀장으로 있는 NeoDEEX와 같은 개발 프레임워크에 대한 이야기 입니다. 이 글은 월간 마소에 기고될 내용입니다. 스압(스크롤 압박)이 있을 거라 예상됩니다. 중간에 짜르기가 뭐해서 그냥 하나의 포스트로 작성했습니다. 널리 이해해 주시기 바랍니다. 경고! 스압! (쉽게 말해서 내용이 조낸 길게 느껴질 수도 있슴돠) 프롤로그 우리가 어떤 소프트웨어를 개발할 때 말 그대로 아무것도 없는 것에서 무엇인가를 만들어내는 것은 불가능에 가깝다. 적어도 하드웨어를 제어하는 운영체제나 디바이스 드라이버와 같은 소프트웨어가 필요할... [상세]


닷넷 플랫폼 환경은 메모리 회수를 가비지 컬렉션에 의존하고 있습니다. 그래서 파일, 데이터베이스 연결과 같은 시스템 자원을 해제하기 위해 기존 C/C++과 다른 방식을 취합니다. 그 중 하나가 Finalizer 입니다. Finalizer는 시스템 자원을 해제하기 위한 최후의 보루로써 사용되곤 하지만 잘못된 사용 패턴은 관리되는 힙이 비 효율적으로 사용되게 만듭니다. 과거 제 글에서 아주 간단히 다룬 적이 있는 내용이지만, 이번 포스트에서는 Finalizer의 기본 내용과 사용 시 주의 사항들을 좀 더 자세히 살펴보도록 하겠습니다. 특히, Finalizer는 세대별 가비지 컬렉션과 연관이 있으며 다음에(언젠지 모르지만) 다루게 될 Dispose 패턴과도 밀접한 관련이 있으니 잘 알아 두시면 여러모로 도움이 되... [상세]


5
04

여기 글들은……

오전 02시 33분 | by 블로그쥔장 | Tags:
안녕하세요. 그냥 잡담이나 몇 마디 써볼까 하구요… ㅎㅎ 2005년 블로그를 처음 만들어서 벌써 만 6년이나 블로그를 질질 끌고 여기까지 왔네요. 게시판 놀이가 짜증나서 만든 건데 언젠가부터 그냥 방치할 수 없게 되어 버린 것 같습니다. 싸가지 없긴… 여기에 자주 놀러 오시는 분들은 아시겠지만 제 글들이 어떻게 보면 건방져 보이고 저질처럼 보이실 겁니다. 비속어도 많이 사용하고 말이지요. 제가 글을 이따위로 쓰는 이유는 간단합니다. 오랫동안 월간 마소나 다른 보고서를 작성해 오다 보니 기술 관련 글들은 하나 같이 딱딱하고 재미가 없었습니다. 문체도 그렇고… 내용도 그렇고… 글을 쓰는 사람도 재미나고 읽는 사람들도 재미나게 읽을 수 있는 그런 기술 문서를 쓰고 싶다는 생각을 하던 차에 즐겨 읽던 딴지 ... [상세]


가상 메모리에 대한 내용은 다른 토픽들을 이해하는데 중요한 바탕이 될 뿐 아니라 다양한 문제를 해결하기 위해서도 필요한 내용입니다. 하지만 가상 메모리에 대해 잘 정리된 문서들을 찾아보기도 힘들뿐더러 그 내용도 매우 어렵습니다. 미천한 제 지식이라도 도움이 되었으면 해서 용기를 내어 이 토픽을 다루어 볼까 합니다. 가상 메모리 vs. 물리 메모리 독자들이나 필자나 개발을 하다 보면 별별 문제와 씨름을 하게 된다. 이런 문제들 중 하나가 바로 메모리 부족 오류, 즉 Out Of Memory 오류이다. 대개 OOM이라 부르는데, 오죽 많이 당했으면 줄여서 부르기까지 하겠나 하는 생각이 든다. 암튼 OOM이 떨어지면 언넘이 시스템의 메모리를 다 쳐먹는지 궁금하기 마련이다. 대개 사용되는 도구들은 작업 관리자나... [상세]


이번 포스트의 내용은 지난 포스트에서 다루었던 가비지 컬렉션 모드의 연장선 상에 있는 글로써 프로세스가 어떤 가비지 컬렉션 모드를 사용하는지 알아내는 방법과 Server-GC 모드 사용시 한번쯤 고려해 보아야 할 사항에 대해 다루고 있습니다. 가비지 컬렉션에 대해 어느 정도 알고 계시는 독자 분들일지라도 가비지 컬렉션 모드에 대한 포스트는 먼저 읽어 보실 것을 권장합니다. 가비지 컬렉션 다시 보기 Part I – 기본 작동 방식 가비지 컬렉션 다시 보기 Part II – 세대별 가비지 컬렉션 가비지 컬렉션 다시 보기 Part III – LOH 가비지 컬렉션 다시 보기 Part IV – 가비지 컬렉션 발생 시기 가비지 컬렉션 다시 보기 Part V – 가비지 컬렉션 모드 ... [상세]


어느덧 가비지 컬렉션 시리즈도 5번째나 되네요. 지난 포스트들에서 가비지 컬렉션의 기본 작동 방식과 세대별 가비지 컬렉션, LOH(Large Object Heap), 가비지 컬렉션 발생 시기를 살펴보았습니다. 이번 포스트는 CLR이 가비지 컬렉션을 수행하는 방식에 대한 내용입니다. CLR은 주어진 조건이나 설정에 따라 Workstation-GC, Server-GC 모드로 작동하게 되는데 이들에 대해 살펴보도록 하겠습니다. 특히, 닷넷 프레임워크 4.0에서 변경된 Background GC에 대해서도 살펴보도록 하겠습니다. 가비지 컬렉션에 대해 익숙하지 않으신 독자 분이나 이 글을 읽다가 이해가 안 가시는 분들은 지난 포스트들을 참고하시기 바랍니다. 가비지 컬렉션 다시 보기 Part I – 기본 작동 방... [상세]


이번 포스트는 간단한 팁으로서 Visual Studio 2010 이나 SQL Server Management Studio 에서 SQL Server Express 기반의 .mdf 파일 데이터 베이스에 접속하는 방법을 소개하고자 합니다. 적어도 저에게는 상당한 편리한 팁이었습니다만 독자 분들께는 어떨지 모르겠네요…. Connecting SQL Server Express .mdf File Based DB 이번 포스트는 쉬어가는(응? 쭉 많이 쉬었자나!) 포스트로써 Visual Studio 2010 이나 SQL Server Management Studio에서 SQL Server Express .mdf 파일 데이터 베이스에 접속하는 방법을 살펴보도록 하겠다. 대형 떡밥을 투척하는 것이 블로그의 인기를 올리는데 도... [상세]