본문 바로가기

데스크탑/.NET10

싱글턴 패턴 VS Static 클래스 in C# 몇일에 걸쳐 이 두가지 방법 중 정확히 어떤 걸 어떤 용도로 써야 하는지 이해를 하려고 노력했습니다. 이해한 내용 중 큰 특징들만 간단히 정리하자면, 공통점: Static 클래스/멤버는 특수한 메모리 영역인 High-Frequency Heap 에 저장되고 이 영역은 Garbage Collector(이하 GC) 의 청소 대상이 아니다. 싱글턴 패턴을 구현한 클래스(이하 싱글턴 클래스) 역시 static 멤버를 가지고 있으므로 GC 의 청소 대상이 아니다. 따라서, 해당 프로세스나 AppDomain 이 종료될 때 해제된다. 둘 다 객체를 생성할 수 없고 하나의 레퍼런스만을 앱 전체에서 공유한다. 차이점: Static 클래스는 인터페이스 구현 및 클래스 상속이 안 된다. 싱글턴 클래스는 된다. 싱글턴 클래스는.. 2023. 3. 21.
액세스 수준 정리 [C#] 1. 네임스페이스 내부에 선언된 클래스의 기본 액세스 수준은 internal 이며 internal/public 만 가능하다. 2. 클래스에 포함된 멤버, 중첩된 클래스의 액세스 수준은 기본적으로 private 이며, public, private, protected, internal, protected internal 모두 사용 가능하다. [VB] C# 과 동일하며 internal 대신 friends 키워드 사용 2017. 1. 3.
Data Access Layer 로 Enterprise Library 5.0 의 Data Access Application Block(DAAB) 사용하기 Version 1.0 문서 이력 2013-05-18 최초 작성 Ver 1.0 보통 프로젝트를 시작할 때 N-Tier 로 구성하여 사용을 합니다. Tier 는 Layer 라고도 할 수 있으며 보통 그 중 하나의 Layer 는 Data Access Layer 로 하여 데이터 접근하는 부분은 따로 구성하는 경우가 많습니다. 이 Layer 는 순수하게 ADO.Net 을 사용하여 DataReader, SqlConnection, SqlCommand 같은 기본 Sql 클래스들로 직접 구현하여 사용할 수도 있지만 Microsoft 에서는 엔터프라이즈 환경에서 보안, 트랜잭션, DB 접근 등의 기능을 손쉽게 사용할 수 있도록 Enterprise Library 를 제공합니다. 이는 patterns & practices 라.. 2013. 5. 18.
웹서비스 SOAPFault 에서 Faultstring 에 디버깅 정보 없애기 Version 1.0 문서 이력 2013-04-05 최초 작성 Ver 1.0 웹서비스 개발 중에 발생 시 faultstring 에 디버깅 정보가 포함되어 나타나는 경우 이 디버깅 정보가 나타나지 않게 하는 방법입니다. 일단, 디버깅 정보가 포함된 faultstring 을 가진 응답 SOAP 메시지입니다. soap:Server System.Web.Services.Protocols.SoapException: 서버에서 요청을 처리할 수 없습니다. ---> System.Exception: ORA-01008: 일부 변수가 바인드되지 않았습니다. 위치: NineBear.Dac.gettInfo(String pInput) 파일 C:\Users\Administrator\Documents\Visual Studio 2008.. 2013. 4. 30.
[2.0] WSDL 문서로 웹서비스 제공 클래스 만들기 Version 1.1 문서 이력 2013-04-05 최초 작성 Ver 1.0 2013-05-24 wsdl.exe 설명 중 스키마 include / import 부분 수정 Ver 1.1 웹서비스 클래스 생성하여 자동 WSDL 문서 생성이 아닌 WSDL 문서를 작성한 후 웹서비스 제공클래스를 만드는 방법입니다. 이 방법은 찾아보니 잘 나와있지는 않더군요. 우선, 작성된 WSDL 문서를 준비합니다. 그리고 C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin 폴더로 가서 wsdl.exe 가 있는지확인합니다. (저는 Visual Studio 2008 이 설치되어 있어 v6.0A 가 있으나 이는 버전에 따라 틀릴 수 있습니다.) 있다면, 편의를 위해 wsdl.exe 가 있는 경.. 2013. 4. 30.
Visual Studio 2008 / 2010 에 WSE 3.0 설치하기 Version 1.0 문서 이력 2013-04-05 최초 작성 Ver 1.0 웹서비스 작업 시 WS-Security, WS-Addressing, WS-Attachment 와 같은 WS 보안 사양을 손쉽게 적용할 수 있게 해주는 WSE(Web Services Enhancements) 를 Add-In 하여 사용합니다. 물론, SOAP Header 에 수동으로 저런 부분을 넣어줄 수도 있겠지만 WSE 를 사용하면 마법사를 이용하여 간편하게 작업이 가능합니다. WSE 3.0 을 설치하고 Visual Studio 2008 / 2010 에 Add-In 하는 방법을 Diganta Kumar 님이 잘 설명해 놓은 글이 있어 아래 링크 걸어 놓습니다. Diganta Kumar 님 글 링크 : http://digantak.. 2013. 4. 30.
Windows 7 에서 ODP.NET 설치하기 Version 1.0 문서 이력 2013-04-05 최초 작성 Ver 1.0 Windows 7 에서 Oracle10g 용 ODP.NET 을 설치하기 위해 ODAC1020221 을 다운받아 압축을 풀면 install 과 stage 두 폴더가 있습니다. 이 중 install 폴더 내의 setup.exe 를 실행하면 아래와 같은 에러가 발생합니다. 이 경우는 Oracle10g Client 설치 시와 동일하게 setup.exe 와 같은 폴더 내의 oraparam.ini 파일을 아래와 같이 빨간 부분을 추가해줘야 합니다. [Certified Versions] #You can customise error message shown for failure, provide value for CERTIFIED_VERSION.. 2013. 4. 30.
[C#] 날짜형식 검사하기 Version 1.0 문서 이력 2013-04-05 최초 작성 Ver 1.0 날짜 문자열의 형식이 원하는 형식인지 유효성을 검사하는 함수입니다. Regex 클래스로 패턴검사를 이용하여 형식을 검사합니다. using System; using System.Text.RegularExpressions; namespace KGDotNetLib { public class Common { /*--------------------------------------------------------------------- * 작성자 : NineBear™ * 함수명 : isYYYYMMDD * 입력값 : date : 검사할 날짜 문자열 * 출력값 : 검사 성공 여부 * 설명 : 날짜 문자열이 YYYYMMDD 형식인지 검사한다... 2013. 4. 30.
[2.0] visual studio 2005 에서 debug 할 때 break 가 안먹히는 문제 Pocket PC 5.0 용으로 mobile application 을 만들다가 디버깅할 때 break 가 안먹히는 문제가 있었는데요. 다음과 같은 에러 메시지가 뜨더군요. Error Message :: The breakpoint will not currently be hit. The specified module has not been loaded. 프로그램 상에 문제인가 싶어 찾아봐도 없길래 msdn 을 찾아봤습니다. Mobile application 의 경우 Compact .NET framework 라는 축소된 framework 를 사용하는데 이 에러는 compact .NET framework 2.0 의 버그때문에 발생하는 것이었습니다. ㅡㅡ;; 그래서 compact .NET framework 2.0.. 2009. 1. 16.
[2.0] 바코드 프로그램 실행 시 바코드 에러. 바코드 리더를 사용하는 모바일 프로그램을 만들어서 PDA 에 복사하여 배포한 적이 있습니다. Visual studio 2005 를 통해 배포하지 않고 배포하는 방법을 찾지 못해 그냥 exe 파일을 PDA를 컴퓨터에 연결해서 복사해 넣었는데요. 그러다 보니 관련 dll 파일들이 PDA 에 존재하지 않아서 에러가 뜨는 경우가 생겼습니다. 다행히 PDA 에 .NET 2.0 은 깔려 있었고 기본적인 것들은 존재했지만 바코드 리더 관련 dll 파일은 없었던지 프로그램을 실행하니 에러가 뜨더군요. 제가 사용한 바코드 툴은 symbol 바코드 리더 툴이었습니다. 모토로라에서 제공하는 것 같은데.. 암튼 에러 메시지에 unexpected error 라면서 장황한 에러 메시지와 함께 아랫 부분에 Symbol.Barcod.. 2009. 1. 16.