금욜날 출근 길에 지갑을 잃어 버린걸 알게 되어
신용 카드 분실 신고를 했더만

결국 어제 집 청소를 하다가 책상 밑에 떨어져 있는 지갑을 발견하게 되었다.

뭐.. 다행이기는 한데 좀 허무하기도 했다.
딱히 술 먹은 것도 아니고 워낙 뒷 주머니에 넣는게 습관이 되서
지갑이 없어 졌다면 느꼈을 텐데 ... 하면서 의아 스러웠는데...
아침에 좀 여유를 가졌다면 이런 난리를 피우지 않았을텐데.>^^

그나저나 요 한달 가량 원경이가 집에 있다는 핑계삼아 집안일도 등한시 하다 보니
정리도 안되어 있고
또 담날 출근 할 꺼 생각해서 미리 준비 해 두면 이런 일도 없었을텐데..

원경이나 재현이한테 신중하라는 말 하기 전에 나부터 조심해야지...-.-

그래도 이번에 카드 분실 신고하면서 신한카드는 러브카드로 바꾸어서
전화 위복이 되었다고 할 수 있을까....

'사는이야기' 카테고리의 다른 글

입춘 - 24절기  (0) 2010.02.04
수고하셨습니다. 윤대표님.  (0) 2010.02.01
사상 최대의 폭설  (0) 2010.01.05
가는 해 오는해...  (0) 2009.12.31
스마트폰 사용기  (0) 2009.12.31
Posted by headiron
,
어제 내린 눈이 서울에 내린 사상 최대의 폭설 이라 한다.

이른 아침에 출근 하는 나도 낑겨 탔으니 일반 적인 출근 시간 대에 지하철 탔던 사람들이 실신했다는 얘기는 뭐....

정말 몇 년 만에 이렇게 쌓이는 눈이 왔는지 모르겠다.

2001년인가 한번 눈이 온 이후로 이렇게 많이 온적은 없는 듯 하다.

뭐.. 어른들이야 당분간 출,퇴근길이 고생이었지만

아이들에게는 좋은 추억이 되지 않을까.

( 뭐... 요즘 애들한테 그런 자유가 허락 된다면^^)


'사는이야기' 카테고리의 다른 글

수고하셨습니다. 윤대표님.  (0) 2010.02.01
집 나간 지갑을 찾다.  (0) 2010.01.17
가는 해 오는해...  (0) 2009.12.31
스마트폰 사용기  (0) 2009.12.31
성룡형 재취업  (0) 2009.12.31
Posted by headiron
,
오늘로서 2009년도 마지막이다.

언제나 그렇지만 올 한해도 참 다사 다난 했다는 생각이 든다.

꿈에 그리던 한라산 정상도 가보고

또 월출산 산행으로 시작했던 남도여행도 기억에 남고.

준비 없이 갔던 지리산 산행에서 중도에 내려오는 일도 생기고..

새로운 직장 동료도 많이 생기고

10년 넘게 묵혀 두었던 플룻도 다시 시작하고.

2009년이 채 한시간도 남지 않은 시점에서 생각해보면

그래도 떠오르는 기억은 좋았던 기억이 많은 것 같다.

예전에는 새해라는 것이 그냥 그렇게 흘러가는 자연을 인간들이 자신의 잣대로 나누어서
기념하려 한다는 생각을 했었는데

한살씩 나이를 더 먹으니 또 생각이 바뀌어 진다.

올 한해 마무리 하는 시점에 그래도 행복했던 기억이 많았던 것 만큼이나

1년 뒤 이 시간에 2010을 회상할 떄도 좋았던 기억이 많이 생각 났으면 좋겠다.

황 부장님이 메일로 보냈었던 다사다난이 다사다행한 해가 되게 해보자는 말처럼

내년에는 나, 내 가족 , 내 주위 친구 , 동료 모두에게 다사다행한 한해가 됐으면 한다.



'사는이야기' 카테고리의 다른 글

