일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Programming
- 포인터
- 긴옵션
- 포인터변수
- 커널
- getopts
- 약어
- TiKV
- DBMS 개발
- newSQL
- 한빛미디어
- OS 커널
- go
- FreeBSD
- SQLite
- Pointer
- UNIX
- Symbol
- DBMS
- 함수포인터
- Windows via c/c++
- UNIX Internals
- Preprocessor
- kernel
- 구조와 원리
- Golang
- TiDB
- 전처리기
- bash
- 컴퓨터 강좌
- Today
- Total
목록전체 글 (127)
sonumb
문제상황 및 원인 이는 $ZSH/oh-my-zsh.sh 적용 이후, PAGER 환경변수 less 명령어를 세팅한다. 이후 터미널에서 git log나 diff 실행시, PAGER 환경 변수를 통해 git log나 diff 내용을 '페이징' 해버린다. (즉, oh-my-zsh를 사용안하면 발생안하는 상황) 해결방안 아래와 같이 source $ZSH/oh-my-zsh.sh 라인 이후에 .zshrc 에 export PAGER= 를 추가하고, ( source ~/.zshrc 를 실행하자.
보호되어 있는 글입니다.
발췌: JIM GRAY. ‘TRANSACTION PROCESSING.’ 1.2 What Is a Transaction Processing System? . ... 생략 ... . This book contains considerably more information about the ACID properties. For now, however, a transaction can be considered a collection of actions with the following properties: 이 책은 ACID 속성에 대한 고려할 만한 더 많은 정보가 포함되어 있다. 그러나, 지금은 트랜잭션은 아래의 프로퍼티를 가진 행위의 모음으로 간주될 수 있다. . Atomicity. A transaction’s..
출처: https://www.hitachivantara.com/ko-kr/insights/dataops-insights/dataops/what-is-dataops.html DataOps란? 데이터 운영에 관한 모든 것. DATAOPS 란 무엇입니까? DataOps는 AI 시대를 위한 기업 데이터 관리입니다. DevOps에서 얻은 교훈을 데이터 관리 및 분석에 적용합니다. DataOps를 효과적으로 배포하면 분석 솔루션 시장 출시 시간을 단축하고, 데이터 품질 및 준수를 개선하며 데이터 관리 비용이 절감되는 것으로 나타났습니다. 데이터 운영은 제품이나 서비스 또는 솔루션이 아니라 방법론입니다. 협업과 자동화를 통해 조직의 데이터 활용을 개선하려는 기술적이자 문화적인 변화입니다. DATAOPS 플랫폼이란 무..
1.Layer 위 레이어는 s[dmv][iaxlncprm] 와 같은 형태로 이름이 지어지며, 실제 소스코드의 디렉토리 이름도 동일하게 명명된다. 참고로, 중간의 [dmv] 의 각 문자에 대한 의미는 아래와 같다. d: disk tablespace m: memory tablespace v: volatile tablespace 2. 계층의 역활 interface 레이어: 상위 모듈에 의해 호출되는 인터페이스 제공 application 레이어: SM을 직접적으로 호출하는 스레드 transaction 레이어: 트랙잭션 매니저, 락매니저 index 레이어: 인덱스 및 커서 조작 record 레이어: 논리적인 레코드 구조 page 레이어: 물리적인 레코드를 지칭 recovery 레이어: 로깅 및 recovery 프..
Prelude: 누가 내 테스트를 옮겼을까? 요즘 테스트 추세로는 대개 유닛테스트가 기본이지만, 리그레션 테스트는 선택적인 듯한 느낌이다. 이유가 여러 가지 있겠지만, 리그레션 테스트를 위한 구축/유지하는 비용이 막대하다. 테스트 정책 수립 테스트 프레임워크 구축 테스트 전용 인터프리터 개발 및 유지 보수 테스트 케이스 유지 보수 위의 두 가지만 하더라도, 테스트 전략을 위한 전문가와 프레임워크 구축을 위한 개발자가 필요하다. 더군다나, 테스트 대상에 따라서 테스트 프레임워크를 따로 구축해야 하는 가능성이 매우 높다. (범용성이 떨어짐..) . 큰 비용... 그러나 장기적인 관점에서 바라본다면, 그리 큰 비용은 아닐 것이다. (error가 defect가 되는 순간 그 댓가는... 생각만해도 끔찍하다.) ..
1. 짧게 매칭되는 패턴 찾기. malloc( sizeof( blahblab ) * 3 ) 를 malloc( sizeof(blahblab) * 3 ) 로 바꾸고 싶을때, :%s/sizeof( \(.*\) )/sizeof(\1)/g 와 같이 명령어를 쓰면 실제로는 malloc( sizeof(blahblab ) * 3) 이 된다. 즉, 가장 짧게 매칭되는 패턴으로 하고 싶다면 \{-}를 쓴다. :%s/sizeof( \(.\{-}\) )/sizeof(\1)/g 2. 검색시 대소문자 무시 2.1. 커맨드모드에서 명령어로 설정 :set ignorecase 혹은 :set ic :set noignorecase 혹은 :set noic :set smartcase 혹은 :set scs 검색 문자열이 모두 소문자이면, 대소..
1. Architecture의 4+1 관점 "+ 1 view"는 사용자의 관점(view)이며, "4 view"는 소프트웨어 개발 입장(구현 및 배포)의 view 이다. 일반적인 소프트웨어 개발 프로세스는 아래와 같다. 요구사항수집 Scenario View(User View): 요구사항 분석이후, 사용자 관점에서 본 소프트웨어 use case 혹은 use scenario이다. 설계 사전설계(개념설계) Logical view: 요구사항명세서+사용시나리오를 통해 큰 그림과 각 세부 모듈을 선언 및 설계한다.(단, 상세한 내용은 정의 하지 않는다) Process View: 로지컬 뷰에서 선언된 세부 모듈들이 어떻게 상호작용하는지 설계한다.(유즈케이스 혹은 사용시나리오로가 근거이며, 세세한 정의는 하지 않는다.)..
배시쉘 프롬프트상에서 사용자가 탭 키를 누르면, 탭을 삽입하지 않는다. 대개 탭을 두번 입력하면 배시 자동완성 기능이 실행된다. 탭문자를 넣기 위해 세가지 방법이 존재한다 1. Ctrl + v를 입력한다음 tab 키를 누른다. 2. 탭키를 지칭하는 문자를 넣는다. 3. 명령어 치환을 이용하는데, printf '\\t'를 실행한다 # data 파일 $ cat dat data1data2data3 # 1번 방법 $ cat dat | cut -d$'' -f2 data2 # 2번 방법 $ cat dat | cut -d$'\t' -f2 data2 # 3번 방법 $ cat dat | cut -d"`printf '\t'`" -f2 data2
아래는 숫자에 대한 정규표현식을 선언하고 이 표현식과 사용자 입력갑과 매치되는지 확인하는 쉘 스크립트다. #!/bin/bash input=$1 regexp='^[1-9][0-9]*$' is_string="false" # 패턴과 비교하여, 해당하는 문자인지 확인하는 연산자: "=~" if ! [[ $input =~ $regexp ]] ; then is_string="true" fi echo "is $input is string? $is_string" 위 정규식 표현을 보면, 10진수만 인식한다. 결과는 아래와 같다. $ sh regexp_number.sh 1234 is 1234 is number? true $ sh regexp_number.sh 2string is 2string is number? fals..