방금 구운 식빵 냄새가 은은하게 퍼진다, 둘째의 그 앙징맞은 손으로 따뜻한 식빵을 한입 베어 먹더니 뒷쪽 침대에 걸터 앉는다.

건조한 그 빵 표면의 바스락 거리는 소리, 그리고 그 작은 입으로 씹는 소리가 너무 듣기 좋다.가만히 웃음 띤 얼굴로 쳐다보니, 내게 한입 먹으란 듯이 내민다.


이제 7개월 접어드는 막뚱이가 늘 잘 웃는 모습에,

"막뚱이는 정말 잘 웃는 것 같다" 라는 내 말에,

"우리 얘들 늘 잘 웃었어, 단지 자기가 자주 안봤을 뿐이야"

그랬었다.아이는 늘 그렇게 잘 웃고 있었던 것이다.지금이라도 그런 걸 알고 보게 되니 다행이다.

'일상' 카테고리의 다른 글

색다른 크리스마스 구경꺼리  (0) 2011.12.18
먹먹하다.  (0) 2011.12.14
이젠 비밀번호도 까먹겠다  (2) 2011.12.06
"어땠어"  (0) 2011.11.27
냉철하게 바라볼 것  (0) 2011.11.25
Posted by iamyhs
,

블로그 관리자 비번을 깜빡 잊었다.이 비번을 잊을 만큼 글 쓰기가 점점 줄어들었구나.한편으론 아이들과 뒹구는 시간이 조금 더 많아진 것 같고, 또 다른 한편으론 날 돌아보는 시간이 조금씩 조금씩 멀어진다.

생각하니,한달 전쯤에 한국은행 이체 비밀번호가 기억이 나지 않아서,마지막 5번째 시도로 이체를 성공했던 아슬아슬한 일도 있었다.만약 이렇게 해서 계좌가 잠기면, 영사관 통해서 위임장을 받고 한국의 대리인을 통해 처리하거나, 한국을 본인이 직접 가서 계좌를 풀어야한다.

그 상황을 옆에서 지켜본 아내가 약간 한숨 쉬는듯 한 얼굴로 "자기도 이제 정말 나이 먹었구나" 하는 말에 할 말이 없었다.

아직 충분히 젊다고 생각했는데,여러 정황상(?) 꼭 그런것만은 아니구나.어이쿠야~

'일상' 카테고리의 다른 글

먹먹하다.  (0) 2011.12.14
아이는 늘 웃고 있었다.  (2) 2011.12.10
"어땠어"  (0) 2011.11.27
냉철하게 바라볼 것  (0) 2011.11.25
따뜻한 차 한잔이 생각난다.  (0) 2011.11.24
Posted by iamyhs
,

"어땠어"

일상 2011. 11. 27. 16:06

추노 이후에 아내가 이렇게 좋아하는 드라마는 두번째 이다.몇 주전에 1~10화 를 빌려오더니 얘들 재우고 밤마다 하루 하루 재밌게 보았던 것 같다.뭐 그런가보다 하고 있다가,쉬는 주말에 봤더니 첫 화 처음 5분만 보고서도 나 역시도 아내말에 동감했다.

그리고, 오늘 아내가 점심 메뉴로 새롭게 만든 걸 먹는 내 모습을 보더니, 짐짓 흉내내는 듯이 물었다.

"어땠어"

겸사복 강채윤이 출상술을 전개해, 상대의 가면을 베워 떨궈버린 그 장면의 그 대사였다.아내는 이 장면에서 강채윤의 그 낮고 차분한 목소리톤이 무척 기억에 남았나 보다.그 전에 이미 아내에게 이 장면을 들었던 터라, 반사적으로 식탁에 오른 새로운 음식(?)을 보면서 상대의 대사를 따라하고 싶었지만,

'너 도대체 정체가 뭐냐'

대신에,

"맛있었어" 라고 화답해줬다.

물론, 속 마음은,

'도대체 니 정체가 뭐냐구?? 니가 소이야? 말을 해!"


그리고, 오늘 일주일 식료품을 사러 오는 사이, 13,14편을 빌려왔다,일상의 소소한 재미다.

'일상' 카테고리의 다른 글

