레이블이 java인 게시물을 표시합니다. 모든 게시물 표시
레이블이 java인 게시물을 표시합니다. 모든 게시물 표시

2016/09/07

Spring DB 연결 에러 - 01

몇 달 만에 보는 소스를 실행을 시키니 디비 연결 시에 한없이 기다리다 아래와 같은 에러를 뱉는다.


우선 개발 환경을 보자면...

개발 머신 : 맥북 (엘캐피탄)
IDE : STS
언어 : Java
프레임웍 : Spring 4+
DB Connection URL : jdbc:postgresql://localhost:5432/dbName
DB 머신 : VirtualBox Guest (Win 10)
VBox Guest 네트웍 : NAT (port forwarding TCP 127.0.0.1:5432 -> 10.0.2.15:5432)
DB : PostgreSQL 9.5

늘 그래왔던 것 처럼
잘 되던 건데 안된다... 하하하
너무 오랜만에 해보나...
특히나 예외 메세지가 마음에 안든다. null 이라니..... null 이라니!!!
답답한 마음에 PGStream 소스도 까서
org.postgresql.core.VisibleBufferdInputStream wrapped.read(buffer, endIndex, canFit) 까지 가니까 한참을 기다리다 -1을 뱉어버린다.
wrapped 변수는 InputStream 인터페이스인데 구현체를 찾기가 귀찮아서 저기까지만 봤다.
그리고 검색을 하니 Re: Locking on PGStream.ReceiveChar(PGStream.java:256)를 발견!!
하고 보니 윈도우 포트 문제 ㅠㅠ
하아.. 도대체 내가 언제 방화벽을 켜둔건가..

여튼 정답은 OS의 방화벽 문제!!

2016/05/10

JPA 2.1에서 LocalDate를 사용하는 방법

자바 8에서 마침내 새로운 Time API가 추가가 됐는데 JPA 2.1에서는 새 API를 사용할 수 없다.
이유는 자바 8이 나오기 전에 JPA 2.1이 먼저 릴리즈 됐기 때문인데...
그것 때문에 계속 기존 API를 사용하기도 답답한 노릇이라...
@Converter 애노테이션과 AttributeConverter 인터페이스를 활용해서 해결한다.

  • How to persist LocalDate and LocalDateTime with JPA

  • Java의 날짜와 시간 API
  • Casting in java

    instanceof를 사용한 static casting부터
    class를 사용한 dynamic casting,
    Generic과 Type을 활용한 dynamic casting,
    java 8에서 추가된 Optional과 method reference를 활용한 casting,
    Stream을 활용한 casting 까지.

  • Casting In Java 8 (And Beyond?)
  • Jackson JsonView가 작동하지 않을 때

    JsonView가 작동하지 않는 상황이 발생했다.
    참... 어쩜 이렇게 뭐가 안되는 상황은 죄다 한번씩 겪어 보는지..
    늘 그래왔듯이 검색 그리고 해결.

  • Jackson JsonView not being applied

  • 등록된 답변 보다도 답변에 추가된 Eric의 댓글이 포인트.
    Good catch regarding withView() not mutating the existing config. However, objectMapper.setConfig(objectMapper.getSerializationConfig().withView(YourView.‌​class)); works and is probably prefarable to subclassing ObjectMapper. work fine. thx.

    Java Map 객체의 동기화와 성능

    java Map 객체의 동기화에 대한 글과 Map 종류별 성능.

  • ConcurrentHashMap vs. HashTable

  • HashMap Vs. ConcurrentHashMap Vs. SynchronizedMap – How a HashMap can be Synchronized in Java

  • HashTable은 동기화 구현으로 인해서 성능이 좋지 않아 사용하지 않는 것이 정석.
    동기화를 고려한다면 SynchronizedMap 보다 ConcurrentHashMap을 사용하는게 성능에 도움이 된다는 내용.
    두 번째 블로그를 보면 차이가 참 많이 나네.