본문 바로가기

[ Program ]205

커스텀 열거자(IEnumerable, IEnumerator) 카페 > CPPWorld | 오호호 http://cafe.naver.com/cppworld/1060 오늘은 어떠한 상황에서 우리가 정의한 클래스를 Foreach 문에서 사용해야 할때가 있습니다. 이럴때 IEnumerable 과 IEnumerator를 활용할 수 있는데... 살짝만 봅니다. 2012. 9. 17.
스레드의 상태 개발자로 살아간다는건... ™ | 카푸치노 스레드의 상태를 아는 것은 스레드를 어떻게 제어하느냐와 관련이 있습니다. 스레드의 상태는 대표적으로 생성 직후의 상태(Unstarted), 실행 가능한 상태(Runnable), 대기상태(Suspended), 실행을 끝내고 죽는 상태(Stopped)로 나눌 수 있습니다. 일단, 스레드가 생성된 후 Start를 하면, 스레드는 3가지 상태로 전이(轉移)가 가능합니다. 이번 절에서는 스레드의 상태에 대해서 알아보도록 하겠습니다. qUnstarted 상태 스레드에 해당하는 메서드를 하나 디자인하고 이 메서드의 대리자인 ThreadStart 델리게이트를 생성합니다. 그리고, 생성된 ThreadStart 델리게이트를 매개변수로 하여 Thread를 생성하게 됩니다. Unst.. 2012. 9. 17.
C# 주의해야 할 문법 카페 > CPPWorld | 오호호 http://cafe.naver.com/cppworld/1067 이번 내용은 C# 주의해서 보아야 할 것들에 대한 정리 두번째 강좌로서 OOP 관련한 것들을 순서없이 정리한 것입니다. C#과 OOP C# 클래스는 메소드, 속성외에 인덱서, 프로퍼티, 생성자, 연산자, 델리게이트, 이벤트 등을 포함한다. [static과 instance] Static 키워드와 함께 선언된 필드는 정적 필드 혹은 정적 데이터로 불려진다. 그리고 static 으로 선언되지 않은 필드들은 인스턴스 필드 혹은 인스턴스 데이터로 불려진다. Static 키워드는 액세스 한정과는 아무런 상관이 없다.(private static/public static 모두 가능) 인스턴스 메소드도 정적 메소드와 같이.. 2012. 9. 17.
클래스객체정의 한섬 | 유향버들 http://blog.naver.com/shopin00/100010615214 ▣ 클래스의 정의 - 클래스와 객체는 비슷한 개념이다. 클래스는 설계도이고, 객체는 설계도를 만든 자동차라고 볼수 있다. - 설계도 한장이면 수백수천대의 자동차를 만들 수 있다. 설계도를 잘못 그리면, 생산된 자동차 역시 불량일 수밖에 없다. 1. 클래스의 구성요소 - C#에서 사용하는 클래스는 멤버변수(특성, 속성), 메소드(멤버를 접근하거나 멤버를 이용하는 작업)로 구성 - Main()메소드의 이해 => C#에서는 아무리 많은 클래스를 사용해도 Main()메소드는 오직 하나만 존재 Main메소드는 프로그램이 빌드되어 하나의 실행 파일(.exe확장자를 갖는 파일)로 만들어지고 나서 그 실행파일을 실행시켰을때.. 2012. 9. 17.
데이터베이스 연결 한섬 | 유향버들 http://blog.naver.com/shopin00/100011313954 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.SqlClient; namespace WebApplication15 { /// /// data2에 대한 요약 설명입니다. /// public .. 2012. 9. 17.
C# Random Class 사용하기 요즘 너무 오래간만에 포스팅이다. 블로그를 옮길까....도 생각하다보니...더 글 올리는 텀이 길어지는것 같기도 하다. 일단..지금 한참 바쁘니 거두절미하고..본론부터 써 내려 가도록 하자. 예전 C에서 rand() 함수를 사용할때는 seed값을 미리 주어서 사용하거나, 일정 범위내의 random값을 사용하는 경우에는 rand()%X를 사용하기도 했다. (단, seed값이 같다면 매번 같은 패턴으로 난수가 발생하고, 그래서 seed값을 시간을 사용한다고 해도 빠른 루프를 돌리거나 하면..같은 수가 나오는 치명적인 약점이 있긴 하다.) 하지만 C#은...정말 간단하면서도 강력한것 같다. (but, 난 C가 더 좋긴 하다...!!) Random rNum = new Random(); 제공하는 메서드... rN.. 2012. 9. 14.
WCF Configuration ( Appconfig 스키마 구성표) http://msdn.microsoft.com/ko-kr/library/ms731734.aspx http://msdn.microsoft.com/ko-kr/library/ms731734.aspx 클릭하시면 크게 보실수있습니다. 2012. 9. 14.
C 포인터, 확실히 알자(5) - Call by Reference Sizuha`s Bit Essay | 시즈하 http://blog.naver.com/bitessay/130008682534 아시다시피 C언어는 main() 그 자체도 함수(Function)인 것처럼, 뼈속까지 함수를 기본 단위로 해서 프로그램을 구성하고 있습니다. (객체지향 언어에서는 객체(Object)가 하나의 구성 단위이듯이 말이죠.) C에서 함수는 하나의 기능을 수행하는 단위로 볼 수 있는데, 함수가 뭔가의 일을 해내기 위해서는 대게의 경우 그 작업에 필요한 뭔가의 데이터를 같이 전달해 줘야 합니다. 그것이 바로 인수(Argument)라고 불리는 것들이죠. 그런데 이렇게 함수에게 인수를 전달하는 방법에는 여러가지가 있습니다. 그치만 가장 많이 쓰이는 방법은 '값에 의한 호출(Call by Value.. 2012. 9. 14.
C 포인터, 확실히 알자(4) - 함수와 포인터 Sizuha`s Bit Essay | 시즈하 http://blog.naver.com/bitessay/130008099909 . 포인터, 다시 들여다 보기 지난 강좌에서, 저는 포인터를 메모리상의 주소(Address)를 다루는 변수라고 정의했습니다. 이말은 즉, 메모리에 올라갈 수 있는 것이라면 그 어떤 것이든 포인터를 이용해서 접근할 수 있다는 얘기가 됩니다. (이론상으로...) 우리는 주로 메모리에는 데이터가 있다고 생각합니다. 자료를 담는 변수, 배열, 구조체 등의 자료구조들 역시 메모리라는 공간 안에서 관리되는 것이죠. 그래서 지금까지는 변수와 배열을 다루는 포인터에 대해서 이야기해왔습니다. 그런데, 우리가 작성한 프로그램 코드는 대체 어디에 존재하는 걸까요? 네, 당연히 메모리입니다. 그 어떤 프.. 2012. 9. 14.
C 포인터, 확실히 알자(3) - 문자열과 포인터 Sizuha`s Bit Essay | 시즈하 http://blog.naver.com/bitessay/130008057621 서론 C 언어에서는 기본적인 자료형인 배열(Array)과 문자열(Stirng)을 다루는 것 조차도 포인터를 이해하지 않으면 안될만큼, 언어차원에서 포인터의 개념이 뿌리깊게 자리잡고 있습니다. 때문에 포인터를 이해하는 것은 곧 C 언어 그 자체를 이해하는 것과도 통하는 것이 있습니다. 이때문에 C가 어렵게 느껴지는 것이기도 하겠지요. 제 나름대로 C를 쉽게 정의 내려본다면, "왠만한건 다 포인터로 처리한다" 라고 말하겠습니다. 정말 C에서는 포인터로 못하게는게 거의 없습니다. 물론 그만큼 강력하지만 잘못다루면 심각한 에러를 만들어 낼 수 있고, 또 C를 이해하기 어렵게 만드는 요인이기.. 2012. 9. 14.
C 포인터, 확실히 알자(2) - 배열과 포인터 Sizuha`s Bit Essay | 시즈하 http://blog.naver.com/bitessay/130004212485 시작 포인터를 얘기할 때, 꼭 배열이란 것을 다시 언급하게 됩니다. 사실 C에서 포인터(Pointer)와 배열(Array)은 꽤 닮은 점이 있습니다. 결론부터 말하면, 배열이 내부적으로 포인터로 구현되어 있기 때문입니다. 1. 배열(Array) 배열이란 동일한 타입을 가지는 일련의 변수군을 정의한 겁니다. 가령 int A[5]; 이라고 선언하면 정수(int)형 변수 5개를 만들고 그것을 A 라는 하나의 이름으로 통합해서 관리하게 됩니다. 그러면 메모리상에서 배열은 어떤 모습일까요? 일단 배열의 각 원소가 할당받는 어드레스를 살펴봅니다. ──────────────────────────.. 2012. 9. 14.
C 포인터, 확실히 알자(1) - 변수와 포인터 Sizuha`s Bit Essay | 시즈하 http://blog.naver.com/bitessay/130004157487 서론 C Language를 공부하면서 가장 이해하기 어려운 것이 무어냐고 물어본다면, 아마도 거의 대부분 "바로 포인터(Pointer)라는 녀석이다!" 라고 말할 것입니다. C에서 다른 건 다 이해가 되어도 "포인터 만큼은 죽어도 모르겠다" 라고 말하는 경우를 제 주변에서도 심심치 않게 봐왔습니다. 사실 C는 어려울 수밖에 없습니다. C를 그저 프로그래밍의 기초 과정에서 배우는 옛날 언어라고 생각하고 가볍게 볼만큼 만만한 녀석이 전혀 아닙니다. C는 어셈블리(Assembly)의 사촌입니다. 다시 말하면, C는 하드웨어 - 특히 마이크로프로세서(CPU)와 친한 녀석입니다. 때문에 하드.. 2012. 9. 14.
깜빡임이 없어지지않네요 iperfume님의 블로그 | 루시아 http://blog.naver.com/iperfume/100032793209 [MFC] CList로 비트맵 띄우는데 드래그 할 때 깜빡임이 없어지지않네요 이미지를 몇개 출력해서 리스트에 저장한다음 뿌려주는 프로그램을 짜고 있습니다. 거의 다 완성 되었는데 OnLButtonDown() OnMouseMove()에서 OnLButtonUp()으로 그림을 선택해서 드래그 하는 프로그램인데요. 드래그 될때 마니 깜박거리네요. Invalidate, InvalidateRect, OnEraseBkfnd()도 써보고 아예 배경을 다시 그리기도 해봤지만 왜 안되는건지 궁금합니다. 아래는 이미지를 그리는 부분과 마우스 커서 움직이는 부분입니다. 깜박거리는 것 말고는 잘 동작하고 있습니다.. 2012. 9. 14.
다른 윈도우에 포커스 주기 카페 > White Shadow ::.. | 그림자 http://cafe.naver.com/whiteshadow/84 HWND hWnd = ::FindWindow(NULL, "제목 없음 - 메모장"); if(hWnd) { ::ShowWindow(hWnd, SW_RESTORE); ::SetForegroundWindow(hWnd); } 간단하네~ 간혹 필요한 경우가 있어서리.. 2012. 9. 14.
MFC에서 D3D 8.0 사용하기(툴만들때 용이) balbari882님의 블로그 | 재준 http://blog.naver.com/balbari882/140013140047 안녕하세요~ 이준곤(LeeChen) 입니다. 참고로 이강좌는 외국사이트를 번역기로 번역해서 옮긴것이라 문맥이 앞뒤가 어색할수 있습니다. 이강좌는 저에게 개인적으로 "MFC에서 D3D를 붙일려구 하는데 어떻게 해야 하나요?"라는 관련질문을 많이 해오셔서 이내용을 시간이 없는 관계로 그냥 캡쳐해서 올립니다. 개인적으로 시간이 많다면 강좌도 쓰고 책도 쓰고 싶지만... 이래저래 핑계로 못하고 있네요~ ^^; 그럼.도움이 되셨으면 합니다. -------------------------------------------------------------------------------- Direc.. 2012. 9. 14.
프레임웍없이 사용가능하게 vs(비쥬얼스튜디오) 에서 빌드하는법 프로젝트 에서 마우스 오른쪽 속성 > MFC사용 > 공유DLL에서 MFC 사용 으로 바꿈 초기값은 표준 windows 라이브러리사용 2012. 9. 14.
C++ 에서 -> 의 의미 답변1. 생성된 클래스의 값을 불러드린다고 치고 혹 class Student{ public: int a=5; } 가 있지요. Student A, *B; 가 있다고 하면 B가 포인터지요? 그럼 B는 메모리안에 address만 가지고 있습니다. public 에 있는 값을 불러올때 A.a 를 그냥 부르면 되지만 B가 포인터기에 B->a 를 해야지만 값을 가지고 올수 있습니다. 혹 B.a 라고 사용하게되면 에러가 뜨지요. 혹 B = new Student ... 라고 B에게 용량을 준다면 B.a 가 사용가능, B->a 는 못쓰죠. 이제 B에 address값이 없어지고 클래스에 필요한 용량이 address값이 있던곳에서 쭈욱 하고 늘어나 클래스에 필요한 공간이 생겼다고 생각하시면 됩니다. 어설푼 답이였습니다.. ㅈ.. 2012. 9. 14.
압축알고리즘 출처는 오래되서 알수 없음. [강좌] 기초적인 압축 알고리즘 하이텔 퍼옴.. _____________________________________________________________________ RLE / RLE+ / FAX / FAX+ / Lempel-Zip 방식압축기법 --------------------------------------------------------------------- 가장 쉽지만 모든것이 그렇듯 가장 압출률이 저조한 방법입니다. 화일을 16 진수로 나타낸 코드를 읽어서 다음과 같은 예가 있다면 00 00 1C 1C 1C F3 F3 F3 F3 F3 D8 11 11 11 11 11 위의 자료는 16byte의 자료입.. 2012. 9. 13.
윈도우 서버 2008 R2에서 암호 만료를 비활성화 하는법 --This oft-quoted method only works if Active Directory has not been installed (otherwise, the option will be grayed out and unavailable): ----------------------------------------------------------------------------------------------------------------- Start > Administrative Tools > Local Security Policy > Account Policies > Password Policy > set "Maximum password age" to "0" -------------------.. 2012. 9. 13.
windows 2008 IIS 7 + FTP 설치 MS WINDOWS 2008 R2 ST 서버에서 IIS 와 FTP 설치를 합니다. 1. 시작 -> 관리도구 -> 서버관리자를 실행 ---> 역할 추가 버튼을 클릭 합니다. 2. 역할 추가 마법사 창이 나타나면 다음 버튼을 클릭 합니다. 3. 역할 서비스 선택에서 웹서버 (IIS)를 선택 후 다음 버튼을 누르고 아래 옵션 항목에서 응용 프로그램 개발 부분과 하단의 FTP 부분을 체크한 후 다음 버튼을 클릭 합니다. 4. 설치 선택 확인 창이 나타나면 확인 버튼을 클릭 합니다. 5. 설치 진행률 창이 나타납니다. 6. 설치 결과 창이 나타나면 닫기 버튼을 클릭 합니다. 7. 2개의 웹사이트와 FTP를 테스트 하기 위해서 계정을 생성합니다. ( 서버 관리자 ---> 구성 -> 사용자 클릭 후 사용자 생성) 8.. 2012. 9. 13.
객체지향설계 5원칙 오늘도 별도 없는 하늘을 쳐다본다 | 또리장군 http://blog.naver.com/parkjy76/30057770855 출처 : PHPSCHOOL 1. OCP (Open closed principle) 버틀란트 메이어박사가 1998년 객체지향 소프트웨어 설계라는 책에서 Open/Closed Principle 언급함. http://en.wikipedia.org/wiki/Open/closed_principle#Meyer.27s_Open.2FClosed_Principle " 소프트웨어 구성 요소(컴포넌트, 클래스, 모듈, 함수등 )는 확장에 대해서는 개방되어야 하지만 변경에 대해서는 폐쇄되어야 한다고 언급했습니다." 먼저 이원리를 설명하기전에, 부절적한 예를 들어 보겠습니다. 예 : 휴대전화와 충전기의 관.. 2012. 9. 13.
안드로이드 기본 프로젝트 파일및 폴더 설명 파일,폴더 설명 AndroidManifest.xml 프로젝트의 버전이나 이름, 구성등에 대한 정보를 가진다. src/AndriodFirst.java 메인 소스 파일이며 여기에 코드를 작성한다. 응용 프로그램의 동작을 기술한다. 필요한 만큼 소스 파일은 얼마든지 추가할 수 있다. gen/R.java 프로젝트내의 각종 개체에 접근할 수 있는 ID를 정의한다. 툴이 자동으로 관리하므로 직접 편집해서는 안 된다. Android Library 폴더 응용 프로그램이 참조하는 안드로이드의 기본 라이브러리이다. 의례 포함되는 것이므로 신경 쓸 필요 없다. assets 폴더 리소스 폴더이다. 최초 비어있는데 이 안에 비디오 , 오디오 등의 파일을 저장한다. res/drawable 폴더 이미지 파일을 저장한다. 디폴트로 .. 2012. 9. 13.
C#에서 log4net 사용하기 http://blog.naver.com/chcjswoda/126162822 http://blog.naver.com/chcjswoda/126162822 요즘 C#어플을 만들일이 있어서, 여기에도 log4net을 사용 할려고 하는데, 역시나 이놈의 로그는 설정이 여간 귀찮은게 아니다. 여기저기 정보를 찾아봐도 정확한 설정법은 없고 예전에 쓰던 방식인지 현재 쓰고 있는 VS2008이랑은 상이한 점들이 있는 듯 싶었다. log4net 사이트를 가 봤더니 예제 사이트들은 전부 404에러~~ㅋㅋ 어쩔수 없이 다시 인터넷을 뒤지고 뒤져도 원하는 답을 속시원히 얻지 못하던 중 설정파일로 쓰고 있던 log4net.xml이 자꾸 원래 파일로 돌아오길래, log4net.dll을 서비스 참조 시킬때 있던 log4net.xml.. 2012. 9. 11.
NET & C# 에서 log4net 사용하기 삽질했다 .. 2시간 동안 ... .NET에서 사용하는 방법은 따로 있었다.. 아무리 걍 app에서 사용하는 방법으로 하니 되나 .. ㅡㅡ 바보야 ;!! ㅠㅜ 구글링을 통해서 먼가하나를 찾았다. 그래서 기록한다.. 1. Global.asax.cs에 초기 설정 등록해주기. protected void Application_Start(Object sender, EventArgs e) { ,,,,,,,,,,,,,,,,,,,,,,,,,중략.................................... log4net.Config.XmlConfigurator.Configure(); } 2. web.config 에 등록해주기. 등록해준다. 3. xxxx.aspx.cs 파일에서 로깅하.. 2012. 9. 11.
Log4Net by 베노미 2011/06/28 18:25 www.venomi.pe.kr/3191513 덧글수 : 2 웹 Page 개발 또는 다른 응용프로그램 개발 시 Log을 남기는 형태가 대부분입니다. (Exception이라던지 Error에 대한 기록 등등... 아니면 PG Transaction에 대한 기록 등등...) 이전에 단순히 Log파일을 기록하고 남기기만 했었는데... 시간이 지나면 상당한 용량으로 Log파일에 대한 고민을 하게 됩니다. 이전 회사에 Daemon Server에 대한 Log 기록하는 기능이 있었는데... 일정 시간이 지나면 새로운 로그 파일이 생성된는게 기억이 나더군요. 그래서 .Net 기반에서 그런 기능이 있을까 하고~ 찾던 와전에 log4net을 알게 되었습니다. 더구나 무척 다양한 기능에.. 2012. 9. 11.