아이는 늘 웃고 있었다.  (2) 2011.12.10
이젠 비밀번호도 까먹겠다  (2) 2011.12.06
냉철하게 바라볼 것  (0) 2011.11.25
따뜻한 차 한잔이 생각난다.  (0) 2011.11.24
세상 참 좁다  (0) 2011.11.19
Posted by iamyhs
,

냉철하게 바라볼 것

일상 2011. 11. 25. 08:17

한미 FTA 협정문 공식 사이트

외교통상부 자유무역협정 사이트
 
Home › Trade Agreements › Free Trade Agreements › KORUS FTA

공식 사이트에서 보게 되면 범위가 너무 넓고, 내가 가진 지식이 얕아서 이해득실을 따져보는 게 한계가 있다.


대신, 아래 파일들을 보게 되면 그 사이 일들을 조금은 더 알수 있다.

한·미 FTA 신구 국문 협정문을 비교·분석 pdf 파일

민주당 박주선 의원의 미국의 한미FTA 이행법안 번역문


똑같은 사회현상에 대해서 이렇게도 큰 시각차이가 존재한다는 게 늘 놀랍다.어쭙잖은 상대주의 시각을 말하고 싶은 건 아니다.단지, 한숨이 나올뿐이다.

새사연의 링크를 걸고 싶지만, 이 사이트의 성격이 사람에 따라선 편향적으로 보일 수 있기에 삼간다.

확실히 현실은 스스로 찾아서 인식하는 것이다.

'일상' 카테고리의 다른 글

이젠 비밀번호도 까먹겠다  (2) 2011.12.06
"어땠어"  (0) 2011.11.27
따뜻한 차 한잔이 생각난다.  (0) 2011.11.24
세상 참 좁다  (0) 2011.11.19
재밌는 쿼리  (0) 2011.11.04
Posted by iamyhs
,

Lovely Owl

'일상' 카테고리의 다른 글

"어땠어"  (0) 2011.11.27
냉철하게 바라볼 것  (0) 2011.11.25
세상 참 좁다  (0) 2011.11.19
재밌는 쿼리  (0) 2011.11.04
BSI Tax Factory 통합  (0) 2011.11.03
Posted by iamyhs
,

세상 참 좁다

일상 2011. 11. 19. 17:07

브리즈번에서 대학 후배를 만나다니,인연이란게 참 묘하다.

어느새 서로가 가장이 되서 만난거지만 이렇게도 만날수가 있다는게 마냥 신기하다.

비자 연장건으로 순회 영사 오는 날에 해당 장소에서 우연히 만났다.서로가 얼굴이 크게 변한게 없었던건지, 난 보자마자 "어!!" 하자 그 후배도 "형!!" 하더라.

그 친구는 4년차 나는 2년차, 그 사이 일들을 단 몇줄로 주고 받았다.

작년에 왔다, 아내가 임신을 했다, 한국을 두번 왔다 갔다 했다,다시 돌아와서 직장을 잡았다, 아내가 출산을 했다,세 아들 데리고 우당탕 거리며 살고 있다.

각자 이런 저런 사연도 많았겠지만, 아이들 잘 크고 큰 탈 없이 서로가 잘 지내니 그걸로 족하다.

가끔은 이런 소중한 일들을 너무나 쉽게 받아들이고 잊고 산다.그리고, 다시 한번 내 인연들을 돌아본다.

'다들 건강하고 행복하게 살고 있기를 바란다.'

'일상' 카테고리의 다른 글

냉철하게 바라볼 것  (0) 2011.11.25
따뜻한 차 한잔이 생각난다.  (0) 2011.11.24
재밌는 쿼리  (0) 2011.11.04
BSI Tax Factory 통합  (0) 2011.11.03
유럽발 금융위기의 여파  (0) 2011.10.30
Posted by iamyhs
,

재밌는 쿼리

일상 2011. 11. 4. 12:54

같이 일하는 동료가 이거 봤냐면서 구글 페이지를 열더니 보여줬다.

구글을 열고 do a barrel roll 을 치다보면 돌아간다, 나도 모르게 웃었다. 구글 스럽다.

또 하나는 tilt 이다, 검색하면 문자 그대로 tilt 된다.호~ 이거 뭔가 영감을 주는 것 같은데 말야.

'일상' 카테고리의 다른 글

