18 File
·
Programming Languages/C#
18.1. 파일과 폴더를 다루는 방법 - File : 저장 매체에 기록되는 데이터의 묶음 - Directory(Folder) : 파일이 위치하는 주소 - System.IO 의 클래스 - 주요 메소드와 프로퍼티 18.2. 파일의 "내용"을 읽고 쓰는 방법 - Stream : 네트워크나 데이터 백업 장치의 데이터 입/출력 구조 : 순차 접근 구조 - System.IO.Stream : 추상 클래스 - C# CLR Byte Order : Little Endian (vs. Java JVM: Big Endian) 18.3. using : 네임스페이스, 파일, 소켓 등 - UsingDeclaration : 별칭 - 자동 Dispose() 18.4. BinaryWriter/BinaryReader : 스트림에 이진 데이..
16 Reflection, Attribute 17 Dynamic
·
Programming Languages/C#
16. Reflection & Attribute - 객체 정보를 데이터화 : 프로그램 실행 중에 형식 이름, 프로퍼티 목록, 메소드 목록, 필드, 이벤트 목록 등 읽을 수 있다 - 리플렉션 다형성 : 읽어들인 형식의 인스턴스를 만들고 프로퍼티나 필드에 값을 할당하고, 메소드를 호출할 수 있다 - 리플렉션 내보내기 : 프로그램 실행 중에 새로운 형식을 만들어낼 수 있다 - 에트리뷰트 : 리플렉션 값 사용 16.1. Object.GetType() : 객체의 메타데이터를 리턴한다. - Object 클래스 : Object는 모든 데이터 형식의 조상 : 즉, 모든 Type 은 Object 형식이다. - Object 클래스의 메서드 : 반드시 인스턴스 필요(클래스 X) : Object.Equals( ) : Obje..
14 Lamda 15 LINQ
·
Programming Languages/C#
14. Lamda - 람다식으로 만드는 익명 메소드, Anonymous Function(무명 함수) - 함수를 변수에 대입 14.1. 람다식 선언 매개변수_목록 => (식) 14.2. Statement Lambda (매개변수_목록) = > { 문장1; 문장2; 문장3; ... } 14.3. Func, Action - delegate 대리자 선언부 생략 방법 - func 대리자, 결과를 반환하는 메소드 참조 - action 대리자, 결과를 반환하지 않는 메소드를 참조 14.4. Expression Tree - System.Linq.Expressions - Expression 클래스와 파생 클래스들 - 각 노드 타입 상관 없이 Expression 형식 참조 선언 가능 - expression tree = st..
12 Exception 13 Delegate Event
·
Programming Languages/C#
12. Exception 12.1. Exception - System.Exception : 예외 최상위 클래스 : 모든 예외를 받아낸다 : 모든 예외를 처리함으로써, 새로운 오류 발생할 수있다 - throw : 의도적 예외 발생 - finally : try 블록의 예외 발생으로 catch 실행시, 자원 해제와 같은 코드를 미처 실해하지 못한 경우 사용 : catch 문 모두에 반복 작성하는 것보다 finally가 효과적 : 예외에 상관없이 반드시 finally 절의 코드를 실행 : finally 내부 try ~ catch 가능 - User Defined Exception : Exception 클래스를 상속 12.2. Exception Filter - catch 예외 제약 조건 : when 키워드 : if..
10 Collection, Indexer 11 Generic
·
Programming Languages/C#
10.1. Array - 변수와 배열 : 300개의 변수 대신, 300개 용량을 가진 배열 변수를 “한 개”만 선언해서 사용 - 배열 선언과 초기화 : { }, Collection Initializer : 필요한 용량에 맞는 Array를 선언 - 다차원 배열 (2차원) 선언과 초기화 : (세로, 가로) : 1차원 배열을 원소로 갖는 배열 - 가변 배열 (Jagged Array) : 10.2. System.Array - C# 에서 모든것은 객체다 : 배열은 System.Array 클래스의 파생형이다 - System.Array 클래스의 주요 메서드와 프러퍼티 - System.Range 객체를 이용한 배열 분할 10.2. Collection - ArrayLIst : 배열과 달리 생성시 용량을 지정할 필요가 없..
[WSA] Visual Studio에서 inet_ntoa( ) 대체하기
·
Programming Languages/C
문제점 Visual Studio에서 권장하지 않는 함수들( 'scanf', fopen', 'strcpy') 사용시 Warning C4996 경고가 발생한다. 소켓 프로그래밍의 경우, inet_ntoa( ) 함수 사용시 IPv4만 지원해 해당 경고가 발생한다. inet_ntoa 뜻: network-to-address, 비트 단위 IP 주소를 문자열 주소값으로 변환한다. n = network : 비트 단위 IP 주소값 + 빅 엔디언 (네트워크는 비트 단위로 통신한다.) a = address : 문자열 단위 IP 주소값 + 리틀 엔디언 해결책 1. Visual Studio 경고를 무시 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) 2. inet_..
[WSA] WinSock 실행 흐름
·
Programming Languages/C
소켓 통신 프로그래밍 API / 클래스 설명 제공 기능 OS/PL Unix Socket API 네트워크 표준 API TCP, UDP 등 다양한 네트워크에 사용 Unix(Ubuntu, Redhat..) Win WinSock2 API Socket API 윈도우 버전 Window(C/C++) C# .NET Sockets WinSock2 API C# 버전 Window(C#) TcpClient Sockets 클래스 내재됨 TCP, UDP 전용 TcpListner UdpClient 윈도우 소켓 실행 흐름 WSA(WinSock API) WSAStartup( ) : winsock 초기화 : 반드시 프로그램에서 요구하는 winsock 버전을 명시하고, 라이브러리 초기화를 진행해야 한다. #include int WSASt..
16 셸 정렬
·
Programming Languages/C
셸 정렬이란? : 단순 삽입 정렬의 장점을 살리고 단점 보완 : 정렬 횟수는 증가하지만, 전체적인 요소 이동 횟수 감소 단순 삽입 정렬의 특징 복잡도 O(n^1.25) 불안전
15 단순 삽입 정렬
·
Programming Languages/C
단순 삽입 정렬이란? : 선택한 요소를 알맞은 위치에 삽입하는 작업 반복 단순 정렬(버블, 선택, 삽입) 의 시간 복잡도는 O(n^2) 효율이 좋지 않다.
14 단순 선택 정렬
·
Programming Languages/C
단순 선택 정렬이란? : 가장 작은 요소부터 알맞은 위치로 정렬하는 알고리즘 불안전한 정렬 : 중복시 위치가 변한다.
13 버블 정렬, 칵테일 정렬
·
Programming Languages/C
버블 정렬: 이웃한 두 요소의 비교, 교환을 반복해 정렬 패스(Pass): 비교, 교환 작업 버블 정렬 구현 교환 횟수는 비교 횟수 = (n - 1) + (n - 2) + 1 = n(n - 1) / 2 의 절반인 n(n - 1) / 4 swap 함수 안에서 값의 이동이 3회 발생하므로 평균 3n(n - 1) / 4 버블 정렬 개선안(1) 버블 정렬 개선안(2) 칵테일 정렬 이 배열은 맨 앞 요소(9) 때문에 빠른 시간 안에 정렬 작업을 마칠 수 없다. 그래서 패스의 방향을 교대로 바꾸는 방식(칵테일 정렬)을 사용한다. /*--- 양방향 버블 정렬(칵테일 셰이커 정렬) ---*/ void shaker(int a[], int n) { int left = 0; int right = n - 1; int last..
12 정렬이란?
·
Programming Languages/C
정렬(Sorting)이란? : 특정 핵심 항목(key)의 대소 관계에 따라 데이터의 집합을 일정한 순서로 만드는 작업 : 정렬을 통해 검색을 빠르게 할 수 있다. 오름차순(Ascending), 내림차순(Descending) 안정성(Stable)이란? : 같은 값의 키를 가진 요소의 순서가 정렬 전후에도 유지되는 것 정렬 알고리즘의 핵심 요소 : 교환, 선택, 삽입 내부 정렬, 외부 정렬 : 내부 정렬(Internal Sorting) - 정렬할 모든 데이터가 하나의 배열에 저장 할 있는 경우 : 외부 정렬(External Sorting) - 정렬할 데이터가 너무 많아서, 하나의 배열에 저장 할 수 없는 경우
ubiquitous4g
'분류 전체보기' 카테고리의 글 목록 (2 Page)