일반적으로 쿠키나 세션을 활용해서 로그인 처리를 많이 한다. 스프링 기반에서 인터셉트를 통해 세션 로그인 처리를 하는 부분을 정리해 보려고 한다. 전체적인 과정은 다음과 같다. 로그인 체크 인터셉터를 만든 다음, applicationContext.xml에 해당 인터셉터를 설정한다. 마지막으로 로그인 처리 중에 세션에 정보를 저장하면 된다. 이후, 인터셉터가 지정된 URL에 접근할 때는 로그인 체크 인터셉터를 통해서 로그인 여부를 확인하게 된다. 인터셉터를 활용한 흐름도는 다음과 같다. 로그인 체크 인터셉터 먼저 세션 정보가 있는지 여부를 확인하는 인터셉터를 만들어 보자. package kr.co.acronym.mini.util; import javax.servlet.http.HttpServletReque..
자바에서 리스트의 정렬은 Collections.sort() 메소드를 이용해서 쉽게 수행할 수 있다. 리스트의 값이 기본 타입일 경우에는 바로 Collection.sort(list)를 적용하면 된다. 만약 리스트의 값의 자체적으로 만든 객체(Object)일 경우, 어떻게 처리해야 할까? 우선 Comparator 인터페이스를 구현해서 내부에 compare 메소드로 정렬할 방식을 정한다. 그리고 Collection.sort를 호출할 때 Comparator 인터페이스를 구현한 클래스의 객체를 전달하면 된다. 예제를 통해서 살펴보도록 하자~ 먼저 name과 volume의 멤버 변수를 가진 MiniVo 객체를 다음과 같이 만든다. package kr.co.acronym.mini; public class MiniVo..
이클립스를 사용하다보면 가끔 자바 프로젝트인데도 일반 프로젝트로 인식해서 자바 관련 설정 항목들이 프로퍼티에서 나오지 않는 경우가 있다. 이런 경우, SVN 서버에 접속해서 프로젝트를 다시 신규로 Check out 하기도 하는데 아예 .project 파일을 수정해서 해당 항목이 제대로 나오도록 구성하는 방법을 정리해 보려고 한다. 자바 프로젝트의 경우, 아래와 같이 프로퍼티 또는 속성에서 Java Build Path 등 설정항목이 보인다. 다음은 이런 설정 항목이 사라졌을 때 처리하는 방법이다. 일반 프로젝트를 자바 프로젝트로 변경하는 것도 동일하게 처리하면 된다. 프로젝트 폴더의 .project 파일을 텍스트 편집기로 연다. 숨김 파일로 되어 있으므로 숨김 파일을 볼 수 있도록 설정을 바꾸거나 ls -..
자바 URL과 URLConnection 클래스 자바에는 java.net.URL 클래스를 통해 URL 주소를 인식할 수 있으며, 프로토콜, 도메인, 포트, 경로 등을 지정할 수 있다. URLConnection을 통해 자바에서 웹페이지에 접속하기 위해서는 URL 주소를 java.net.URL 클래스로 변경할 필요가 있다. 다음 두 가지 방법으로 URL 클래스를 생성할 수 있는데, 일반적으로 문자열을 받아서 처리하는 2번째 방법을 많이 사용한다. URL url = new URL("http", "blog.acronym.co.kr", 80, "537"); URL url = new URL("http://blog.acronym.co.kr/537"); 해당 URL에서 페이지 정보를 가져오기 위해서 다음과 같이 URLC..
Java Servlet을 활용해서 엑셀파일을 다운로드 하는 예제를 살펴보도록 하겠습니다. 일반 텍스트 파일인 CSV와 달리 엑셀로 다운로드 하기 위해서는 jxl.Workbook이라는 클래스가 필요합니다. 필요한 jxl.jar 파일은 다음에서 다운로드 할 수 있습니다. 웹 프로젝트 설정 index.jsp 파일 생성 먼저 파일 다운로드를 위한 화면을 만들어 보도록 하겠습니다. 이 파일은 엑셀로 저장할 데이터를 서블릿으로 넘겨주는 역할을 하게 됩니다. 이름을 index.jsp로 하고 다음과 같이 구성해 봤습니다. 미니의 엑셀파일 다운로드 예제 먼저 data라는 변수에 엑셀로 저장할 데이터를 넣었습니다. 여기에서는 컴마로 구분된 값을 전달하는 것으로 했습니다. (이 부분은 굉장히 자유롭게 구성할 수 있습니다. ..
비밀번호 찾기 기능에서 임시 비밀번호 생성이나 키 값을 만들 때, 일련번호 뒤에 붙이고 싶은 문자들을 랜덤하게 생성할 때 사용할 수 있는 소스입니다. 기본적으로 charSet을 숫자, 알파벳 등으로 설정하구요.. java의 random함수인 Math.random() 을 사용해서 처리했습니다. Math.random() 함수는 0 ~ 1 사이의 임시 값을 제공합니다. 정확하게는 0.0 이상 1.0 미만의 double 형의 실수값을 반환합니다. 즉, 1.0의 값은 절대로 나올 수가 없습니다. 그래서 만약 1 ~ 10 사이의 임시값을 구하려면 다음과 같은 코드를 사용하죠.. int n = (int) (Math.random() * 10) + 1; (int) (Math.random() * 10) 을 통해서 0 ~ ..
혹시 다음과 같은 오류 메시지를 보신 적이 있으신가요? type parameters of T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object Eclipse에서는 이런 메시지가 나타나지 않지만 Ant Build로 서버에서 컴파일하려고 하면 나타나는 경우가 있습니다 에러 메시지를 살펴보면 매개변수의 타입이 정의되지 않았다는 것 같은데요. int, java.lang.Object와 같이 명확하게 사용하라는 것 같습니다. 해당 오류를 찾아보니 자바 컴파일러의 버그 라고 하네요. http://bugs.sun.com/view_bug.do;jsessionid=b2..
이클립스가 이번에 Juno Release가 되었는데요. 디자인이 훨씬 깔끔해졌네요. 그런데 이클립스를 새로 설치할 때마다 인코딩이 기본으로 EUC-KR로 설정이 되어 있습니다. 그래서 기존 프로젝트를 SubVersion 등에서 받아보면 한글이 깨지는 것을 알 수 있죠.. 인코딩 설정을 UTF-8로 바꾸면 되는데.. 가끔 작업하는 것이라 변경하는 부분을 자주 잊어버리게 되네요. 그래서 이클립스에서 텍스트 설정하는 것에 대해서 모두 모아 봤습니다. 이클립스(Eclipse) 기본 설정에서 UTF-8 변경하기 먼저 이클립스 기본 설정을 UTF-8로 지정하기 위해서 환경 설정(Preference)로 들어가야 합니다. 윈도우에서는 Windows > Preferences.. 로 들어가면 되구요. 맥에서는 Eclips..
Global 서비스를 준비하다보면 고려해야 하는 것 중 하나가 시간대와 관련된 이슈입니다. 보통 UCT 또는 GMT라고 하는 표준 시간대가 있구요. 그리고 국내에서 사용하는 Local 시간대(지방시)가 있습니다. 표준시 기준으로 국내는 GMT+9라고 표시하는데요. 표준시보다는 9시간이 빠르다고 합니다. 표준시는 영국왕립 그리니치 천문대를 기준으로 동쪽으로 경도 15도씩 갈때마다 1시간씩 빠르고 반대로 서쪽으로 경도 15도씩 갈때마다 1시간씩 늦어진다고 합니다. 이런 이슈로 얼마전 TV에서 아프리카의 한 집에서 경계선을 중심으로 오늘과 내일이 공존하는 것을 본 기억이 있네요.. ^^ UTC/GMT와 Local Time 시간 변환 함수 가끔은 Global 서비스를 준비할 때 표준시와 지방시를 상호 변환하는 ..
Java 프로그래밍을 하다보면 static 메소드나 static 변수가 자주 사용되는 것을 볼 수 있습니다. 일반적으로 static 변수나 메소드를 사용할 때 적절한지 여부 보다는 계속 사용해 왔으니 하면서 습관적으로 쓰는 경향이 있는 것 같습니다. 예를 들면, log4j를 활용한 Logger 변수를 선언하거나 유틸리티 클래스를 만들어 사용할 때 메소드를 static으로 선언하는 경우가 종종 있습니다. Static 장단점 그런데 혹자들은 가능하면 static을 사용하지 않는 것이 좋다고도 합니다. 예전의 함수 위주의 절차적 프로그래밍에서의 전역변수 처럼 static을 사용하면 프로그램의 오류가 양산될 수 있고, 디버깅 하기도 어렵기 때문이기도 합니다. static 변수를 선언할 경우, 프로그램 어디에서든..
- Total
- Today
- Yesterday
- 구글
- Hadoop
- 하둡
- SCORM
- 분석
- 빅데이터
- 모바일
- XML
- r
- 자바
- 책
- 맥
- java
- 애플
- 세미나
- fingra.ph
- 클라우드
- 도서
- 아이폰
- ms
- 통계
- 마케팅
- 디자인
- mysql
- 자바스크립트
- 프로젝트
- HTML
- 웹
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |