2018의 게시물 표시

우분투 JAVA 백그라운로드 실행

[출처] http://yoongi.tistory.com/67 우분투(리눅스) 환경에서 JAVA 프로그램을 데몬처름 실행하고 싶을 때 아래와 같은 명령어로 실행하면 가능합니다.  $ Java -jar  {runnable.jar}   & 위에서 ' & ' 문자는 백그라운드로 실행하도록하는 옵션값입니다. 그러나,  실행한 사용자가 로그아웃을 할 경우 사용자가 실행한 프로그램도 같이 종료되게 됩니다. 사용자가 로그아웃에도 영향을 받지 않고 시스템에서 백그라운드로 실행하도록 하는 명령어가  nohup  입니다. nohup is a POSIX command to ignore the HUP (hangup) signal. The HUP signal is, by convention, the way a terminal warns dependent processes of logout. [출처]  http://en.wikipedia.org/wiki/Nohup nohup 으로 실행하기 $ nohup java -jar  {runnable.jar}  &   # 또는  nohup  {쉘스크립트파일}  & nohup 으로 실행한 프로세스 종료하기 데몬으로 동작 중인 pid를 찾아서 kill 명령어로 해당 프로세스를 종료해야 합니다.  $ ps -ef | grep 'java -jar {runnable.jar}  # 또는  ps -ef | grep  {쉘스크립트파일}   # 위에서 확인한 PID를 이용하여 프로세스 종료 $ kill -9  {PID} nohup.out 파일? nohup 으로 실행하면 실행 위치에 nohup.out 파일이 생성된다. 이 파일은 nohup 으로 실행한 프로세스에서 리다이렉션을 사용하지 않은 ...

Java Spring boot Deploy

이미지
Deploy 방법에는 2 가지가 있다. Jar / War 둘다 상관은 없지만 만약 REST API 서버가 아닌 JSP 같은 웹페이지가 포함되었을 경우 무조건 WAR로 해 줘야 한다. 1. open pom.xml Package Type을 War 혹은 Jar 로 바꿔준다. (기본적으로 jar로 되어 있어있다)   2. 라이브러리를 추가한다. 보통 tomcat을 추가하면 된다.   3.  Maven을 통해 빌드한다. 이후 자동으로 Jar파일이 생긴다. 4. 처음 빌드를 할때는 등록하는 화면이 뜬다.  Goals에 package를 등록한다. 5. 파일이 생성됐다. 이걸 이용해서 실행하면 된다. 6. 실행방법 java -jar project.jar java -jar project.war

spring boot as a windows service

spring boot project 윈도우 서버 서비스에 등록하는 방법 이것을 사용하면 project deploy 이후 자동 실행을 위해 서비스에 등록후 사용할수 있다. 1. winsw 프로그램을 다운받는다.     https://github.com/kohsuke/winsw/releases     or     http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.1.2/ 2. 최신버전 exe 파일을 다운받는다. 3. 프로젝트를 Deploy 한 위치로 이동한다. (예: c:\project\target\PaymentWebService-0.0.1-SNAPSHOT.war or PaymentWebService-0.0.1-SNAPSHOT.jar) 4. 프로젝트 이름을 변경한다. (예: PaymentWebService-0.0.1-SNAPSHOT.war  --> PaymentWebService.war) 5. 다운받은 winsw 실행파일도 이름을 변경한다. (예: winsw.exe --> PaymentWebService.exe) 6. XML파일을 만든다.  디플로이한 파일 이름으로 모두 바꾼다.  예: <?xml version="1.0" encoding="UTF-8"?> < service > < id > PaymentWebService </ id > < name > PaymentWebService </ name > < description > PaymentWebService Windows Service </ description > < executable > java </ execu...

Lombok

Lombok is a project annotation. Lombok increase speed of developing. Don't need to create getter and setter even contractor. When create date model, Lombok will add method such as getter and setter. https://projectlombok.org/ http://jnb.ociweb.com/jnb/jnbJan2010.html

File path

File path = new File(".");     System.out.println(path.getAbsolutePath());  //--> 프로젝트 폴더의 주소가 출력됨 String path =  FileTest.class.getResource("") .getPath();  // 현재 클래스의 절대 경로를 가져온다.           File fileInSamePackage = new File(path + "test.properties");  // path 폴더 내의 test.properties 를 가리킨다.

Properties

public Properties getPropValue() { Properties prop = new Properties(); try { // prop.load(new FileInputStream(new ConstantsValue().PROPERTIES_PATH)); String filename = "config.properties"; // prop.load(getClass().getClassLoader().getResourceAsStream(filename));  prop.load(getClass().getResourceAsStream(filename)); } catch (IOException ex) { ex.printStackTrace();     } return prop; } Call Method public static void main(String[] args) { // TODO Auto-generated method stub String path = new PropUtil().getPropValue().getProperty("FILE_PATH");        } config.properties FILE_PATH= download\\bill

Jersey File download

With file Stream     @GET     @Path("/download")     public Response downloadBatchFile()     {         StreamingOutput fileStream =  new StreamingOutput()         {             @Override             public void write(java.io.OutputStream output) throws IOException, WebApplicationException             {                 try                 {                     java.nio.file.Path path = Paths.get("filepath"); //absolute path                     byte[] data = Files.readAllBytes(path);                     output.write(data);               ...

Jersey Framework

https://jersey.github.io/ Jersey Restful Web Services framework is an open source framework for developing RESTful Web Services in Java. It provides support for JAX-RS APIs and serves as a JAX-RS Reference implementation Components: 1. Core Server 2. Core Client 3. JAXB support 4. JSON support 5. Integration module for Spring

Python+Django

이미지
DJango works webserver for python as Apache. Install python: https://www.python.org/ Download: python v3.x (This version includes pip - it helps install of django) Checking python version : python --version Install django pip install django  

Java) Thread Synchronization(동기화)

Synchronization (동기화)  일반적으로 thread에서 많이 사용한다. 이유는 값을 동기화하기 위해서이다.  그럼 동기화란 무엇인가? 데이타를 여러 thread가 공유해서 쓸 경우 즉 collection data (list, array, vector 등등) 먼저 하나의 thread가 그 데이타를 사용중일 경우 lock 을 걸어둔다.   먼저 실행한 thread가 끝난 다음에야 다른 thread가 그 데이타를 사용할수 있다. 이렇게 하므로써 모든 thread는 같은 값을 볼수 있다.  물론 동기화를 많이 사용하면 속도가 느려지기는 한다. 대기 시간이 존재하므로 실행속도에 영향을 준다. 그러므로 꼭 필요한 경우에만 사용하는 것이 좋다. Collection 데이타 중에는 synchronization 기능을 포함한 것들도 있다. 그러므로 잘 구분해서 사용하는 것이 좋다. List Interface ArrayList 상대적으로 빠르고 요소에 대해 순차적으로 접근할수 있다 Vector ArrayList의 이전 버전이며 모든 메소드가 동기화 되어 있음 LinkedList 순서가 변경되는 경우 노드 링트만 변경하면 되므로 삽입, 삭제가 빈번한 경우에 빠른 속도를 보임 Set Interface HashSet 빠른 접근 속도를 가지고 있으나 순서를 예측할 수 없음 LinkedHashSet 추가된 순서대로 접근 가능 TreeSet 정렬 방법을 지정할 수 있음 Map Interface HashMap 중복을 허용하지 않고 순서를 보장하지 않으며 null 값을 허용함 Hashtable HashMap 보다는 느리지만 동기화를 지원하며 null값을 허용하지 않음 TreeMap 정렬된 순서대로 key / Value를 저장하므로 빠른 검색이 가능하지만 요소를 추가할 때 정렬을 진행하므로 상대적으로 시간이 오래걸림 Linke...

Python finding string and substring

print groupsName[gNum][groupsName[gNum].index("- ")+2:]; String s = abcde; find index of "b"; s.index("b") return 1; python substring s[:2] = abc; s[3:] = de;

Python control and Calculating Date

import datetime today = datetime.date.today( ) yesterday = today - datetime.timedelta(days=1) tomorrow = today + datetime.timedelta(days=1) print yesterday, today, tomorrow #emits: 2004-11-17 2004-11-18 2004-11-19 from datetime import date from dateutil.relativedelta import relativedelta print "today:" + date.today() lastmonth = date.today() - relativedelta(months=1) print "lastmonth:"+ lastmonth Result : today: 2018-03-26              lastmonth: 2018-03-26 Find File Created date time.ctime(os.path.getctime("first.txt"))