본문 바로가기

반응형

전체 글

(425)
[C++] const 와 mutable 키워드 이번 포스트는 변수를 상수화 시켜 코드에서 변수의 값을 변경하려고 할 경우 컴파일 타임에 에러를 발생 시키는 const 키워드와 const를 무효화 시킬 수 있는 mutable 키워드에 대해 살펴 보도록 하겠다. C++에서는 절대 변경 되어서는 안되는 변수(변수라는 것 자체가 변경을 할 수 있다는 의미인데 그것을 변경하지 못하게 막겠다는게 개념적으로 아이러니 하긴하지만)에 const라는 한정자를 더해, 변수를 변경하려고 시도 할 경우 컴파일 타임에 감지하여 에러를 발생 시킨다. const 이전에는 #define 전처리 명령어를 이용했지만 전처리 명령어를 이용하는 것은 스코프를 한정 할 수도 없고, 타입에 대한 제약도 없어 여러 모로 실수를 만들 요소를 가지고 있다. 하여 const 키워드 이후 부터는 상..
PHP - 문자열 취급하기(!== 비교 연산자) php는 아주 간편하게 사용할 수 있는 스크립트 언어다. 문법도 C랑 비슷해서 새로 공부해야 할 것도 그렇게 많지는 않다. 하지만 그 간편함 속에 숨겨진 php의 악마성이 있으니... 그것은 바로 문자열과 숫자에 구분이 없다는 것이다!! 먼저 아래의 코드를 보자. 디렉토리에 있는 내용을 단순히 출력 해주는 루틴이다. $dirHandle = opendir("/home/kukuta/") or die("error opendir()") while($filename = readdir($dirHandle)) { echo $filename."\n"; } 정말 간단한 소스다. 디렉토리 내의 파일 리스트를 읽어와 출력한다. 그냥 단순히 읽고 출력하는 것이 전부다. 여기서 오류가 발생 한다는 것이 말이 안된다. 하지만 p..
가변인자를 이용한 함수(va_list) 가변인자 함수 ANSI C 는 인수의 타입이나 개수를 다양하게 취할 수 있는 함수를 선언하기 위해 '가변인자 함수(varages 함수 or variadic 함수)'라는 구문을 정의 하고 있다. 1. 왜 가변인자 함수들이 사용되는가? 원래 C 함수들은 고정된 개수의 인수들을 취한다. 함수를 정의할 때, 인수의 개수와 인수의 데이터 타입을 정의하면 변경이 불가능 하다. '가변인자 함수'는 함수가 호출 될때 마다 인수의 개수를 변경 할 수 있고 타입에 있어서의 변경도 가능하다. 2. 어떻게 가변 인자 함수를 정의하고 사용하는가? 1) #include '가변인자 함수'라는 것을 사용하기 위해서는 'stdarg.h' 헤더 파일이 필요하다. ※ 오래된 C 에서는 'varargs.h'를 사용해서 다양한 개수의 변수를..
SQL command CREATE DATABASE 새로운 데이터베이스를 생성 CREATE TABLE ( schema.. ) 새로운 테이블을 생성 ex) CREATE TABLE tab (val INT); INSERT INTO [(field Name, ... )] VALUES (data, ...) CREATE문으로 생성된 테이블에 데이터를 저장 UPDATE SET = WHERE expr UPDATE 문은 INSERT 문으로 저장되어 있는 데이터 수정 DELETE FROM WHERE expr 테이블에 있는 데이터를 삭제 할때 사용하는 쿼리문 테이블 자체를 삭제하는 DROP과 구분 되어야 한다. ALTER TABLE ADD 테이블에 새로운 필드 추가 ex) ALTER TABLE tableName ADD newFieldName var..
vim editor - foldmethod /** 수천 줄이나 되는 코드라인을 쳐다 보고 있노라면 막막하니 스크롤 하는것 조차도 힘이 든다. 이럴경우에는 vim에서 제공하는 foldmethod 를 이용한다면 상당히 편하다. */ 1. 사용법 보기 vim 편집 창에서 :help foldmethod 혹은 fdm을 쳐보자. 간략한 설명과 함께 여섯가지의 옵션이 있다는 사실을 알수 있다. : set foldmethod= manual 매뉴얼하게 폴딩을 생성한다. indent 같은 indent 일경우 폴딩한다(파이썬 같은 경우 좋을 듯하다) expr 'foldexpr' gives the fold level of a line.(?) marker '{{{', '}}}' 마커로써 폴딩 구역을 설정한다. syntax Syntax highlighting 아이템으로 ..
[Linux] awk awk 란? 파일에서 패턴이 일치하는 행을 찾아 해당 행에 지정된 명령을 수행한다. 주로 쉘 스크립트에서 파일에서 지정된 패턴을 검색하고 명령어를 이용하여 필요한 포멧으로 가공하기 위해 사용된다. 여담으로 awk는 특별한 의미를 가진 단어가 아니라 awk의 개발자 Alpred Aho, Peter Weinberer, Brian Kernighan 세명의 이니셜을 따온 것이다. awk 사용 $ awk 'pattern' filename $ awk '{action}' filename $ awk 'pattern {action}' filename awk의 사용 형식은 위와 같다. awk 커맨드 이후 작은 따옴표로 감싸진 패턴이나 액션, 혹은 둘다. 그리고 마지막으로 대상 파일을 입력한다. 만일 파일 이름을 지정하지 ..
Python 정규 표현식 메타 문자 반복 메타문자 문자 의미 예 * 0 회 이상 반복 ca*t => ct, cat, caat, caaat, … + 1 회 이상 반복 ca+t => cat, caat, caaat … ? 0회 혹은 1회 ca?t => ct, cat {m} m회 반복 ca{2}t => caat {m, n} m회부터 n회까지 반복 ca{2, 4}t => caat, caaat, caaaat >>> import re >>> re.match('cat', 'caat').group() 'caat' >>> re.match('cat', 'cat').group() Traceback (most recent call last): File "", line 1, in ? AttributeError: 'NoneType' object has n..
ssh login without password /** 작업을 하다 보니 원격에 있는 서버에 파일들을 복사 해야 하는 이슈가 발생했다. 내가 생각 한 방법은 아래와 같다. 1. 서버를 띄워 놓고 일정 주기 마다 클라이언트가 서버에게 파일의 내용을 전송한다. -> 귀찮다 2. 'scp' 를 crontab에 등록한다. -> scp를 사용하기 위해서는 패스워드를 수동으로 입력해야 한다. -> 패스워드없이 입력 할 수 있도록 설정이 가능하다. -> ssh에 대해 알아야 한다. */ How to do it 상황 설정 한 사용자가 A라는 서버에는 a라는 계정을 가지고 잇고, B라는 서버에는 b라는 계정을 가지고 잇다고 가정하자. 여기서 로그인 하고자하는 타켓은 B서버라고 한다. 계정이 다르고, 패스워드가 달라도 ssh 연결을 하는데는 전혀 지장이 없다. 셋팅 우..

반응형