일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 산책하기 좋은 곳
- 캡슐화
- 졸업 작품 소재
- 알고리즘
- 네트워크 프로그래밍
- 프로젝트
- 독립기념관
- 유튜브 동영상 강의
- 안드로이드 앱 개발
- 소스 코드
- 추천
- 무료 동영상 강의
- 파이썬
- 실습
- 강의
- c언어
- 소켓 통신
- 언제나휴일
- 클래스 다이어그램
- 표준 입출력
- C++
- 실습으로 다지는 c#
- 동영상
- 표준 라이브러리 함수
- 언제나 휴일
- 원격 제어 프로그램
- 동영상 강의
- c#
- 충남 천안
- Windows Forms
- Today
- Total
목록C# (35)
프로그래밍 언어 및 기술 [언제나휴일]
CSV 파일 입출력 – StreamReader 클래스 및 StreamWriter 클래스 사용안녕하세요. 언제나 휴일에 언휴예요.이번 강의에서는 데이터 분석에서 많이 사용하는 “CSV” 포멧의 파일 입출력을 알아볼게요.CSV 파일은 데이터를 콤마를 기준으로 열거합니다.이를 엑셀 등의 프로그램으로 보면 테이블 형태로 확인할 수가 있죠.여러분들이 CSV 파일 포멧으로 데이터를 기록할 때 주의할 점은 데이터 내용에 콤마가 있다면 다른 문자로 변경한 후에 저장하세요. 만약 이를 유지하길 원한다면 다른 포멧의 파일 입출력을 선택하세요.실습은 동영상 강의와 소스 코드를 참고하세요.이번 실습에서는 StreamReader 클래스와 StreamWtirer 클래스를 이용하여 입출력합니다.Book.csnamespace Str..
런타임에 라이브러리 로딩하여 사용하기 – .NET 리플렉션안녕하세요. 언제나 휴일에 언휴예요.1. 런타임에 라이브러리 로딩? 리플렉션! 이번 실습은 프로그램이 동작하는 런타임에 라이브러리를 로딩하여 사용하는 것을 해 볼 거예요..NET에서는 리플렉션이라는 기술을 제공하고 있으며 이를 이용하여 런타임에 라이브러리를 로딩하여 사용합니다.런타임에 라이브러리를 로딩하여 사용한다는 것은 무슨 의미일까요?예를 들어 미디어 플레이어 응용과 코덱 라이브러리는 배포자가 다를 수 있습니다.미디어 플레이어 응용에서 미디어를 선택하여 재생 버튼을 누르면 미디어의 압축 형태에 맞는 코덱 라이브러리를 로딩하여 재생합니다.만약 코덱 라이브러리가 없으면 코덱이 없다고 메시지 창을 띄워줍니다.이처럼 동작하려면 미디어 플레이어 응용은 ..
[실습으로 다지는 C#] 학생 키우기 – 학생 구현 및 제어 안녕하세요. 언제나 휴일, 언휴예요.이번 실습할 시나리오는 학생 개체 1명을 생성한 후에 메뉴를 통해 제어하는 프로그램입니다.다음은 실습 시나리오입니다.초기화(Init) 학생 개체 생성(1명)사용자와 상호작용(Run) F1: 공부하기 F2: 강의받기 F3: 잠자기 F4: 휴식하기 F5: 음료마시기 F6: 노래하기 F7: 학생 상태 출력 다음은 정의할 학생 클래스 다이어그램입니다.학생 형식의 멤버 필드입니다.pn: 주민번호(순차부여)name: 이름(생성 시 전달)iq: 아이큐(0~200, 초기 100)hp: 체력(0~200, 초기 100)stress: 스트레스(0~100, 초기 0)scnt: 연속으로 공..
이번 강의에서는 콘솔 응용에서 메뉴를 통해 프로그램의 흐름을 제어하는 실습을 해 볼 거예요.콘솔 응용에서 사용자와 상호 작용을 담당하는 형식을 Application이라고 정의할게요.class Application{}Application 형식 개체는 하나만 존재하는 것이 맞겠죠. 단일체 패턴을 적용하기로 할게요. 생성자의 접근 지정을 디폴트 값(private)으로 정하여 클래스 외부에서 개체 생성을 하지 못하게 막습니다. 그리고 정적 멤버로 클래스 외부에서 정적 개체를 참조할 수 있게 가져오기 속성을 제공합니다. 단일체는 정적 생성자에서 만드는 것을 추천합니다. 정적 생성자는 해당 형식을 사용하기 전에 수행하고 단 한 번만 수행하는 것을 보장하기 때문에 단일체를 생성하는 위치로 적당합니다. class..
이번 강의는 콘솔 글자 색을 바꾸는 실습입니다. 별다른 알고리즘은 없고 필요한 몇 개의 기술을 사용할 거예요. 기술 사용 노하우를 들여다 보고 따라해 보는 것이라 크게 고민을 하실 필요는 없어요. 콘솔의 글자 색을 바꾸기 위해 Windows API 함수를 사용할 수 있어요.- 콘솔의 글자 색을 바꾸는 함수WINBASEAPI BOOL WINAPI SetConsoleTextAttribute(_In_ HANDLE hConsoleOutput,_In_ WORD wAttributes); - 표준 핸들을 얻어오는 함수 WINBASEAPI HANDLE WINAPI GetStdHandle(_In_ DWORD nStdHandle); - 표준 출력 핸들 상수 #define STD_OUTPUT_HANDL..
[실습으로 다지는 C#]택배 요금 계산 시뮬레이션 이번 강의에서는 택배 요금을 계산하는 시뮬레이션을 만들어 봅시다. City, Parcel, Application 세 개의 클래스로 구성하고 있습니다. City 클래스는 도시 이름과 (기준 도시에서) 상대적 거리를 멤버로 갖습니다. 그리고 다른 도시와의 거리를 계산하는 메서드를 제공합니다. Parcel 클래스는 기준 요금과 무게를 멤버로 갖고 요금을 계산하는 메서드를 제공합니다. Application은 택배 시스템 시뮬레이션으로 하나의 개체만 허용하는 단일체 패턴을 적용할게요. 단일체로 표현하기 위해 정적 멤버로 단일체를 참조하는 멤버 필드를 추가합니다. 그리고 정적 생성자에서 단일체를 생성합니다. 정적 생성자는 해당 형식을 사용하기 전에 동작하는 ..
[실습으로 다지는 C#] 실현 관계(Realization) 실습 이번 강의는 실현(Realization) 관계 실습입니다. 실현 관계는 기능을 약속한 형식과 이를 구체적으로 구현한 형식 사이의 관계입니다. 결국 인터페이스와 인터페이스에 약속한 기능을 구현한 형식 사이의 관계입니다.기능을 약속한 형식과 약속한 기능을 구체적으로 구현한 형식 사이의 관계 이러한 실현 관계로 표현하였을 때 가장 큰 장점은 같은 방법으로 사용할 수 있다는 것입니다. 다음은 이번 실습에서 표현할 클래스 다이어그램입니다. 클래스 다이어그램에서 IStudy 인터페이스와 Student는 실현 관계입니다. 클래스 다이어그램에서 IStudy 인터페이스와 Gorillar도 실현 관계입니다. 클래스 다이어그램을 보면서 코드로 표현해 보세요. ..
의존관계(Dependency) 실습이번 강의는 의존(Dependency) 관계 실습(Part 1 – 설계까지)입니다. *아직 대리자(delegate)를 학습하기 전이면 간략히 보신 후에 대리자를 학습 후에 보시기 바랍니다.* 의존 관계는 원본 개체의 상태가 바뀌면 의존 개체의 상태도 바뀌는 형식 사이의 관계입니다. 그리고 팩토리 형식과 상품 형식 사이의 관계도 의존 관계로 표현합니다. 즉, 특정 형식 개체 생성을 책임지는 형식이 팩토리이고 팩토리에서 만들어지는 형식 개체가 상품 개체입니다. 이번 실습에서는 Item 형식과 이를 화면에 노출하는 ItemControl 형식간의 관계를 표현할 것입니다. Item 형식 개체의 속성이 바뀌면 ItemControl 개체에서도 화면 내용을 변경해야겠죠. 이 때 Ite..
[C#] 연관 관계(Association) 실습 – 의사, 약사 이번 강의는 연관 관계(Association) 실습입니다. 연관 관계는 두 형식 개체가 협업하는 관계입니다. 현실 세계에서는 수평적인 관계가 이상적이라 생각할 수 있어요. 하지만 프로그램 세계는 명확한 목적을 수행하는 목적 집단입니다. 목적 집단에서는 명확한 수직 관계로 조직화합니다. 프로그램에 연관 관계가 있을 때 협업하는 메서드를 수행할 때 매우 위험할 수 있어요. 서로 상대의 협업 메서드를 호출하면 실제 메서드는 끝나지 않고 스택 메모리 Overflow가 발생할 수 있는 것입니다. 이번 실습에서는 이러한 위험성을 확인해 보기로 해요. 실습할 소재는 의사와 약사 사이의 협업입니다. 의사는 “약사와 함께 일하다.”, “치료하다.” 기능을..
[실습으로 다지는 C#] 직접 연관 관계(Direct Association) 실습 – 계산기, 사각형 이번 강의는 직접 연관 관계(Direct Association) 실습입니다. 직접 연관 관계는 명령을 내리는 형식과 명령을 수행하는 형식 사이의 관계로 가장 흔한 관계입니다. 이번 실습은 계산기와 사각형을 소재로 실습해 봅시다. 계산기에서는 사각형 개체를 입력받아 면적을 계산하는 기능을 제공합니다. 사각형은 너비와 높이를 멤버 필드로 갖고 이들 값을 가져오기 속성을 제공합니다. 이를 클래스 다이이어그램으로 표시하면 계산기에서 사각형으로 실선 화살표로 표현할 수 있어요.namespace 직접_연관_관계_실습{ class Rectangle { public int Height ..
[실습으로 다지는 C#] 구성(Composition) 관계 실습 – 사람, 눈 이번 강의는 구성(Composition) 관계 실습입니다. 소재는 사람과 눈입니다. 구성 관계는 소유 개체를 생성할 때 내부 개체가 같이 만들어지는 특징을 갖고 있습니다. 클래스 다이어그램을 바탕으로 코드를 구현해 보세요. 주의할 점은 Man 생성자에서 Eye 개체를 생성해야 한다는 것입니다. 별다른 알고리즘을 갖고 있는 것이 아니어서 코드 설명은 생략할게요.using System;namespace 구성_관계_실습{ class Eye { double sight; bool opened; public bool Opened { get ..
[실습으로 다지는 C#] 집합(Aggregation) 관계 실습 – 쇼핑 센터, 상품 이번 강의는 집합(Aggregation) 관계를 코드로 표현하는 실습입니다. 실습 소재는 쇼핑 센터와 상품입니다. 집합 관계는 이처럼 컬렉션과 원소 사이의 관계입니다. 상품은 상품 이름, 가격, 회사 이름, 일련 번호를 갖습니다. 일련 번호는 순차적으로 자동 부여하며 상품은 쇼핑 센터에 입고할 수 있게 표현해 봅시다. 먼저 클래스 다이어그램을 작성해 보세요. 이를 코드로 작성합시다. namespace 집합_관계{ public class Product { public string Name { get; private set; } ..
[실습으로 다지는 C#] 일반화 관계(Generalization) 실습 – 포유류, 호랑이, 사자 이번 강의에서는 일반화 관계(Generalization)를 코드로 표현하는 실습입니다. 일반화 관계는 “A는 B이다.”로 표현할 수 있는 형식 사이의 관계라고 했어요. 이번 실습에서는 “호랑이는 포유류이다.”, “사자는 포유류이다.”를 표현할 거예요. 포유류는 공통적으로 새끼에게 젖을 물리는 행위를 합니다. 그리고 울기도 합니다. 물론, 호랑이와 사자는 울음 소리가 다르죠. 이러한 내용을 실습해 볼 거예요. 먼저 클래스 다이어그램을 작성하면 다음처럼 작성할 수 있어요.여러분께서 실습할 내용과 클래스 다이어그램을 토대로 구현을 해 보세요. 그리고 비교해 보시기 바랍니다.기반 형식 포유류(Mammal)에는..
[실습으로 다지는 C#] 클래스 간의 관계 이번 강의에서는 클래스 간의 관계를 알아볼 거예요. 클래스 다이어그램으로 관계를 나타낼 때 7가지의 관계가 있어요.일반화 관계(Generalization)집합 관계(Aggregation)구성 관계(Composition)직접 연관 관계(Direct Associtaion)연관 관계 (Association)의존 관계 (Dependency)실현 관계 (Realization)일반화 관계(Generalization)는 기반 형식과 파생 형식 사이의 관계입니다. “피아니스트는 음악가이다.” 처럼 “이다.”로 표현할 수 있는 형식 사이의 관계입니다. 음악가 종류에는 피아니스트, 드러머, 기타리스트 등이 있죠. 이 때 음악가를 기반 형식이라고 말하고 피아니스트를 파생 형식이라..
[실습으로 다지는 C#] 캡슐화 실습 – 학생 클래스 정의하기이번 강의에서는 캡슐화 실습을 해 봅시다. 캡슐화는 여러 개의 멤버를 하나의 형식으로 묶는 과정을 말합니다. 이번 실습에서는 학생 클래스를 정의하는 실습을 해 보기로 할게요. 실습할 학생 클래스의 멤버는 다음과 같아요.학생 클래스 멤버 필드 아이큐 매력 번호 - 읽기 전용, 순차 부여 이름 가장 최근에 부여한 번호 - 정적 멤버 멤버 메서드 생성자(이름) 공부하다(횟수) 춤추다(횟수) 노래하다(횟수) ToString 재정의 멤버 속성 get은 public, set privateOOP 프로그래..
[실습으로 다지는 C#] 랜덤 값 맞추기 이번 강의에서는 컴퓨터가 생각한 랜덤 값(0~99)을 사용자가 10번 시도 내에 맞추는 프로그램을 만들어 봅시다. 먼저 문제를 해결하기 위한 논리를 생각하고 의사 코드(pseudo code)로 표현해 보세요. 여러분께서 먼저 작성한 후에 비교해 보세요.rnum := 랜덤 값반복(tcnt:1->10) guess := 추측값 입력 조건(guess is equals rnum) 반복문 탈출 조건(guess>rnum) 더 작다고 알려준다. 아니면 더 크다고 알려준다.조건(시도 횟수가 10보다 작거나 같..
[실습으로 다지는 C#] 암스트롱의 수 이번 실습에서는 암스트롱의 수를 판별하는 메서드를 만들어 봅시다. 암스트롱의 수는 ABC = AXAXA + BXBXB + CXCXC인 정수를 말합니다. 예를 들어 153 = 1 = 125 + 27 입니다. 이러한 수를 암스트롱의 수라고 말합니다. 이러한 암스트롱의 수를 판별하는 메서드를 만들기 전에 먼저 메서드 이름과 입력 매개 변수와 리턴 형식을 결정합니다. 언제나 알고리즘은 입력 인자와 수행 결과가 어떠한 것이 올 수 있는지를 판단할 수 있어야 합니다. 메서드 이름은 IsAmstrong으로 정할게요. 그리고 입력 인자는 판별할 정수가 필요하므로 정수형 변수 num으로 결정하고 반환은 판별 결과이므로 bool로 결정합시다.bool IsAmstrong(int num..
[실습으로 다지는 C#] 두 개의 정수 사이의 합계 구하기 이번 강의에서는 두 개의 정수를 입력 받은 후에 두 개의 정수 사이의 합계를 구하는 실습을 해 봅시다. 먼저 어떻게 해야 문제를 해결할 수 있을지 생각한 후에 의사 코드(pseudo code) 형태로 작성해 보세요. 작성한 후에 비교해 보시기 바랍니다.input := 정수를 입력 받는다. 조건(정수로 변환(input,out num1)이 실패) 오류를 출력 후 알고리즘 종료 input := 정수를 입력 받는다. 조건(정수로 변환(input,out num2)이 실패) 오류를 출력 후 알고리즘 종료 조건(num1두 수를 교환(ref num1, ref num2) temp:= num1 num1:= num2 num2:= ..
[실습으로 다지는 C#] 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별이번 강의에서는 두 개의 정수를 입력받아 작은 수가 큰 수의 약수인지 판별하는 실습을 할 거예요. 이를 위해 먼저 어떠한 알고리즘으로 수행해야 하는지 고민해 보세요. 그리고 난 후에 의사 코드(pseudo code)를 작성해 봅시다. 여러분께서 먼저 작성하고 난 후에 비교해 보세요. input := 정수를 입력 받는다.조건(정수로 변환(input,out num1)이 실패) 오류를 출력 후 알고리즘 종료input := 정수를 입력 받는다.조건(정수로 변환(input,out num2)이 실패) 오류를 출력 후 알고리즘 종료큰 수를 num1에 작은 수를 num2로 설정조건(num1을 num2로 나누었을 때 몫이 0..
[실습으로 다지는 C#] 두 개의 정수를 입력받아 큰 수를 출력 이번 강의부터 제어문에 관한 실습을 진행할 거예요. 제어문 중에서도 이번 실습에서는 조건문 if else에 관한 실습입니다. 그리고 첫 번째 주제는 두 개의 정수를 입력받아 큰 수를 출력하는 실습입니다. 프로그래밍을 할 때 해야 할 작업을 바로 코드로 작성하는 것은 초반에 조급함을 달래줄 수는 있을 거예요. 하지만 실제 작업을 완료하려면 많은 시행 착오로 비용이 많이 들어갈 수 있어요. 가급적이면 해야 할 작업을 의사코드(psuedo code)나 다이어그램 등을 이용하여 논리를 전개해 본 후에 타당하다면 코드로 옮기는 습관을 가져보세요. 이와 같이 작업하면 초반에 작업이 더딘 느낌이 들 거예요. 하지만 실제 작업을 완료하기 위해 들어가는..
[실습으로 다지는 C#] 정수와 소수점 이하 자릿수 결정하기이번 강의에서는 숫자를 출력할 때 정수와 소수점 이하 자릿수를 지정하는 방법을 알아볼거예요. 다음은 자릿수를 지정하는 표현과 예를 간략하게 나타낸 것입니다.다음은 이번 실습에 사용할 변수 선언입니다.double dv = 1234.123456789;int iv = 123;포멧 문자열에 0의 갯수는 정수 자릿수를 의미하며 빈 자리는 0을 출력합니다.//0의 갯수 = 정수 자릿수(빈 자리는 0 출력) Console.WriteLine("{0:000000}", iv); Console.WriteLine("{0:000000}", dv);실행 결과000123001234“D” 형식 지정자 뒤에 정수 표현도 정수 자릿수를 의..
[실습으로 다지는 C#] 숫자 출력 – 형식 지정자 이용하기 이번 실습에서는 형식 지정자를 이용하여 숫자를 출력하는 방법을 알아보기로 할게요. 이미 이전 강의에서는 출력할 때 문자열 출력 포멧을 알아보았죠.{index[,alignment][:formatString]}{인덱스[,배치][:포멧문자열]} 포멧 문자열에는 출력할 내용을 어떠한 형식으로 출력할 것이지 나타내는 표현도 나타낼 수 있습니다. 이를 형식 지정자라 불러요.이번 실습에서는 형식 지정자를 이용하여 숫자를 표현하는 방법을 다룰거예요. 다음은 숫자를 표현할 때 사용하는 형식 지정자와 간략한 예를 나타낸 것입니다.먼저 실습에 사용할 변수를 선언하세요.int iv = 12345;double dv = 12345.6789;double dv2 = 0.2..
[실습으로 다지는 C#] 문자열 출력 포멧프로그래밍 언어를 배울 때 출력문은 언제나 제일 먼저 만납니다Console.WriteLine("Hello, World");이번 실습에서는 문자열 출력 포멧에 관한 사항입니다.문자열 출력 포멧은 Console.WriteLine 메서드는 string.Format 메서드에서 같은 방식으로 표현할 수 있습니다. 이는 둘 다 문자열을 첫 번째 인자로 받기 때문입니다.using System;namespace Demo{ class Program { static void Main(string[] args) { string str = string.Format("Hello, World"); Console.W..
3. Console 입출력 개요 프로그래밍 언어를 배울 때 출력문은 제일 먼저 만나죠. 이 책에서도 첫 번째 프로그램인 "Hello, World"에서 Console.WriteLine("Hello, World!"); 를 사용했어요. Console.WriteLine("Hello, World!"); 이번 장에서는 Console 클래스를 이용하여 출력하는 방법과 일력받는 부분에 관하여 알아볼게요. 3.1 서식 지정 문자열 Console.WriteLine 메서드에 다양한 인자를 원하는 형태로 출력하려면 첫 번째 입력 인자로 서식 지정 문자열을 전달해야 합니다. 수나 날짜, 열거형 등을 원하는 형태로 출력할 때 효과적이죠. 서식 지정 문자열은 인덱스, 배치, 포멧 문자열로 구성합니다. {index [,alignme..
2.4 다양한 정수 형식 C#은 다양한 정수 형식을 제공합니다. 1바이트인 sbyte, byte와 2바이트인 short, ushort, 4바이트인 int, uint, 8바이트인 long, ulong을 제공합니다. 정수 형식에는 정적 멤버로 MinValue와 MaxValue 속성을 제공합니다. 이를 통해 표현 범위를 알아봅시다. using System; namespace _03.정수_형식 { internal class Program { static void Main(string[] args) { Console.WriteLine("sbyte:{0} ~ {1}", sbyte.MinValue, sbyte.MaxValue); Console.WriteLine("byte:{0} ~ {1}", byte.MinValue..
다루는 내용 2.1 메모리 크기 2.2 논리 형식 bool 2.3 문자 형식 char 2. 기본 형식 C#에서는 관리할 데이터를 표현하기 위해 형식과 변수를 제공합니다. 형식은 표현할 데이터 종류를 약속한 것입니다. 이러한 형식은 변수 선언이나 개체 생성을 통해 구체화합니다. 변수는 구체화 한 데이터에 접근하기 위해 사용하는 것입니다. C#에서 형식은 이미 제공하는 기본 형식과 개발자가 정의해서 사용하는 사용자 정의 형식이 있습니다. 다음은 System namespace에 정의한 기본 형식입니다. C# 형식에는 기본 형식과 사용자 형식이 있다고 하였습니다. 이 중에 사용자 형식에는 클래스, 구조체와 열거형이 있어요. 이들에 대해서는 뒤에서 다시 자세하게 다룰게요. 형식은 분류 방법에 따라 값 형식, 참조..
1. C# 소개 안녕하세요. 언제나 휴일입니다. 컴퓨터 혹은 스마트 기기 등에서 동작하는 프로그램을 만들 때 사용하는 언어는 매우 다양합니다. 그 중에서 .NET Framework에서 동작하는 프로그램을 만들 때 가장 추천하는 언어는 C#입니다. .NET Framework는 마이크로소프트 사에서 개발한 윈도우즈 프로그램 개발 및 실행 환경입니다. 개인용 컴퓨터 뿐만 아니라 다양한 스마트 기기에 설치하여 사용할 수 있습니다. 당연히 C# 언어를 이용하면 개인용 컴퓨터를 비롯하여 다양한 기기에서 동작 가능한 프로그램을 개발할 수 있습니다. (물론 우리나라에서 .NET Framework는 거의 Windows O/S를 탑재한 컴퓨터 환경입니다.) .NET Froawork 에는 공통으로 제공하는 라이브러리를 포함..
1. 공용 라이브러리 제작 1.1 유튜브 동영상 강의 1.2 구현 및 소스 코드 앞에서 P2P 메신저의 숏 메시지와 파일 송수신 부분을 구현했어요. 그리고 .NET 리모팅 서비스 제작 방법도 실습했었죠. 이번에는 P2P 메신저의 인증 서비스 부분을 구현해 볼 거예요. 현재 구현은 P2P에서 사용자가 상대 IP 주소와 포트 정보를 설정하고 있어요. 이 부분을 인증 서비스를 구현하여 상대 ID만 선택하여 메시지와 파일을 전송할 수 있게 할 거예요. 이를 위해 먼저 인증 서비스를 위한 공용 라이브러리를 제작합시다. 프로젝트는 클래스 라이브러리(.NET Framework)로 제작합니다. using System; using System.Collections.Generic; using System.Data; usi..
1. 유튜브 동영상 강의 2. .NET 리모팅이란? .NET 리모팅 기술은 서버 측에 있는 개체를 클라이언트 측에서 마치 자신에게 있는 개체를 사용하는 것처럼 사용할 수 있게 서비스를 하는 기술입니다. .NET 리모팅 서비스를 위해서는 서비스를 제공하는 서버와 서비스를 제공받는 클라이언트가 필요하며 서버 측에서 클라이언트에 제공하는 개체를 정의한 클래스 라이브러리가 필요합니다. 서버 측에서 클라이언트에 제공하는 개체는 MashalByReference에서 파생한 개체로 원격 개체라고 말합니다. 서버 측에서는 채널을 등록하여 원격 개체를 사용할 수 있게 등록합니다. 클라이언트 측에서는 서버 측 채널에 접근하여 원격 개체를 참조하여 사용하는데 클라이언트 측에서 원격 개체를 참조하여 사용할 수 있는 개체를 Pr..
1. 유튜브 동영상 강의 안녕하세요. 언제나 휴일에 언휴예요. 이번에는 P2P 메신저의 파일 송수신 기능을 구현할 거예요. 이미 P2P 메신저 – 숏 메시지 송수신 예광탄은 구현했어요. 그리고 P2P 메신저 - 파일 전송 클라이언트와 P2P 메신저 - 파일 수신 서버도 구현했죠. 이번 강의에서는 파일 전송 클라이언트와 파일 수신 서버를 라이브러리를 만들고 이를 참조하여 P2P 메신저에 파일 송수신 기능을 구현할 거예요. 파일 송수신 라이브러리에 사용할 소스 코드는 앞에서 제작한 파일 전송 클라이언트와 파일 수신 서버에 있는 소스 코드를 그대로 사용합니다. 2. 컨트롤 추가 배치 먼저 Form1에 자신의 파일 수신 서버 포트와 전송할 때 상대 파일 수신 포트를 입력할 텍스트 상자를 추가합니다. 그리고 설정..