Whiteship's Note


[BBC News] Naples pizza protected by EU

모하니?/English : 2010.02.18 21:12


http://www.bbc.co.uk/worldservice/learningenglish/language/wordsinthenews/2010/02/100205_witn_pizza.shtml

자 오늘도 어디 외운티좀 내 보실까..

For 25 years pizza makers in Naples have been trying to get their product protected, and now it is, being granted a TSG, or Traditional Specialty Guaranteed label by the EU. The head of the pizza makers' association said the trademark was a great honour. The EU's agriculture commissioner said Naeplizian Neopolitan pizza was now part of Europe's food heritage.

It means that all pizzerias aspiring to supply the real thing are, in future, supposed to be vetted by a special commission that will check standars. They include only use using only San Mazarno tomatoes and fresh buffalo mozallera mozzarella cheese.

The Italian farmers' association says that half of Italy's 25,000 pizzerias currently use the wrong ingredients, like East European's cheese or Ukrainian flour.

Italy now tops the EU chart for products that are protected. It has 180, more then Spain or France. Protected status enables producers to not only boost boast about theri exclucivity but also charge a premium. Now pizza makers from Naples will get their slice of the action.

피자가 아니라 핏짜..
top

TAG 핏짜

[스프링 3.0] PropertyEditorRegistry가 이길까 ConversionService가 이길까

Spring/3.0 : 2010.02.18 17:24


public class Whiteship {

    String name;

    public Whiteship(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}


public class SpringSprout {

    private Whiteship whiteship;

    private int num;

    public Whiteship getWhiteship() {
        return whiteship;
    }

    public void setWhiteship(Whiteship whiteship) {
        this.whiteship = whiteship;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
}

이렇게 두 개의 클래스가 있을 때 Whiteship을 SpringSprout로 주입하는 빈 설정을 다음과 같이 했다.

    <bean class="sandbox.convert.SpringSprout">
        <property name="whiteship" value="keesun"/>
        <property name="num" value="1"/>
    </bean>

동작할까 안할까?

당연히 안한다. Whiteship 타입이 필요한데 keesun이라는 문자열을 던져주다니 장난 하는게냐 라고 예외를 던질꺼다.

하지만 되게 만들 수 있다. 이전까지는 PropertyEditorSupport 클래스를 확장하여 아주 손쉽게 구현할 수 있었다.

public class WhiteshipPE extends PropertyEditorSupport {

    @Override
    public String getAsText() {
        return ((Whiteship)getValue()).getName();
    }

    @Override
    public void setAsText(String name) throws IllegalArgumentException {
        setValue(new Whiteship(name));
    }
}

이런 코드는 특히 MVC에서 바인딩 할때 매우 유용하다. 이걸 안쓰면 request에서 일일히 꺼내서 노가다를 해야하는데 난 절대로 그러고 싶지 않다.

그런데 PE의 문제는 쓰레드-세이프하지 않다는 것이다. 그래서 PE를 등록할 때 조심해야 한다. 특히 전역 변수를 가지는 PE를 싱글톤으로 바인더에 등록해버리지 않았나 조심해야 한다. 반드시 그때 그때 new를 사용해서 등록해 주도록 하고 PE 생성자에 필요한 레퍼런스를 전달해주는게 안전하다. 아마 이 내용도 사부님 책에 들어갈 것 같으니 자세한 내용은 그 책을 참고하도록 하자.

PE의 대안이자 좀 더 범용적인 변환기 역할로 3.0에 도입된 것이 ConversionService이고 ConversionServiceFactoryBean에 Converter, ConveterFacrtory, Formatter 등을 등록해놓고 변환을 부탁할 수 있게 되었다.

public class WhiteshipConverter implements Converter<String, Whiteship> {
    public Whiteship convert(String source) {
        return new Whiteship(source);
    }
}

그런데;; PE와 역할이 중복되는데;;; 둘 다 빈으로 등록해둘수 있다.