집 나간 지갑을 찾다.  (0) 2010.01.17
사상 최대의 폭설  (0) 2010.01.05
스마트폰 사용기  (0) 2009.12.31
성룡형 재취업  (0) 2009.12.31
건강  (0) 2009.12.31
Posted by headiron
,
박차장님 추천으로 HTC 터치다이아몬드 폰으로 바꾼지 두달 가량 되어 간다.
처음에는 개통하는 것조차 몰라서 고생하고 터치 방식이 익숙하지 않아 많이 해맸는데
이제는 많이 익숙해지고 내가 원하는 프로그램 찾아 다니는 단계에 이르러 간다.
( 뭐 그래도 주위의 스마트 톤 사용자 분들의 추천을 아직도 받아야 한다는... )

쓰다보니 점차 스마트폰의 장점에 대해서 알게 되고 또 그러면서 앞으로 스마트폰이 대세를 차지 할 것 같은 생각이 많이 든다.
( 예전에 처음 WAP 이나 WML 처럼 냄비처럼 확 달아 올랐다가 식지는 않을 듯 하다. )

또 사용하면서 내 자신의 너무 정형화 되어 있는 생각에 대해서 너무 반성이 된다.

초반에 T-Store 광고에 나왔던 지하철 도착 알리미 프로그램 얘기를 우연히 박차장님과 얘기를 나누며 당연히 기지국 정보를 가져다가 도착 정보를 알려주려니 생각했는데 출발역과 도착역간의 소요시간을 가지고 알려준다고 한다.
( 법적인 제약때문에 개인이 기지국 정보를 이용할 수 없기 때문에 내가 생각했던 구현방식은 애초에 국내에서는 현재까지는 불가능한 서비스 방식이라 할 수 있다.)

광고를 보면서 저 프로그램 개발 해 내는 아이디어가 참 좋다고만 생각을 했는데
구동 방식을 들어보니 더 참신하다는 생각을 했다.

만약 내가 그런 프로그램을 구현하라는 명제가 떨어 졌다면
아마도 기지국 정보를 사용할 수 없다는 제약 하나만으로 포기하고 말았을텐데...

역간 소요시간 정보를 사용하는 그런 유연한 생각이 참 부럽기도 하고
또 개발자로서 자꾸 그런 유연한 생각을 잃어 가는 내 자신이 한심스럽기도 하다.

'사는이야기' 카테고리의 다른 글

사상 최대의 폭설  (0) 2010.01.05
가는 해 오는해...  (0) 2009.12.31
성룡형 재취업  (0) 2009.12.31
건강  (0) 2009.12.31
자랑스런 후배  (0) 2009.12.23
Posted by headiron
,

성룡형 재취업

사는이야기 2009. 12. 31. 22:51
지난 일욜날 성룡형과 북한산 등반을 하며 LS전선에 최종 합격했다는 소식을 들었다.

티맥스 사태 터지면서 발령대기상태로 남아 계셨다고 하는데 그래도 이제는 비빌 언덕이 생겼다는 느낌이다.

특히 그동안 을 혹은 병으로 일을 많이 하셔서 그런지 갑 역활을 할 수 있다는 부분에 대해서 좋게 생각하고 계시는 것 같다.

뭐... 그런것도 좋지만 그래도 어느정도 안정된 직장을 짧은 기간에 찾으시게 된게 특히 기쁘다.

다만 IT 전문 기업이 아니라서 회사내에서 어느 정도까지 본인의 자리를 가져가시고 인정 받으실 수 있으실지 걱정이기는 하지만..

뭐.. 본인도 그런 생각이 있기에 KTDS쪽도 면접 결과를 계속 기다리시는 거겠지..

'사는이야기' 카테고리의 다른 글

가는 해 오는해...  (0) 2009.12.31
스마트폰 사용기  (0) 2009.12.31
건강  (0) 2009.12.31
자랑스런 후배  (0) 2009.12.23
언론의 본분  (0) 2009.11.17
Posted by headiron
,

건강

사는이야기 2009. 12. 31. 22:46
지난 크리스마스때 고등학교 송년회를 했다.

타이틀은 송년회였지만 제일 큰 이슈는 석희의 뇌종양 소식이었다.

예전에 진호일도 있고 해서 걱정이 많이 되긴 했는데

악성은 아니라고 하고... 본인도 표정이 나쁘지는 않아 다행이다 싶기는 했다.

하지만 수술을 하게 되면 성격도 바뀔 가능 성이 있고 또 회복 되는 기간도 오래 걸린다 하니 ...

