총 삽질들 514

#004_닷넷(.NET)_.Net Framework 기본 - 인터페이스

안녕하세요 삽잡이입니다. 이전 시간에 CTS에 대해서 알아보며 Type에 대해서 언급한적이 있습니다.이번 시간에는 CTS의 다섯개의 타입 중 왕따인... 인터페이스에 대해서 알아보고자 합니다. 인터페이스는 독립적입니다. 객체 지향에서 매우 중요하지요...interface는 명사로 '중개자', 동사로 '중개하다, 소통하다'의 뜻을 가지고 있습니다.왜 명사, 동사를 나눠서 말씀을 드렸을까요...이유는 그 자체를 뜻하기도, 동작을 뜻하기도 하기 때문입니다. 그렇다면 객체지향에서 말하는 객체지향이란 뭘까요? 예를 들어서... 학생이라는 클래스가 있다고 해봅시다.이 학생이라는 클래스에는 공대생, 미대생, 인문계생 등이 있다고 해보겠습니다.이 모든 학생들은 기본적으로 공부를 합니다...그런데 말입니다... 각 학생..

#003_닷넷(.NET)_.Net Framework 기본 - 어셈블리

안녕하세요 삽잡이입니다. 이번 시간에는 어셈블리에 대해서 알아보겠습니다. 모든 .NET 지원 컴파일러는 CIL 명령어와 메타데이터가 포함되어있는 어셈블리를 생성합니다. 이 어셈블리(.exe, .dll)은 네가지로 구분을 할 수 있습니다.대부분은 CIL 코드이고, 어셈블리 메타 데이터, 형식 메타 데이터그리고... 있어도 없어도 그만인... 선택적인 리소스가 있습니다. 어셈블리 메타 데이터의 또 다른 이름은 메니페스트입니다.어떤 곳을 가던지 메니페스트를 들으면 '전체적인 정보'를 뜻합니다.즉, 내용물에 대한 설명 요약을 말하는 것입니다.실제로 'IL DASM' 과 같은 도구를 사용해보면 manifest즉, 어셈블리 메타데이터안에 어셈블리에 관한 모든 정보가 들어가있는 것을 확인하실 수 있습니다. 실제 어셈..

#002_닷넷(.NET)_.Net Framework - 기본 & BCL & CTS & CLS

안녕하세요 삽잡이입니다. 이번 시간에는 지난 시간에 이어서기본적인 닷넷 프레임워크의 기본에 대해서 알아보도록 하겠습니다. 이 그림을 보면 모든 기능을 닷넷에서는 기본 클래스인 BCL에서 제공한다는 것을 확인할 수 있습니다.닷넷 이전에는 API를 활용해서 클래스 라이브러리를 만들었습니다.그런데 닷넷은 그런 라이브러리를 사용하는 것이 아니라 자신만의 핵심적이고 독립적인 라이블러리르 사용하는 것이지요... 또한 Runtime Library라는 CTS를 닷넷은 가지고 있습니다.이는 Type System으로써 공용으로 사용 가능한 타입 시스템이라는 의미를 가지고 있습니다.닷넷에서는 모든 언어의 라이브러리, 문법에서 사용할 수 있는 기능을 '타입'이라고 부릅니다. 타입을 논하기 이전에 우선 객체에 대해서 생각해보는..

#001_닷넷(.NET)_.Net Framework - 기본 & CLR & CIL

안녕하세요 삽잡이입니다. 이번 시간에는 기본적인 닷넷 프레임워크의 기본에 대해서 알아보도록 하겠습니다. 자... 간단하게(?) .Net에 대해서 얘기를 해보도록할까요? 닷넷이란 용어는 굉장히 추상적인 단어입니다. MS사에서 뭔가 새로운 변화를 시도한 작품이지요...닷넷은 99년대 말에 나와서 2000년대에 발표를 했죠...뭐... MS사에서 자바 및 오픈 소스 진영에 위협을 느껴서 한번 '싹다 바꿔보자!' 하면서 MS사가 지향하는 발전 방향을 바꿔보자하며 나온 것이 .NET이지요... 닷넷이 2000년대 발표가 됬는데, MS의 비전으로써 발표가 됬습니다.뭐... 추상적으로 개발과 관련된 여러 사항의 조합 및 통합을 가리켜서 '닷넷'이라고 부르는데요,닷넷에 포함되어있는 것중 하나가 바로 우리가 알아볼 '닷..

#009_MFC_MDI (Multi Document Interface)_다중 문서 인터페이스

안녕하세요 삽잡이입니다. 이번 시간에는 MDI...즉, 다중 문서 인터페이스에 대해서 알아보려고합니다. 다중 문서를 사용하게 된다면 View 객체를 다중으로 그리고 독립적으로 생성할 수 있습니다. MDI와 SDI의 핵심적인 차이점은Main Frame의 Client 영역에만 윈도우들이 만들어지는데이 윈도우들이 또 다른 Frame, View, Document와 리스소를 가지고 있는 Document Template를 가지고 있다 이겁니다. 결론적으로, Main Frame이 이제 View의 부모가 아닙니다.Main Frame 따로... 그리고 Child Frame이라고 부를 각 윈도우들이 존재한다는 것입니다.따라서 MDI에서는 CMainFrame이라는 부모의 역할과CChildFrame이라는 자식 윈도우의 역할이..