따뜻한 차 한잔이 생각난다.  (0) 2011.11.24
세상 참 좁다  (0) 2011.11.19
BSI Tax Factory 통합  (0) 2011.11.03
유럽발 금융위기의 여파  (0) 2011.10.30
크리스마스 파티 초대  (0) 2011.10.28
Posted by iamyhs
,

BSI Tax Factory 통합

일상 2011. 11. 3. 07:28

1)BSI Tax Factory 에 관한 건 아래 링크 와 소개글 참고, 한줄 요약하면 미국 세금 계산 툴이다.

BSI- BUSINESS SOFTWARE INC.http://www.bsi.com/

BSI software is mandatory for Tax calculation in US Payroll.
BSI TaxFactory™ offers the most comprehensive and cost effective payroll tax solution in the industry.
BSI Tax Factory does tax calculations and generates tax wage types along with Tax Authorities and Tax Models maintained in the SAP Payroll module.
Before the SAP Payroll component sends any data to the BSI TaxFactory for tax calculation,
the payroll driver goes through a number of steps to determine exactly which taxes will be applied for each payment or deduction wage type.
These steps depend largely on how you configure wage types, tax types, tax authorities, and taxability models in the Tax section of the Payroll: USA IMG.
BSI issued EIN(employer identification number) to thier clients.By this number payroll will integrates BSI.BSI connect to main sap system through RFC T CODE IS SM59.

Refer following link to set up BSI tax factory,



2)이 엔진을 자바환경으로 통합시키는 태스크이다.일단, 윈도우즈 환경에서(tf9api.dll 을 이용) 통합한다.
이 태스크를 위해 제공된 정보는 클라이언트용 BSI_Windows32Bit.exe 파일 하나였다.이 파일을 인스톨 하게 되면 tf9api.h 파일과 dll 파일, 그리고 샘플 c 소스코드가 있다.

간단하게 말해서, "자바에서 tf9api.dll 의 내부 함수를 jna 를 이용해서 호줄하는 태스크이다"

일단, 원본 소스가 없기 때문에 jni 보다는 jna 를 이용하기로 결정.tf9api.h 파일에 함수 시그니처가 있어서 그 함수 정의를 참고로 jna 를 쓰기위한 인터페이스 작성.

첫번째 문제는,헤더파일에 정의 되어있는 함수가 dll 에 없었다.그 함수를 예상하고 작성한 자바 클래스에서 에러 발생.
사용자 삽입 이미지

dll export 함수 리스트를 확인해보니(PE Explorer 를 썼다, 그 외에 공개툴도 많다) 구조체에 대한 정의 밖에 없었다.혹시나 dll packing 되었나 싶어서(좀 지나친 감은 있었지만, 크래킹이나 리버싱 해본 경험이 있으면 늘(?!) 한번씩 하는 과정이다),PEiD 를 써서 확인해보니 패킹된 건 아니다.
사용자 삽입 이미지


tf9api.h 파일에 함수 시그니처가 있기 때문에, 랩퍼 dll 을 만들어 해당 구조체를 이용해 포인터를 이용한 간접호출을 시도해보기로 결정.하지만, 윈도우즈 dll 을 마지막으로 짜본게 언제더라~

공개용 C 컴파일러인 MinGW를 이용하기로 하고, 다운 받아서 c 코드 작성, 그리고 dll 컴파일 명령어는 아래와 같다.

gcc -mno-cygwin -I./include -I./include/win32 -Wl,--add-stdcall-alias -shared -o TF9APIWrapper.dll TF9APIWrapper.c

참고로, include 파일안의 헤더파일들은 위에서 설치한 파일 안에 있는 헤더파일들을 썼다.
#include "tf9api.h"
#include "tf9tools.h"

Dll 컴파일 후 Export 리스트를 확인해보면 아래와 같다.
사용자 삽입 이미지


자바쪽에서 tf9api.dll 함수 호출 성공한 화면은 아래와 같다. dll 내부의 ConnectToDataSource 함수를 호출한 경우이다.
사용자 삽입 이미지


