본문 바로가기

지식

curl Curl에 대해서 1 Curl에 대해서 curl은 데이터 전송과 관련된 프로그램의 빠른 작성을 위해서 사용하는 command line tool이다. HTTP, FTP, LDAP, TELNET, HTTPS, DICT와 같은 프로토콜을 지원하며, SSL을 가지는 각각의 프로토콜 역시 지원한다. 또한 HTTP기반의 upload, proxies, cookies, user+password 인증을 사용할 수도 있다. 이러한 툴의 제공과는 별도로 위의 프로토콜들을 지원하는 클라이언트의 제작을 도와주기 위한 libCURL을 제공한다. libCURL을 이용하면 데이터 전송과 관련된 프로그램을 빠르게 작성할 수 있다. 이 문서는 libCURL의 API를 이용해서 필요한 데이터전송 프로그램을 만드는 법에 대해서 설명을 할 .. 더보기
UTF-8 UTF-8은, Unicode Transformaion Format-8의 줄인 말이다. 즉, ISO 10646 / Unicode에서 정의한 문자 집합을 8비트 바이트 스트림으로 인코딩하는 규약이다. UTF-8 [UTF-8]의 용례 및 다른 정보들 TeX과 [UTF-8] [UTF-8] 문서의 편집 [UTF-8] 편집기를 이용한 LaTeX/[Lambda] 작업에서 BOM 문제 BOM, Byte Order Mark 에디터와 BOM 대화 UTF-8 UTF-8은 모든 Unicode 문자를 1바이트에서 4바이트까지 가변폭 바이트 스트림으로 인코딩한다. 6바이트가 아님. ISO JTC1/SC2/WG2는 공식적으로 ISO 10646에서 UTF-16으로 표현 가능한 상한선인 U+10FFFF를 넘는 범위에 문자를 배정하지 .. 더보기
URL 최대길이 원문: http://support.microsoft.com/kb/q208427/ Internet Explorer 에서 URL 의 최대 길이는 2,083 이다. 요약 Microsoft Internet Explorer(이하 IE)는 최대 2,083의 URL(Uniform Resource Locator) 길이를 갖는다. IE는 또한 최대 2,048의 경로길이를 갖는다. 이 제한은 POST request와 GET request URLs 양쪽에 모두 적용된다. 만약 GET method를 사용한다면 실제 경로의 길이를 뺀 최대 2,048 로 제한되어야 한다. 그러나 POST method는 name/value 쌍에 대한 URL 의 크기에 제한되지 않는다. 이들 쌍은 URL이 아닌 헤더에서 전송된다. RFC 2616,.. 더보기
complex 20장: complex 20.1 개요 complex 클래스는 템플릿 클래스이다. 복소수와 복소수 연산들이 필요할 때 사용하면 된다. complex 클래스는 C++을 다루는 책들에서 클래스를 정의하는 방법을 설명할 때 자주 쓰이는 예제라서, C++을 공부하셨던 분들이라면 한번쯤 정의해봤을 클래스일 것이다. C++ 표준에 포함된 complex 클래스는 템플릿으로 정의되어 있고, 복소수에 정의되어 있는 연산들이 C++에서 제공하는 수치 관련 타입들(int, float, double, long double, ...)과 사용하는데 아무런 제약이 없도록 만들어져 있다. 20.1.1 Include 화일 복소수를 사용하는 프로그램은 complex 헤더화일을 포함시켜야 한다. #include 20.2 복소수.. 더보기
generic 알고리듬 3장: generic 알고리듬 13.1 개요 13장과 14장에서는 표준 라이브러리가 제공하는 generic 알고리듬에 대해 설명한다. 아래 표는 13장에서 설명할 알고리듬의 이름과 용도를 요약해 놓은 것이며, 알고리듬들을 용도별로 분류하였다. 이름용도초기화 알고리듬 - 13.2절fill시퀀스를 초기값으로 채우기fill_nn개의 자리를 초기값으로 채우기copy시퀀스를 다른 시퀀스에 복사하기copy_backward시퀀스를 다른 시퀀스에 복사하기generate생성기(generator)를 사용하여 시퀀스를 초기화하기generate_n생성기(generator)를 사용하여 n개의 자리를 초기화하기swap_ranges두 병렬 시퀀스의 내용 뒤바꾸기검색 알고리듬 - 13.3절find인자값과 일치하는 원소 찾기find_.. 더보기
string 12장: string 12.1 string 추상(abstraction) string은 인덱싱이 가능한 문자들의 시퀀스이다. 비록, string이 vector의 서브클래스는 아니지만, 5장에서 설명한 대부분의 vector 연산들을 string에 적용할 수 있다. 게다가, string은 vector 연산뿐만 아니라 유용하고 강력한 고수준 연산들을 추가로 제공한다. 표준 라이브러리의 string은 실제로는 basic_string 템플릿 클래스이다. 템플릿 인자는 string 컨테이너를 구성하는 문자의 타입을 나타낸다. 이렇게 함으로써, 표준 라이브러리는 일반적으로 많이 쓰이는 8비트 아스키 문자들뿐만 아니라 16비트 광폭 문자(wide character)들과 같은 것들도 다룰 수 있는 기능을 제공한다. str.. 더보기
priority_queue 11장: priority_queue 11.1 priority_queue 데이터 추상(data abstraction) priority queue는 값들의 콜렉션으로부터 가장 큰 값을 신속하게 찾거나 제거할 필요가 빈번하게 발생하는 상황에서 유용하게 사용할 수 있다. 일상에서 찾아볼 수 있는 priority queue의 예로 아직 처리되지 않은 일들의 목록을 들 수 있다. '책상 정리'와 같은 일들은 그리 긴박한 사항이 아니므로, 임의로 연기할 수 있지만, '월요일까지 보고서 마치기'나 '기념일을 위한 꽃사기'와 같은 작업은 시간이 중요하므로 가장 급히 해결해야할 일들이다. 따라서, 중요도에 따라 수행할 작업들을 정리하고, 가장 급박한 것을 골라 수행한다. A Queue That is Not a Queue .. 더보기
stack과 queue 10장: stack과 queue 10.1 개요 많은 사람들이 stack과 queue 데이터 추상에 대해서는 잘 이해하고 있다. 책상위에 놓은 서류철이나 찬장에 놓인 접시들이 stack의 전형적인 예가 될 것이다. 이들 모두 맨 위쪽에 있는 것들은 접근하기가 가장 쉽다는 특징을 가진다. 콜렉션에 새로운 아이템을 추가하는 가장 쉬운 방법은 맨위에 올려 놓는 것이다. 이런식으로 하면, stack에서 제거되는 아이템은 가장 최근에 stack에 추가된 아이템이 된다. LIFO와 FIFO  한편, 일상생활에서 살펴볼 수 있는 queue의 예로 은행에 선 줄이나 영화관 앞에 선 줄등을 들 수 있다. 여기서 사람이 새로 줄을 설 때처럼 삽입은 queue의 뒤에서 이루어지고, 관객이 영화관에 들어가는 것처럼 아이템의 삭.. 더보기
map과 multimap 9장: map과 multimap 9.1 map 데이터 추상(data abstraction) Map 대신 사용되는 다른 명칭들 vector나 deque와 마찬가지로 map도 인덱싱이 가능하다. 그러나, map은 두가지점에서 이들과 차이가 난다. 첫째로, map에서는 인덱스 값(키값)이 반드시 정수일 필요는 없고, ordered 데이터 타입이면 가능하다. 예를 들어, 실수나 string으로 인덱싱이 가능하다. 비교연산자를 가지고 있는 데이터 타입이면 키로서 사용이 가능하다. vector나 deque에서처럼, 첨자 연산자로 원소들을 접근할 수 있고, 물론 다른 방법도 있다. 두번째 차이점은 map은 ordered 데이터 구조란 점이다. 이는 원소들이 키값에 따라 순서가 정해져서 관리된다는 말이다. 값들을 순서.. 더보기
set, multiset, bitset 8장: set, multiset, bitset 8.1 set 데이터 추상(data abstraction) Sets, Ordered and Not  set은 값들의 콜렉션이다. set 데이터 구조를 구현하는데 사용되는 컨테이너는 순서를 유지하여 값들을 관리하기 때문에, 원소의 삽입과 삭제뿐만 아니라, 특정 값이 콜렉션에 들어있는지의 여부를 검사하는데 있어 최적화되어 있다. 이러한 연산들은 각각 logarithmic 횟수로 수행된다. 반면에 list, vector, deque에서는 각각의 연산들이 최악의 경우에 컨테이너에 담긴 모든 원소들을 살피게 될수도 있다. 이러한 이유때문에, 삽입, 삭제와 값의 포함여부에 대한 검사가 중요한 문제에서는 set을 선택해야 한다. list에서처럼, set도 사이즈에 제한을.. 더보기