Back-End

    기술에 독립적인 DAO를 만들기 위한 DataAccessException

    DAO를 굳이 따로 만들어서 사용하는 이유는 무엇일까?가장 중요한 이유는 데이터 액세스 로직을 담은 코드를 다른 코드에서 분리해 놓기 위함이다.이렇게 함으로써 DAO를 사용하는 쪽(주로 Service or BO)에서는 DAO가 내부에서 어떤 데이터 액세스 기술(JDBC, JDO, JPA, TopLink, Hibernate, iBatis등)을 사용하는지 신경쓰지 않아도 된다.DAO와 사용하는 쪽은 DAO interface만 서로 공유하고 DAO는 DAO interface를 구현하고 있으면 되기 때문이다.하지만 문제가 있다. 바로 예외(Exception)이다. DAO가 JDBC를 사용하고 있다면 SQLException을 던질 것이고 Hibernate를 사용하고 있다면 해당 Hibernate에서 던져주는 Ex..

    Apache Common유틸로 숫자난수 생성

    import org.apache.commons.lang.RandomStringUtils; public class MainClass { public static void main(String[] args) { // Begin Lottery code System.out.print("6) The two digit lucky number for the day is >>>"); System.out.println(RandomStringUtils.randomNumeric(2)); // End Lottery code } } RandomStringUtils.randomNumeric(length); http://www.java2s.com/Tutorial/Java/0500__Apache-Common/RandomStringU..

    SpringMVC에서 간단한 ExceptionResolver 구성하기

    SpringMVC에서 예외를 다루기 위해 web.xml내 명시할수 있는 예외 맵핑 방식과 비슷한 HandlerExceptionResolvers을 제공한다.스프링 프레임워크가 맘에 드는 점중 하나가 어떤 이론이나 원칙에만 근거하여 현상을 무시하지 않고, 현실적인 부분에 대한 해결책을 제공하기 때문이 아닐까 싶다.(기타 다른 기반구조보다는.)간단하게 HandleExceptionResolver는 컨트롤러에 발생하는 예외상황(Exception)을 처리해주는 Resolver인데, SpringMVC안에 있는 SimpleMappingExceptionResolver의 경우 Exception에 대한 view으로 forward해주는 기능을 제공한다.

    스프링에서 Content Type별 View 자동 맵핑 하기

    프로젝트를 진행 하다 보면 제일 많이 사용하는 뷰 (org.springframework.web.servlet.view.JstlView) 외에 다양한 뷰가 필요 합니다. (ajax,pdf,excel 또는 특정 x-internet 전용..등) 이런한 다양한 뷰를 맵핑 하기 위해서 여러 방법이 존재 합니다. 일반적인 방법은 아래와 같습니다. ModelAndView modelAndView = new ModelAndView("jsonView"); 하지만 이런 경우는 코드에 특정 뷰에 대한 하드 코딩을 해야 하는 단점이 있습니다. 그래서 제가 생각 하는 방법은 URL extension 부분을 parsing해서 해당되는 Content Type뷰를 리턴해서 찾아가는 방법 입니다. 예를 들어서 http://localho..

    ibatis 태그. 자주 쓰는 것들.

    링크스크랩에서 본문 스크랩으로 전환하였습니다.맘껏퍼가시고 출처를 밝혀주시면 감사하겠습니다.^-^덧글도 남겨주심 ㄳㄳ. 출처 : http://happy2ni.egloos.com/9609765 [iBatis] 주요 태그 Tag 1] Alias 2] 기본 태그 Select : Insert : Update: Delete : Statement : 3] 프로퍼티 존재여부 존재할때 : 존재하지 않을때 : 4] 프로퍼티 Null 체크 Null 일때 : Null 아닐때 : 5] 프로퍼티 Empty 체크 Empty 일때 : Empty 아닐때 : 6] 프로퍼티 값비교 같을때 : 같지 않을때 : 7] ParameterMap 8] ResultMap 9] Dynamic select a from test id = #a# name ..

    JSON.simple 라이브러리를 이용한 Java에서 JSON 포맷 문자열 파싱

    출처: Geek The World!! JSON(JavaScript Object Notation)은 데이터 교환 포맷의 일종으로서 XML에 비해 상당히 경량화된 데이터 교환 포맷이다. Ajax가 인기를 얻자, Ajax를 사용하는 클라이언트측 자바스크립트 모듈과 서로 데이터를 주고 받는 서버간의 데이터 교환 포맷에 대한 관심이 늘어났는데, 기존 XML이 상당히 무겁고 파싱 및 생성하는데 있어 불편함을 토로하는 개발자가 많아졌고 그러한 점을 보완할 수 있는 JSON이 요즘 인기를 얻고 있는 추세이다. 더불어 REST에 대한 관심도 점차 커져가고 있는데, 작년에 잠깐 아마존 웹 서비스를 이용했을 때 듣기로는 아마존 전체 웹 서비스 사용량의 80% 정도가 REST에 의한 것이었다고 한다. JSON과 더불어 RES..

    JSON.simple

    2006년 10월 23일JSON.simple1.왜 JSON에 JSON.simple이 필요한 겁니까? 제가 AJAX클라이언트와 JSP사이에 송수신 데이터 포맷으로 JSON을 처음 사용했을때, 가장 걱정스러웠던 점은 어떻게 자바 문자열과 숫자가 AJAX 클라이언트에서 잘만들어진 데이터로 수신받을 수있도록 서버측에 정확하게 인코딩을 하느냐 였습니다. JSON 웹사이트의 'JSON in Java'를 들어가보고, 저는 JSONObject 와 JSONArray가 더 간단해질수 있다는 것을 발견하였습니다. 이미 간단해진 JSON 에서 보다 더 말이죠, 그래서 저는 JSON.simple 패키지를 작성하게 되었습니다. 2. 정말 그렇게 간단한가요? 제생각엔 그렇습니다. 예를 들어볼까요? import org.json.si..

    Spring - Interceptor 를 사용한 login 처리

    일반적인 사용자 외에 직접 주소를 쳐서 접근 하는 사용자를 방지하기 위하여매번 해당되는 요청시 마다 login검사를 해줘야 하는 경우가 있다. 이 경우 login검사를 모든 컨트롤러에서 해주기엔 게시판 하나만 있는 사이트라면 모를까다수의 기능을 가지고 있는 사이트에서라면 굉장히 애로사항이 꽃을 피울만한 일이다. 이런 경우에 login검사 처리를 Spring에서 제공하는 Interceptor를 사용하여 한번에 해결 가능하다 InterCeptor에서 제공하는 3가지 메소드는 각각 개입하는 시점이 다르다.preHandle - Controller 실행 요청전postHandle - view(jsp)로 forward되기 전에afterCompletion - 끝난뒤login 검사를 해야 될 시점은 Dispatcher가..