왜 당신의 스타트업은 개발자에게 인기가 없는가? 프로그래밍

왜 당신의 스타트업은 개발자에게 인기가 없는가
( Why Developers Aren’t Interested In Your Startup )




TOMCAT 죽지 안을때 (tomcat shutdown) └ Server

톰켓 서버를 사용하다가 보면 shutdown 명령어를 사용했는데도 

log 에 특별한 이상이 없는데 메모리에 계속 남아있는 경우가 있다

이럴때 매번 kill -9 PID 를 사용하는것보다 설정을 해서 불편함을 줄여보자


도움 되는 정보







위의 세가지 글을 읽고 이것 저것 해보았는데...정확하게 않되어서 수많은 시행착오 끝에 해결했다

================================
기본 개념은 tomcat 실행할 때
실행되는 tomcat 의 PID 를 저장한 후
shutdown 할 때 이 PID 를 이용해서 kill 명령어를 날리는 것이다
================================

1. 톰켓 홈 / bin 에있는 startup.sh 수정
    
    맨하단 exec "$PRGDIR"/"$EXECUTABLE" start "$@"  줄  바로 위에

    export CATALINA_PID=/home/server/tomcat/bin/catalina.pid  를 추가한다

    /home ~ /bin 의 경로는 자신에게 맞도록 적자
    
    그런뒤에 실행 시키면 " 맨 하단에 CATALINA_PID 가 적용되어 해당 경로에 catalina.pid 파일에 저장됐다고 나온다
    경로에 들어가 저 파일을 읽어보면 pid 번호가 저장되어있다


2. 톰켓 홈 / bin 에 있는 shutdown.sh  수정

   맨 하단에 exec "$PRGDIR"/"$EXECUTABLE" stop "$@" 줄 바로 위에 

   똑같이 export CATALINA_PID=/home/server/tomcat/bin/catalina.pid  를 추가한다

   그후 아래에 있는 
   exec "$PRGDIR"/"$EXECUTABLE" stop "$@"              을
   exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"     이렇게 변경하자

  저장하고 shutdown 을 실행하면 가장 마지막 줄에 보이듯이 killing tomcat  PID 가 잘 나오면서 다운된다







여러번의 삽질 끝에 이렇게 한건데 처음 startup.sh 에서 CATALINA_PID 를 만들고 shutdown.sh 에 그냥 -force 옵션만 
넣었더니 $CATALINA_PID 가 세팅되지 않았다면서 kill 이 동작하지 않았다
그래서 shutdown.sh 에도 CATALINA_PID 를 추가해주었는데 잘 동작했다

지금 와서 생각해보면 startup.sh 에 CATALINA_PID 를 빼고 shutdown.sh 에만 넣어도 잘 동작하지 안을까?? 
하는 생각이 들긴하지만..........잘돌아가는거...안건드릴란다..



PS 
 startup.sh 에 CATALINA_PID 를 뺐더니....동작않한다...그냥 넣자

Spring MVC 에서의 @ModelAttribute 설명 └ FrameWork

출처 : http://springmvc.egloos.com/535572



스프링 프레임 워크에서 @ModelAttribute 에 대한 설명이 아주 정확하게 잘 되어있는 사이트

덤으로 @valid 까지 잘 되어있다

@valid 란 

@ModelAttribute 를 사용하게 되면 꼭 값의 유효범위나 정확성을 확인해야하게 되는데 

그 과정을 aop 로 써 따로 할 수 있게 되는 기능이다..

아주 오래전에 플러그인처럼 찾았던 기능인데 이게 어노테이션으로 포함되어있었다는걸 이제서야알았다

@ valid 의 사용법은 따로 검색해서 알아봐도 아주 좋다


Java Xml 을 xpath 를 사용해서 파싱하자 └ JAVA



자바에서 XML 파싱은 어떻게 보면 노가다인데... 이부분을 상당히 단축시켜주는 라이브러리다


xpath 는 java 5 에서 추가된 기능으로 그냥 사용이 가능하다

xpath 설명 문서





추가로

 xpath 속도개선 http://techbug.tistory.com/93


추가 2 

 속도는 sax - dom - xpath 순이다 xpath 가 가장 느리다
 잘만 짠다면 크게 속도를 느끼지 못할 수 도 있다
  하지만 수많은 for 문이 돌면서 MAP 속에 값을 입력시킨다면 그때는 dom 을 이용해서 넣도록 하자 
  속도 차가 크다





Spring Annotation(어노테이션) └ FrameWork



스프링에서 사용하는 어노테이션의 정의


==================================================

정보는 스프링 3.0 document 를 참고
긴 글을 친절하게 stackoverflow 에 누군가 요약함 


ㅇ 본문 내용 요약

* 용도가 불문명한 컴포넌트 클래스를 위한 어노테이션

@Component :

Spring 2.5부터 등장.

스프링이 관리하는 컴포넌트라는 표시

* 용도가 분명한 컴포넌트 클래스를 위한 어노테이션 (Component와는 다르게 용도를 표시하기 위해 구별 한다고 합니다.)

@Repository :

Data Acess Object 역할을 하는 class에 표시하기 위해 spring 2.0에서 등장하였습니다.

등장한 이유는 JPI(Java Persistence API)의 Exception을 해석(Translation)하기 위한 용도 입니다.(automatic exception translation in your persistence layer)

보다 자세한 설명은 링크을 참고 하시기 바랍니다.

@Service :

Spring 2.5부터 등장.

용도 : Service Layer 표시.

@Controller :

Spring 2.5부터 등장.

용도 : Presentation Layer 표시

===========================================================================================


나머지 어노테이션은 알고 있었지만 컨포넌트 어노테이션의 정의를 몰라서 검색하다가 찾게되었다
워드프레스로 만들어진 사이트라 한글이 URL 에 포함되어있었는데 조금 더 명료한 URL 을 알게된다면 URL 을 교체해야겠다

1 2 3 4 5 6 7 8 9 10