목록전체 글 (253)
bdfgdfg
SQL(Structured Query Language) 관계형 데이터베이스의 데이터를 관리하기 위해 설계된 언어. 가장 기초가 되는 SQL은 다음과 같다. SELECT * FROM 테이블명 DB의 테이블에 있는 모든 내용을 조회하라라는의미이다. 즉 SELECT는 조회. FROM은 어느 테이블인지를 의미. -> *는 모든것을 의미. (와일드 카드라고도 한다) SQL은 4가지 분류로 나뉜다. - DML (Data Manipulation Language, -> Select/Insert/Update/Delete) - DDL (Data Definition Language -> Create/Alter ) - TCL (Transaction Control Language -> Commit/Rollback) - DCL ..
https://www.youtube.com/watch?v=yk-HD8YoyZg 좋은 내용이다..
C++에서는 포인터를 쓰면 간단하게 해결할 문제이지만 C#은 버퍼의 인덱스부터 ~ 어느 인덱스까지를 사용하는건 어렵다. 이때 사용할 수 있는게 ArraySegment. 네트워크 송수신에서 데이터를 주고 받기 위해 정의된 패킷타입이 다음과 같다고 보자. // [패킷 프로토콜][패킷 길이][데이터 필드] // [2byte(Protocol)][2byte(Length)][N-byte(Data Field)] 해당 데이터를 해석하기 위한 별도의 클래스나 툴이없다면 직접 부분참조해서 읽어와야 한다. class Program { static void Main(string[] args) { ArraySegment packetBuffer = new ArraySegment(new byte[1024], 0, 1024); in..
프로그램이 어떠한 문제로 인해 프로그래머의 의도대로 흘러가지 않는 사건을 예외. 이러한 예외를 오류로 이어지지 않도록 적절하게 처리하는 것을 예외 처리(Exception Handling)이라 한다. 간단하게, 크기가 3인 배열을 할당하고, 할당된 메모리의 크기를 넘어서서 접근하는 코드를 만들어보자. -> 버퍼 오버플로우 인덱스가 배열의 범위를 벗어나 에러가 발생. 심지어 실행을 해보면 CLR이 직접 에러 메시지를 로그로 남겨준다. 이렇게 잘못된 인덱스를 통해 배열의 요소에 접근하려 들면 배열 객체가 이 문제에 대한 상세정보를 IndexOutOfRangeException의 객체에 담은 후 Main메소드에 던지고, Main메소드는 이 예외를 처리할 방도가 없기에 다시 CLR에게 던진다. -> CLR에게까지 ..