얼마전에 민규 갑상선암으로 수술하기도 하고 또 석희마저 큰 병에 걸리고 보니 내 자신의 건강에 대해서도 겁이 나기 시작한다.

나는 아직도 내가 젊다고 생각하고 있었는데 건강에 대해서 마냥 자신감을 가질만한 나이만은 아니구나 하는 걱정이 든다.


'사는이야기' 카테고리의 다른 글

스마트폰 사용기  (0) 2009.12.31
성룡형 재취업  (0) 2009.12.31
자랑스런 후배  (0) 2009.12.23
언론의 본분  (0) 2009.11.17
기아 V10  (0) 2009.10.26
Posted by headiron
,
WSDL2Java로 나온 Class들 전체를 javac로 실행하다 보니 out of memory가 발생한다.

구글링을 해보니 두가지 방법이 보인다.

1. javac Task에 fork="true" memoryMaximumSize="512M" 을 주는 방법
  ( fork를 기재 하지 않을 경우 memoryMaximumSize Option은 ignore 된다. )

2. javac Task에 compilerarg option을 준다.
    javac -help를 입력할 경우 javac 입력시 사용할 수 있는 Option이 나오게 되며 이 중 적절한 option을 입력하면 된다.
<javac srcdir="gen" destdir="gen-bin" debug="on" fork="true">
   
<compilerarg value="-J-Xmx512M" />
</javac>

   ( command prompt 내에서는 -J-Xmx를 입력할 경우 java stack size를 입력할 수 있는 걸로 나오는데 eclipse 의 ant plugin 에서는 해당 option이 먹지 않는걸로 나온다. )
참고 URL : http://stackoverflow.com/questions/16935/ants-javac-tasks-throws-stackoverflowexception
http://blog.paran.com/rabbitshin/6134979
Posted by headiron
,

자랑스런 후배

사는이야기 2009. 12. 23. 22:23
어제 매경에 전교 1등이 공고가다 라는 기사가 있어 보니 우리학교에 수석 입학한 친구 얘기다.

기사를 보니 건대부중 에서 1등 하는 친구가 우리학교에 진학을 했다는 내용이다.

흠.. 참 대견하고 자랑 스럽다는 생각을 하면서도...

솔직히 어떤 사연이 있는 건 아닐까 하는 생각도 좀 든다.

기사를 보고 오히려 선배로서 한 마디 해 주고 싶어서 오랜만에 학교 홈페이지 까지 들어가봤다. 덕 분에 이제는 전자과에 김준태 선생님만 남아 계신걸 보니 좀 씁쓸했다.-.-

어쨋든 훌륭한 성적을 가지고 있는 친구가 학교에 온걸 보니 자랑 스러웠지만

한편으로는 좀 걱정이 되기도 했다.

과연 이 친구가 잘 졸업을 할 수 있을까.

민규 처럼 어쩌면 3년간 힘들어 할 수도 있지 않을까 하는 생각도 들었다.

또 다른 한편으로는 정말 열심히 해서 우리학교의 또 다른 신화를 써 갔으면 하는 생각도 했다.

그런 생각을 하면서 또 찬혁이가 나에게

"넌 이렇게 살면 안된다" 라고 했던 얘기도 생각난다.

난 지금 잘 살고 행복한데... 나를 나로만 보지 않는 시선도 있다는 거...

그런 시선을 아는 내가 그 친구에게 그런 기대를 한다는 것도 참..-.-

어쨋든 너무 자랑 스런 또 다른 후배가 생각다는 게 기쁘기도 하고

술 한잔 사주면서 ( 흑.. 얘는 미성년잔데.. ) 이런 저런 얘기를 해주고도 싶다.

기사 : http://news.nate.com/view/20091220n06289

'사는이야기' 카테고리의 다른 글

성룡형 재취업  (0) 2009.12.31
건강  (0) 2009.12.31
언론의 본분  (0) 2009.11.17
기아 V10  (0) 2009.10.26
소래 포구 원정기  (0) 2009.10.18
Posted by headiron
,

Spring Security

개발자세상 2009. 12. 21. 19:22

B3 진행하면서 Spring 의 Remoting 호출을 지원하면서 해당 호출을 Login Base로 진행하기 위해서 Spring Security를 두가지 방식으로 지원하게 되었다.

