닷넷 프레임워크 125

#087_닷넷(.NET)_ ADO.NET - 비연결 계층

안녕하세요 삽잡이입니다. 이전 시간까지 말하면서 하나 빠진 개념이 있습니다.잠시 이전 시간에 배운 ADO.NET 공급자에 대한 그림좀 보시고 오시죠. 뭘 언급 안했을까요? 바로, DataAdapter 객체입니다. 저번 시간의 기억을 잘 살려보시길 바랍니다.혹시 이해가 안가신다면 다시 한번 살펴보시죠... ..?? 그런데, DataAdapter 없이도 완벽하게 기능을 수행할 수 있지 않습니까?즉, 충분히 완벽하게 DB를 가지고 놀 수 있다 이겁니다. Connection, Command, DataReader만을 가지고도DB를 읽고 사용할 수 있는데, 사실 이건 '연결 계층'에서만 가능한 것입니다. DataAdapter 객체는 연결 계층에서 사용하는 형식이 아닙니다.기억하실지 모르겠지만,ADO.NET은 세가지..

#086_닷넷(.NET)_ ADO.NET - 연결 계층

안녕하세요 삽잡이입니다. 이번 시간에는 데이터 공급자의 핵심 타입에 대해서 알아보려고 합니다. 닷넷 플렛폼 데이터 공급자는이처럼 Connection, Command, DataReader, DataAdapter라는 핵심적인 네가지의 객체를 가지고 있습니다.즉, ADO.NET 형식에서 가장 중요한 형식입니다. Connection 객체는 '데이터의 연결'을 지을 때 Client에서 가장 먼저 호출하는 객체입니다.즉, 우리말로 연결 객체이지요. Connection 객체는 Command 객체와 연결되어있습니다.Command 객체는 명령 객체이지요.데이터 수정, 데이터를 가져오는 등의 기능을 가지고 있는 객체입니다.이 명령에는 크게 세가지가 있습니다. 1. 데이터 읽기 명령2. 데이터 읽기가 아닌 Insert, D..

#085_닷넷(.NET)_ ADO.NET - 관계형 DB & 객체형 DB

안녕하세요 삽잡이입니다. 이번 시간도 역시 ADO.NET에 들어가기 이전에선행학습으로써 DB에 대해서 더 알아보고자 합니다.이번에는 DB를 만들어낼 때 그 '규칙'에 대해서 알아보고자합니다. DB는 크게 DBMS가 무엇이던지간에두가지로 구성되게 되어있습니다.즉, 규칙을 만들어내는 방법이 두가지라는 것입니다.물론, 더 있을 수 있으나 가장 일반적인 두가지라는 것이죠. 이는 '관계형 DB'와 '객체형 DB'입니다.DB는 규칙성 있는 데이터의 집합이고,그 규칙성을 만들어낼 때에 일반적으로 사용하는 방법이 두가지라는 것입니다. 그런데, 현존하는 DBMS는 대부분 관계형 DBMS입니다.그러니까 DBMS가 관계형 DB를 통해 규칙을 만들고 DB를 관리한다 이겁니다. 관계형 DB의 핵심은 두 가지 입니다.바로, Ta..

#085_닷넷(.NET)_ ADO.NET -DB & DBMS

안녕하세요 삽잡이입니다. 이번시간에는 ADO.NET에 본격적으로 들어가기전에간단하게(?) DB에 관련된 기초적으로 알아야될 사항들에 대해서 알아보려고합니다. DB는 말 그대로 'Data Base'입니다.DB와 DBMS를 헷갈려하실 수 있는데 DB는 DB일뿐이고, DBMS는 DataBase Management System 즉, DB 관리 시스템입니다. 여기서, Data Base는 일련의 데이터의 규칙성을 가지는 데이터를 뜻합니다.데이터가 규칙성을 가지고 있다면, 파일, 네트워크, DBMS, XML, Binary, Memoery 등 어디에 있던지DB라고 부를 수 있습니다. 다시 말씀드리지만,데이터들이 규칙적으로 있는 집합이라면 DB라고 부를 수 있습니다. 그런데, 이 규칙적으로 모여있는 데이터들의 집합을 사..

#084_닷넷(.NET)_ ADO.NET - ADO.NET 개념 & Provider

안녕하세요 삽잡이입니다. 이번시간에는 ADO.NET에 대해서그리고, Provider라는 개념에 대해서 알아보려고합니다. ADO.NET은 크게 세부분으로 나눌 수 있습니다.이를 Three Face라고 부르는데,'연결 계층', '비연결 계층', 'Entity Framework'로 나뉠 수 있게 됩니다. Entity Framework는 가장 최근에 나온 최신 프레임워크이지요.DB를 다룰 때 크게 이 세가지 방법으로 다룰 수 있습니다.비연결 계층, Entity Framework는 MS 전용의 DB 다루는 방법이고,연결 계층 만이 공용적으로 DB를 다루는 방법이지요. 어떤 OS이던 똑같이 사용할 수 있는 방식과,MS 전용의 Library를 사용하는 방식이 있다 이겁니다.이 MS 전용의 라이브러리라는 의미는MS사 ..

#083_닷넷(.NET)_ ADO.NET - ADO.NET Intro

