dev 129

Spring @Validated 어노테이션 사용하기

@Validated 어노테이션은 JSR-303 스펙의 @Valid 어노테이션을 확장(?)한 스프링의 어노테이션이다. Bean validation을 하는데 추가로 group을 지정할 수 있다. @Validated에 group을 지정하면 bean에서 groups를 지정한 bean validation annotation만 동작하며@Validated에 group를 지정하지 않으면 bean에서도 groups를 지정하지 않은 bean validation annotation만 동작한다. 이것을 피하려면 javax.validation.groups.Default 를 groups에 함께 지정하면 된다.(group interface가 javax.validation.groups.Default 를 상속하는 방법도 있지만, 정상..

dev/java 2018.07.22

카카오 SDK android key hash 이슈

안드로이드에서 카카오 SDK 적용시 카카오 개발자 사이트에 안드로이드 키해시를 등록해야 한다. 그리고 키해시 구하는 방법은 개발가이드에 잘 설명되어 있다.https://developers.kakao.com/docs/android#%ED%82%A4%ED%95%B4%EC%8B%9C-%EB%93%B1%EB%A1%9D 그런데 이번에 SDK동작 이상으로 디버깅 하다보니 위 가이드에서 설명한 커맨드라인 방법과, 자바코드 방법의 결과가 다르다! [참고]커맨드라인으로 구하기keytool -exportcert -alias androiddebugkey -keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64자바코드로 구하기pu..

dev/android 2018.04.12

change maven local repository path

메이븐은 기본 레파지토리 경로는 ${user.home}/.m2/repository 인데, 이게 자꾸 용량이 거대해져서, 시스템 드라이브 용량이 부족하다. 그리하여 경로를 다른 드라이브로 변경하려고 한다. User Settings 파일 필요하다.경로는 ${user.home}/.m2/settings.xml 이다. {변경할 경로} 위와같이 작성을 해주면 된다. 경로는 .m2가 아니라, 그 하위 repository에 해당한다.

dev/java 2018.04.09

[Spring Boot] datasource bean not working

Config class에서 아래처럼 빈 설정을 하고 사용하다.@Bean @ConfigurationProperties("spring.datasource") public DataSource dataSource() { return DataSourceBuilder.create().build(); } dbcp를 변경하고 application.properties에 설정하였으나 jdbc url를 제대로 읽어들이지 못함 propertie를 자동으로 바인딩 해주고 datasource가 만들어질거라 예상했지만, 위 설정으로는 자동바인딩이 되지 않는다.(수동설정이 우선되므로 자동설정을 못하게 할뿐) 자동바인딩이 안되는 이유는 Builder에 setter가 없기 때문인것 같다.(자세한건 @ConfigurationPropert..

dev/web 2017.08.17

spring @ModelAttribute and @RequestBody

컨트롤러 request mapping시 인자로 객체를 받을 수 있는데 어노테이션이 헷갈린다. @ModelAttribute는 단순히 요청으로 들어온 parameter와 객체 빈의 멤버변수와 bind한다. 없으면 null@ModelAttribute 요청으로 들어온 bind된 object를 Model에 Attribute로 추가시켜준다. View에서 사용할 수 있도록model.addAttribute의 호출을 편하게 도와주는 역활 이부분이 어째서 구글링으로 혼선을 야기했는지는 모르겠다.필자도 헷갈렸다.ㅠㅠ아직 많이 부족하다. @RequestBody는 HttpMessageConverter 구현체를 거쳐서 받는다. 특정 객체에 대한 컨버터를 지정해주지 않으면 Unsupported Media Type이라고 나올것이다...

dev/web 2017.08.13

SpringBoot @RequestBody 그리고 form

@RequestBody 어노테이션은 JSON이나 XML등을 인자로 받을 수 있게 해준다.인자로 변환하는 과정에서 HttpMessageConverter의 구현체가 필요하다.Jackson 라이브러리를 사용중이면 자동으로 등록된다. 태그를 사용한 값을 받을때에는 content type이 multipart/form-data 혹은 application/x-www-form-urlencoded일텐데이를 변환시켜주는 FormHttpMessageConverter가 있으며 MultiValueMap 형태로 받을 수 있다.이런경우엔 보통 객체로 받는것이 훨씬 편하다.(멤버변수 자동 매핑) multipart/form-data의 경우에는 FormHttpMessageConverter에서 분명 지원하지만, HttpMediaTypeN..

dev/web 2017.07.09