    <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
        <property name="propertyEditorRegistrars">
            <bean class="sandbox.convert.CustomPERegister">
            </bean>
        </property>
    </bean>

    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="sandbox.convert.WhiteshipConverter"/>
            </set>
        </property>
    </bean>

결국 문제는 대체 String을 Whiteship으로 바꿔야 할 때 PE를 쓸 것이냐 CS를 쓸 것이냐이다. 무엇을 쓰게 될지... 그게 궁금했었다. 그런데 마침 오늘 사부님이 퀴즈를 냈고;; 난 스케줄을 팽개치고 매달렸다;;

1차 문제 상황

CS와 PE가 등록되어 있을 때 PE가 이겼다.
하지만 난 CS가 이기는 경우를 예제에서 본적이 있었다. 그래서 도무지 납득이 되지 않았고 어떻게 설정해야 가능한지 궁금했다.

CS만 등록했을 땐 CS로 동작했다.
PE만 등록했을 땐 PE로 동작했다.
둘다 등록했을 땐 PE가 동작헀다.

2차 문제 상황

Whiteship만 가지고 테스트를 했었는데 기본 타입도 추가해봤다. int num이 그것이다. 이제 더 큰 문제가 생겼다.
Whiteship만 PE가 이기고 나머지 기본 타입은 CS가 이겼다.
정말 깜놀이었다. 이사실을 발견하지 않았다면 난 그냥 클래스로더를 공부했을 것이다.

어디선가 기본 PE를 덮어쓰거나 없애버린 거 아닌지 궁금했고 소스 코드를 뒤져보기 시작했다.
시간이 손살같이 지난간다.
우울해지기 시작한다.

3차 결론

소스 코드를 뒤적거리다가 ConvertingPropertyEditorAdapter 클래스를 찾았다.
이 클래스는 ConversionService를 사용해서 PE를 노출시켜주는 어댑터다.
겉으로는 PE를 등록한것 같지만 실제로는 ConvesionService를 사용하는 것이다.ㅋ

스프링에서 내부에서 저걸 사용해서 기본 PE들을 등록하도록 바꿨는지는 확인하지 않았다.
왠지 답이 아닌것 같다. OTL..
내가 졌다.

트릭같은 기법을 써서라도 PE를 누르고 아니 속이고 CS가 동작하게 했으니...그만 놓아줄 수 있을 것 같다.
어서 사부님 책이 나와주길....

ps: 위에 나온 코드는 급조한 코드오니 조심할 부분을 건너뛴 곳도 있습니다. 주의하세요.
top


[위핏] 나만의 트레이닝 방법

모하니?/운동해 : 2010.02.18 05:44


http://www.nintendo.co.kr/Wii/software/wiifit/main.php

처음 위핏을 하면 할 수 있는 운동이 몇 개 없다. 어느정도 쉬운 운동과 게임에 시간을 투자해야 새로운 게임이 열리는 형식이다. 처음 하루 이틀은 쉬운 운동과 게임으로도 어느정도 재미(?)를 맛볼 수 있다. 어떤 시스템으로 나를 움직이고 게임에 집중하게 만드는지 파악하는건 굉장히 흥미로운 일이니깐 말이다.

하지만 조금 시간이 지나면 지루해진다. 때로는 게임의 시스템에 맞추려고 하다가 오히려 운동이 되지 않는 경우도 있다. 그럴 땐 점수보다는 운동을 선택해야 하거늘 와이프와 점수 내기가 걸리기라도 하면 운동이고 뭐고 점수가 더 중요하다. ㅋㅋ 그래서일까 운동도 안 되고 지루해져서 다른 게임에 빠져들었다.

뉴 수퍼마리오 브라더스는 정말 꼭 해봐야 하는 게임이라고 추천하고 싶을 정도다. 화면에서 동시에 네명까지 뛰어다니면서 서로 들고 밟고 누르고 날아다닐 수 있는 아이템도, 수영을 잘할 수 있는 아이템도 있어서 굉장히 재미있다. 거기에 난이도 또한 갈수록 높아지면서 .아;;; 갑자기 삼천포로;; 그렇다. 지금 딱 이런 형태로 다른 게임에 빠져들었고 위핏은 나몰라라 침대 및에 누워있었다.

하지만 어제 드디어 위핏 활용 전략을 세웠다.

1. 간단한 요가 2~3개로 몸을 푼다.

http://www.nintendo.co.kr/Wii/tvcm/tvcm_wiifit_v_yoga.php

처음에는 움직이기가 싫고 땀을 빼는게 싫다. 하지만 해야한다. 그럴때 좋은게 요가다. 몸을 스트레칭할 수 있는 요가 위주로 몇 개 하면서 몸을 풀어준다.

2. 유산소 운동으로 땀내기

2-1. 댄스

처음에는 그다지 움직임이 많지 않은 댄스로 시작하지만

2-2. 리듬 복싱

http://www.nintendo.co.kr/Wii/tvcm/tvcm_wiifit_v_rhythmboxing.php

퍽퍽 거리는 손맛이 있어서 은근히 재밌고 주먹을 뻗으면서 운동이 조금 된다.

2-3. 훌라후프

본격적으로 땀이나기 시작한다.
어제는 훌라후프 400개를 넘개 돌려서 1위를 차지했다. 캬캬캬.

3. 근력 운동

3-1. 도전 팔굽혀펴기

가상 트레이너를 상대로 누가더 많이 하나 겨룰 수 있는데;; 뭐.. 말이 겨루는거지 걍 할 때마다 조금씩 해야 하는 갯수가 올라가는 것 같다. 어젠 10개만 해도 내가 이기는거라 이겼는데 지면 어떻게 될지 궁금하다. 10개에서 지면 다음에도 10개겠지 아마.

3-2. 도전 V자 만들기

이게 복부 운동이 조금 된다. 역시 위와 같은 시스템이다.

4. 게임

이정도 하면 30~40분이 된다. 이제 조금 쉬면서 스키점프 같은 게임을 해주면 된다.
와이프 기록이 340이 넘는데 도무지 못 깨겠다.. @_@;; 어떻게 한거람;;; 난 310이 최고..

http://www.nintendo.co.kr/Wii/tvcm/tvcm_wiifit_v_skijump.php

5. 신체측정

http://www.nintendo.co.kr/Wii/software/wiifit/sub01.php

처음 위핏을 시작하면 체중을 제고 표준 체형에 비해 어떤지 측정해준다. 그리고 목표를 정하고 현재 그 목표에 얼마나 다달았는지 측정해주기 시작한다. 내 체중의 변화는 기본이고 내가 매일 운동한 총 시간과 어떤 종류의 운동을 몇 분간 했는지 그래프로 보여준다. 체중을 측정하는 시간이 다르다면 매일 비슷한 시간에 재는 것을 권해주기도 한다.

꾸준히 해보자꾸나~

'모하니? > 운동해' 카테고리의 다른 글

[위핏] 나만의 트레이닝 방법  (0) 2010.02.18
개봉동에서 다시 운동 시작!  (6) 2009.03.05
자전거 타기 시작  (0) 2008.03.21
줄넘기 상황판  (0) 2007.08.02
줄넘기 대만족  (8) 2007.07.25
으윽.. 안돼..  (0) 2007.05.12
top