equals()를 레퍼런스 비교하는데 사용 하지 마세요.

회사에서 다른 분의 코드를 보다가 다음 코드가 있어서 질문 했습니다. (해당 소스를 그대로 가지고 온것은 아닙니다.)

레퍼런스 비교하는데 썻다고 합니다. 그래서 조금 더 찾아봤습니다. equals는 모든 클래스가 암묵적으로 확장하는 Object의 메소드 입니다. 그래서 오버라이딩을 하지 않으면 Object에 정의된 equals()를 사용합니다. 그 구현을 보니 다음과 같았습니다.

결국엔 객체간의 레퍼런스 비교하는 ‘==’를 사용하고 있습니다. 그럼 […]

Spring-Data-JPA 사용하기

참고: http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/ User라는 도메인 관련해서 RDB에 CRUD를 작성하는 걸 목표로 한다. 1. Domain 정의

@Entity: 해당 도메인 객체를 엔티티로 사용한다는 것을 알려준다. @Id: 엔티티의 Id 를 정의해준다. Id는 반드시 있어야 한다. @GeneratedValue: Id 값의 생성 방법을 정의한다. GenerationType.AUTO는 자동생성을 의미한다. Repository 정의

CrudRepository: Repository를 확장한 interface로 기본적인 CRUD를 정의해 놓은 인터페이스. 여기까지 만들어 놓았으면 […]

JibxMarshallerTests causes build failure on Windows

스프링이 gradle로 빌드 툴을 변경했다는 소식을 듣고 소스를 내려받고 빌드를 시도했다. 몇가지 테스트에서 에러가 났다. 1. 윈도우 7의 경우 콘솔창을 열 경우에 관리자 권한으로 실행해라. 그렇지 않으면 권한 문제로 테스트에 실패한다. 2.  JibxMarshallerTests 실패할 경우 ${basedir}/src/test/resources/org/springframework/oxm/jibx/binding.xml 파일을 열고 <binding> 엘리먼트에 name 속성을 추가해주면 된다. <binding name=”binding”> 참고  

spring-test-mvc 이용시 NoSuchMethodException 해결 방안

스프링 mvc 를 쉽게 테스트 가능하게 해주는 spring-test-mvc 라는 프로젝트가 나왔다. 이것을 이용하면 보다 상세하게 테스트를 할 수 있다. 예로 @RequestMapping 이라든지, 결과 페이지의 contents의 특정 값 또는 헤더 정보까지 확인이 가능하다. spring-test-mvc의 자세한 설명은 생략한다. 여튼 이 프로젝트를 이용해서 테스트를 하려 하는데, 자꾸 다음 에러가 발생했다. [java]java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V[/java] 이것이 뭔 소리지? 한 2시간 정도 […]

cafe24에서 /wp없이 도메인에 워드프레스 연결하기

cafe24에서는 여러가지 프로그램을 자동 설치해주는 기능이 있다. 자동 설치된 결과물을 보면 다음과 같이 설치가 된다. 웹서비스의 루트가 /www 라면 /www/wp에 워드프레스가 설치된다. (참고사항, 최근 워드프레스는 설치 디렉토리가 wp가 아닌 wordpress라면 /www/wordpress 로 변경해서 처리해줘야 한다.) 인터넷을 좀 아는 사람이라면 쉽게 알 수 있을 건데… 자동 설치 후 워드프레스 접속을 하려면 USER_DOMAIN + /wp/ 를 주소창에 […]

윈도우 모바일 폰

2012년 1월, KT에서 윈도우 모바일 폰이 나왔다. 내가 담당 개발하고 있는 서비스는 아이폰, 안드로이드 계열 폰에 서비스를 제공하고, 다른 폰은 매몰차게 문전박대(PC 사이트로 이동) 하고 있었다. KT의 자회사인 우리 회사는 KT폰에 서비스를 제공하라는 명을 하달받고 그 즉시 제공을 검토했다. 처음엔 유저 에이전트 기반의 필터링에서 제공하도록 필터링 항목에서 제외시켰다. (Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS […]

XStream을 이용한 언마샬링 Java 모델 생성 방법

내가 일하는 곳에서는 데이터를 제공해주는 시스템이 노후화되어 있는 부분이 많다. 그래서 간단한 데이터도 대부분 XML형태로 되어 있고 well-formed 가 아닌 곳이 많다. 난 XStremam을 XML을 통해 받는 데이터를 Java 오브젝트로 변환하는데 사용한다. 이유는 생산성이 빠르기 때문이다. 요새는 Jaxb 2.x 에서도 annotation 기반으로 설정이 가능해서 유사하다고는 하는데, 난 아직 XStream만 써봤다. 이제 간단히 사용하는 방법이다. Java […]

문자열을 거꾸로(reverse) 뽑아내기

문자열 조작에 대한 여러가지 요구사항이 있습니다. 그리고 이를 풀어내는 다양한 솔루션이 존재하구요. 이 범주에 속하는 것중에 하나가 문자열을 거꾸로 변환하는 질문인데요. 이 작업을 수행하기 위해서는 문자열을 배열로 변경하고 그 인덱스의 끝을 구해서 처음까지 리턴하는 방식으로 처리할 수 있습니다. 이 글에서는 이 방법이 아니라 JDK에서 제공하는 방법을 이용하는 솔루션을 소개합니다. 간단합니다. StringBuilder의 reverse()를 이용합니다. [java]<span class="Apple-style-span" […]

Velocity 에서 for loop 사용하기

Java 에서 반복작업은 for loop을 사용해서 많이 했다. Java 5 전에는 다음과 같이 for (int i=0; i++; i<n) {} 이런 식으로 사용했었다. 그리고 java 5에는 다음과 같은 문법이 추가되면서 좀 더 편해졌다. for (String str : String[] strArray) {} 위 문법의 장점은 인덱스 없이 주어진 일련의 데이터에 대해서 동일한 작업을 할 수 있다는 것이다. 각설하고 […]