SimpleIsBest.NET

유경상의 닷넷 블로그
최근 구글 웹로그 분석에서 이 블로그의 방문자를 살펴보다가 아주 오래된 문서들이 여전히 참조되고 있다는 것을 알았습니다. 그래서 시간이 날 때마다 이전 글 중에서 업데이트가 필요한 글들을 갱신하고자 합니다. 이번 글은 2005년 이 블로그를 처음 만들면서 썼던 StringBuilder에 대한 글입니다. 최신 닷넷 프레임워크 4.x에서 변경된 부분도 다루어지므로 끝까지 읽어 보시길 권장드립니다. 문자열 이야기 String과 더불어 StringBuilder는 가장 많이 사용되는 닷넷 클래스 중 하나이다. 그런 의미에서 본좌가 2005년 이곳을 개설함과 동시에 몇 개의 글을 시리즈로 작성했었다. 이 글들은 String과 StringBuilder를 사용하면서 주의할 사항들 그리고 알아두어야 할 것을 다루고 있다... [상세]


몇 일전 Visual Studio 2012 Update 2가 정식 릴리스 되었습니다. 다양한 새로운 기능들이 많이 추가되었습니다만 이번 포스트에서는 유닛 테스트 프로파일링에 대해 몇 마디 하고자 합니다. About Profiling 테스트 프로파일링(Test Profiling)은 유닛 테스트 코드에 대한 프로파일링을 말한다. 이 기능은 Visual Studio 2012 Update 1에 처음 추가되었지만 사소한 버그가 있었다. Update 2에 와서는 별다른 문제없이 사용할 수 있다. 프로파일링이란 단어를 처음 들어본 독자에겐 미안하지만 이 글을 읽기 전에 프로파일링이 무엇인지 모르는 독자를 위해 위키의 정의를 살펴보면 다음과 같다. 프로파일링(profiling, 프로그램 프로파일링/소프트웨어 프로파... [상세]


최근 고객에게 발생한 문제 해결 내용입니다. 다른 분들에게도 도움이 될 것 같아서 공유 합니다. 전혀 생각하지도 않았던 곳에서 타임 아웃의 원인을 제공하기 때문입니다. 원인도 중요하지만 어떤 문제에 대해 그 문제를 해결해 나가는 방법도 관심을 가지시면 좋을 듯합니다. (뻘쭘하긴 하네요.... ㅎㅎ) 신고 접수 피해자(고객)의 신고가 접수 되었다. 신고 내용은 간단했다. 1분이 넘는 응답 시간을 갖는 서버 호출에 대해, 개발 서버를 호출하면 잘 작동하는 WCF 서비스가 운영서버에 대해서 호출하면 타임아웃 오류가 난다는 것이었다. 타임 아웃 범죄는 흔히 발생하는 것들 중 하나이고 특히 WCF 서비스 호출 시 잘못된 서버 설정, 혹은 클라이언트 설정으로 흔히 발생하는 잡범 수준이었다. 구성 설정, 너냐? ... [상세]


Async/await 키워드 시리즈 마지막 글입니다. 지난 글에서 예고한 대로 약간 복잡한 async/await 사용 예로부터 실제 컴파일러가 생성하는 코드를 살펴보도록 하겠습니다. 컴파일러가 어떤 코드를 생성하는지 이해하고 있다면 더욱 더 async/await 키워드를 잘 활용할 수 있을 것이고, 문제가 발생하더라도 좀 더 쉽게 문제를 해결하실 수 있을 겁니다. 간편한 비동기 프로그래밍:async/await (1) – 동기 프로그래밍의 문제점 간편한 비동기 프로그래밍:async/await (2) – 전통적인 비동기 프로그래밍과 그 문제점 간편한 비동기 프로그래밍:async/await (3) – async/await 키워드 소개 간편한 비동기 프로그래밍:async/aw... [상세]


Async/await 키워드에 대한 네 번째 글입니다. 이번 글에서는 async/await의 구체적인 작동 원리를 살펴보고자 합니다. 즉, C# 코드에서 async/await 키워드를 사용했을 때 컴파일러가 생성하는 코드를 살펴봄으로 써 그 원리를 이해하는 것이지요. 굳이 이러한 원리를 모르더라도 async/await 키워드를 사용할 수 있습니다. 하지만 원리를 알고 있다면 다양한 상황에서 발생하는 문제들을 해결하는데 도움이 되리라 믿습니다. 간편한 비동기 프로그래밍:async/await (1) – 동기 프로그래밍의 문제점 간편한 비동기 프로그래밍:async/await (2) – 전통적인 비동기 프로그래밍과 그 문제점 간편한 비동기 프로그래밍:async/await (3) &ndas... [상세]


Async/await 키워드 세 번째 글이네요. 앞서 두 글은 aysnc/await의 등장 배경을 설명했습니다. UI를 가진 어플리케이션에서 동기 프로그래밍의 문제점과 전통적인 APM(Asynchronous Programming Model) 비동기 프로그래밍 모델의 단점을 중점적으로 설명했는데요, 이번 글에서는 닷넷 프레임워크 4.5와 함께 등장한 C# 5.0의 async/await 키워드에 대해 본격적으로 살펴보도록 하겠습니다. 간편한 비동기 프로그래밍:async/await (1) – 동기 프로그래밍의 문제점 간편한 비동기 프로그래밍:async/await (2) – 전통적인 비동기 프로그래밍과 그 문제점 간편한 비동기 프로그래밍:async/await (3) – asyn... [상세]


Async/await 키워드에 대한 두 번째 글입니다. 이번 글에서는 UI 상에서 사용할 수 있는 전통적인 비동기 프로그래밍 기법을 살펴보고 이 방법들의 문제점이 무엇인가 살펴보도록 하겠습니다. 기존 비동기 프로그래밍 방식의 문제점을 충분히 이해한다면 왜 async/await 키워드가 등장했는지 이해하기 보다 쉽기 때문입니다. 간편한 비동기 프로그래밍:async/await (1) – 동기 프로그래밍의 문제점 간편한 비동기 프로그래밍:async/await (2) – 전통적인 비동기 프로그래밍과 그 문제점 간편한 비동기 프로그래밍:async/await (3) – async/await 키워드 소개 간편한 비동기 프로그래밍:async/await (4) – async/... [상세]


안녕하세요. 블로그쥔장 입니다. 간만에 다시 키보드를 잡았네요. 시간 없다는 핑계로 이렇게 사이트를 내버려두기도 그렇고 뭐라도 해서 다시 활력을 가져보고자 다시 플로그질을 시작해 볼까 합니다. 항상 그렇듯이 기약은 없답니다. ㅎㅎ 앞으로 몇 차례 닷넷 프레임워크 4.5에 추가된 새로운 키워드인 async/await에 대해 다루려고 합니다. 닷넷 프레임워크 4.5가 나온지 한참도 더 되었지만 async/await 키워드에 대해 심도 깊게 다룬 글들은 별로 없어 보이는지라… 아는 척하기 좋겠다 싶어서 토픽으로 잡았습니다. 사실은 이 글은 2012년 월간 마이크로소프트웨어 1월, 2월에 연재 되었던 제 글을 바탕으로 한 것입니다. ^^ 간편한 비동기 프로그래밍:async/await (1) &ndas... [상세]


요즘 Windows Azure에 많은 시간을 할애하고 있습니다. NeoDEEX 4.x를 Azure-aware 프레임워크로 만들기 위한 작업이지요. 이런 저런 이유로 Azure 상에서 작동하는 다양한 예제를 만들고 있는데요, 그러다 Worker Role에 WCF 서비스를 호스팅 하는 예제를 작성하게 되었습니다. 아주 간단한 서비스였음에도 불구하고 하루 동안 삽질하다가 다음날에서야 겨우 예제가 돌아가게 할 수 있었습니다. 저와 비슷한 삽질을 많은 분들이 할 수 있으리라 생각되어 키보드를 두드리게 되었네요. 이 글은 독자 여러분이 WCF Service에 대한 기본(?)적인 지식을 가지고 있으며 Window Azure에 대해서도 기본 지식을 가지고 있다고 가정할 것입니다. ServiceHost, BasicHttpB... [상세]


9
12

DataSet 이야기

오전 01시 18분 | by 블로그쥔장 | Tags: ,
블로그 질 재개? 구차한 서론은 때려치우고 바로 본론으로... DataSet에 대하여… 시작하기 전에, 이실직고부터 하겠다. 필자는 엔티티 기반의 프로젝트를 한번 해봤다. 1998년 동양시멘트 프로젝트를 약 1년여 동안 일반 개발자로서 약 100여 개의 화면을 Forte라는 도구를 사용하여 개발해 본 경험이 전부다. 그 외엔 Entity Framework로 다건의 데이터를 조회/추가/수정/삭제하는 WinForm/WPF 예제를 만들어 봤을 뿐이다. 따라서 여기서 이야기 하는 엔티티에 대한 내용은 상당히 주관적일 수도 있음을 밝히는 바이다. 기술적인 이야기를 주저리 주저리 나열하진 않겠다. 공연히 흥분한 내 마음이 차분해 질 수 있으니깐 말이쥐… 대안: 엔티티? DataSet은 엔티티에 비해 꿇리는 점이... [상세]