#008_MFC_MDW (Multi Document Window) _ 멀티 윈도우

안녕하세요 삽잡이입니다. 이번 시간에는 MFC에서 Multi Document Window에 대해서 알아보려고합니다. 우선 동적 Splitter Window에 대해서 알아보고자합니다.Splitter Window는 우리말로 분할창을 말합니다.이 분할창은 Main Frame이 뜨면 여러개의 View를 띄울 것입니다.즉, 하나의 Frame 윈도우에서 여러개의 View로 나누어 주는 것입니다. 이 동적 분할 윈도우는프로그램 실행 중 윈도우를 하나로 합치거나 나눌 수 있습니다... 처음 프로그램이 실행 될 때 OnCreate 메시지 핸들러 함수가 호출됩니다.이 때 클라이언트 영역에 새로운 View가 붙는 것이기 때문에,즉, View를 생성해서 다른 View를 붙이려면 'OnCreateClient' 함수가 필요합니다..

#007_MFC_객체간 이동 및 참조

안녕하세요 삽잡이입니다. 이번 시간에는 각 객체들을 참조하며 정보를 얻어가며MFC를 배워가는 시간을 가져보도록 하겠습니다. MFC에서 View, Document와 같은 객체들은 참조할 수 있는 틀.. 즉, 메소드가 있습니다.또한, APP와 Frame의 객체는 단 하나밖에 없기 때문에 어디에서든지 참조할 수 있는 기능을 제공합니다. APP의 객체를 얻기 위해서는 AfxGetmainWnd() 함수를 사용합니다. 왜 APP의 객체를 참조하려고할까요...그 이유는 APP은 MFC에서 View, Document, Frame과 같은 객체들의 부모로써다운 케스트를 통해 우리가 원하고자하는 객체를 얻어올 수 있기 때문입니다. SDI 에서는 Frame이 View와 Document를 Direct로 얻고 있는 형태입니다.따..

#006_MFC_Control, Value형 변수

안녕하세요 삽잡이입니다. Dialog를 통해 Control에 대해서 알아보려고 합니다.API를 통해서도 알아봤었습니다... Dialog는 리소스에 만들어집니다.MFC에서는 이 다이어로그를 어떻게 사용하느냐? 다이어로그는 지금까지 리소스에 만들어졌으니가장 처음으로는 리소스가 있어야합니다.따라서 리소스를 만드는 작업을 우선적으로 해야합니다. 기존에 API에서는 ID로 충분했지만, MFC에서는 해당 다이어로그를 컨트롤할 수 있는 클래스를 만들고그 객체를 가지고 놀면 됩니다... 그리고 다음으로는 클래스를 추가하는 것입니다.클래스를 추가하면 사용하고자하는 객체 즉, View 클래스에 리소스에 대한 class가 추가되는 것을 확인할 수 있습니다. 클래스까지 생성했다면, 해당 클래스의 객체를 만들어야합니다. 다이어..

#005_MFC_Document Template 설명

안녕하세요 삽잡이입니다. 이번시간에는 Document Template에 대해서 알아보려고합니다. InitInstance() 메서드는 APP 객체에서 중요한 메서드 중 하나입니다.해당 메서드에서도 모두 중요하겠지만,정말 중요한 부분을 소개하고자 합니다. 이 놈입니다...CSingleDocTemplate... 이 객체는 아래의 네가지 요소를 관리하는 역할을 합니다.이를 'Document Template'이라고 부르지요... Document Template이 하는 역할은소스를 하나의 기준이 되도록 '단위'로써 관리하는 역할을 합니다.만약 MDI 형식이라면 Multi Document Template 형식으로써Document가 여러개 사용이 될 것입니다. 데이터의 종류가 다르다는 것은화면에 그려지는 내용도 달라지..

#004_MFC_동적 배열 CArray 설명

안녕하세요 삽잡이입니다. 이번 시간에는 데이터를 보관하고자 MFC에서 사용할 수 있는동적배열인 CArray에 대해서 알아보려고 합니다. CArray 클래스는 사실, Template 입니다. 즉, Template Class 라고 부르는 것입니다. 클래스의 템플릿이지요...템플릿의 의미를 바라봤을 때 이는 '클래스를 만들어내는 틀'을 말합니다. Carray를 살펴보도록 하겠습니다. 다시 말하지만, 이놈은 템플릿입니다.두 가지의 타입을 받습니다. 이 두 가지 타입을 받는 경우는 크게 두 가지로 나뉩니다. (이런걸 언어유희... 푸하하) 우선 '기본 수치 형식'이라고 하며 int, char 와 같은 기본 자료형을 타입으로 쓸 경우 입니다. 이 때 만약, CArray에 int형 자료를 보관한다고 할 경우에 대해서..