Vim에서 여러줄에 걸쳐서 발생하는 패턴을 검색하기 위해서는 약간 다른 정규표현식을 사용해야한다. 메타문자 등이 있을 때 그 바로 앞에 \_ 문자열을 더해주면 되는데, 아래와 같이 자주 사용되는 표현을 예로 들자면 . ^ $ \s 다음과 같이 바꿔서 써줄 수 있고 \_. \_^ \_$ \_s [^A] 와 같은 문자열 클래스도 \_[^A] 로 변형해서 사용할 수 있다. 만약 […]
[Linux] PROMPT STATEMENT – PS1, PS2, …, PS4
맥 기본 터미널 기본 설정의 PS1은 현재 위치를 보여주지 않는다. 개인적으로 우분투에서의, scp remote 경로와 비슷한, 형태를 좋아하기 때문에 우분투에서의 것처럼 바꿔두었는데 (export PS1="\h:\W \u\\$") Linux와 Mac 에서의 기본 PS1 설정은 다음과 같고 Linux \s-\v\$ Ubuntu \h:\W \u\\$ Mac [\u@\h \W]\$ PS1 에서 사용할 수 있는 포매터는 아래와 같은 것들이 있다. Expression Output \t 24시 […]
[Bash] Crontab 못쓸때 작업 예약해놓고 퇴근하기
[Bash] Crontab 못쓸때 작업 예약해놓고 퇴근하기 금요일 저녁 늦은 시간 하던 bash 작업이 다 끝나지 않았을 때, 다음주 월요일에 출근했을 때 작업이 끝나있기를 바라는 마음에서 만들어봤는데 꽤 유용하게 쓸 수 있을 것 같다. crontab 이란 좋은 유틸이 있기는 해도 내 맘대로 막 등록하고 할 수는 없으니까 꼭 금요일이 아니더라도, 새벽 배치 집중시간을 피해 출근 전에 […]
[MySQL] WITH RECURSIVE 구문을 이용한 Row Generator
MySQL 에서는 아래와 같이, Oracle 에서처럼, 간단하게 리스트 데이터를 생성해내는 문법이 없다. SELECT LEVEL FROM DUAL CONNECT BY LEVEL < 9; 오라클에서는 connect by를 이용해서, 데이터를 추출할때 조인걸어 쓰거나 간단하게 테스트 데이터를 만들 때 유용하게 쓸 수 있었는데 다른 RDBMS에서는 기본 지원되지 않아 아쉽다. PostgreSQL 에서도 generate_series(1,n) 을 이용해서 range list 를 만들어 줄 수 […]
[Gmail] 검색 연산자
하나의 구글 계정 안에 회사 메일, 학교 메일, 개인 도메인 메일까지 당겨왔었고, 라벨링까지 해가며 나름 메일을 잘 활용했었는데 회사를 이직하고나서부터는 개인 지메일을 많이 사용하지 않게 되었다. 전 회사에서는 인터넷 망에서 자유롭게 메일이 가능했기 때문에 회사 메일을 개인 gmail 로 당겨와서 관리를 했었고 또 업무를 보려면 무조건 메일을 확인했어야했기 때문에 수신함에 읽지않은 메일이 10건을 넘어가는 적이 […]
[WordPress] Brute Force 로그인 공격 방어
웹서버 운영자라면 하루에 한번씩은 꼭 서버 모니터링을 해봐야할 것 같다. 한동안 wordress 서버 관리를 안 하다가 오랜만에 서버에 접속해봤는데, 세상에 secure 로그에 수 만 번 이상의 말도 안되는 로그인 시도가 감지되어 있었다. ssh에는 기본적으로 포트포워딩을 해뒀기 때문에 기본 포트(22)가 아닌 다른 포트로 접속 시도를 했다는 것 자체가 일단 충격적이었다. 그리고 아래와 같이 sshd 데몬 설정에서 […]
[WordPress] customized theme 업데이트
워드프레스를 이용하는 장점 중 하나가 수많은 디자이너, 개발자들이 만들어놓은 테마가 있어서 웹사이트 컨셉에 맞는 것을 골라 적용만 하면 된다는 것이다. 물론 완벽하게 내 입맛에 맞는 테마를 찾을 수는 없고 영미권 지역을 대상으로한 것이 대부분이기 때문에, 큰 틀만 맞으면 가져다가 커스터마이징 해서 사용하고 있다. 플러그인을 이용한다면 테마는 원본 그래도 놔두고 스타일시트, 외부 라이브러리 링크, functions 따위를 […]
[Jdbc] DriverPropertyInfo를 이용해 현재 드라이버 연결의 파라미터 값 확인하기
[Jdbc] DriverPropertyInfo를 이용해 현재 드라이버 연결의 파라미터 값 확인하기 jdbc에서 useAffectedRows 파라미터를 테스트해보던 중에 현재 jdbc 드라이버에 제대로 적용이 되어있는 것인지 확인이 필요했는데, java.sql.DriverPropertyInfo 를 이용해서 확인할 수 있었다. 아래와 같이 테스트 소스를 작성하고 파라미터 설정을 바꿔가면서 확인해보니 제대로 동작하는 것을 확인할 수 있었다. 출력 부분은 필요에따라 변형하면될 것 같고 어플리케이션 개발 단계에서는 DEBUG 모드로 […]
[httpd] http/2 설정
[httpd] http/2 설정 http/2 http/1.x는 요청 하나당 하나의 응답을 제공한다. 하나의 페이지에 모든 리소스들을 때려넣었다면 단 한번의 요청으로 웹페이지를 렌더링할 수 있겠지만 다양한 목적이나 제약에 의해서 대부분의 웹페이지들은 리소스들을 분리시킨다. 스타일시트나 자바스크립트 등의 정적인 리소스들은 캐시해두고 재사용하면 통신 비용이 절감될 것이고 미디어파일들은 대부분 다이나믹이기때문에 (미디어도 코드로 넣을 수는 있지만) 분리하는게 편리하기 때문이 아닐까 이런 상황에서 […]
[windows] Lenovo Thinkpad X390
Thinkpad X390 구입 배경 이직하게 되면서 전 직장에서 지급받았던 노트북은 반납했고 보안환경에서 근무하는 지금, 회사에서 지급된 맥북은 집으로 가져올 수가 없어서 새로운 노트북이 필요하게 되었는데 회사에서 사용하는 환경과 연속성(?) 이 있으면 좋을 것 같아 맥북도 고려했지만, 대한민국에서는 Windows 환경이 꼭 필요한 경우가 아직 있어 메인 컴퓨터를 맥으로 하기에는 불편함이 많을 것도 같고 필요한 사양을 맞추는 […]