본문 바로가기

The Focus

(556)
사이즈가 정해지지 않은 일반적인 이미지는 긴 쪽의 사이즈가 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 보다 다루기 쉽지 않다는 점이 문제가 되겠지요. 어플리케이션 서버가 중간에 있는 ..
이클립스 헬리오스 Eclipse Helios 에서 탭 사이즈 조정. General, Ant, Java 코딩 작업을 하다 보면, 작업자들마다 다른 탭 사이즈를 일정하게 고정할 필요가 있습니다. 이때 기본 옵션에서 탭 사이즈를 바꾸더라도 .java 에서는 다르게 나옵니다. TabSize 의 DefaultValue 는 '4' 입니다만.. Depth 가 깊어지면, 3 이나 2를 사용하게 됩니다. 저는 대략 2.. Preferences, Java, Code Style, Formatter 등을 차례로 클릭하면 아래 그림과 같이 나옵니다. 아마도 'Active profile' 이 'Eclipse [built-in]' 일 겁니다. 다른 것이 선택되어 있더라도 상관은 없어요. 'Edit...' 버튼을 클릭합니다. (이미지에 있는 글자가 잘 안 보이시면, 이미지를 클릭해 보세요) 'Indentation' 탭에서 'Tab ..
LongRaw 와 Blob 은 getBinaryStream() 로 추출해서 루프를 통해 byte[] 단위로 스트림 아웃 하세욤.. 어떤 프레임 웍을 사용하든 기본은 DB 작업과 파일 작업. 만약 ResultSet 에 담긴 정보를 사용할때 프레임 웍에 따라 다른 클래스나 메소드에서 작업하면서, DB 작업에서 사용한 (Prepared)Statement 나 Connection 을 ResultSet 작업 전에 닫아 버리지 않도록 주의. LongRaw 로 된 사진 이미지도 Blob 과 동일하게 getBinaryStream() 메소드로 추출. SQLInjection 을 예방하려면 Statement 는 포기하고 PreparedStatement 를 사용. 아래 코드는 스프링 프레임 웍에서 필요한 부분만 따왔어요. 첫번째 메소드는 DB 쪽과 바로 닿아 있는 DAO 이고, 두번째 메소드는 DAO 에서 데이타를 읽어서 비즈니스 로직을 구현하는 부분. ..
IE 의 경우 소스보기가 막혔을때 인터넷 옵션의 보안 설정으로 간단하게 소스보기가 되는 군요. 예전에 네이버에서 보니까, 즐겨찾기를 하라 하는데.. 그럴 필요는 없구요. 그냥, 아래 그림처럼.. 인터넷 옵션 창에서 보안 탭, 인터넷, 높음 으로 하고 '확인' 버튼 클릭해 준 다음.. 소스 보기가 막혀있는 웹페이지를 열면 됩니다. 이미 열려 있으면 키를 눌러 새로고침을 하세요. 다만, iframe 으로 된 웹페이지라면 iframe 이 자동 리사이징이 되지 않는 점에 유의해애 합니다. 확인이 끝났으면, 다른 웹페이지를 볼때 자꾸 귀찮아질 수가 있으므로.. 원래대로 하시는 거 잊지 마시기를.. ~~
스프링 소스 다운로드, 각종 버전 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 이 있기 마련이고 일일이 찾아서 삭제해 주면 된다.