1.통신 규약에 대한 프로토콜에 대한 궁금증 발동하여 정의 해 볼것!
2.하이퍼미디어 및 동영상에 대한 분산 시스템에 대해서도 찾아볼것!
참조 : http://naraeee.tistory.com/1
1.통신 규약에 대한 프로토콜에 대한 궁금증 발동하여 정의 해 볼것!
2.하이퍼미디어 및 동영상에 대한 분산 시스템에 대해서도 찾아볼것!
참조 : http://naraeee.tistory.com/1
1.jeus-web-dd.xml 설정
<auto-reload>
<enable-reload>true</enable-reload>
<check-on-demand>true</check-on-demand> //class 변경 유무 체크
</auto-reload>
-- class 등 실시간 반영
2.jeus-web-dd.xml 설정
<auto-reload>
<enable-reload>true</enable-reload>
<check-on-demand>false</check-on-demand>
</auto-reload>
WEBMain.xml 주기 설정
<monitoring>
<check-class-reload>300000</check-class-reload>
</monitoring>
-- class 등 300초 반영
참조 : [http://blog.naver.com/dceye?Redirect=Log&logNo=50090035512]
지금까지는 그냥 String의 길이는 length()로 체크하고
배열에는 length로 하는 것이다. 라고만 알고 있었지.
왜 그럴까 하는 궁금증이 이제서야 났다.
그래서 API에서 배열에 대한 length를 찾아보았으나.. 없다.... 머지??
그래서 네이년에서 검색을 해보니 나처럼 궁금증이 있는 분이 블로그에 글을 올려놓았다.
[스크랩 : http://blog.naver.com/thtlsgkrtod?Redirect=Log&logNo=40133271545]
스크랩 내용을 빌리자면
----------------------------------------------------------
int, char, byte 등은 프로토타입의 변수입니다.
마찬가지로 []란 배열의 개념도 프로토타입의 클래스로 보시면 됩니다.
정해진 값들이는 것으로 length는 함수(메서드)가 아닌 필드(영역)라 보심 됩니다.
API는 클래스와 함수(메서드)를 사전식으로 놓은 것이므로 이에 대한 내용을 찾을 수 없습니다.
굳이 찾아보실려면 JVM 스펙문서를 뒤져보시면 됩니다.
----------------------------------------------------------
JVM 스펙 문서를 찾아 봤으나 ... length 필드 라는 영역을 찾을 수가 없었다.. (OTL...)
한 줄 500칸 이상 PGM
find ./[a-z]* -type f -name "*.jsp" | while read xx
do
xxx='awk' length() > 500 '$xx'
if
test "$xxxx"
then
echo $xx
fi
done
fail to execute jsp : gagaga07.jsp
(Exception) java.lang.NumberFormatException : For input string: "60504.44"
at java.lang.NumberFormatexception.forinputString(NumberFormatException.java:63)
at java.lang.Long.parseLong(Long.java:427)
at java.lang.Long.parseLong(Long.java:476)
at _donor._500_gagaga07_5fjsp._jspService(_500_gagaga07_5fjsp.java:80)
at jeus.servlet.jsp.HttpJspBase.service(HttpJspBase.java:54)
.......
왜 에러가 날까 하는 고민 끝에..
일단 컴파일 된 jsp의 자바 파일을 찾기로 했다.
1.컴파일 된 java 파일 내 에러 난 행을 찾아라.
위치는
WEB-INF에서 .warjspwork에 있었는데 디폴트 폴더인지 아니면 설정하기 나름인지는
추후 알아 보기로하고!!
Exception 로그에서 확인한대로 "e_500_gagaga07_5fjsp.java" 파일을 열어서
vi 편집기 (라인 넘버 :set number , 63G) 63행 확인
2.원인 파악
구글링을 해보니,
"60504.44"
소숫점 붙어 있는 것은 parseLong으로 변환이 안되서 에러 난 것임.
해결책은 parseFloat 이나 parseDouble로 변환한 다음에 (캐스팅)변환 해야 함.
charAt()로 한글자씩 읽어서 그것이 숫자에 속하면 자릿수를 곱하여 전체를 더하여 나타내는
함수로 자릿수는 String길이로 알게 된다고 한다.
만약 소숫점을 읽게 되면 숫자가 아니므로 예외가 발생하도록 함수를 만들어 두었다고 한다.
-API에 나와 있나? 음.... 이것도 추후 어디에서 설명 되어 있는지 찾아 봐야 겠다.
[찾아 볼것]
1.컴파일 된 폴더 설정
WEB-INF에서 .warjspwork에 있었는데 디폴트 폴더 인지 설정 가능 및 설정확인 하는 곳.
2.parseLong, parseInt 에 대한 함수 설명
-API 도큐먼트에서 찾아볼것
[출처 : http://valley.egloos.com/viewer/?url=http://mchh621.egloos.com/175431 ]
"".equals(str) vs str.equals("")
로 어느 것이 맞는 것인지 헷갈릴때가 있었다.
아니 아직도 헷갈린다.
어떤 방식이 맞는 것인가? 또한 NullPointException 에 대해 발생 하는 건 어떤 것인가?
두가지를 따져 보기로 하자.
오늘 내 소스를 보더니 사수가 equals로 null 체크시 객체 생성으로 메모리 효율성이 떨어질수 있으니
if( str == null && str.length() == 0 ) 에 대한 사용을 권유 받았다.
그래서 정확히 짚고 넘어가고 싶어 야밤에 정리 해 놓는다.
구글링에서 찾은 결과,
이유까지 설명해주면서 나에게 너무나 이해가 쉽게 될 수있는 두 곳이 있었다.
한곳은 nullPointException 처리에 대한 조건문 처리,
다른 한곳은 equals에 대한 param 위치
==========================================================================
1. nullPointException 처리
equals("")를 사용하면 불필요하게 새로운 스트링인 ""를 생성하게 되고
[ 출처 : http://tazz.tistory.com/30 ]
역시 불필요한 메모리 확보 없이 프로그램은 속도가 갑이다.
==========================================================================
2.equals 의 올바른 param 위치
1)equals는 boolean값을 반환한다.
2)매개변수로 Object 클래스를 input 시킨다.
3)Compares this string to the specified object.(문자열을 object와 비교한다.)
"문자열".equals(obj)
곧
String str = request.getParameter("param");
str.equals("");
대신 맞게 문법을 사용해도 불구하고 이런 경우,
str.equest(""); 이 null.equals(""); 로 비교 될수 있어
nullPointException 이 날수 있는 구조이다.
그러므로 null 체크에 대한 if문에서는 안 쓰는게 좋다가 결론이다.
스크립 : http://blog.naver.com/PostView.nhn?blogId=led73loh&logNo=40168301301
1.Tizen Native Project 생성
File > New > Tizen > Tizen Native Project > Form-based Application > With SceneManager
2.기본 파일 요약
(1) TizenToDoEntry : 처음 진입 파일, OspMain 함수를 실행 한다.
이 메인 함수에서는 TizenTodo 인스턴스를 생성합니다.
(2) TizenToDo : App life cycle 을 관리합니다.
jsp 수정하였지만 include file 로 주 페이지에서 변경 된 내용이 나오지 않아 서버 재가동을 해야 할것
같다고 말씀드렸으나 그럴 필요 없다는 PM님의 말씀을 듣고 touch에 대한 개념과
서버의 개념?을 좀 알게 되었다.
그러면서 자세히 설명 되어 있는 내용을 스크랩 해놓는다.
-------------------------------------------------------------------------------------------
한 1년전만해도 '너 touch안했지?', 'touch좀 해줘', '올리고 touch해.' 를 입에 달고 다녔다.
UI 구성등을 위해 jsp의 include를 쓸때, 성능 편의등의 이유로 include action 보다는 include directive를 선호한다.
하지만. include directive 는 한 서블릿으로 컴파일 되기때문에 head, menu, footer등 include 되는 파일이 수정이 되었을때 서블릿 컨테이너가 알아 차리질 못한다. 주체가 되는 jsp가 변경된것이 없기때문이다.
이럴때 필요한게 뭐? touch이다.
touch는 파일의 날짜를 변경하는 shell명령어이다.
touch를 사용하면 실제로 jsp파일이 변경된게 없어도, 날짜만 바꿈으로 서블릿컨테이너가 jsp파일이 변경된것으로 속일 수 있다. 그러면 커블릿 컨테이너는 해당 jsp를 다시 컴파일 한다.
하지만 프로젝트가 크면 resource를 포함하여 파일이 상상을 초월하게 많을때도 있다. touch하면 되는건 jsp파일뿐인데.
그래서 정해진 path아래에 jsp파일만 touch하게 명령어를 날리는데...
항상 시키기만 하다보니 명령어를 모르더군요. 그래서 정리차원에서 적어본다.
현재 폴더 아래에서 jsp만 찾아서 touch 함.
[http://zziuni.pe.kr/534?category=13]
궁금증이 생긴 소스 원본
※ 궁금증
1.new(std::nothrow)
new(std::nothrow) CBASE; 형식으로 할당 하면 되고, 예외발생시 예외를 던지지 않고,
NULL 포인터를 반환하게 해준다.