하나는 Config 설정에 의한 , 다른 하나는 LDAP Base.

어차피 Spring Security의 로그인이 Filter Chain을 적용하는 것이기에 Multiple Filter Chain을 확인해 봤더니 Login Path를 통해서 Multiple Filter Chain을 지원하고 있었다.

우선 web.xml 을 변경하여야 한다.

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetBeanName</param-name>
            <param-value>springSecurityFilterChain</param-value>
        </init-param>
    </filter>

보통의 경우는 springSecurityFilterChain 만 선언하면 문제가 없는데
multiple 한 fileter chain을 명시적으로 Spring Security Config에 선언해 주어야 하기 때문에 반드시 targetBeanName을 선언하여 value에는 Spring Security 설정에서 사용한 FilterChain Bean Name을 선언해 주어야 한다.

Spring Security 내부의 Filter Chain이 아닌 명시적인 Filter Chain을 사용하여야 하기 때문에 사용하는 방식에 맞추어 Filter Chain Config를 선언하여야 한다.

    <bean id="springSecurityFilterChain" class="org.springframework.security.util.FilterChainProxy">
        <s:filter-chain-map path-type="ant">
            <s:filter-chain pattern="/batchProcessService/**" filters="httpSessionContextIntegrationFilter,digestProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor" />
            <s:filter-chain pattern="/approvalProcessService/**" filters="httpSessionContextIntegrationFilter,digestProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor" />
            <s:filter-chain pattern="/**" filters="ldapHttpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,anonymousProcessingFilter,ldapExceptionTranslationFilter,sessionFixationProtectionFilter,ldapFilterInvocationInterceptor"/>
        </s:filter-chain-map>
    </bean>

web.xml 에서 선언했던 filterChain을 위와 같이 설정한다.
filter-chain의 pattern attribute에 선언된 URL에 맞추어 각각 선언된 Filter Chain이 적용이 된다.

