복잡한 정규식이라고 썼지만 별로 어렵지 않다. 찾고 싶은 정규식의 앞뒤로 오거나 오지말아야 하는 조건을 추가하는 방법이다. 아래 4가지 방식만 기억하고 있다가 필요할 때 찾아쓰면 된다. X(?=Y) : X 다음에 Y 가 오는 경우 (Positive Lookahead) X(?!Y) : X 다음에 Y 가 오지 않는 경우 (Negative Lookahead) (? Positive 의 경우 단순히 XY 로 정규식을 만들어도 동일하게 검색할 수 있는데 굳이 사용하는 이유는 무엇일까? 캡쳐(추출)할 수 있는 데이터의 차이가 있기 때문이다. 즉, 앞뒤로 오는 조건을 제외하고 문자열을 추출이 가능하다. 이는 주로 검색할 문자열과 replace 시킬 문자열이 다를때 사용된다. 위 기준으로 Lookahead 를 사용할때 ..
훌륭한 소프트웨어를 생산하는데 가장 중요한 요소가 팀워크(협업)이라는 사실은 누구나 알고 있다. 관련해서 예전에 읽었던 협업의 기술 이라는 책의 내용을 다시금 보게 됐다. 요즘엔 더 좋은책들이 많지만 그 당시에는 이런 소프트스킬에 대해 다루는 책이 흔하지 않아 신선하게 봤던 것 같다. 최근에는 더 좋은 책이 많아 추천하지는 않지만 여기서 나온 세가지 키워드는 협업 뿐만 아니라 개인적인 성장을 위해서도 필수적인 소양이라고 생각되어 잊지 않도록 다시 정리해본다. 어떻게 하면 훌륭한 팀을 구축할(또는 찾아낼) 수 있을까? 분명 쉬운 일은 아니다. 협업에 대한 해탈의 경지에 이르려면, 우선 우리가 '세 개의 기둥' 이라고 부르는 사회학적 기술을 학습할 필요가 있다. 이 세 가지 요소는 사람 간의 관계에서 단지 ..
git reset 명령어는 인덱스 취소와 커밋 취소라는 두가지 동작을 한다. 커밋 취소의 경우에는 옵션에 따른 차이점을 숙지하는게 중요하다. 인덱스 취소 add 를 통해 인덱스에 추가된 파일을 취소한다. # git add a.txt 취소 git reset a.txt # 인덱스 파일 전체 취소 git reset 커밋 취소 이전 커밋 상태로 돌아간다. 실행모드(mixed, soft, hard)에 따라서 인덱스, 워킹트리까지 취소 시킬 수 있다. --mixed (기본값) HEAD 를 지정한 커밋 시점으로 복구한다. 모든 인덱스를 취소시키지만 워킹트리는 유지된다. 취소된 커밋/인덱스 내용은 워킹트리에 남아있다. --soft HEAD 를 지정한 커밋 시점으로 복구한다. 인덱스 및 워킹트리는 유지된다. 취소된 커밋..
업무중에 쉘스크립트에서 버전값을 체크할 일이 생겼다. 예를들어 버전값이 5.2.3~5.2.15 에 해당하는지 확인하는 내용이다. 즉 버전 범위 검사다. 구글링해보니 여러가지 방법들이 나온다.아래는 그 중에 적당해보이는 3가지로 테스트 해본 스크립트이다. 123456789101112131415161718192021222324252627282930313233343536#!/bin/shVERSION="5.2.13" #default if [ ! -z "$1" ]; then VERSION=$1fi echo "version is $VERSION"echo "" # 1) egrep 명령을 이용한 방법 (egrep 은 grep -E 와 동일함)echo $VERSION | egrep -q "^[5].[2].([3-9]|1..
- Total
- Today
- Yesterday
- 변경함수
- amazon vpc
- 코드악취
- 위임
- 박소연
- 코드스멜
- 디버깅
- Debug
- 그림으로 공부하는 IT 인프라 구조
- 그림으로 배우는 HTTP & Network
- AWS
- 일잘러
- 리팩터링이란
- Debugging
- 조건부 로직
- 마틴파울러
- 일 잘하는 사람은 단순하게 말합니다
- 리팩토링
- 제어플래그
- 안심 첫 문장
- 매개변수화
- amazon aurora
- https
- SSL
- Debug It! 실용주의 디버깅
- aws fargate
- 질의함수
- Refactoring
- HTTP
- 지시의 언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |