'전체'에 해당되는 글 271건

  1. 2016.12.20 IntelliJ의 Search Everywhere에서 class 파일 제외시키기
  2. 2016.11.17 마우스 오버 시 JavaDoc 보기
  3. 2016.08.26 Spring boot 로 jar 파일 만들기
  4. 2016.07.05 톰캣 Parallel Depployment
  5. 2016.03.28 리눅스 경과시간 출력 (2)
  6. 2016.03.28 How to Execute PostgreSQL Commands Inside Unix Shell Scripts
  7. 2016.02.29 pgAdmin 컬럼 내용 전체 보기
2016.12.20 17:32

IntelliJ의 Search Everywhere에서 class 파일 제외시키기

Search Everywhere에서 파일을 검색하면 class 파일까지 같이 검색되어 불편함

 

해결 방법

Project Structure (Ctrl + Alt + Shift + S) - Module에서 target을 exclude

Trackback 0 Comment 0
2016.11.17 15:42

마우스 오버 시 JavaDoc 보기

File -> Settings ->Editor -> General의 Show quick documentation on mouse move에 체크

 

 

[출처] How to see JavaDoc in IntelliJ IDEA?

Trackback 0 Comment 0
2016.08.26 11:48

Spring boot 로 jar 파일 만들기

STS와 Maven을 쓰고 있다면

Run as > Maven build...

Goals를 package로 입력

Build를 성공했다면 target 디렉토리에 jar 파일이 생성됨


[출처] Spring boot 로 jar 파일 만들기

Trackback 0 Comment 0
2016.07.05 17:23

톰캣 Parallel Depployment

다른 서비스와 연동중인 서버에 새로운 버전을 배포할 때마다 서버를 내리기 부담스러워  hot deploy를 할 수 있는 방법을 고민하다가 Parallel Deployment를 알게되었다.


tomcat parallel deployment는 tomcat7부터 지원한다.


자세한 내용은 여기에서 확인



우선 parallel deploy 기능을 사용하기 위해서는 server.xml에 unpackWARs="ture" autoDeploy="true"로 설정이 되어 있어야 한다. (7부터는 자동으로 설정이 되어 있는 듯)


1. 기존 서비스(test.war)가 운영중인 상태

2. webapps에 test##2.war를 배포

3. test##2.war 파일의 압축이 풀리면서 test##2라는 디렉토리 생성

4. 해당 서비스로 접속을 해보면 test##2로 연결이 된다.


tomcat manager를 통해 확인해보면 서비스가 2개 구동중인 것을 확인할 수 있다.


위와 같이 동작하는 이유는 ##에 있다.

##은 context version을 의미하며, 숫자가 높을수록 최신이 된다.

버전을 붙이지 않으면 None specified로 보여진다.


연결이 되는 순서는 다음과 같은데


1. 새로운 요청은 가장 최신의 버전으로 연결. 따라서 새로운 서비스에 새로운 세션

2. 요청에 세션정보가 있으면 세션 메니저가 버전을 확인하고, 기존 세션은 기존의 서비스로 연결

3. 요청에 세션정보가 있으나 기존 서비스가 존재하지 않으면 최신 버전으로 연결


추가

1. @Scheduled 스케쥴러는 동시에 동작

2. 웹 페이지 세션은 유지되지 않음


[참조] Tomcat Parallel deployment

         톰캣 #05+a 배치 Parallel Deployment

         Parallel Deployment with Apache Tomcat 7

Trackback 0 Comment 0
2016.03.28 14:22

리눅스 경과시간 출력

※ centOS에서 bc를 사용하기 위해서는 설치를 해야한다. (yum install bc)


bash 스크립트로 작업을 처리하고선 그 경과 시간을 측정하고자 하려고 한다.

스크립트 특성상 다양한 방법이 있겠지만, date, bc, awk 를 이용해서 만들어 봤다.

#!/bin/bash
beginTime=$(date +%s%N)

# 여기에 작업 내용을 구현한다
sleep 1

endTime=$(date +%s%N)
elapsed=`echo "($endTime - $beginTime) / 1000000" | bc`
elapsedSec=`echo "scale=6;$elapsed / 1000" | bc | awk '{printf "%.6f", $1}'` 
echo TOTAL: $elapsedSec sec


date 를 이용해서 nanosecond 시간을 얻어서 그 차이를 구한다.

그리고 bc 를 이용해서 부동소수의 초단위의 시간을 계산하고, 그 결과를 awk 에 넘겨서 출력 포맷팅을 만들었다.


위의 실행 결과는 다음과 같다.

TOTAL: 1.003000 sec


[출처] [bash] 경과시간 출력하기

Trackback 0 Comment 2
2016.03.28 13:39

How to Execute PostgreSQL Commands Inside Unix Shell Scripts

Question: How do I executed PostgreSQL Commands inside a Linux / UNIX shell script?

Answer: With the help of the psql interactive terminal, you can execute the psql commands from the shell script. For this purpose, you should enable the password less login by pg_hba.conf, or .pgpass.


Syntax

psql DBNAME USERNAME << EOF
     statement 1;
     statement 2;
     .
     .
     statement n;
EOF


PostgreSQL: Execute SQL from shell scripts

EOF 블록 사이에 postgreSQL 모든 명령어 입력

dbname="test"
username="test"
psql $dbname $username << EOF
SELECT * FROM test;
EOF


PostgreSQL: Using variables in SQL from shell scripts

EOF 블록 내부에 쉘 스트립트 변수를 사용할 수 있음

dbname="test"
username="test"
wherecond="tgs"
psql $dbname $username << EOF
SELECT * FROM test WHERE col_name = '$wherecond';
EOF


이를 이용해서 스키마(schema)를 삭제하고 복구(restore)하는 실행파일 작성

dbname="test"

schemaname="test"

psql $dbname << EOF

DROP SCHEMA IF EXISTS $schemaname CASCADE;

\q

EOF

pg_restore --username "username" --dbname "test" --no-password --no-owner --verbose 백업파일(절대경로)


[출처] How to Execute PostgreSQL Commands Inside Unix Shell Scripts

Trackback 0 Comment 0
2016.02.29 10:33

pgAdmin 컬럼 내용 전체 보기

File -> Options -> Query tool -> Max. characters per column 을 -1로 변경


[출처] Select whole column content in pgAdmin

Trackback 0 Comment 0