Als die Nazis die Kommunisten holten,

habe ich geschwiegen

ich war ja kein Kommunist.

나치가 공산주의자들을 잡아갔을때,

나는 침묵했다.

나는 공산주의자가 아니였으니까.

Als sie die Sozialdemokraten einsperrten,
habe ich geschwiegen;
ich war ja kein Sozialdemokrat.

그들이 사회민주당원들을 가두었을때,

나는 침묵했다.

나는 사회민주당원이 아니였으니까.

Als sie die Gewerkschafter holten,
habe ich nicht protestiert;
ich war ja kein Gewerkschafter.

그들이 노동조합원을 체포했을때,

나는 항의하지 않았다.

나는 노동조합원이 아니였으니까.

Als sie die Juden holten,
habe ich geschwiegen;
ich war ja kein Jude.

그들이 유태인을 잡아갔을때,

나는 침묵했다.

나는 유태인이 아니였으니까,

Als sie mich holten,
gab es keinen mehr,
der protestieren konnte.

그들이 나에게 왔을때,

나를 위해 말해 줄 이들이

아무도 남아 있지 않았다.

 

마르틴 니묄러(Martin Niemoller)에 의해 썼다고 알려진 시라고 하지만 시가 아니라고 한다. 정확한 원본은 불명확하며 이 시에서 표현된 취지의 연설이 니묄러에 의해 1946년에 행해졌다고 한다.

지금 내일이 아니라고 사회의 부조리와 병폐, 약자의 억울함에 눈감고 모른척 한다면 반드시 후일 그 억압과 속박이 나에게 혹은 나의 자식,가족에게 부매랑이 되어 돌아올것이다. 앞에 나서지 않더라도 조금만이라도 현재의 우리 사회에 관심을 갖자.





저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 하늘바람별_

내 이름은 칸

취미/영화 2010.12.24 23:06
내 이름은 칸
감독 카란 조하르 (2010 / 인도)
출연 샤룩 칸,까졸
상세보기

어떤 기대 없이 평점이 좋아서 본 영화 . 내가 영화를 다운받아 보면서 진짜 감독 및 배우들한테 미안함을 느낀 영화다. 국내 미 개봉인데 개봉한다면 돈 내고 꼭 다시 볼 영화다.
단순히 자페를 가진 사람의 감동적인 인간 승리의 영화인줄 봤는데 이건 나의 착각이었다.
탄탄한 시나리오로 상영시간이 꽤 긴데도 불구하고 전혀 지루함을 느끼지 못했다.
이 영화는 줄거리나 기본적인 영화의 내용을 모르고 그냥 보기를 권장한다. 
영화를 다 보고 느껴지는 진한 감동. 올해 내가 본 영화중에 최고의 영화이다.
저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 하늘바람별_

Spring에서 Transaction을 지원하는 방식은 크게 선언적인 방식과 프로그램에 의한 트랜잭션 처리 방식이 있다.

프로그램에 의한 트랜잭션 처리 방식개발자가 직접적으로 트랜잭션의 범위를 코드 수준에서 정의하고 싶은 경우에 스프링이 제공하는 트랜잭션 템플릿 클래스인 TransactionTemplate이나 개별 데이터 기술의 트랜잭션 API을 사용해 직접 코드안에서 사용하는 방법으로  이 경우 Transaction을 적용해야 하는 메소드 혹은 클래스 마다 소스의 중복이 발생한다. 그래서 특별한 경우가 아니면 선언적인 방식을 사용하는 것이 바람직하다.

선언적인 방식은 AOP를 이용해 코드 외부에서 트랜잭션의 기능을 부여해주고 속성을 지정할 수 있게 하는 방법으로 application_context와 같은 설정파일에 Advice을 정의해두고 반영하는 방식과 
자바의 annotation을 이용하는 방식이 있다.

설정 파일을 이용하는 방식은 클래스, 빈, 메소드의 이름에 일관된 패턴을 만들어 적용하고 이를 활용해 포인트컷과 트랜잭션 속성을 지정하는 방식으로 개발자들이 일관된 패턴에 따른 이름을 반영한다면 개발자들이 트랜잭션 처리를 신경쓰지 않아도 되어 편리하다. 

사용하기 위한 설정은<aop:config>태그을 통해 트랜잭션 처리를 위한 Advisor을 적용해 두고 Advice를 <tx:advice>태그를 이용하는 방식과 TransactionInterceptor class을 bean으로 정의하고 이용하는 방식이 있다, 트랜잭션이 실질적으로 적용되는 것은 <aop:config>태그을 통해 적용된다.

* 네임스페이스, datasource,transactionManage,AOP 설정 빈

더보기



* TransactionInterceptor을 이용한 Advice설정
  

더보기


* <tx:advice>을 이용한 Advice 설정
          

더보기


@Transactional annotation을 이용하는 방식은 단순하게 트랜잭션이 필요한 클래스(인터페이스) 또는 메소드에 직접 annotation을 부여하는 방식으로 설정파일 방식보다 훨씬 편리하고 코드를 이해하기에는 좋지만 트랜잭션 적용대상을 파악하기 힘들다. 사용하기 위한 설정은 간단하다.
<tx:annotation-driven /> 이 태그만 추가하면 된다. 
설정파일에 Advice를 통한 트랜잭션 처리를 설정한 부분과 aop설정 부분이 필요없다.

@Transactional을 적용할 경우 모든 메소드 단위로 해당 annotation을 부여하는 경우가 있는데 이런 경우 유연한 속성 제어는 가능하겠지만 코드는 지저분해지고 동일한 속성 정보를 가진 경우 메소드마다 중복되는 결과가 된다. Spring에서는 @Transactional을 적용할 때 4단계의 대체 정책을 이용하여 정책에 따라 자체적으로 확인해준다. 즉 메소드의 속성을 확인할 때  구현클래스의 메소드 -> 구현 클래스 -> 선언(Interface)메소드 -> Interface순으로 차례로 확인하여 Interface에 선언되어 있을 경우 그 하위에 다른 설정이 없으면 Interface에 선언되어 있는 설정을 모두 반영한다.

더보기


* @Transactional 속성

저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 하늘바람별_

사이드바 열기

티스토리 툴바