정규식은 주로 특정 패턴을 찾을 때 많이 쓴다. 하지만 문서편집기에서 replace 기능을 정규식을 이용해 특정 단어를 남기고 나머지 글자들을 지우고 싶을 때 사용하려면 어떻게 막상 막막할 때가 있다. 아래는 그런 경우 사용하는 정규식 패턴이다. 정규식의 기본적인 문법은 알고 있어야 한다. 아래는 애국가의 일부이다. "삼천리"라는 단어만 빼고 나머지 단어들을 선택하고 싶다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 남산위에 저 소나무 철갑을 두르듯 우선은 "삼천리"라는 단어를 선택하는 정규식 패턴을 만든다. 삼천리 우리는 위 단어가 아닌 단어를 선택하고 싶은거니까 부정형탐색을 이용한다. (?!삼천리) 시작 시점을 정했으니 단어 ..
Docker 를 사용할때 Container 안에 생성된 파일을 Host로 옮기거나 Host 에 파일을 Container 복사가 필요할 때가 있다. 이럴때 Dokcer 명령어 중 CP를 사용해서 복사할 수 있다. 간단한 예제로 사용법을 알아보자 1.파일 생성 "docker copy host from to container" 라는 문자열을 포함한 docker-test.txt 파일을 생성한다. 2. container 확인 및 파일 복사 seoul-data-searcher 라는 container를 확인할 수 있다. 해당 container 안으로 파일을 복사해 보겠다. ➜ docker cp [호스트파일경로] [컨테이너명]:[컨테이너저장위치] 3. container 진입 및 복사된 파일 확인 실행중인 contain..
윈도우 운영체제에서 웹 애플리케이션을 데몬으로 가장 적절한 방법은 윈도우 서비스로 등록하는 방법이다. 업무 중 윈도우에 서비스를 배포할 일이 있어서 검색하는 중 아주 간단히 윈도우 서비스를 등록하는 방법이 있어 기록한다. NSSM Non-Sucking Service Manager 의약자이고 윈도우 서비스 등록을 아주 간결하게 할 수 있게 지원한다. 아래 그림처럼 최신 버전의 nssm 을 다운로드 받는다. 윈도우 서비스 등록 압축을 해제하면 32bit 용 64bit 용 2개의 nssm.exe 실행 파일이 나오는데 운영체제에 맞게 사용하면 된다. 먼저 bat 파일을 작성하고 아래와 같이 등록하면 된다. -myapp-start.bat @ECHO OFF #call -jar .jar call c:\programf..
axios 를 쓰던 ES6 의 fetch 를 사용하던 다른 출처(Cross Origin)를 통해 로그인을 시도할 경우 정상적으로 JSESSIONID 값을 저장하지 못하는 경우가 있다. 오늘은 그 원인과 해결 방법을 알아보자 Cross Origin 이란? cross origin 이란 서로 다른 출처를 말하는 것 이다. 예를 들어 같은 호스트여도 port 가 다르면 출처가 다르다. 이 건 SOP 정책에 의한 것인데. 프로토콜, 도메인, Port 중 하나라도 다를 때 적용된다. //not same origin http://localhost:3000 http://localhost:8080 Request.Crendentials fetch API 를 이용할 경우 Request 라는 인터페이스를 이용한다. 해당 인터..
Jenkins 에서 Build 중 Shell 명령어에 sudo 를 포함하고 있으면 아래 메세지를 만날수 있다. sudo: no tty present and no askpass program specified. sudo 명령어 실행시 패스워드를 입력 받기 때문에 해당 부분에서 오류가 발생한다. 결국 jenkins 계정에 SUDO 명령어 입력시에 패스워드 받지 않고 바로 실행할 수 있게 설정하면된다. 방법은 /etc/sudoers 파일을 아래와 같이 수정하면 된다. $sudo vi /etc/sudoers ~~~~ 생략 # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d jenkins ALL=(ALL..
jquery에서 $.when() 은 Deffered 객체를 인자로 받는 Promise 관련 메서드이다. 기본적으로 가변형 인자를 받는데 동적인 Deffered 객체를 배열에 담아 인자로 전달할 때가 있다. 아래는 그 방법이다. var d1 = $.Deferred(); var d2 = $.Deferred(); var d3 = $.Deferred(); var defferedArray = [d1, d2, d3]; //ES5 이하 $.when.apply($, defferedArray).done(); //ES6+ 가변 인자를 이용 $.when(...defferedArray).done();
SSH를 통해 원격 작업시에 처리 시간이 긴 작업은 Session Time Out 으로 연결이 끊어져서 곤란한 경우가 있다. 이경우 아래와 같은 설정으로 연결 시간을 늘려줄 수 있다. 해당 작업은 Client 가 아닌 Server (내가 접속하려는 원격 서버) 의 설정을 변경해야 된다. ssh 서버 설정 변경 sudo vi /etc/ssh/sshd_config # sec ClientAliveInterval 300 #300초 ClientAliveCountMax 10 #10번 확인 300 * 10 = 3000초 연결 유지 ssh서버 재시작 sudo service sshd restart 현재 접속되어 있는 모든 터미널을 종료하고 다시 접속하면 된다.
- Total
- Today
- Yesterday