본문 바로가기

분류 전체보기

(689)
File encoding [1. 개요] 윈도우 환경에서 파일의 인코딩을 변경하여 저장하는 명령어 사용법을 정리한다. [2. 명령어] 파워 쉘 환경에서 사용 할 수 있는 Set-Content 라는 명령어가 있다. 예제) Get-Content example.txt | Set-Content -Encoding utf-8 example2.txt # example.txt 파일에 저장 된 내용을, utf-8 로 인코딩 하여, example2.txt 에 저장한다.
볼륨, 영구 볼륨, 영구 볼륨 클레임 볼륨 emptyDir hostPath downwardAPI projected nfs iscsi cephfs emptyDir 특징 pod 용 임시 디스크 영역 pod 종료 시 삭제 된다. host 의 임의 영역을 마운트 할 수 없음. 리소스 제한이 가능하며, 초과 사용 시 pod 가 축출(Evict) 된다. # emptyDir.sizeLimit: 128Mi tmpfs 로 할당 가능하다. 역시 초과 사용 시, OOM 이 발생하여 pod 가 정지 된다. # emptyDir.medium: Memory hostPath node 의 영역을 컨테이너에 마운트 한다. host 의 어떤 영역을 사용할 지 지정해야 한다. # Directory, DirectoryOrCreate, File, Socket, BlockDevic..
Jenkins. docker 기반 설치 [1. 개요] docker 기반으로 jenkins 설치 방법에 대해 정리한다. plugin 설치 및 간단한 jenkins job 을 생성한다. [2. 설치] jenkins 공식 이미지를 pull 하고 실행하면 plugin 설치가 안되는 문제가 있다. 아래 docker file 을 이용하여 docker image 를 빌드하고, 실행하도록 한다. 포트는 8080 과 50000 을 사용하니 외부와 연결할 수 있도록 한다. [5. 참조] https://stackoverflow.com/questions/29328278/installing-jenkins-plugins-to-docker-jenkins https://github.com/jenkinsci/docker
정적 라이브러리 빌드 [1. 개요] 여러개의 소스코드로 이루어진 라이브러리를 정적라이브러리로 빌드 후, main() 함수가 정의 된 소스코드와 같이 컴파일 하는 과정 정리한다. CMake 형태의 C++ 프로젝트의 경우 cmake => make 로 컴파일을 쉽게 할 수 있지만, 새로운 라이브러리를 테스트 해야 하는 경우, 별도의 cmake 를 작성하는 것이 다소 부담스러울 수 있다. 이 경우, gcc(혹은 g++) 와 ar 을 이용하여 라이브러리 빌드 후, main() 과 링킹하여 간단하게 테스트 프로그램을 만들 수 있다. [2. 기본 개념] 정적 라이브러리 빌드는 보통 아래 과정을 거친다. 소스코드에 대해서 object 파일 생성 object 파일을 하나의 archive 파일로 묶는다. 1번 과정에서 gcc (g++) 를 사..
batch, for 문 [1. 개요] 윈도우 환경에서 batch script 작성 시 유용한 for 문 활용 방법을 정리한다. for 문의 기능 List 에 대한 iterate 증감에 대한 iterate 재귀적인 실행 directory 내 file 에 대한 iterate 명령어 결과에 대한 iterate 문자열 파싱 / tokenize cmd 에서 실행할 때는 % 를 한번만 작성 script 로 작성 할 때는, % 를 두번 작성해야 한다. for 문에 사용하는 변수명은 한글자만 가능하다. 보통, %a ~ %z, %A ~ %Z 대소문자 구분함. 자세한 사항은 for /? 로 확인 가능하다. [2. List 에 대한 iterate] for %a in (a b c) do echo %a # 출력 # a # b # c for %a in..
MySQL. unique key [1. 개요] unique key 의미와 사용 방법 정리 [2. 의미] 기본적으로 중복 데이터 저장을 방지하기 위함. 이미 이런 역할을 하는 Primary key 가 있고, PK 와의 차이점 PK 와 달리 NULL 을 허용한다. 테이블 당 하나만 존재 할 수 있는 PK 와 달리, 여러 개 존재 할 수 있다. [3. 생성 방법] 테이블 생성 시 CREATE TABLE `tmp`.`Message` ( `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `user_id` integer NOT NULL, `user_to` integer NOT NULL, `top_num` integer NOT NULL, `priority` smallint NOT NULL, `error` va..
MySQL, innodb_autoinc_lock_mode [1. 개요] innodb_autoinc_lock_mode 와 auto_increment 동작 방식에 대해 정리한다. auto_increment INT 형 자료형을 대상으로 설정 가능하다. NULL 이 올 수 없으므로, NOT NULL 인 column 을 대상으로 설정 가능하다. Table 생성 시, auto_increment 의 시작 값을 특정 값으로 초기화 할 수 있다. 반드시 pk 나 unique key 가 될 필요는 없지만, 중복이 있어선 안된다. innodb_autoinc_lock_mode 아래 query 로 현재 설정 된 값을 확인 할 수 있다. # show variables like 'innodb_autoinc_lock_mode' 아래 query 로 설정 값을 바꿀 수 있다. # set gl..
polyline decoding [1. 개요] 인코딩 한 polyline 을 다시 decoding 하는 방법을 정리한다. decoding 은 encoding 을 거슬러 올라가면 된다. wgs84 좌표를 encoding 한 형태에 대해서 정리한다. [2. encoding 과정] encoding 에 대해서 정리한 페이지는 아래를 참조한다. https://testkernelv2.tistory.com/616 간략하게 정리하면 아래와 같다. 소수점 확보 1 bit left-shift 음수 인 경우, bit 반전 하위 5bit 단위로 처리 # 다음 bit chunk 가 0이 아닌 경우, 현재 bit chunk 와 0x20 를 OR 연산 ## 0x20 == 0010_0000 # 연산 결과에 63 을 더함 # ascii 문자로 변환 bit chunk..
MySQL, SQL_SAFE_UPDATES [1. 개요] table 에 대한 update 혹은 delete 작업 시 where 절이 없거나, where 절에 index 가 걸린 column 이 없는 경우 update / delete 구문을 실패 시킨다. 이러한 동작은 SQL_SAFE_UPDATES 값이 1인 경우 발생하고, 0으로 설정한 경우 update / delete 구문을 정상 동작하게 할 수 있다. [2. 확인 방법] show variables like 'sql_safe_updates' [3. 변경 방법] off set sql_safe_updates = 0; on set sql_safe_updates = 1;
MySQL. LAST_INSERT_ID [1. 개요] mysql 에서 제공하는 함수(?) LAST_INSERT_ID() 는 가장 최근에 성공적으로 수행된 INSERT 구문에 대해서 (update, delete 등 에는 영향받지 않음) 자동으로 생성 되는 AUTO_INCREMENT 인 column 의 값을 반환한다. 이 때, 주의할 점은 다음과 같다. 단순 insert 여러 번 수행 후 결과와 bulk insert 수행 후 결과는 다르다. 서버 연결 후, 별도의 insert 구문이 없으면 항상 0이 반환된다. LAST_INSERT_ID() 의 반환 값은 mysql server 에 연결 된 세션 별로 다를 수 있다. 가장 마지막에 insert 한 table 의 auto_increment 된 값을 반환한다. [2. 특징] 개요에서 정리한 주의 점에..