본문 바로가기
반응형

전체글598

Freemarker(프리마커) 안전하게 사용하기 Freemarker(프리마커)는 현재 Java 진영에서 가장 대중적인 View Template Engine이다. (공식사이트) JSTL이나 Velocity같은 경우 업데이트가 이미 2~3년 전에 정지된 상태이고, Handlbar.java나 Thymeleaf는 아직까지 널리 퍼지진 않아서 많은 회사에서 사용중이다. (JSP 사용중이라면... 신규 프로젝트는 Freemarker로 바꾸자 아니면 Handlebar.java도 괜찮다) 공식 레퍼런스가 굉장히 잘되어있고, 기능도 좋아 거의 모든 프로젝트에서 Freemarker를 사용중인데 실제 서비스에서 사용하려면 몇가지 안전장치가 필요하여 소개한다. (문법이나 소개글이 필요하다면 여기를 참고하자) 모든 코드는 Github에서 관리중이니 코드를 보면서 읽으면 더욱.. 2016. 8. 5.
IE 7/8에서 Mysq timestamp/datetime값으로 Date 생성하기 보통 DB의 timestamp 값을 Javascript의 Date로 만들때 가장 쉽게할 수 있는 방법이 Date의 생성자에 문자열을 넣는것이다.예를 들면 var date = new Date('2016-08-03 12:00:00'); 이렇게 생성해주면 가독성에도 좋고 (누가봐도 2016-08-03 12:00:00의 Date 값을 얻을려는것인지 알수있으니), DB의 값 그대로를 넣으면 되니 코드 작성도 편해서 생각 없이 만들었다가 IE 7/8에서 안되는 문제가 발생했다 ㅠㅠㅠ...해당 형태의 생성자를 IE 7/8에성 지원을 안하는 문제인데 그럼 다른 방식의 생성자를 써야하게 생겼다. 아래 W3C에서 가이드하는 Date의 생성자들을 보자. 가독성의 문제가 있어 milliseconds 타입이나 dateStrin.. 2016. 8. 3.
ServletContainer? DI Container? Bean? POJO? 매주 월/목요일 저녁마다 박재성(a.k.a 자바지기)님의 Java 강의를 수강중이다. (현재 1기인데 다음 2기가 시작되면 꼭꼭 듣길 추천한다. 참고)매 시간마다 즐거운 깨달음의 연속이지만 특히나 어제 (2016년 7월 29일)의 경우 그동안 답답했던 내용들이 속시원하게 해결이 되어 기쁜 마음에 아침부터 정리를 하게 되었다. (풀렸다!!) SpringFramework는 웹 프레임워크가 아니다. Java기반의 프레임워크로서 여러 모듈로 구성되어 있는데, 이중 웹 어플리케이션을 만들고자 등장한게 SpringMVC 모듈이다SpringMVC를 사용중 이라면 자주 만나는 용어가 Servlet Container(서블릿 컨테이너) 와 DI Container (DI 컨테이너 혹은 Spring Container, IoC.. 2016. 7. 29.
@Bean vs @Component Spring으로 개발을 하다보면 @Bean과 @Component를 언제 써야할지 헷갈릴때가 있다.둘다 목적이 명확하지 않은 Bean을 생성할때 사용하는 어노테이션인데 왜 2개로 나누어져있나 궁금했었는데, 박재성님의 강의를 통해 둘의 차이를 알게 되었다. (@Bean) (@Component) 위 코드를 보면 알수있는데 @Bean의 경우 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우에 사용된다. (예를 들면 ObjectMapper의 경우 ObjectMapper Class에 @Component를 선언할수는 없으니 ObjectMapper의 인스턴스를 생성하는 메소드를 만들고 해당 메소드에 @Bean을 선언하여 Bean으로 등록한다.) 반대로 개발자가 직접 컨트롤이 가능한 Clas.. 2016. 7. 29.
[Joda-time] 월, 일, 요일, 오전/오후 표현하기 Java는 1.7까지 Date가 구리기로 소문났다. (참고)1.8부터는 많이 개선되었지만.... 회사에서 개발을 하다보면 1.8에서 개발할수있는 경우가 별로없다.대부분 1.6 ~ 1.7 일경우가 많은데 (리팩토링은 먹는건가요? ㅠㅠ)그렇다보니 1.8의 개선된 Date나 람다, 스트림은 회사에선 꿈도 못꾸고 최대한 그에 준하는 서드파티 라이브러리들을 사용하면서 만족해야한다. 이번에 소개할 내용은 Java의 구리고도 구린 Date를 해결하기 위해 나온 Joda Time이다.Joda Time의 상세한 설명은 위 네이버 블로그를 통해 보면 될것 같고, 여기선 생각보다 많이 쓰이는 특정일자의 월,일,요일,오전/오후를 Joda time으로 출력하는 코드를 작성하겠다.(작성하고보니 짧.......다 ㅠ) Joda t.. 2016. 7. 26.
Generic 타입 추론시 주의할 점! (super type token 문제) 요즘 박재성(a.k.a자바지기)님의 강의를 들으며 부쩍 TDD를 사용하려고 노력중이다.그래서 회사일을 하면서도 최대한 테스트 코드를 적용중이다.진행 도중 기존 코드에서 인자값으로 받는 API 주소와 리턴타입만 다른 여러 메소드들이 있어 이를 리팩토링 하는 과정에서 테스트 코드를 작성하다가 이상함을 발견하였다. 의도한 바와 다르게 데이터 형변환이 되는 것이다. 회사 코드를 직접 올린순 없어서 대충 비슷하게 코드를 작성해 보았다. 블로그에는 사진으로 코드를 설명하겠다.(자세한 코드는 Github에 올려놓았다.) 아래와 같은 json 데이터가 있다고 가정하자. 위 데이터를 받아서 처리 하기 위해 2개의 POJO를 만들었다. 그리고 이를 시험할 테스트 코드는 아래와 같다. 보다시피 DataResponse이냐 D.. 2016. 7. 20.

728x90
반응형