Whiteship's Note


토비의 스프링 3 북 오픈 기념샷

모하니?/Reading : 2010.08.17 21:31



음하핫.. 드디어 받았군요. 제가 마지막에 쿨하지 못해서 넣게된 추천사까지 볼 수 있고 알파리딩 때는 보지 못했던 토비님의 감사의 인사도 볼 수 있어서 감회가 새로웠습니다.  길게 쓰고 싶지만 운동갈 시간이라.. 짧게 남겨도 이해해 주세요.

책에는 이클립스 기준으로 소스코드 실행하는 방법이 있지만 전 인텔리J로 돌리렵니다. 메이븐 프로젝트도 아니니까 이클립스로 돌려도 무난하겠지만... 메이븐 프로젝트는 인텔리J가 백배 좋습니다.
저작자 표시
신고
top


템플릿-콜백 패턴으로 Try-Catch-Finally 블럭을 무찌르자.

모하니?/Coding : 2010.08.11 18:40


어제부터 계속 정리하고 싶었는데 어젠 이상하게 시간을 쏟아 버리는 바람에.. 이제 정리한다. 자세한 내용은 토비의 스프링 3에 나오는데 이번에 구글 캘린더 API 코딩하다가 써먹을 기회가 와서.. 적용해 봤다. 문제는 내 강의를 들었던 학생은 그걸 하지 못했다는게 아쉽다. 어디 한술에 배부르랴.. 그래도 내가 코딩한 걸 보고 그게 그건지 알아차렸으니.. 그걸로 만족한다.


구글 캘린더 API를 사용하려면 위에 있는 문서만 보면 된다. 친절하게 안내해주고 있어서 쓰기 편하다. 그런데 문제는 예외처리다. 


    public List<CalendarEntry> getMyCalendarList(){
        URL feedUrl = makeUrl(OWN_CALENDAR_URL);
        try {
            CalendarFeed resultFeed = calendarService.getFeed(feedUrl, CalendarFeed.class);
            return resultFeed.getEntries();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (ServiceException e) {
            throw new RuntimeException(e);
        }
    }


저기서 호출하고 있는 calendarService는 구글에서 제공해주는 API로 IOException과 ServiceException을 던지는 메서드들을 왕창 가지고 있다. 또 그녀석들을 자주 쓰게 된다.

따라서 어떤 호출을 하더라도 위와같은 예외 처리 코드가 생기기 마련이다. 이걸 어떻게 하면 좋을까? 스프링 개발자라면 이런 코드를 스프링과 잘 어울리는 형태로 처리할 수 있어야 한다.

어떻게 할것인가? 어떻게 하면 저 지져분한 Try-Catch(-Filnally) 문에서 벗어날 것인가? 한번 도전 해보자...

결과는..

public List<CalendarEntry> getMyCalendarList(){
        return calendarServiceTemplate(new CalendarServiceCallBack<List<CalendarEntry>> () {
            public List<CalendarEntry> queryForObject() throws IOException, ServiceException {
                return calendarService.getFeed(makeUrl(OWN_CALENDAR_URL), CalendarFeed.class).getEntries();
            }
        });
    }

이것과 비슷한 형태가 될 것이다. 물론 중요한건 결과가 아니라 저렇게 바꾸는 프로세스.. 그걸 이해하고 자신의 스킬로 만드는 것이 중요하겠다. 토비의 스프링 3에서 아주 잘 배울 수 있으니 꼭.. 3장 템플릿을 정독하도록 하자. 연습하고. 또 연습하고. 또 연습하고. try-catch 문이 반복해서 나올 떄 마다 적용해 보도록 하자.

저작자 표시
신고
top


토비의 스프링 3

모하니?/Reading : 2010.07.27 10:32



http://www.yes24.com/24/goods/4020006

드디어 나왔네요. (사실 예판 시작한지는 꽤 됐는데 제가 블로깅을 깜빡하고 있었네요.ㅋㅋ 이미 한 줄 알았어요.) 제가 쿨하지 못해서 결국 제 추천사도 들어갔습니다. 온라인 서점에는 제 추천사를 볼 수 없지만 책을 사시면 제 추천사도 들어있을 겁니다. 캬캬캬.

날씨도 덥고 휴가철이라 공부하기 많이 힘드실 겁니다. 그런데 사실 이럴때가 더 공부하기 좋은 때 입니다. 남들이 덥다고 놀고 지쳐있을 때.. 그럴 때 꾸준하게 달리면.. 두배나 빠르게 달리는 거나 마찬가지 거든요. 마침 다음주부터 매주 토요일 4주 과정으로 한빛교육센터에서 이 책으로 강의를 시작합니다.

강의를 들으시는 분들께는 교재삼아 '토비의 스프링 3'이 지급될 겁니다. 교재비는 따로 내는 것 같진 않더군요. 무더운 스프링을 토비의 스프링 3으로 이겨내시죠. 이열치열삼아...
저작자 표시
신고
top


[토비의 스프링 3] 2차 완독 후기



결국 추천사를 쓸 수 있게 됐습니다. 캬캬캬.
배려해주신 출판사 부사장님과 토비님께 감사드립니다. 잘 쓸께요. 아.. 부담 100배!!!!



----------------지난 이야기-----------------

사실 완독이라고 할 수는 없다. 이번엔 강의 준비를 하면서 다시 봤는데 강의할 부분만 읽었기 때문에 모든 글을 다시 읽진 않았다. 읽으면서 중간 중간 코드와 API 설명이 나온 부분을 유심히 보면서 혹시 소스 코드에 잘못된 것은 없는지 검증하는 작업을 했다. 내가 빅뱅의 쉘든 같은 사람이었다면 완벽하게 리뷰를 할 수 있었을텐데 난 레너드 수준에서 리뷰를 마감했다. 1차 때 보다 훨씬 적운 수의 리뷰를 드렸지만 품질 만큼은 1차때 보다 더 나은 리뷰를 해드린것 같아 다행으로 생각하고 있다. 그래도 분명히 놓친 부분이 있을텐데... 그건 개정판을 내실 때 수정할 수 있도록 출판사에 제보해주면 좋겠다. 아마 별도의 페이지가 있을지 싶다.

한 가지 아쉬움이 남는다. 난 추천사를 못 썼다. 근래 가장 많은 시간과 애정을 쏟아가며 리뷰한 책이고 그 누구보다도 여러 개발자에 이 책을 추천해주고 싶었는데 그럴 수 없었다. 여태까지 본 책 중에 이렇게까지 자발적으로 추천사를 쓰고 싶은 책은 없었는데 조금 안타깝다. 

내가 이 책을 리뷰 한 것은 이 책에 내가 적은 글을 남기고 싶어서도 아니고 돈을 받고 싶어서도 아니고 강의를 하고 싶어서도 아니었다. 돈은 애초에 생각도 안했고, 강의는 이미 리뷰를 시작한 다음에 계획 됐다. 추천사는 이 책을 읽다보니 너무도 쓰고 싶어졌지만 이젠 상관없다. 난 그냥 이 책 내용이 정말 좋았고 많은 도움을 받았다. 나도 어떻게든 이 책이 조금 더 반짝거리게 해주고 싶었다. 또 기나긴 여정에서 고군분투 하시는 토비님에게 조금이나마 힘이 되고 싶었다. 그것으로 됐다.
저작자 표시
신고
top







티스토리 툴바