안녕하세요 삽잡이입니다! OS가 만들어지고, 그 위에 닷넷 프레임워크가 올라가는 사실은 모두 아실 것입니다.이 닷넷 프레임워크라는 놈의 핵심은 바로, CLR이지요.CLR이 런타임으로써 모든 어플리케이션이 이 위에서 놀게 됩니다. 닷넷 프레임워크라는 것은 닷넷을 이루는 '뼈대'로써,BCL, Visual Studio, Library 등을 통합적으로 일컷는 용어입니다. 그런데, CLR에서는 항상 BCL(Base Class Library)라이브러리를 로드시켜줍니다.해당 라이브러리는 간단하게 형식들의 집합입니다.모든 형식들의 집합이라는 것입니다. APP이 실행될 때 내용물을 확인하고 CLR이 BCL에서 필요한 모듈들을 로드시켜줍니다.즉, 외부 형식을 가져오기 위해 메모리 상에 로드를 시켜줘야합니다.이는 형식의 타..

#082_닷넷(.NET)_.Net Framework 기본 - 객체 직렬화

안녕하세요 삽잡이입니다. 객체의 직렬화를 살펴보도록 하겠습니다.객체의 직렬화는 '객체'를 바이트 배열로 써놨다가, 다시 바이트 배열로 복원하려고 쓰는 기능입니다. 이제부터 본격적으로 stream에 대한 이야기를 하려고 하는 것입니다. 파일, 스트림을 만든 이유는 객체에 무엇인가를 쓰기 위해서입니다.즉, 어플리케이션의 무엇인가를 쓰기 위해서라는 것이죠. 그런데, 이전 시간에 공부한 내용은 객체를 사용한 것이 아닙니다. 객체 지향에서 과연 얼만큼문자열만을... 혹은 정수만을 읽고 쓰겠습니까?객체가 주가 되는 일이 다반사지 않겠습니까? 프로그램은 사용자와 소통하는 UI영역과 이 UI의 데이터를 보관하고 보여주기 위한 데이터 모델로 나뉠 수 있습니다. 데이터는 다시 UI와 밀접한 View 모델이라는 것과,관련성..

#081_닷넷(.NET)_.Net Framework 기본 - 파일(File) & 스트림(Stream)

안녕하세요 삽잡이입니다. .NET Framework의 System.IO 네임스페이스는파일 및 메모리 기반의 입출력 서비스를 제공하는 기본 클래스 라이브러리 영역입니다. 해당 네임스페이스에는'Directory, DirectoryInfo, File, FileInfo, FileStream' 등이 있습니다. Type Class에 대해서 기억이 나십니까? Method에 대한 Info 배열, Property에 대한 Info배열 등등을 구할 수 있었습니다. 일반적으로, Info는 '인스턴스화' 될 수 있는 객체이 붙입니다. 따라서, 정리를 해보자면...Directory는 정적 메서드들을 사용하는 타입 클래스입니다.그리고, DirectoryInfo는 인스턴스로 new 연산자로 디렉터리를 사용하는 것입니다.즉, 정적 기..

#080_닷넷(.NET)_.Net Framework 기본 - Thread Pool &TPL

안녕하세요 삽잡이입니다. 쓰레드 풀은 간단하게, 쓰레드의 모임 공간입니다. 어떤 작업이 무수히 많이 들어올 때각각 작업을 모두 쓰레드 하나씩 독립적으로 수행한다고 해봅시다.들어오는 작업마다 쓰레드를 띄워주면 얼마나 비효율적이겠습니까? 무조건 쓰레드를 띄워버리면 배보다 배꼽이 더 커지게 되버리죠.왜냐하면, 쓰레드를 관리하는 리소스 뿐만 아니라, 스케쥴링 비용까지 들기 때문에 무조건 쓰레드를 띄우지 않는게 좋다 이겁니다.따라서, 쓰레드 풀이라는 것을 만들게 된 것입니다. 예를 들어,쓰레드를 3개만 만들어 두고 풀에 집어넣었다가,작업이 들어오게되면 풀에 있던 쓰레드가 처리를 하게 만드는 것입니다. 즉, 쓰레드를 3개까지만 만들어두는 것입니다.작업이 끝나게 되면 풀에 들어가고,또 작업이 오면 수행하고 이렇게 말..

#079_닷넷(.NET)_.Net Framework 기본 - Thread 생성 & 동기화

안녕하세요 삽잡이입니다. 이전 시간까지 비동기 대리자를 통해서우리가 제어할 수 없는... 쓰레드를 경험해봤습니다.그런데, 이번에는 사용자가 실제로 쓰레드를 생성해보는 시간을 가져보려고합니다. 닷넷에서 제공해주는 Threading 네임 스페이스는 멀티스레드 응용 프로그램을 직접 만들 수 있게 해주는 다양한 타입을 제공해줍니다. 몇가지 특성에 대해서 간략하게 알아보자면,Interlocked 라는 타입은 원자적인 연산을 지원해줍니다.그리고 Monitor가 있는데,해당 타입이 가장 많이 동기화를 수행할 때 사용하는 타입입니다. Threading 네임 스페이스 중에서도,Thread 클래스에서는 Sleep 메서드를 많이 사용합니다.이는 정적 메서드지요. 그리고 인스턴스 수준에서는 IsBackground 인스턴스를 ..