본문 바로가기

Programming/C#22

C# 18 : 네트워크 프로그래밍1 네트워크 네트워크는 그물에서 파생된 단어로 어떤 물건이나 사람 등의 상호 연결되어 있는 체계를 말한다. 보통 우리가 이야기하는 네트워크는 컴퓨터들이 상호 연결되어 있는 "컴퓨터 통신 네트워크"입니다. TCP/IP 스택 컴퓨터끼리 네트워크에서 데이터를 주고받기 위해서는 그 네트워크에서 통용되는 프로토콜을 따라야한다. 프로토콜은 규약, 규칙이라는 뜻의 낱말로, 여기에서는 컴퓨터들이 네트워크를 통해 데이터를 주고받기 위한 "통신 규약"을 말한다. 인터넷은 분명히 전 세계에서 가장 거대한 네트워크이긴 하지만, 유일한 네트워크는 아니다. 이 말은 즉, 인터넷 외에도 다양한 통신 네트워크가 존재한다는 뜻이다. TCP/IP 사실상 표준 프로토콜, 인터넷에서 데이터를 주고받는 데 필요한 일련의 프로토콜 모음이다. TC.. 2020. 6. 17.
c# 17 : Thread(스레드) 프로세스와 스레드 ( Process & Thread ) 프로세스 실행 파일이 실행되어 메모리에 적제된 인스턴스이다. 가령 word.exe가 실행 파일이라면, 이 실행 파일을 실행한 것이 프로세스이다. 프로세스는 반드시 하나 이상의 스레드(Thread)로 구성됩니다. 스레드 운영체제가 CPU 시간을 할당하는 기본 단위인데, 프로세스가 밧줄이라면 스레드는 밧줄을 이루는 실이라고 할 수 있습니다 장점 사용자 대화형 프로그램에서 멀티 스레드를 이용하면 응답성을 높일 수 있다는 점을 꼽을 수 있다. 멀티 프로세스 방식에 비해 멀티 스레드 방식이 자원 공유가 쉽다는 것 멀티 프로세스는 GUI가 없는 웹 서버같은 서버용 애플리케이션에서 많이 취급하는 구조이다. 프로세스끼리 데이터를 교환하려면 소켓이나 공유 메모리 같.. 2020. 6. 17.
C# 16 : File(파일) 파일 다루기 파일 정보와 디렉토리 정보 다루기 파일(File)은 컴퓨터 저장 매체에 기록되는 데이터의 묶음이다. 디렉토리(Diretory)는 파일이 위치하는 주소로, 파일(서류)을 담는다는 의미에서 폴더(Folder)라고 부르기도 한다. .NET 프레임워크에서는 파일과 디렉토리 정보를 손쉽게 다룰 수 있도록 System.IO 네임스페이스 아래에 다음과 같은 클래스들을 제공한다. File : 파일의 생성, 복사, 삭제, 이동, 조회를 처리하는 정적메소드를 제공 FileInfo : File 클래스와 하는 일은 동일하지만 정적 메소드 대신 인스턴스 메소드를 제공 Directory : 디렉토리의 생성, 삭제, 이동, 조회를 처리하는 정적 메소드를 제공 / static 메소드 -> 일반 함수에 가까움 Direct.. 2020. 6. 17.
c# 15 : 리플랙션 리플렉션 리플랙션은 객체를 X-ray 사진처럼 객체의 형식 정보를 들여다보는 기능입니다. 이 기능을 이용하면 우리는 프로그램 실행 중에 객체의 형식 이름부터 프로퍼티 목록, 메소드 목록, 필드, 이벤트 목록까지 모두 열어볼 수 있습니다. 형식의 이름만 있다면 동적으로 인스턴스를 만들 수도 있고, 그 인스턴스의 메소드를 호출할 수도 있습니다. 심지어 새로운 데이터 형식을 동적으로 만들 수 있습니다. 이렇듯 런타임에 형식 정보를 다룰 수 있게하는 리플렉션은 programmer에게 한층 더 강력한 표현력을 선사합니다. Object.GetType() 메소드와 Type 클래스 Object는 모든 데이터 형식의 조상입니다. 이 말은 즉 모든 데이터 형식은 Object 형식이 갖고 있는 다음의 메소드를 물려받아 갖고.. 2020. 6. 15.
C# 14 : 람다식 람다식 람다 계산법은 크게 함수의 정의와 변수, 그리고 함수의 적용으로 이루어져 있다 아 계산법에서는 모든 것이 함수로 이어져 있습니다. 0,1,2 ....와 같은 숫자도 함수로 표현합니다. 따라서 람다 계싼법에서는 어떤 값을 변수에 대입하고 싶으면 함수를 변수에 대입하며, 이것을 함수의 적용이라 합니다. 람다식으로 만드는 익명 메소드는 무명 함수라는 이름으로도 부릅니다. 메소드는 입력과 출력을 가지고 있다. 람다식도 마찬가지로 둘 다 가지고 있습니다. 매개_변수_목록 => 식 ' => ' 이 연산자는 "입력" 연산자입니다. 이 연산자가 하는 역할은 그저 매개 변수를 전달하는 것 뿐입니다. 람다식에서는 =>를 중심으로 왼편에는 매개 변수가, 오른 편에는 식이 위치합니다. C# 컴파일러는 코드를 한층 더 .. 2020. 6. 15.
C#_13 : WinForm으로 만드는 사용자 인터페이스1 WinForm 폼 디자이너에게 툴을 제공해서 프로그래머가 그림 그리듯 UI를 만들 수 있게 합니다. 도구 상자에서 버튼이나 콤보박스 등의 컨트롤을 끌어다 윈도우 위에 올려놓으면 컴파일 후의 프로그램과 똑같은 UI가 만들어진다. 이른바 WYSIWYG ( What You See Is What You Get ) 방식의 개발을 지원합니다. 컨트롤을 윈도우 위에 배치할 때마다 폼 디자이너는 우리에게 프로그램의 UI를 표시하는 한편, 뒤로는 관련 C#코드를 자동으로 만들어줍니다. 프로퍼티를 변경할 때, 이벤트 처리기를 추가할 때도 자동으로 코드를 수정합니다. C# 코드로 WINFORM 윈도우 만들기 윈도우를 만드는 절차 윈도우 클래스를 정의합니다. ( 윈도우에 대한 정보를 가지고 있는 구조체 ) 정의된 윈도우 클래.. 2020. 6. 12.
c#_12 : LINQ , JOIN LINQ LINQ ( Language INtergrated Query ) 는 뭔가에 대해 물어본다는 뜻입니다. 데이터 질의라고 하면 데이터에 대해 물어본다는 말이 됩니다. 그렇다면 그 질문을 받은 누군가는 데이터에 대한 답변을 준다. From : 어떤 데이터 집합에서 찾을 것인가? Where : 어떤 값의 데이터를 찾을 것인가? Select : 어떤 항목을 추출할 것인가? FROM : 모든 LINQ 쿼리식은 반드시 From 절로 시작합니다. 쿼리식의 대상이 될 데이터 원본과 데이터 원본 안에 들어 있 는 각 요소 데이터를 나타내는 범위 변수를 from절에서 지정해줘야합니다. 이때 from의 데이터 원본은 아무 형식 이나, 사용할 수 없고 IEnumerable 인터페이스를 상속하는 형식이여 합니다. 범위 .. 2020. 6. 12.
c#_11 : 대리자와 이벤트 대리자와 이벤트 대리자 출장을 나온 김대리는 사장님께 급히 보고를 드릴 일이 있어 회사에 전화를 걸었습니다. 그런데 전화를 받은 사람은 사장님이 아닌 비서였습니다. 김대리는 비서에게 사장님이 돌아오면 전화를 부탁드린다고 메모를 남겼습니다. 잠시후 사장님은 비서의 메모를 받고 김대리에게 전화를 걸어 통화하였습니다. 위의 예에서 김대리가 비서에게 했던 부탁 ( 메모 ) 를 '콜백(CallBack)'이라고 한다. 대신 어떤 일을 해줄 코드를 두고, 이 코드가 실행할 세부코드는 컴파일 시점이 아닌 실행 시점에 부여하는 식입니다. C#에서 대리자는 바로 이 콜백을 구현하기 위해 사용됩니다. 누군가 대신해서 일해주는 것을 전문으로 하는 사람을 의미합니다. 객체의 주소를 가리키는 "참조"를 알 것입니다. 대리자는 메.. 2020. 6. 12.
c#_10 : 인덱서와 예외처리 인덱서 ( Indexer ) 인덱스를 이용해서 객체 내의 데이터에 접근하게 해주는 프로퍼티입니다. 객체를 마치 배열처럼 사용할 수 있게 해준다. - 인덱서 선언 방법 class 클래스명 { 한정자 인덱서 형식 this[형식 index] { get { //인덱스를 이용한 내부데이터 반환 } set { //인덱스를 이용하여 내부 데이터 저장 } } } 위 인덱서 선언 문법을 보면 알 수 있듯이, 인덱서는 프로퍼티처럼 식별자를 따로 가지지 않는다. 프로퍼티가 이름을 통해 객체 내의 데이터에 접근하게 해준다면, 인덱서는 인덱스를 통해 객체 내의 데이터에 접근하게 한다. LIST LIST 클래스는 비일반화 클래스인 ArrayList와 같은 기능을 하며, 사용 방법 역시 동일하다. - LIST 클래스는 인스턴스를 .. 2020. 6. 11.
c#_9 : Oracle과 C# 연동 방법과 선언 연동 후 확인하는 방법 - C#을 통해 오라클 접속 후 switch, Case 문을 이용하여 테이블 생성, 데이터 삽입, 테이블 조회 과정 2020. 6. 10.
반응형