옵션 |
|
비행기를 타고 상해 홍차오 공항까지 대략 2시간반? (하도 오래되서 기억이 가물가물...) 예전 광저우 다닐때는 4시간씩 탔는데
상해는 거의 대만가는 시간과 비슷했음. 상해에서 택시를 타고 O석으로 다시 1시간 반정도 이동했음.
그리고 호텔에 도착후 짐을 풀고, 저녁을 먹으러 갔음. 저녁 먹으러 간 곳엔 미리 출장나와있던 비전팀 과장님이 계셨음.
(엥? 우리가 첫 출장자 아닌가?)
시진핑 집권이후, 예전 그 동관 밤문화는 사라졌었는데, 이곳은 시진핑의 칼바람을 피해간걸까? 과거 동관 만큼은 아니었지만
이곳은 화려했음. 우리가 밥먹으러 간 번화가에는 크게 이름이 적혀있었음. "假日广场" (짜르광장)
중국 시내 특유의 그 둠칫 둠칫 비트섞인 음악 소리에, 광장에는 아줌마 아저씨들의 광장 댄스. 반 년전 프로젝트로 난o에 갔을때는
참 조용한 도시였는데.. 한국인들이 출장을 많이 와서 그런지 한식당들이 많이 있었음. 물론 맛도 있었고..
오랫만에 과거 동관시절을 회상할 수 있었음.
개인적 감회는 이정도로 하고....
팀장이 무쌍주임과 나를 출장 명령 내리며 했던 말이 있음.
팀장: 원래 장비란게, 그쪽 공장에 도착하면 셋업을 해야하니까. 뭐 빠르더라도 4~5일 걸릴거야. 아마 너네들이 가면 이틀정도
그냥 프로그램 환경 구성하고, 간단한 설치정도 하면 돼. 실제로 장비가 돌면서 테스트 하는건 그 다음부터니까 아마 내가 갈때쯤에
바쁘게 시작하겠지. 너희는 그냥 구경이나 하다와~
그럴리가....
다음날. 출근하기 위해 호텔 로비로 내려가 보니, 처음보는 사람이 두 명 더 있었음. 이쪽 현장대응 및 관리를 위해
현지에서 채용한 중국 직원이라고 하는데, 한명은 본토인이고, 한명은 조선족 이었음.
본인이 중국어가 유창하다는걸 아는 사람은 면접본 3명과, 사장님. 중학교 선배, 팀장, 주임들 제외하고는 몰랐기 때문에
나도 굳이 중국어 한다고 나서진 않았음. 나중에 사람들의 반응들이 너무 재밌었기 때문에...
본토 중국인은....귀여웠음. 아기곰 푸우 닮아서 하는짓도 귀여웠음. 엄청 순수한 20대 사회 초년생이었음. 얘는 앞으로
푸우라고 부르겠음.
조선족 형은 능글 맞았음. 배도 불룩 나왔고.. 이 사람은 헛똑똑이기 때문에 꺼거(형) 이지만 구라를 많이 쳐서
짜더(가짜)를 합쳐 짜거 라고 부르겠음.
호텔에서 공장까지 택시비가 15원 이었음. 근데 이형은 계속 30원을 냈고, 늘 부르는 택시기사들이 정해져 있었음.
내가 왜 15원 인걸 아느냐.. 그냥 지나가는 택시하나 잡아서 공장까지 얼마에요? 물어보면 아저씨들이 15원! 하고 부르거든...
(금방 확인 가능한 들통날 거짓말을 많이 하는건,,, 이상하게 내가 만나본 조선족 분들이 공통적을 탑제한 스킬이랄까...?)
30원 낸 영수증은 나중에 회사에 청구해서 받아낼수 있으니, 굳이 출장자들은 교통비가 얼마가 나오든 신경쓰지 않았음.
중국에서 이런걸 많이 봐서, 나도 굳이 그걸 드러내고 민망한 상황을 만들진 않았음.
뭐 어차피 15원 남겨먹어 봐야 다시 기사랑 갈라먹으면 수중에 7원은 떨어질지 모르겠지만, 현명한 사람은 7원에 양심을 팔진 않겠지..
일단 이 형은 적당히 애매하게 똑똑하니 치밀한 인간은 아니라 판단되었고, 이런 점을 잘 이용하면 다루기 어렵진 않겠다.
대신 생선을 맡겨선 안되겠다 정도의 느낌이었음.
공장에 도착하니 검색대 보안들이 몸수색을 하고 있었는데, 이전 타 공장과는 확실히 다르게 S사는 검색을 빡세게 했음.
그때 같이온 PLC외주 사장님이 말했음.
PLC사장님: 와 저런애가 왜 보안을 하고있냐...
직원들: 누구요? 쟤? 오올~
보안 직원들 중에 한떨기 수선화 같은 피부 하얀 미녀가 있었음. 그러다보니 검색대에 줄이 여러개 있는데 보통 사람들은
줄이 짧은쪽에 가서 줄을서는데 유독 긴줄에 줄을 서는 진풍경이 일어나고 있었음.
그 줄 제일 뒤에 아기곰 푸우도 수줍게 서있었음. 이새끼... 딸내미때메 그랬어? ㅋㅋ
현장에 들어가니 팀장의 말과는 정반대로 이미 셋업이 거의 70%는 완료된 장비가 있었음... 뭐지? 이거 왠지 내일 당장이라도
돌거 같은데? 나중에 알고보니 우리회사는 장비 보낼때 비행기를 태워 보낸다고 함.
비전팀 과장님이 여기 중국직원 둘 데리고, 현지 인력들 고용해서 미리 작업을 다 해놨다고....하아...
그렇게 첫날 프로그램 환경을 위한 파일들을 설치하고, 곰돌이 푸우는 내 옆에서 종이 같은거 들고 열심히 프로그램이름과
설치 경로를 받아 적고 있었음. 아마도 향후 우리가 복귀후 장비를 대응하려면 이런 부분을 배워둬야 된다고 생각했던거 같음.
푸우는 내가 중국어를 할줄 아는걸 모르는데도 불구하고 이따금씩 질문을 했음.
푸우: 那个。。。哥。 现在你上在的软体是什么功能?什么意思? (저기. 형. 지금 설치하는 파일의 의미가 뭐야?)
나: ..... (아씨 중국어 모르는척 해야되는데...ㅋㅋ)
푸우: 흐음...캔....캔유 스픽 잉글리쉬!??
나: 어 리를빗.
푸우는 열심히 내 앞에서 근본없는 수화를 시작했음. 작은 곰이 춤을 추는거 같았는데 귀여웠음...ㅋㅋㅋ
나름 심각하게 열심히 손을 놀리는데, 당췌 무슨 행위인지는 알수 없으나 기적적으로 알아 들은 척..!
아~ 하면서 디스이즈 프로그램...셋업...for...유아이...컬러플... 하면서... 안되는 영어 쓰려니 죽을 맛이었음.
푸우가 설치 과정을 알기쉽게 그림도 그려주고, 순서 같은것도 정리를 해주었음.
그렇게 푸우와 언어를 초월한 교감을 하며, 자기 말이 통했다고 착각하고 기뻐하는 푸우를 보며 소소한 하루를 보냈음.
퇴근하며 푸우가 작게 혼잣말 했음. "힘들었다..." ㅋㅋㅋ 뭘! 받아적기만 해놓고!
다음날. 이번에는 PLC가 연동하여, 물류 테스트를 진행했음. 물류 진행하는동안 설치된 프로그램을 실행하고, 미리 가지고 있던
제품 이미지를 넣어 대략적인 파라메터를 세팅하며, 짜거 형과 푸우에게 검사 파라메터의 의미와 세팅 방법을 알려주었음.
다행히 짜거 형이 옆에서 열심히 통역을 했기에 의외로 전달이 잘 될지도...?
잉?
나: 그러니까. 여기 TH라고 되어 있는건 (Threshold) 쓰레솔드라고 검사하고자 하는 오브젝트를 이진화 하기 위한 값입니다.
이진화가 뭐냐면, 화면에 지금 보이는 원본 영상으로는 프로그램이 잡고자 하는 부분을 바로 잡아내기는 어려워요.
그래서 배경을 검게 만들어 없애고, 잡고자 하는 오브젝트만 흰색으로 만들어서, 프로그램은 그 흰색을 탐색해서 불량을 찾아내는거죠.
그럼 일단 마우스 포인트를 이렇게 화면에 가져다 대면, 해당 위치 픽셀의 밝기 값이 이렇게 나옵니다. 대략 90~100 사이의 값들이
보이시죠? 그리고 우리가 찾고자 하는 기포의 밝기를 보시면..120~130 정도의 값이 나오네요.
그럼 배경을 날리기 위해 TH 값은 115 정도로 잡으면 배경과 불량 오브젝트의 분리가 가능 하지요. 장비 환경에 따라 여러분들이
판단을 해줘야 할 부분입니다. 115라는 수치는 제 판단일 뿐이고, 실제로 110을 넣든 120을 넣든 자유 입니다. 여러분의 판단 하에
가장 적절히 배경과 분리가 가능한 값을 넣으면 됩니다.
짜거: (통역 중...) 음. 저기 TH라고 되있는거 쓰레솔드라고 부르고, 검사를 하려면 필요한 값이야. 그냥 외워.
지금 115 입력했지? 적어둬. 저 값 그냥 넣으면 되는거야. 저거 넣으면 이미지가 흑과 백으로 나누어진데. 그리고 흰색을 찾는거고.
나머지는 복잡한 알고리즘 같은거니까, 굳이 너가 알 필욘 없고. 알겠지?
푸우: 어...그런데 이전 장비들 보니까 값이 100도 보이고 120도 보이고 하던데...이번에는 115를 넣었고..
원리가 잘 이해가 안되는데...?
짜거: 마! 지금 프로그래머 분께서 저 값을 넣으셨잖아. 똑똑한 분이니까 다 생각이 있으신거지!
나: .....
나: 자. 지금 설명드린건 제일 핵심적인 파라메터 이구요. 그 외에 옆에 두개 입력칸 보이시죠? 이건 검출한 불량의 사이즈를 입력
하는 겁니다. 왼쪽은 최소값, 오른쪽은 최대값. 이걸 잘못 설정하면 과검출이 나거나 미검출이 날수 있으니 무시할수 없는 부분이죠.
입력 단위는 mm 단위인데 우리는 마이크로 단위로 불량을 찾기 때문에 100 마이크로는 0.1mm라고 할 수 있죠.
그리고 여기 이 체크박스는 필터를 쓰냐 안쓰냐를 결정하는 건데, 제가 볼땐 이 장비에서는 사용안해도 될거 같네요.
이건 미디언 필터라고 해서, 영상 픽셀에 후추나 설탕 뿌려놓듯이 잡음이 끼는 경우에 그런 잡음들을 제거해 주는 기능이에요.
아마 다른 장비에서 이게 필요했던거 같은데, 이 장비는 해당이 안될것 같습니다. 필터를 쓰면 검사 속도에 영향을 주거든요.
짜거: 여기랑 여기는 불량 사이즈 입력창인데 과검, 미검 안나게 잘 해야 되니까 중요해. 입력 단위는 mm단위고 이 장비는
마이크로 단위로 찾으니까, 100마이크로를 잡겠다 한다면 0.1mm를 입력하면되.
그리고 여기 체크박스는 필터를 쓰냐 안쓰냐 인데, 이걸 쓰면 영상을 깨끗하게 만들어주는 기능이래. 써도 되고 안써도 되는거야.
푸우: 써도되고 안써도 되는건 뭐야? 영상을 깨끗하게 만든다며? 그럼 좋은거 아냐?
짜거: 그럼 쓰던가.
나: 저기 짜거 형. 통역 제대로 하고 있는거 맞죠?
짜거: 네. 물론이죠.
나: 하아....
대만도 그랬고, 이전에도 그랬고, 통역하는 사람들을 믿을수가 없었음. 있는그대로 통역하면 되는건데, 자꾸 자신의 판단을 첨가해서
비슷하지만 결과는 다르게 되어버리는 소통이 되어버림...
어쨌든 실제 테스트는 이루어지지 않았지만, 국내셋업과 마찬가지로 아직까지는 별다른 문제가 없었음. 테스트 이미지도 잘 검사했고,
파라메터도 모델에 잘 저장이 되었고.
한 가지 불안요소는, 검사 기능중에 바코드를 읽고 바코드를 불량으로 잡지 않도록 스킵하는 부분인데, 이 회사에 패턴매칭 알고리즘이
있음에도 불구하고, 이 장비는 mil을 쓰고 있었음. 유료 라이브러리를 사용하려면 USB같은 키락을 컴퓨터에 연결해야 사용이 가능한데,
이 키락도 디버깅이 가능한 버전과, 디버깅은 안되고 실행만 가능한 버전이 있음.
당연히 여기는 현장이니, 실행만 가능한 버전이라, 만약 프로그램에 문제가 생겨도 디버깅을 할수 없는 상황이었음.
디버깅 가능한 키락은 팀장이 가지고 있었는데, 솔직히 한국에서 그게 왜 필요한건지는 모르겠음. 나였다면 출장자에게 전해줬을텐데..
실력이 좋은 프로그래머라면 왠만한건 디버깅까지 하지 않아도, 나오는 증상만 보고 문제를 잡아낼 수 있지만, 당시엔 본인도
초짜라 디버깅을 할 수 없다는건 시력 0.1인 사람이 안경을 잃어버린 것과 비슷한 상황이었음.
그렇게 하루 하루..장비가 돌아갈 날을 기다리며, 코드 분석하고 중국 친구들 교육도 시키며 지냈는데, 곰돌이 푸우는 말도 안통하면서도
본인을 졸졸 따라다니며 잘 따랐음. 짜거는 좀 복잡하고 힘든일 같은 경우는 슬쩍슬쩍 엉덩이 빼고 물러서는데 곰돌이는 그런거 아랑곳없이
가리지 않고 열심히 했음.
푸우: 형. 오늘 저녁 내가 밥사주고 싶은데 같이 밥먹을래?
나: 완...완상(저녁)? 츠판(밥먹어)? 츠판! 니!(너) 워!(나) 츠판?
푸우: 응! 일주일 있다가 간다며? 이제 몇일 안남았는데. 같이 먹어 형.
그렇게 그날 저녁은 우리 직원들과는 따로, 곰돌이 푸우와 짜르 광장에서 만났음.
푸우: 형. 여기는 술먹고 노는데가 많잖아. 가격도 비싸고. 나랑 같이 내가 아는 식당으로 가자.
그렇게 택시타고 이제야 좀 조용하고 한적한 식당가로 왔음. 얘가 뭘 사주려나 봤더니 내가 제일 좋아하는 마라롱샤! 그리고
가지 볶음!!
푸우는 내가 자기 말을 알아 듣든 아니든 자기 얘기도 하고, 이런저런 표정 손짓 섞어가며 놀았음. 맞아...나도 첨에 중국 사람들하고
이렇게 놀았는데....ㅎ 왠지 그때의 중국 따거들이 생각나서 기분이 좋았음.
푸우: 형하고 이렇게 만난건 좋지만, 우리가 앞으로 쭉 볼사이는 아니겠지? 어쨌든 우리는 현지에서 싸게 쓰려고 고용된 입장이니까.
정식 직원이라고 할순 없을것 같아. 형 같이 전문적인 기술을 가지고 있는 사람들이 참 부럽다. 나는 솔직히 지금 이렇게 일해서
미래에 내가 뭘 해서 먹고살지 모르겠어..가진 기술도 없고 그냥 장비 옆에서 이것저것 외워다가 쓰는거 뿐이잖아?
이렇게 살면 안되는데...
오. 어린놈이 할 생각은 아닌데, 일도 참 열심히 하고 생각도 바른 23살 중국 청년이었음.
나: 呵呵。这小伙子想法太沉重了。(허허. 어린놈이 생각이 참 깊구만~)
푸우: !?!?!?
나: 뭘 뭘뚱뭘뚱 쳐다봐? 귀엽다 너?
푸우: !?!?!? 중국말 할줄 알아!?
나: 어. ㅋㅋㅋㅋㅋㅋㅋㅋ
푸우: ㅋㅋㅋㅋㅋㅋㅋ 너 이제부터 형 아니야. 재밌었냐!? 나혼자 쑈하는거 보는게?
나: 어. 겁나 재밌었음. 귀여워~
푸우: 잘한다. 어색한거 없이 너무 잘해..
나: 그래. 어린놈 하소연 잘 들었구요. 오늘 자기전에 방금 한말 곱씹으며 수줍게 잠들어라.
푸우: 아니...! 그건...와. 이사람 나쁜 사람이네. ㅋㅋㅋㅋ
나: 나도 한때 너처럼 장비도 모르면서 그냥 시키는대로 전선 연결하고, 카메라 달고, 남이 만든 프로그램 만지면서 파라메터 외우고
이론 없이 몸으로 땜빵하던 시절이 있었다. 너랑 같은 생각 했었고, 단지 나는 운이 좋아서 대학교때 프로그램을 전공했고,
땜빵질 하던 생활에서 벗어나서 다시 운좋게 지금 회사에 와서 드디어 하고싶은일 할 수 있는 상황에 온거지.
푸우: 그럼 나도 프로그램 할 수 있을까?
나: 뭐 못할건 없지만. 꽤 힘들껄? 내가 중국의 사정을 모르니 덜렁 너더러 프로그램 배워서 프로그래머로 살라는 말은 못하겠다만,
지금이야 너가 아무것도 없이 맨몸으로 여기와서 불안할순 있는데, 너 평생 이 회사 다닐거 아니잖아? ㅋㅋ
비전 팀 봤지? 지금이야 너가 땜빵한다고 생각하겠지만, 그건 단순히 저 짜거처럼 오늘 하루만 살듯이 생각없이 행동하는 사람들
얘기고, 너처럼 진중한 생각을 가지고, 장비의 연동과, 각 부품들의 생산처, 장단점. 그리고 같이 오가며 만나는 사람들과의 관계를
해 나가다 보면, 그 또한 기술이 되고, 동종 업계 여러 업체들과 교류도 하고, 나중에는 제품의 발주나 구매에도 영향력 줄 수 도 있는거고
그러다 보면 큰 회사 설비 관리자나, 다른 더 좋은 회사에 이직 할 수 도 있는거고. ㅎㅎ
아직 23살 이잖아. 형은 26에 시작했어. 나보다 3년 빠르구만. 지금 가는 길이 절대 틀린길이 아니야. 고민하지마~
푸우: ..... 형...
나: 일단 짜거 저놈한테 통역을 맡기면 안되겠더라. 내가 내일부터 싹다 다시 정리해줄께. ㅋㅋㅋㅋㅋㅋ
그렇게 다음날 출근해서 갑자기 내 중국어 커밍아웃을 본 짜거는 상당히 긴장했음. 일단 내 근처로 잘 다가오지 않았고....
한번씩 무게잡고 술한잔 하자고 얘기하긴 했는데. 미안 나는 술을 못해서...ㅎㅎ
그다음날 부터는 택시도 보내오지 않았음. 우린 "띠띠따처" 가 있으니까.
중국어 커밍아웃 이후로 제일 격한 반응을 보인건 S사 담당자였음.
S사 담당자: 아니! 무쌍 주임에 이어서. oo 주임은 중국어 특수기를!? 이 회사 주임들은 저마다 특수 스킬을 가졌네요!!
중국어 특수기는 꽤 귀한걸!?
본인도 진급 때문에 중국어 수업을 듣고있다고 하며, 드문 드문 중국 직원들과 대화 하기도 했고, 중간중간 모르는 표현이 있을때는
본인에게 와서 물어보고 가곤했음.
그러던 와중 드디어 물류부터 해서 생산에 필요한 모든 준비가 완료가 되었고. 드디어 대망의 시양산 테스트를 시작했음.
국내에서는 사람이 손으로 직접 제품을 태워서 검사를 하다보니 연속적인 검사가 이루어 지지도 않았고, 그 후 처리까지는
신경쓰지 않았으나, 실제 시양산 테스트는 달랐음. 제품이 끊임없이 좁은 간격으로 붙어 들어왔고, 생각보다 생산 속도도 빨랐음.
아니나 다를까 걱정했던 일이 발생했음. 이런 저런 버그들이 발생하기 시작했는데, 디버깅을 할 수 없으니 죽을 맛이었음.
이전부터 중국친구들 교육하며, 틈나는 대로 중요하다 싶은 플로우 마다 로그를 남겨 뒀었음. 혹시나 문제가 있을까봐.
1, 2, 3, 4, ,5 , 6.... 이런식으로 숫자를 남기도록 해두었는데, 디버깅은 안되더라도 적어도 어디서 프로그램이 죽었는지는
알수 있도록... 만약에 1, 2, 3 까지 가서 죽으면 적어도 코드가 3~4번 사이에 문제가 있어서 죽었다는 거니까.. 그 사이의 코드를 기점으로
코드를 분석하다 보면 문제를 찾을 수 있었음. 다행히도 이 부분은 상당한 도움이 되어 주었음.
또 발생한 문제는 제품이 500개 이상 카운팅 될 때마다 프로그램이 죽는거였음. 그런데 아무리 코드를 뒤져바도 디버깅이 안되는
상태에서는 문제가 눈에 보이지 않았음. 그렇게 500개 마다 프로그램이 죽고, 또 죽고, 또 죽고....내 마음도 죽고...더 있다가는
S사 담당자 손에 죽고....
이제 슬슬 위험하다 싶을때...예전 사수가 디버깅 할때마다 작업 관리자 창을 띄워 놓던게 생각이 나서 혹시나 하여 작업 관리자 창을
띄우고 다시 프로그램을 돌려보니, 제품이 검사 될때마다 프로세스 메모리가 아주 조금씩....조금씩....오르고 있었음.
32bit 버전 프로그램이 버틸수 있는 메모리가 가상 메모리 제외한 2GB라고 하면 그중에 예약으로 잡혀있는 메모리 제외하면 대략
1.4~1.5GB 넘어가면 프로그램이 죽었음.
아... 어딘가 메모리를 할당하고, 해제를 하지 않은 코드가 있구나.. 그때부터 다시 열심히 코드를 보며, 메모리 할당과 해제 부분들을
다 뒤져보았고, 드디어 하나를 찾았음. 팀장이 하다가 만 코드...실제 사용도 하지않는 코드가 똥처럼 끼어있었음.
아...우리가 다 안지웠구나.....
그렇게 다행스럽게도 S사 담당자가 폭발하지는 않을 시점에서 하나씩 하나씩 잡아나가고 있었음.
(솔직히 이때 디버깅 없이 처리하는 첫번째 경험이었는데, 상당히 많은 생각을 하게 했고 이 후로의 코드를 분석하는 방향에 대해
새로운 시각을 가질 수 있는 첫 훈련이었지 않을까 함..)
그러다 보니 어느덧 더이상의 특이한 문제는 발생하지 않았고, S사 담당자도 중간 중간 불안한 감은 있었으나 이정도면 오케이~
하며 그날 업무를 마무리 지을 수 있었음.
그렇게 시간이 지나 나의 출장 복귀 예정일도 3일 정도 남았을때 쯤. 다시 일이 터졌음.
그날도 시양산 잘 돌아가는 장비를 보며, 모두들 흐뭇하게 라인 옆에서 지켜보고 있는데, 방진복 입은 여직원 하나가 제품을 들고
S사 담당자에게 다가갔음.
여직원: 이거. 불량인데. 양품으로 들어왔어요.
양품이 불량으로 나간것도 고쳐야할 문제지만, 이 업계에서는 과검출 오검출 보다 더 크리티컬한건 불량이 양품이 되는거임.
조졌다.... 귀국까지 3일 남은 상황이었음..