두번째 문제는, tf9api.h 파일안에 정의되어 있는 구조체를 java 쪽에서 선언 후(jna) 넘겨주면, dll 에서 제대로 처리하지 못하고 있었다.
몇 일동안 이런 저런 시도하다가, 우연히 점심을 먹다 동료와 요즘 무슨일 하고 있냐는 평범한 대화속에,
jnaerator 툴을 알게 되었다,한번 이걸로 c 에서 선언한 구조체를 java 의 클래스 타입으로 제너레이팅 해서 해보라는 조언을 해줬다.

사실 큰 기대는 없었다, 그런데 아래처럼 관련 클래스를 만들고(기존에는 직접 해당 클래스를 작성했엇다, 차이점은 c 데이타 타입에 맞는 java 타입으로 선언해줫었다,문자 그대로 그렇게만 선언을 해줬다)

java -jar jnaerator-0.9.8-shaded.jar -library tf9api tf9api.h -o . -v -noJar -noComp

위 명령어를 실행하면 tf9api 폴더가 생겨나고 그 안에 클래스 파일들이 만들어진다,c 구조체에 대한 java 클래스 파일들을 봣더니, 생성자부터 초기화 시켜주는 메소드들이 있었다.기존의 클래스들을 이 파일들로 교체 후 테스트 하니 제대로 전달이 되었다.

주의, public interface Tf9apiLibrary extends Library {..} 이런식으로 인터페이스 마저 생성해주는데. 인터페이스는 이걸 쓰지는 않았다.단순히 c 함수 정의에 맞는 인터페이스만 선언한(물론 Library를 확장한 클래스이다) 클래스 파일을 썼다.

일반 변수와,구조체에 대한 함수 콜을 확인 후(c 소스내에서  fprintf 문으로 확인)코볼 개발자와 자바 통합을 담당하는 개발자에게 프로젝트와 c 소스를 넘겼다.

하지만,운영 환경에서 동작하는 걸 확인하지 못해서,모든 함수 호출이 제대로 동작하는지는 미 검증이다.

3)아래는 gcc 를 이용한 윈도우즈 dll 만들기 와 unix 용 so( so 파일은 미 검증) 만드는 명령어 이다

Windows 용 dll
gcc -mno-cygwin -I./include -I./include/win32 -Wl,--add-stdcall-alias -shared -o TF9APIWrapper.dll TF9APIWrapper.c

Unix 용 so
gcc -c -w -fPIC -I$./linuxinclude -I$./linuxinclude/linux -o TF9APIWrapper.o TF9APIWrapper.C
gcc -o TF9APIWrapper.so -shared TF9APIWrapper.o -lgcc


마지막으로,자바쪽에서 C dll 로 넘긴 구조체의 길이를(?) 제대로 처리하지 못하는 것 같다, 왜 이런 원인이 생기는지는 모르겠다,그래서 아래처럼 해결을 했다(원인을 정확히 파악하지 못했기 때문에 이것 역시 100% 확신할 수 없다, 테스트 시스템은 64Bit 윈도우즈 환경이다)

BSI_SHORT ConnectToDataSet(BSI_CHAR *ds, BSI_CHAR *user, BSI_CHAR *pwd, pTF9_SESSION sess, BSI_SHORT *rtncd){

    BSI_CHAR        str[256] = "";
    TF9_SESSION     Session;
    BSI_CHAR        User[100] = "";
    BSI_CHAR        Pass[100] = "";
    BSI_SHORT       ret;

    LoadAPI();

//아래 처럼 다시 한번 구조체를 선언 후, 할당 시켰다
Session = *sess;

//특수문자가 깨진 것이 보인다.
fprintf(stdout,"ConnectToDataSet function, %s %s %s %s\n", ds, user, pwd ,rtncd);
fprintf(stdout,"sess->SESS value is : %s\n", sess->SESS);
fprintf(stdout,"sess->Filler value is : %s\n", sess->Filler);

fprintf(stdout,"\n");
//예상대로 동작한다.
fprintf(stdout,"ConnectToDataSet function, %s %s %s %s\n", ds, user, pwd ,rtncd);
fprintf(stdout,"Session.SESS value is : %s\n",  Session.SESS);
fprintf(stdout,"Session.Filler value is : %s\n", Session.Filler);
//fprintf(stdout,"sess %s \n", sess.SESS);
//fprintf(stdout,"filer %s \n", sess.Filler);
//USER_FUNCTIONS->ConnectToDataSet(ds, user, pwd,sess,rtncd);
if (!USER_FUNCTIONS->ConnectToDataSet(ds, user, pwd, &Session,rtncd)) {
        fprintf(stderr, "Connect to data set error: %s.\n", ds);
        //exit(1);
    }

    return 1;
}