위의 경우
/approvalProcessService/** 및 /batchProcessService/** URL은는"httpSessionContextIntegrationFilter,digestProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor" Filter Chain이
그 이외의 URL들은
"ldapHttpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,anonymousProcessingFilter,ldapExceptionTranslationFilter,sessionFixationProtectionFilter,ldapFilterInvocationInterceptor"
Filter Chain이 적용되게 된다.

LDAP 을 위해서는 아래의 Bean을 명시적으로 선언하였다.
물론 다른 것에 대해서도 해야 겠지만.^^

    <bean id="ldapHttpSessionContextIntegrationFilter" class="org.springframework.security.context.HttpSessionContextIntegrationFilter" />

    <bean id="logoutFilter" class="org.springframework.security.ui.logout.LogoutFilter">
        <constructor-arg value="로그아웃 후 Redirect될 페이지 URL" />
            <constructor-arg>
                <list>
                    <bean class="org.springframework.security.ui.logout.SecurityContextLogoutHandler" />
                </list>
            </constructor-arg>
        <property name="filterProcessesUrl" value="/j_spring_security_logout" />
         ( Logout Process Path URL )
    </bean>

    <bean id="authenticationProcessingFilter"    class="org.springframework.security.ui.webapp.AuthenticationProcessingFilter">
        <property name="authenticationManager"         ref="ldapAuthenticationManager" />
        <property name="authenticationFailureUrl"     value="/ldapLogin.zul?error=1" />
        <property name="defaultTargetUrl"            value="로그인 시 기본 Redirect 페이지 URL" />
        <property name="filterProcessesUrl"            value="/j_spring_security_check" />
    </bean>

    <bean id="securityContextHolderAwareRequestFilter" class="org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter" />

    <bean id="anonymousProcessingFilter" class="org.springframework.security.providers.anonymous.AnonymousProcessingFilter">
        <property name="key" value="doesNotMatter" />
        <property name="userAttribute" value="roleAnonymous, ROLE_ANONYMOUS" />
    </bean>           

    <bean id="ldapExceptionTranslationFilter" class="org.springframework.security.ui.ExceptionTranslationFilter">
        <property name="authenticationEntryPoint">
            <bean class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
                <property name="loginFormUrl" value="로그인 입력화면 URL" />

            </bean>
        </property>
        <property name="accessDeniedHandler">
            <bean class="org.springframework.security.ui.AccessDeniedHandlerImpl">
            </bean>
        </property>
    </bean>

    <bean id="sessionFixationProtectionFilter" class="org.springframework.security.ui.SessionFixationProtectionFilter" />

    <bean id="ldapFilterInvocationInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
        <property name="authenticationManager" ref="ldapAuthenticationManager" />
        <property name="accessDecisionManager" ref="ldapAccessDecisionManager" />
        <property name="objectDefinitionSource">
            <s:filter-invocation-definition-source>
                <s:intercept-url pattern="/siteList/**" access="IS_AUTHENTICATED_REMEMBERED"/>
                <s:intercept-url pattern="/**"             access="IS_AUTHENTICATED_ANONYMOUSLY"/>
            </s:filter-invocation-definition-source>                       
        </property>
    </bean>

    <bean id="secondLdapProvider"
        class="org.springframework.security.providers.ldap.LdapAuthenticationProvider">
        <s:custom-authentication-provider />
        <constructor-arg>
            <bean               class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator">
                <constructor-arg ref="contextSource" />
                <property name="userSearch">
                    <bean id="userSearch"                        class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
                        <constructor-arg index="0" value="" />
                        <constructor-arg index="1" value="(&amp;(sAMAccountName={0})(objectclass=user))" />                       
                    </bean>
                </property>
            </bean>
        </constructor-arg>
        <constructor-arg>
            <bean class="org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator">
                <constructor-arg ref="contextSource" />
                <constructor-arg value="" />
                <property name="groupSearchFilter" value="(&amp;(member={0})(|(cn=B3 Reader)(cn=B3 Approval)))" />               
                <property name="rolePrefix" value="ROLE_" />
                <property name="searchSubtree" value="true" />
                <property name="convertToUpperCase" value="false" />
            </bean>
        </constructor-arg>
    </bean>

'개발자세상' 카테고리의 다른 글

Long Term Plan?  (0) 2011.02.19
이젠 모바일인가...  (2) 2010.12.05
ASP.NET 크레튜 강의 수강 소감  (0) 2009.12.15
티맥스 소식  (0) 2009.11.10
강사의 조건  (1) 2009.10.22
Posted by headiron
,
지난 달에 C#을 들으려 했었는데 신청을 잘 못해서 ASP.NET 강의를 듣게 됐다.

뭐... C#다음 강좌로 ASP.NET도 들을려고 했었으니깐 순서만 한번 바뀌었다고나 할까.

들으면서 느낀것은 MS 진영이고 Java 진영이고 서로가 서로에게 긍정적인 영향을 준다고나 할까.

ADO.NET을 보면 JDBC적인 면이 보이고 반대로 JSF를 보면 ASP.NET의 객체 모델이 보이고,
서로에 대해서 자신이 우월성을 얘기하려 노력하지만
결국은 서로의 장점을 취해 가며 발전해 가는 모습을 보면
선의의 경쟁자라 불러도 좋을 듯 싶다.

별 경쟁 없이 있던 브라우저 시장도 Firefox가 힘을 받고 크롭 같은 브라우져가 등장하면서 다시 발전해 가는 것을 보면 독과점의 폐해는 실로 심각하다 할 수 있겠다.

뭐... 어쩃든 다음에 C# 강좌를 마무리로 들어주면 MS 관련 문제가 발생해도 어느정도는 대체할 수 있지 않을까 생각된다.

그리고 크레듀 강좌 들으면서 .... 테크빌에서 했떤 일들이 자꾸 떠올랐다.
그때 그래도 괜찮은 기능들을 많이 많들었다는 생각이 들고
또 한편으로는 내가 100% 소화 해 내지 못했던 것들에 대한 아쉬움도 들고 했다.
그리고 그쪽을 떠난 지도 6년 가까이 되는데 아직도 그떄 일을 생각하는 걸 보면
나에게 많은 아쉬움도 남아 있는 듯 하다.

'개발자세상' 카테고리의 다른 글

이젠 모바일인가...  (2) 2010.12.05
Spring Security  (0) 2009.12.21
티맥스 소식  (0) 2009.11.10
강사의 조건  (1) 2009.10.22
Streaming Protocol  (0) 2009.10.06
Posted by headiron
,