목록인프런/이것이 C# 이다 (10)
개발자 성장일지

1. TCP/ IP 프로토콜 프로토콜 : 네트워크에서 데이터를 주고받기 위한 규약 TCP/IP : Transport Control Protocol/ Internet Protocol 여러가지 프로토콜의 모음(Suite) 링크/ 인터넷 / 전송/응용 계층으로 구성 TCP/IP 스택(Stack) 이라고 부르기도 함 1) TCP/IP 주소 체계 인터넷에서 시용하는 이 주소를 일컬어 IP 주소라고 함 IPV4: 8비트 정수 4개로 구성(32비트) 되는 주소 예) 211.54.101.35 IPV6 : 128비트의 주소 체계 IPV4 주소가 빠르게 고갈됨에 따라 새롭게 제정된 주소 체계 예) 3FFE:FFF:7654:FFED:1245:BA58:3258:4563 포트(Port) IP 주소가 건물 주소라면 포트는 출입구..

1.프로세스와 스레드 프로세스(Prosess) 실행파일의 데이터와 코드가 메모리에 적재되어 동작하는 것 word.exe 가 실행 파일이라면, 이 실행 파일을 실행한 것이 프로세스 스레드(Tread) 스레드는 운영체체가 CPU 시간을 할당하는 기본단위 프로세스가 밧줄이라면 스레드는 밧줄을 이루는 실 멀티 스레드 1) 스레드 시작하기 System.Threading.Thread : 스레드를 나타내는 클래스 스레드 기동 절차 Thread 인스턴스 생성(스레드가 실행할 메소드를 생성자 인수로 입력) Thread.start() 메소드 호출(스레드 시작) Thread.Join() 메소드 호출(스레드 종료 대기) 2) 스레드 멈추기 - Abort 스레드는 실행중인 메소드가 종료되면 함께 종료되지만 필요한 경우 Abor..

1. Dynamic 런타임에 형식 검사가 이루어지는 데이터 형식 dynamic 을 제외한 C#의 모든 데이터 형식은 컴파일 단계에서 형식 검사 수행 2. 오리 타이핑 OOP에서는 오리로 인정받으려면 오리에서 파생되어야 함 dynamic 형식에서는 오리로 인정받으려면 오리처럼 행동하면 됨 코드 더보기 namespace DuckTyping { class Duck { public void Walk() { Console.WriteLine("Duck.Walk"); } public void Swim() { Console.WriteLine("Duck.Swim"); } public void Quack() { Console.WriteLine("Duck.Quack"); } } class Mallarc : Duck { pu..

1. 리플렉션 런타임에 객체의 형식(Type) 정보를 들여다보는 기능 System.Object는 형식 정보를 반환하는 GetType() 메소드 보유 즉, 모든 데이터 형식은 System.Object 형식을 상속하므로 GetType() 메소드 또한 보유 1) System.Type의 주요 메소드 코드 더보기 using System.Reflection; namespace Reflextion { class Profile { public string Name {get; set;} public string Phone { get; set; } public void Print() { Console.WriteLine("invoke {0}, {1}", Name, Phone); } } internal class Progra..

1. 람다식 1) 람다식으로 무명함수 정의하기 무명함수: 람다식으로 만드는 익명 메소드 무명함수를 작성하기 위해서는 먼저 대리자로 무명함수의 모습을 결정 2) 문 형식의 람다식 람다식 바디를 식이 아닌 코드 블록으로 작성 3) Func 대리자와 Action 대리자 .NET 라이브러리에 사전 정의되어 있는 대리자 익명 메소드/무명 함수 정의를 위해 매번 대리자를 새롭게 정의하는 불편을 제거 일반화와 최대 16개의 매개변수 지원 Func 대리자 : 반환 값이 있는 익명 메소드/무명 함수용 대리자 Action 대리자 : 반환 값이 없는 익명 메소드/ 무명 함수용 대리자 4) 식 트리 코드를 트리 자료 구조로 표현 한 것 C#에서는 런타임에 식트리를 생성하고 실행 할 수 있음 -> 프로그램 실행 중에 추가적인 ..

1. 대리자 코드(메소드)를 대신 실행하는 객체 메소드를 호출하듯 사용(즉, 인수를 입력하고 결과를 반환 받음) 단, 대리자가 실행할 코드는 컴파일 시점이 아닌 실행 시점에 결정 1) 대리자 선언과 사용 delegate 키워드를 이용하여 선언 메소드와 같이 대리자 또한 매개변수 목록과 반환 형식을 가짐 2. 익명 메소드 다른 코드블럭에서 재사용될 일이 없는 이름 없는 메소드 익명 메소드 구현 절차 사전 정의된 대리자 형식(반환형식, 매개변수)에 맞춰 익명 메소드 작성 익명 메소드 정의시 delegate 키워드로 시작하며, 정의된 코드는 대리자 참조에 할당 익명 메소드를 할당받은 대리자 참조 호출 코드 더보기 namespace Delelgate { class SubClass { public int Plus..

1. 배열 같은 형식의 복수 인스턴스를 저장할 수 있는 형식 참조형식으로써 연속된 메모리 공간을 가리킴 반복문, 특히 for/foreach문과 함께 사용하면 효율 향상 꺽쇠 괄호 []안에 배열의 크기를 지정하여 다음과 같이 선언 1) 배열 초기화 방법 1. 기본 배열의 원소 개수를 명시 배열의 각 원소에 입력될 데이터를 입력 {}으로 감싼 블록을 붙임 2. 요소개수 생략 배열의 요소 개수 생략 배열의 각 원소에 입력될 데이터를 입력 {}으로 감싼 블록을 붙임 3. new 연산자 형식, 요소개수생략 new 연산자, 형식과 괄호 {}, 배열의 용량을 모두 생략 배열의 각 원소에 입력될 데이터를 입력 {}으로 감싼 블록을 붙임 2) 다차원 배열 - 2차원 배열 2개의 차원(세로+가로)으로 요소 배치 차원의 길..

1. 인터페이스 (interface) 클래스는 객체의 청사진 인터페이스는 클래스의 청사진 클래스가 해야하는 행동을 결정: 즉, 클래스가 어떤 메소드를 가질지 결정 2. 프로퍼티 public 필드는 외부 객체에 의해 오염될 가능성을 열어두는 것 예) 온도 센서 객체와 일정 온도일 때 동작하는 보일러 객체 온도 센서의 "현재 온도"를 보일러가 직접 수정? 보일러의 동작 임계치를 온도 센서가 직접 수정? 자바같은 언어에서는 Get/Set 메소드를 이용하여 내부 필드에 접근하도록 함 C#에서는 Get/Set 메소드 뿐 아니라, 필드만큼 편리한 프로퍼티를 제공 1. 프로퍼티란? pulic 필드를 다루듯 내부 필드에 접근하게 해주는 멤버 외부에 데이터를 출력할 때는 get 접근자 내부에 데이터를 입력할 때는 set..