본문 바로가기

Computer Engineering8

Hibernate 를 보는 도중.. 에... .NET Framework 용이 있더군요... 그것도 1.1과 2.0 양쪽 다... 작년에 ALO Studio 3 개발할 때 이걸 적용했어야 했는데... 안타깝네요. LGPL 이라 걸릴 것도 없고...냠냠.. ALO 개발할 때 너무 게을렀던 것 같습니다. 저런 기술들 제대로만 적용했어도 코딩시간이 엄청 줄었을 텐데... 가끔은 너무 코앞의 것만 바라보고 달린 것이 후회가 되는군요.. 아무튼 앞으로는 제대로 공부를 좀 해야겠네요. 역시 이 업계는 공부 안하면 바보되는 게 순식간... 휴 그럼.. 2007.02.11
Interface 를 이용한 Listener 패턴과 .NET Framework 의 event 타입의 비교 * 장점 2> 부분 수정되었습니다. Interface 를 이용한 Listener 패턴과 .NET Framework 의 event 타입의 비교 2007년 1월 15일 강현신 이벤트의 장점 및 단점 중 가장 큰 부분은 역시, 사용자가 리스닝 할 메소드의 추가 및 삭제에 직접 개입할 수 없다는 점 장점1. > 사용자가 개입할 수 없으므로 중간에 어떤 다른 예외적인 상황을 개입시킬 수 없으며, 그렇기 때문에 예외 상황이 발생할 여지를 줄인다. 인터페이스를 통한 리스너 패턴을 쓸 경우 개체 추가 시 다른 리스트 등에 추가하는 작업과 같은 참조 늘리기 작업 같은 것이 대표적 예인데, 이런 경우 코딩 잘못으로 인해 참조를 제대로 제거하지 않을 경우 복잡한 문제를 야기할 수 있다. 이벤트의 경우 애당초 이런 상황 자체.. 2007.01.15
프로그래밍을 하는 데에 있어 설계 사상의 중요성 얼마 전부터 내가 맡은 일은, 기존에 다른 이가 기획하고 코딩한 도구를 판매용의 새 프로젝트에 이식하는 것이다. 그리고 이는 마이그레이션을 포함하고 있다. 문제는 현재 만들고 있는 상품에서 내가 맡은 부분을 제외하면 대부분 자신이 코딩한 부분을 계승하고 있거나 아직 그 도구를 만든 이가 회사에 남아있는 반면, 본인이 맡은 부분은 그렇지 않다는 점에 있고, 더군다나 이전에 그 부분을 코딩했던 사람이 만들었던 도구들이 상당히 엉망이라는 점이다. 그런데 중요한 점은, 코딩이 엉망이라는 것이 아니다. 코딩이 엉망인 것은 경험 부족의 산물이나 성의없는 작업의 결과일 수도 있지만, 당시의 프로젝트 방향이나 상황에 따라 그런 것일 수도 있기 때문이다. 솔직히 그 부분이 짜증이 안 나는 것은 아니지만 그것 자체는 그래.. 2006.07.31
예외 (Exception) - 2부 - 2007-02-14 : C# 에서 throw 시 StackTrace 를 초기화하지 않는 방법이 있어 이 부분을 추가했습니다. 예외 (Exception) - 2부 - 2006년 3월 28일 강현신 C++ 의 예외 처리 C++ 에서는 예외 발생을 묘사하기 위하여 throw 를, 예외 흐름을 묘사하기 위해 try ~ catch 블록을 사용하고 있다. 기본적인 표현 방식은, try 블록 안에 예외가 발생할 수 있을 가능성이 있는 주 흐름 명령어들을 위치시키고, catch 블록 안에 이러한 주 흐름에서 발생한 예외를 처리하는 예외 흐름을 기술한다. try 블록 안에 위치한 주 흐름은 많은 형태의 명령어로 기술될 수 있으므로, 발생할 수 있는 예외 또한 여러 가지 형태가 될 수 있다. C++ 은 catch 구문 뒤.. 2006.03.28
예외 (Exception) - 1부 - 예외 (Exception) - 1부 - 2006년 3월 27일 강현신 전통적인 프로그래밍 언어가 가지는 오류 처리의 한계점 컴퓨터를 구성하는 대부분의 시스템의 경우 많은 종류의 작업을 처리하는 과정에서 어떤 특정 명령 혹은 그 명령의 결과가 제어할 수 없는 상황을 발생시키는 경우, 예를 들면 연산의 결과가 변수의 형이 가질 수 있는 최대 값을 벗어나 버렸다든가 현재 어플리케이션에 할당되지도 않은 메모리 주소를 가져오려 했다든가 하는 상황 등이 발생하였을 경우 사용자에게 이러한 상황이 발생하였음을 알린 후 시스템은 작업을 중지하게 된다. 따라서 프로그램이 계속 정상적으로 실행되기 위해서는 작업을 수행하는 도중 이러한 상황을 항상 확인하여 문제가 발생하였을 경우 이를 적절히 해결할 수 있는 코드를 삽입해 두.. 2006.03.27
.NET 의 델리게이트(delegate) 와 형 (type) ** 델리게이트의 개념 델리게이트에 대해 간단히 요약하면, 공간적 입장으로 해석하고 있는 기존 OOP 개념을 보완하기 위해 나온 새로운 개념이라고 볼 수 있다. 현재 .NET 환경에서 내가 이해하고 있는 델리게이트의 개념은 다음과 같다. 1) 개념상으로는 개체의 동작을 추상화한 '형(Type)' 이다. 델리게이트에 각종 비동기 호출을 위한 패턴이 정의된 점을 보면 마이크로소프트가 델리게이트를 어떤 개념으로 해석했는지를 잘 보여준다. 2) 형태상으로는 메소드의 형식을 추상화한 '형' 이다. .NET Framework 상에서는 메소드의 형식 중 중요한 두 가지인 인자(Argument) 와 반환값(Return value) 으로 델리게이트를 정의할 수 있다. 멀티태스크의 입장에서 델리게이트의 개념은 매우 중요하.. 2006.01.25
cscript 를 통한 각종 서비스 관리용 vbs 파일 사용법 cscript 를 통한 각종 서비스 관리용 vbs 파일 사용법 강현신 (http://gcempire.net) 2005.07.01 Windows 2003 은 여러 면에서 Windows 2000 에 비해 여러가지 추가적인 어플리케이션 서비스 관리 기능들을 가지고 있다. 그 중 하나가 cscript.exe 로서, 이는 vbs (Visual Basic Script)를 콘솔 라인상에서 바로 실행할 수 있게 하는 프로그램이다. Windows 2003 의 기본 시스템 디렉토리인 c:\windows\system32 를 보면, 여러가지 vbs 파일이 존재함을 알 수 있다. 이들 vbs 파일은, 자주 관리되는 어플리케이션 서비스들에 대하여 기능별로 분류 처리하도록 이루어져 있다. 예를 들면, iisvdir.vbs 는 II.. 2005.07.01
MMC (Microsoft Management Console) 사용법 MMC (Microsoft Management Console) 사용법 강현신 (http://gcempire.net) - 2005.07.01 MMC 는 Microsoft Management Console 의 약자로서, Windows Server 계열 제품군의 모든 서비스를 GUI 상으로 관리하게 해 줄 수 있는 프로그램이다. 흔히 서버 관리 시 사용하는 관리 도구 안의 각종 서버 관리 도구들은 모두 이 MMC 를 사용하여 구동되는 것이다. MMC 는 특정 어플리케이션 서비스를 관리하기 위해 .msc 라는 확장자를 가진 파일을 필요로 한다. .msc 파일은 XML 규약으로 이루어진 문서로서, 특정 어플리케이션 서비스를 MMC 의 GUI 로 표현하는 방식과, MMC 의 변경 적용사항을 다시 특정 어플리케이션 .. 2005.07.01