본문 바로가기
반응형

전체글458

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.
2016/6/19 먹고 코딩하고 사랑하기, 오래하려면 어떻게 해야할까 by KSUG 참여 후기 2달전 OKKY에서 "서비스 개발 엿보기 맛보기" 라는 주제로 세미나를 개최했었다. (참고)한 1년정도 SI를 경험하고나서는 SI는 절대 안가야지 라는 생각으로 지금은 서비스회사에서 즐겁게 일을 하고 있어서 참석하진 않았는데, 당시 후기들을 보면 서비스 개발에 대한 이야기도 있지만 경력 관리에 대한 이야기도 많이 나왔다는걸 알고 신청하지 않은것에 아쉬움이 있었다. 하지만! 역시 하늘은 나의편인지? KSUG(한국스프링사용자모임)에서 경력관리에 관한 세미나를 개최하게 되었다!!(혹시나 다른 세미나 정보도 알고 싶다면 내 Github를 star 하시거나, 블로그를 feed 받으시면 된다! 꾸준히 세미나 참석하여 후기를 남기고 있다.) 그것도 어마어마한 멘토님들을 모시고! 호호호 (야호호호호!) 놓칠수 없는 세.. 2016. 6. 21.
Handlebar를 사용하여 배포까지 (+grunt +gradle) 현재 담당하고 있는 프로젝트에 기능이 추가되면서 개인적으로 공부도 할겸해서 기록으로 남기는 중이다.기존 프로젝트에 이미 포함된 내용인데 내가 몰랐던 부분을 알게되면서 남긴거라 내가 이 기능을 사내 프로젝트에 넣었습니다!이런건 아님을 먼저 알리며..아래 내용의 모든 코드는 이미 Github에 올려져있다. 코드를 다 이미지로 찍어서 복붙으로 따라갈순 없으니 여기를 참고하자 사내에서 서비스하고 있는 프로젝트들은 IE 7,8을 공식 지원하고 있다.그래서 요즘 유행하는 angular, react는 서비스 프로젝트에서는 쓰지 못하고 내부시스템에서만 사용하는 중인데, js 프레임워크들을 못쓰면서 경험하는 제일 큰 답답함이 클라이언트 템플릿 문제이다. (다른게 더 답답할수도 있음..) 클라이언트 템플릿이란 용어에 생소.. 2016. 6. 17.

728x90