위 코드에 대한 스크린 캡쳐는 아래와 같다.
사용자 삽입 이미지


이 프로젝트를 정리하기 전에,잊지 않기 위해 다시 한번 적어둔다.

'일상' 카테고리의 다른 글

세상 참 좁다  (0) 2011.11.19
재밌는 쿼리  (0) 2011.11.04
유럽발 금융위기의 여파  (0) 2011.10.30
크리스마스 파티 초대  (0) 2011.10.28
Mouseland  (0) 2011.10.26
Posted by iamyhs
,

이제 다음 주를 마지막으로 본사로 복귀한다.2월 ~ 11월 까지 아키텍트로 참여했었고,호주에서 처음 수행했 던 일이며,내 이력서에 한줄 굵게 차지할 경력이라, 내겐 여러모로 의미 있는 프로젝트 였다.

이번 주초에 본사 매니저로 부터 연락이 와서, 간단한 사정만 들었다.현재 민컴의 사내 긴축정책으로 이런 결정이 났었다 한다.그 동안 인력의 이동을 자주 봐왔던 터라, 알겠다는 말과 함께 끊었다.

그리고 몇일 후 현재 팀의 프로젝트 매니저 맷에게 그 일을 말했더니, 왜 그런 결정이 났는지 알고 싶냐고 하더니,안쪽 세미나룸으로 자리를 옮겼다.

올 7월에 에너지 회사인 ABB 가 Mincom을 인수 합병했다 , 이 사실은 그 당시 전체 메일로 받아봐서 알고 있었다.그때 민컴의 직원은 1,000명 ABB는 130,000명이다. 수치상으로 백삼십배 규모의 회사다.그 합병소식을 듣고 내심, 여러모로 민컴에게 좋은 소식일거라 생각했다.많은 이들도 비슷한 기대를 했던 것 같다.

그러던 사이 그리스 금융위기가 터지고, ABB의 가장 큰 고객 중의 하나인 중국쪽에서 프로젝트를 축소 혹은 연기를 결정했고, 그 결과로 ABB 역시 거기에 맞춰서 탄력적(?) 재정 정책 결정이 났으며,그 자회사중 하나인 민컴의 진행 프로젝트에 대해서도 똑같은 정책이 적용됐다.그 정책은 한마디로 "Contractor goes first" 이다.프로젝트 매니저인 맷은 이 조치가 임시적이 되기를 바라고,사정이 나아지면 다시 그 사이 일했던 인력들을 모으고 싶어하지만, 그게 말 처럼 쉽게 되지는 않을 것같다.

그래서 지금 내가 속한 팀 인원 중 계약직 인원들이 모두 다 나가게 되었고,유럽발 금융위기를 피부로 느끼게 되었다.영화에서 보면, 하룻밤 사이 해고 되어, 다음 날 아침에 짐싸서 나가는 광경이 이젠 낯설지가 않다.

음, 뭔가 안전망이 필요할 것 같다.

'일상' 카테고리의 다른 글

재밌는 쿼리  (0) 2011.11.04
BSI Tax Factory 통합  (0) 2011.11.03
크리스마스 파티 초대  (0) 2011.10.28
Mouseland  (0) 2011.10.26
벽안  (0) 2011.10.25
Posted by iamyhs
,

사내에서 크리스마스 파티 초대 메일이 왔다, 해당 장소에 얘들 놀이동산과 비슷한 기구들이 있고, 아이들 선물 준비를 위해 아이들의 성별과 나이를 적어 보냈다.

11월 한 여름의 크리스마스라, 이채롭긴 하다.

사용자 삽입 이미지

'일상' 카테고리의 다른 글

BSI Tax Factory 통합  (0) 2011.11.03
유럽발 금융위기의 여파  (0) 2011.10.30
Mouseland  (0) 2011.10.26
벽안  (0) 2011.10.25
SSD가 왔다.  (2) 2011.10.17
Posted by iamyhs
,