본문 바로가기

Server Oriented

(184)
JDK1.5 이상에서 Unchecked cast ... 경고가 나올때 메소드나 선언문에 @SuppressWarnings("unchecked") 사용 Java 나 JSP 모두 적용되는 부분. 메소드에 걸거나, 변수 선언시 걸면 된다. ... public class Temp ... { @SuppressWarnings("unchecked") /* Generic 사용시 경고 나면 이 문장을 메소드 정의 부분에 위치 */ public List getList(Object o) ... { ... @SuppressWarnings("unchecked") List list = ...; ... } } 아래 그림은, Eclipse helios 에서 request.getParameterMap() 에 포인트가 걸린 상태입니다. 물결무늬 밑줄이 그어진 곳에 마우스 커서를 올려 놓으면 선택창이 열립니다. 3가지 중에 하나를 선택(quick fix)하라는데 실제로는 2가지 중의 ..
사이즈가 정해지지 않은 일반적인 이미지는 긴 쪽의 사이즈가 500px 이고 압축률이 70% 이상인 .jpg 가 적당 서버에 생성되거나 등록된 사진은 필요시 후보정을 하여야 서버의 부하를 막을 수 있습니다. 원본 이미지를 웹서비스로 이용할때, 요즘 디카나 스마트폰에서 많이 사용하는 타입이면 1MB 를 훌쩍 넘깁니다. 목적에 맞게 가로/세로 사이즈나 .jpg 를 사용하는 것이 좋아요. 특별히 가로/세로 사이즈가 정해져 있지 않다면, 가로 세로 중에서 긴 쪽의 사이즈가 500px 을 넘지 않는 것을 추천합니다. 최근에는 .png 의 등장으로 손실되지 않으면서 압축이 되지만, 아직은 .png 가 대중적이지 않다고 보여집니다. 아무래도 인터넷 익스플로러(IE) 6.x 가 많이 사용되기 때문이지요. .png 는 손실 압축이 되지 않기 때문에, 70% .jpg 보다 파일 사이즈가 큽니다. .gif 는 색상이 256 가지로 한정되어..
[방법론] DB 에 LongRaw 나 Blob 으로 들어 있는 이미지를 어플리케이션 서버에 생성 어플리케이션 서버가 중간에 없는 2 Tier 방식의 CS 시스템은, Client 가 Server 에 붙어서 바로 작업을 하고 이때 서버는 DB 서버가 되기 쉽습니다. Client 프로그램이 수정되면 DB 서버에서 수정된 프로그램 모듈을 다운로드 받고, 데이타도 DB 서버에서 제공받는 식입니다. 이런 방식이 다른 건 다 좋은데, 두가지 어려운 점이 있습니다. 하나는, 원격지에서 접속을 하는 것.. (대신 보안성은 웹 방식 보다 높지요) 하나는, 이미지 등의 대용량 정보를 다루는 것입니다. 이미지 등의 대용량 파일은 그래서 오라클의 경우 LongRaw 를 사용합니다. 최근에는 Blob 과 Clob 도 사용하지만, LongRaw 보다 다루기 쉽지 않다는 점이 문제가 되겠지요. 어플리케이션 서버가 중간에 있는 ..
LongRaw 와 Blob 은 getBinaryStream() 로 추출해서 루프를 통해 byte[] 단위로 스트림 아웃 하세욤.. 어떤 프레임 웍을 사용하든 기본은 DB 작업과 파일 작업. 만약 ResultSet 에 담긴 정보를 사용할때 프레임 웍에 따라 다른 클래스나 메소드에서 작업하면서, DB 작업에서 사용한 (Prepared)Statement 나 Connection 을 ResultSet 작업 전에 닫아 버리지 않도록 주의. LongRaw 로 된 사진 이미지도 Blob 과 동일하게 getBinaryStream() 메소드로 추출. SQLInjection 을 예방하려면 Statement 는 포기하고 PreparedStatement 를 사용. 아래 코드는 스프링 프레임 웍에서 필요한 부분만 따왔어요. 첫번째 메소드는 DB 쪽과 바로 닿아 있는 DAO 이고, 두번째 메소드는 DAO 에서 데이타를 읽어서 비즈니스 로직을 구현하는 부분. ..
스프링 소스 다운로드, 각종 버전 http://www.springsource.com/download/community 상기 URI 를 클릭하면 아래 화면과 같이 사용자 정보를 입력하는 화면이 나옵니다. 그냥 간략하게 입력하고 'Access Download' 버튼을 클릭하세요.. 아래 그림 처럼, 각종 버전에 대한 다운로드가 링크됩니다. *. 자신의 프로젝트에 사용된 스프링 버전 확인 방법 org.springframework.core.SpringVersion.getVersion() 메소드를 .jsp 에 넣어서 화면에 찍으면 됩니다.
보안성을 높이려면 간혹 jspwork 디렉토리를 정리할 필요가 있다 .jsp 파일은 서블릿 엔진에 의해 .java 와 .class 파일로 jspwork 디렉토리에 생성됩니다. (물론, 서버에서) .java 나 .jsp 파일들이 생성되었다가 없어졌다가 하기도 하는데.. 실제 디렉토리에서는 삭제되었지만 jspwork 에는 관련 파일들이 남아 있어서, 의도하지 않은 서비스가 일어날 수도 있습니다. 이를 위해 jspwork 디렉토리를 정리할 필요가 있습니다. 서블릿 엔진이 올라가 있는 애플리케이션 서버가 여러대이면 해당 서버들 모두를 작업 대상으로 해야 합니다. 간혹, .jsp 나 .class 파일은 서버에 올렸는데.. 해당 화면이 제대로 반영되지 않기도 하는데.. 이때 jspwork 디렉토리의 해당 파일들을 모두 날려 보는 것도 방법입니다. 물론, 웹브라우저의 캐시 정보도 모..
static include 정적 포함된 jsp 수정시 포함하는 쪽 jsp 의 jsp_work 데이타도 정리 웹 어플리케이션 서버가 컨테이너를 간리할때, .jsp 파일에 대응하는 .class 파일을 생성하는데.. 그 위치가 바로 jsp_work. 정적으로 포함되는 .jsp 의 경우, .jsp 파일이 수정되어도 포함하는 쪽의 .jsp 쪽에 반영되지 않을 때가 있는데.. 이때는 jsp_work 에서 해당 파일을 찾아 삭제해 주어야 한다. 컨테이너가 여럿 있는 어플리케이션 서버의 경우, 컨테이너 마다 jsp_work 이 있기 마련이고 일일이 찾아서 삭제해 주면 된다.
ORA-01536 테이블스페이스에 영역할달양이 초과되었습니다 오라클 DB 계정상의 userB 가 userA 의 tablespaceA 를 공유하고 있을때, userB 에 대해서도 Quota 가 unlimited 로 되어 있어야 한다는 건 오늘 처음 알았습니다. userA 를 생성할때 tablespaceA 가 unlimited 로 되어 있지 않으면 제약사항이 있으리라는 건 다들 아시죠..? create user 명령으로 기본 생성시 quota 를 지정하지 않으면 limited 상태입니다. 오라클 DB 계정별로 이걸 처리해야 하는 거군요.. ^^. 아래 쿼리는 DBA 또는 시스템 권한을 부여받은 오라클 DB 계정으로 작업해야 합니다. 2가지 중에서 하나만 사용해 보세요. grant unlimited tablespace to ; alter user quota unlimi..