짜증나서 두서 없이 써본다... 엠파스는 이제 네이트랑 통합된단다... 포털 사이트 중에 특히 엠파스는 고객 서비스가 안 좋다. 약관이 수시로 바뀔 뿐더러... 약관을 어기면 무조건 지워버린다. 엠파스에 개인 카페를 만들고 몇년동안 게시물을 올렸다가. 한 몇달간 게시물을 올리지 않았다. 그런데, 2월 4일 휴먼 카페라고 몽땅 다 지워버렸다. 화들짝 놀랐다. 데이터 복구를 할 수도 없게 말이다. 벌써 몇번째다.. 파일 박스도 그랬고, 메일 데이터를 날려 먹고도 이런 적이 있다. 그때마다 약관 대로 했습니다. 라는 메일만 받거나 아예 답장도 주지 않았었다. 사실 통합에 대비해서 게시물 데이터를 다운로드를 하여 준비는 하였지만, 엠파스에서 제공한 파일 백업 서비스도 온전하지 않다. 메모장은 아예 백업 조차 않..
C++ 을 쓰다가 자바를 쓰려고 하면 꼭 걸리는게 있다. 자바는 생성자는 있지만 소멸자가 없다. 곧 할당된 인스턴스가 힙에서 언제 사라질지 아무도 알지 못한다. 가베지 콜렉터가 언제 돌아간다는 보장도 없다. 모든 게 동적 생성이고, 레퍼런스 카운트로 가베지 콜렉팅을 처리하고... 그 콜렉팅하는 시기도 알 수 없기에 이런 현상이 나타난다. 이에 관련해서 쉽게 접할 수 있는 오류는 JDBC 에서 세션을 열고 닫지 않을때이다. 어처구니 없는 경우를 당한 적이 있다. 자바로 디비 프로그래밍 하는데 다른 과장이 소스를 줬고 사람들은 그냥 그것대로 적용했다. 커넥션 풀을 구현하지 않고, 오라클에서 제공하는 OracleConnectionPoolDataSource 을 이용한 것이다. 의도는 좋다. 하지만, 제대로 알고..
본 내용은 C++ 에서 XPCOM 컴포넌트를 개발하는 경우를 대상으로 한다. 그런데, 2.x 까지 지원했다면, 기존 버전에서 굳이 다른 점은 없다. –.-; 각각 쓰는 XULRunner SDK 가 다른데… 정확히는 gecko sdk 파폭1.5 ~ 2.x : ~1.8 파폭3.x : 1.9 다음 내용은 일반적인 내용이다. https://developer.mozilla.org/en/XPCOM SDK 다운 로드는 https://developer.mozilla.org/en/Gecko_SDK 다음은 짧지만 확실한 튜토리얼 http://www.iosart.com/firefox/xpcom/ Creating a C++ XPCOM component About This is a step-by-step tutorial on ..
맵 파일을 활용하자 #1 에서 긁어왔습니다. * Release mode 에서 map파일에 저장된 메모리 정보를 이용하여 어떤 함수에서 문제가 발생하였는지 추정해 볼 수 있다 . ==== 출처 : 데브피아 VC++ 강좌와 TIP 자료실 ==== 맵 파일을 활용하자 #1 1) 소개 프로그래머는 프로그램을 개발하면서 디버깅 과정에서 여러 가지 테스트를 합니다. 물론, 항상 개발자 PC에서는 프로그램이 완벽하게 동작합니다. 참 신기합니다. 정말로 정말로 개발자 PC에서는 완벽 합니다. 하지만, 이런 완벽한 프로그램을 배포하고, 나서 곧 사용자들의 끝임없는 버그 리포트로 인하여 프로그래머는 좌절을 맞보게 됩니다. 그리고, 아무것도 모르는 초보유저님에게 우리의 프로그램은 메모리 주소만 알려주고 운명해 버리는 Cra..
간단하게 잘 써 놓아서 올려봅니다. The ADAPTIVE Communication Environment (ACE) 에서 긁어왔습니다. 방법 #3 는 추가했는데, 방법 2는 처음 본 것이네요 The ADAPTIVE Communication Environment (ACE) 최근에는 ACE class library를 활용한 개발이 활발히 이루어지고 있는데, 아마도 개발이 편리하게 해주는 클래스들이라는 점과, 상당히 오랜 기간, 오랜 사람들로 하여금 안정화되었다는 점, 실제로 꽤 많은 미션 크리티컬 영역에서도 사용되고 있다는 점이 높이 평가된듯 하다. 이 ACE를 솔라리스10 에서 컴파일해서 사용하려고 하면, 몇가지 방법이 있다. [download source] 일단, 정상적인 화일을 다운받는다. 이상하게 들..
요즘에 관심있는 부분은 Lock 이 없고, Wait 가 없는 자료형태이다. 멀티 스레드 등의 IPC 처리를 하다보면, 꼭 나오는게 Lock 이다. Lock을 처리하는데 소비되는 퍼포먼스 낭비도 꽤 된다. 이를 줄일 방법이 없을까? Context-Switching 을 더디 하면서 Lock 을 사용할 수 있다면 참 좋을 것이다. 대충 논문을 조사해봐도, 이런류의 논문이 9x 년대에 부터 나온 것도 있는 걸 보면, 이미 선진들이 이런 분야로 연구한지 꽤 오래된 것을 알 수 있다. 대다수의 구현은 CAS(Compare-And-Swap) 방식으로 처리 중에는 Context Switching 이 발생하지 않는 CPU에 종속적인 원자적 연산을 사용한 방식이다. x86 계열에서는 CMPSXXX 니모닉을… Windows..
출처 http://www.rgagnon.com/javadetails/java-0544.html 컴파일된 클래스 파일의 컴파일 버전을 확인하고 싶을 때가 있다. 이런 경우에는 컴파일된 파일의 포맷을 확인해서 버전을 확인할 수 있는데, 버전은 크게 major버전과 minor 버전으로 나뉜다. major버전과 monor 버전에 따른 자바 플랫폼 차이 major minor Java platform version 45 3 1.0 45 3 1.1 46 0 1.2 47 0 1.3 48 0 1.4 49 0 1.5 50 0 1.6 확인하는 방법은 간단한데, 헥스 에디터로 클래스 파일을 불러들인 후 아래와 같이 확인하면 된다. "The first 4 bytes are a magic number, 0xCAFEBABe, to..
안쓰니까 자주 까먹는다 –.-; http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/IPC/SharedMemory 1. 시스템상에 생성된 공유 메모리 세그먼트(Shared Memory Segment) 확인하기. $ ipcs -m 2. 생성된 공유 메모리 세그먼트 제거. $ ipcrm -m # ipcs ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 65536 root 600 393216 2 dest 0x00000000 98305 root 600 393216 2 dest 0x00000000 131074 root 60..