본문 바로가기

전체 글

Hibernate에서의 CompositeUserType 사용에 대한 주의점.. 요즘 들어 Hibernate를 공부하다보니 점점 응용학습을 하는 시간을 갖게 되는데 이번 글에서는 CompositeUserType에 대한 설명을 좀 해보고자 한다. 현재 내가 하는 샘플은 기존 Mybatis를 연동해서 만드는 게시판을 Hibernate로 연동하는 방법으로 바꾸고 있다. 그래서 바꾸는 작업을 하던 중에 CompositeUserType을 사용하고 있는 상황을 만들게 되었다. 게시판을 만들다보면 작성일시와 수정일시를 넣어야 하는 부분이 있다. 비단 게시판 뿐만 아니라 작성일시와 수정일시 컬럼은 다른 테이블에서도 자주 사용되는 컬럼이다. 그래서 이 컬럼을 CompositeUserType을 사용해서 특정 타입으로 재정의를 하고 싶어졌다. 그래서 다음과 같이 재정의를 했다 import java.io..
쏘울 스마트키 단추형 전지 교체기 쏘울을 구입한지 이제 2년 반은 넘어선거 같다. 그래도 차를 거의 몰고 다니질 않다시피 해서 현재 총 주행거리가 6800 키로 정도뿐이 안된다(이럴꺼면 차를 왜 산거지..? 내 돈 주고 샀음 정말 억울할뻔 했다) 보험료와 각종 유지비야 내가 내야 하는거지만..암튼 각설하고.. 차를 몰고 다니질 않다보니 밧데리 관리 차원에서 1주일에 한번씩 시동을 걸어서 조금 오래 공회전을 시키고는 한다. 근데 2주전쯤 차문을 열려고 손잡이 버튼을 눌렀는데 문이 열리지 않는 것이다. 그래서 순간 아 얘 또 밧데리 방전됐나..(몇달전 밧데리를 한번 방전 시킨 경험이 있어서ㅠㅠ)싶어서 일단 스마트키에서 따로 키를 분리한뒤 그걸로 열고 시동버튼을 누르니 시동은 걸렸다. 그래서 한숨 돌리고 있었는데.. 어제 다시 시동을 걸려고 ..
Map과 VO(Value Object)의 해묵은 논쟁과 나의 결론.. 프로그래머란 생활을 10여년 가까이 하면서 프로그래머들간에 이런저런 논쟁을 하게 되는 상황을 종종 보게 된다. 논쟁이란 것이 결론이 나는 것도 있고 그렇지 않은 것도 있다보니 진행중인 논쟁은 언제나 있기 마련이다. ORM 방식의 개발과 SQL 방식의 개발중 어느것이 나은가?, 왜 SpringFramework에 종속적이어야 하는가 등등 직간접적으로 몇가지 접하는 논쟁이 있다. 오늘은 그 중 데이터 전달을 Map으로 하는게 나을지, VO로 하는게 나을지에 대해 좀 얘기해보고자 한다. 먼저 이 논쟁이 나온 배경에 대해 이해를 할 필요가 있어 이 부분을 설명해보도록 하겠다. 우리가 어떤 엔티티(엔티티는 설계상의 용어이므로 잘 이해가 안되는 분은 클래스라고 생각하시길 바란다)를 구체화한 객체를 전송할때 이런식으로..
LG G 패드 8.3 롤리팝 업그레이드 후기(2) 지난 글에서는 G 패드 8.3의 롤리팝 업그레이드 과정을 보여주었다. 이번 글에선 업그레이드 과정을 마친 뒤의 내용을 보여주도록 하겠다 업그레이드 과정이 끝나면 안드로이드 운영체제가 업그레이드 된 것이기 때문에 구글 플레이 스토어나 LG Smart World를 통해 설치된 앱들의 업그레이드 과정이 이루어지게 된다. 이런 일련의 업그레이드 작업이 한꺼번에 진행하게 된다. 그럼 이제부터 바뀐 화면들을 하나하나 살펴보자 먼저 잠금 화면은 다음과 같이 바뀌었다 노크를 이용한 보안을 하고 있기 때문에 노크 영역을 보여주고 있는데 이 부분은 예전과 다를게 없다. 달라진 점은 시간을 보여주는 부분이 달라졌다. 각자 쓰고 있는 홈 화면은 큰 변화는 없다. 다만 폴더 모양이 기존의 윈도우 폴더 스타일의 모양새에서 파란 ..
LG G 패드 8.3 롤리팝 업그레이드 후기(1) 내가 이 제품을 사용한지 한 8개월쯤 되지 싶다. 처음으로 산 태블릿이어서 그만큼 투자도 했고 애증도 있는 태블릿이다. 지금이야 LG는 G 패드 8.3보단 G 패드 7.0, 8.0, 10.0을 밀고 있으나 하드웨어 스펙으로 보면 8.3이 더 좋다(저 세 모델은 엄밀하게 얘기하면 보급형이다) 그러나 G 패드 계열 제품중 가장 먼저 나왔음에도 불구하고 롤리팝 업그레이드 순서는 G 패드 시리즈중 가장 꼴지로 하게 되었다. G 패드 7.0, 8.0, 10.0이 롤리팝 업그레이드가 되었다는 소식을 접하면서 와신상담을 며칠을 했던가..이제 그 보답을 얻나 싶다. G 패드를 처음 업그레이드 하는 사람도 있을것 같아서 얘기하는데 예전에 나는 킷캣 업데이트 하던 도중 G 패드가 뻗은 적이 있어서 LG 서비스 센터까지 다..
Spring Security 3.2.4 적용에서 겪은 세션 동시성 관련 로그인 버그와 해결책.. 요즘 Spring Framework를 Java를 이용하는 환경 설정을 적용해보면서 기존에 내가 블로그에 올렸던 Spring Security 또한 Java로 환경설정 하는 식으로 적용해보고 있다. 이와 관련된 글도 블로그로 따로 올릴 예정이다. 그러나 아직은 정리를 좀더 해야 할 부분이 있어서 일단은 적용 과정에서 겪은 내용 중 하나를 써볼까 한다. 처음 블로그에 글을 썼을 당시의 Spring Security 버전이 3.2.4여서 일단 이것으로 Java Config도 적용해보기로 했다. Spring Security Reference 문서와 기타 문서들, 그리고 구글링을 통해 기존 DB로 인증관리 하는 식으로의 XML 설정들을 모두 Java로 바꾸는데 얼추 정리가 되었다. 정리가 되다보니 몇몇 기능을 확인하..
Maven에서 Tomcat을 실행시켜 결과를 확인해보자.. 기존에 Maven을 이용해서 Spring MVC를 개발할때는 어떤식으로는 WAS가 자신의 컴퓨터에 설치되어 있어야 했다. Tomcat이든 JBoss든..아마 대부분 Tomcat을 설치해서 하겠지만.. 근데 Eclipse에서 Tomcat 기반으로 개발할땐 불편한점이 몇몇 있었다. 프로젝트 설정에서 Deployment Assembly의 속성을 건드려줘야 하고 또 pom.xml에서 dependency 태그에 있는 javax.servlet.servlet-api와 javax.servlet.jsp-api를 주석처리를 했다가 다시 war로 배포할때는 주석처리한것을 지워야 했다(scope를 provided로 해도 tomcat 기동시 오류 발생..) 그래서 이런 불편한 점을 없애볼려고 시도한것이 Jetty를 이용해서 빌..
Spring 3.1의 Controller에서 Custom Annotation을 파라미터로 이용했을때의 Map 클래스 받는 법 최근에 Spring 3.2와 마이플랫폼 연동을 하는 과정을 하면서 애로사항을 겪은 것이 있어서 이 포스트를 통해 정리하게 되었다. Controller에서 메소드의 파라미터에 Custom Annotation을 이용하여 사용자가 보낸 값을 받을때 Map으로 받는 것에 문제가 있었다. 이렇게 얘기하면 와 닿지가 않을수도 있을것 같아 예를 들어보도록 하겠다. 흔히 Controller의 메소드에서 파라미터를 사용할때 다음과 같이 상황에 맞는 적절한 어노테이션을 사용하게 될 것이다. public String getList(@RequestParam(name="no") int no) throws Exception 이렇게 파라미터를 받아다가 변수에 바로 설정하는 식의 방법을 많이 사용할것이다. 위의 예에서는 int 형으..