brunch

You can make anything
by writing

C.S.Lewis

by 부소유 Aug 24. 2024

세상에 쓸데없는 것은 없다고 생각해요.

방향은 같지만, 성질이 달라.. ^^+

“철수야, 바쁘니? 너도 이제 슬슬 우리 팀이든, 개인의 이력이든 도움이 되는 일을 해야지 않겠니?”  

어느새 문구열 과장이 옆에 와서 말했다. 문구열 과장은 사수다. 사수라고 하면 회사에서는 직속 선임자를 말한다. 생산부에서라면 변규선 대리가 사수였다. 끔찍한 경험이다. 그에 비하면 문구열 과장은 신사다. 그의 외모는 유순해 보인다. 처진 눈에 처진 눈썹이다. 입도 코도 늘어져 있다. 직모 머리도 늘어져 있고 머리 한쪽에 언제나 까치집이 만들어져 있다. 외모에 신경 쓰지 않는 사람이다. 말도 느리다. 충청도 산골에 사는 사람처럼 말이 느린데 막상 고향은 강원도다. 말을 느리게 하는 대신 나름대로 논리적으로 말은 잘한다. 아마도 책을 많이 읽은 사람 같다. 그는 내가 부사수 역할을 받았음에도 그의 처한 업무에 대응하느라 바빠서 나를 챙겨줄 겨를이 없었다. 그렇기에 현진영 대리와 김팔봉 사원 두 명에게 눈칫밥을 먹으며 일을 배웠다. 그는 그룹의 일 중독자로 유명하다. 특히 업무시간이 제일 많기로 유명하다. 기본적으로 최소한 하루에 열두 시간은 근무하는 것으로 유명하다. 그는 느린 말투와 더불어 업무 속도 역시 빠른 편은 아니다. 그것을 메우기 위해 시간을 갈아 넣으며 업무를 하는 것일지도 모르겠다. 그런 그가 한바탕 바쁜 업무가 마무리되고 내게 관심을 주기 시작했다. 정신을 차리고 보니 옆에 있는 내가 눈에 띈 거다. 옆에서 바쁜 그의 모습을 지켜본 결과 화내는 모습을 한 번도 본 적이 없다. 어쩌면 화를 내지 못하는 사람처럼 보인다. 그런 그에게 업무를 배우는 모습이 어떨지 상상을 하기가 힘들다.  

“철수야 우선, 이 빨간 책을 틈틈이 읽어볼래?”  

그는 내게 테스트 장비의 비법서와 같은 책을 여러 권 건네주었다. 그리고 차근차근 업무를 배우기 시작했다. 그의 교육 방법은 정통파였다. 꼼수를 사용하거나 지름길을 안내하는 현진영 대리, 김팔봉 사원과는 달랐다. 문구열 과장의 교육 방법은 워낙 꼼꼼하게 내게 지식을 전달해 주었다. 시간이 오래 걸릴 수밖에 없었다.  

“철수야 TTR(Test Time Reduction) 목적이 뭐라고 했지?”  

“테스트 시간을 줄여서 생산율을 높이는 거죠.”  

“그래, 맞아. 하지만 한 가지 틀렸어.”  

그의 교육 방식은 상대방을 조금 열받게 한다. 질문을 던지고 트집을 잡으며 조금 알려준다.  

“테스트 시간을 수율(Yield/收率)의 손실 없이 줄이면서 품질을 유지하고 생산율은 극대화하는 것이지.”  

“수율과 품질이 같은 말 아닌가요?”  

“그것은 생산부에서 온 너에게는 부끄러운 질문인 것 같은데?”  

“수율은 말 그대로 생산 대비 양품률을 얘기하는 것이고, 품질도 제품의 양품률을 얘기하는 것이 아닌가요?”  

“너의 말은 절반만 맞았어.”  

그의 말에 의하면 수율은 내 말이 맞았다. 하지만 품질은 테스트를 두 번, 세 번 혹은 그 이상을 해서 같은 양품률이 유지되는 것이라고 말한다. 신뢰성에 가까운 내용이다.  

“그래도 같은 방향 아닌가요?”  

“방향은 같지만, 성질이 달라.”  

성질나는 대화법이다. 문구열 과장과 대화하면 어느 순간 성질 난다. 그래도 신기한 게 폭언은 절대 없다. 그저 참으면서 대화를 이어가야 한다.


“그 정도로 하고 여기 테스트 시간을 줄이려면 어떻게 해야 하지? 여기 코드 260번째 줄….”  

1V(volt)에서 3V(volt)까지 전압별로 네 번의 테스트를 하는 부분이다. 답할 수가 없었다. 그는 마지못해서 말하기를 가장 낮은 전압과 가장 높은 전압만 테스트하고 중간 전압은 건너뛴다는 것이다. 제품의 신뢰성을 위해서 중간 전압도 테스트하면 좋겠는데 이렇게 중간 전압을 양산 과정에서 모두 빼고 있다. 아마도 나중에 누군가 불량을 받게 되면 그제야 다시 추가될 것이 분명하다. 하지만 다행스럽게 중간 전압만 불량이 나는 경우는 거의 없긴 하다.  

“너 그러면 여기 1038번째 줄…. 충전하는 부분 아이템 보이지? 여기서는 어떻게 시간을 확보할 수 있을까?” 


지금 내 지식수준에서 도저히 답할 수 없는 질문이다. 제품을 충전시키는 방법에는 Single 동작과 Multi 동작이 있다. 바로 직역해서 해석하면 동작을 한 개만 하냐, 아니면 동작을 한 번에 두 개 이상을 하냐는 것이다. 당연히 동시에 하는 게 좋다고 생각한다. 하지만 모든 게 그렇듯 장점만 있는 것은 아니다. 아주 특수한 경우에 불량을 잡지 못할 가능성이 있다. 사람도 동시에 여러 가지 일을 하면 한 가지 놓치게 되는 가능성이 크다. 배터리도 다를 것이 없다. 희한하게도 인간과 똑같다. 인간이 만든 것이라서 그럴지도 모르겠다. 아무튼 그러므로 제품 개발 중에는 추천하지 않는 기능이다. 불량률 상승은 어떻게 보면 치명적인 단점이다. 그러나 생산성의 향상이 모든 단점을 무시하고 있다. 이 회사는 뼛속부터 제조회사다. 품질 회사가 아니다. 언제나 생산성이 우위를 점하고 있다. 어디든 제조팀이 막강한 권력을 쥐는 이유다. 배터리의 메모리 공간은 보통 2개의 면(Plane)으로 영역이 나눠진다. 영역이 그냥 이등분 구분된 것이다. 보통은 동작을 한 개의 Plane 씩 하게 되어있다. 이등분되어 있는 요즘 제품의 경우에 전체 삭제를 하게 되면 우리가 알게 모르게 동작을 두 번 진행하는 것이다. 하지만 특정한 알고리즘을 적용해서 모든 Plane을 동시에 동작시키는 방법이 있다. 제품 개발 단계에서는 당연히 생산성보다는 품질이 중요하기에 최대한 안정적으로 동작시키기 위해서 싱글로 동작한다. 그렇지만 양산 과정으로 넘어오게 되면 1분 1초가 급하다. 테스트 업무의 비중은 신뢰성보다는 생산성이다. 문제가 생길 때는 그때의 문제다. 신뢰성은 그저 생산하면서 잡아간다. 두 마리 토끼를 다 잡으면 좋겠지만 그럴 수 없는 노릇이다.  

“너 말대로 싱글 동작이 오래 걸리지. 그러면 뭘 해야겠어? 멀티 동작을 해야 한다는 것이지. 맞출 수 있을 줄 알았는데 조금 실망인데?”  

점점 정신을 차리기 힘들었다.  

“자, 그럼 보던 거 다시 볼까? 싱글을 멀티로 바꾸는 방법은 네가 한 번 선배들의 자료를 찾아보거나 과거의 소스 코드를 해석하면서 고민해 봐.  


그거에 이어서 2045번째 줄을 볼까. 여기서 지금까지 새어나간 충전량을 셀 거야. 일정량이 넘으면 어떻다고 했지?”  

“고객에게 납품하기 어려워지죠.”  

“너는 또다시 절반은 맞고 절반은 틀렸어.”  

그는 내게 충전과 방전의 정의부터 시작해서 모든 역사를 설명했다. 배터리 단품은 쉽게 점, 선, 면의 3차원 구조로 설계되어 있다. 점을 Cell이라고 하고 선을 Page라고 한다. 그리고 몇 개의 Page를 묶어서 Block이라고 한다. 그 Block을 보통 2개 또는 4개로 크게 다시 묶는다. 제일 큰 묶음이 면이라고 하며 Plane이라고 한다. 한 개의 제품에 들어간 최신 배터리 제품 Block은 보통 4,000개가 넘고, Block 한 개당 Page는 100개, 한 Page 당 점(Cell)은 수 백억 개가 넘는다. 참으로 엄청나게 세분되는 제품의 구조다.  

“고객 대부분이 방전 속도에 제약을 두고 있지. 하지만 등급을 다시 나누고 있어. 쉽게 말하면 한우의 등급 알지? A++, A+, 특등급 등으로 나누고 있잖아. 즉, 우리 배터리도 등급을 나누고 있어.”  

회사는 제품의 등급을 나눠서 그것에 적합한 고객에 판매를 하고 있다. 보편적으로 고등급을 고객 대부분에게 납품한다. 그리고 저 등급은 저렴한 가격에 중국에 납품한다. 등급이 낮으면 무조건 안 좋다고 생각할 수 있지만 사실 사용 가능한 용량이 적은 게 전부다. 중국제품이 저렴한 이유는 여기에 있다. 용량이 조금 적어도 상관없는 제품에 모조리 저등급 배터리를 넣는다. 그렇게 원가 절감을 하고 있다.


문구열 과장의 대인 방어는 본격적으로 시작되었다. 그는 나를 붙잡고 오후 늦게까지 여러 가지 지식을 전달해 주려고 했다. 막상 업무는 저녁을 먹고 나서야 시작했다. 그렇다 보니 퇴근은 밤 열 시가 기본이다.  

“멍하니 무슨 생각해?”  

“시간을 어디서 줄일지 고민했어요.”  

“이 부분에서 시간을 줄일 수 있어. 이 구문을 볼까? 자, 새로 열어서 펼친 코드를 보면 쓸데없는 라인이 너무 많아. 여기를 최적화해야 해.”  

“그렇군요.”  

“그렇군요라니.. 아무튼 그 최적화를 내가 알려줄 수는 없고 네가 해석해서 연구하는 게 너의 과제야. 그렇게 하지 않고서는 복사, 붙여 넣기만 하는 복돌이가 되는 거야. 내가 언제까지 너의 옆에 붙어서 알려줄 수 없으니 혼자서 고민하는 시간을 많이 가져봐야 해.”  

나는 그냥 복돌이로 살고 싶다.  

“자…. 오늘의 보너스로 ECC를 알려줄게. 이건 TTR 과는 상관없는 별개의 문제야.”  

ECC(Error Correction Code)는 한글로 ‘오류 수정 코드’다. 배터리 공정이나 소자 문제로 특정 위치에 이물질 있거나 문제가 생겨서 잘못된 부분이 있다면 그 제품을 모두 버릴 수는 없다.  

“철수야, 그럼 그 제품은 무조건 버려야 할까? Block 하나에 Cell이 수백억 개가 넘어. 수백억 개가 과연 무결해야 할까? 제품이 그럴 수 있을까?”  

“그것은 아니라고 봅니다.”  

“나는 너에게 지금 질문을 세 개를 했어. 세 개의 질문에 모두 아니라고 대답을 한 거야?”  

“네….”  

“두 개는 맞고 하나는 틀렸어.”  

이쯤 되면 내가 한 대 맞지 않는 게 다행이라고 생각된다. 그는 설명을 즐기기 위한 질문을 한다. 그리고 그 질문이 틀리기를 바라고 있다. 마치 말년 병장의 말장난 같다.  

“그 제품은 버리기 아깝다. 그리고 언제나 무결할 수 없다. 그러나 무결한 제품이 있을 수는 있다. 이게 정답이야.”  

“그렇군요….”  

“우리 제품에 컨트롤러라는 칩을 붙이거나 다른 알고리즘을 적용해서 몇 수십 개의 불량 Cell은 바로잡을 수 있어. 근데 그게 고객별로 달라. 고객들 저마다 입맛에 맞는 무결성을 요구하거든. 무슨 말인지 알겠어?”  

“네…. 닌텐도와 소니가 서로 다른 최대 불량 Cell 개수를 요구한다는 것이죠?”  

“너의 말이 맞아. 아쉬운 부분은 있지만, 나중에 다시 얘기하자. 벌써 시간이 이렇게 되었네.”  

문구열 과장은 그의 낡은 손목시계를 보며 말했다.


문구열 과장에게는 짧은 시간에 많이 배웠다. 매일은 아니지만 한 번씩 이렇게 많이 배우게 된다. 배우는 과정이 기분은 나쁘지만, 예전처럼 폭언을 들으며 배우는 것도 아니고 결론적으로 도움은 된다.  

“철수야? 혹시 졸고 있는 거 아니지?”  

따뜻한 바람이 불어오는 어느 봄날 날씨도 좋은데 봄나들이는커녕 오늘도 문구열 과장에게 꽉 잡혀서 코딩하고 있었다.  

“앗, 아니에요. 고민하고 있었어요.”  

“철수야, 너는 이제 코딩한 지 1년 되었으니 여기서 뭐가 틀려서 컴파일(compile)이 실행 안 되는지 스스로 찾을 수 있어야 해.”  

“아마도 이쯤인가요.”  

“아마도 와 이쯤이라는 단어는 사용하지 않는 게 좋아. 너는 어떻게 그 두 단어를 동시에 사용하냐? 프로그래머는 한 줄 한 줄 정확하게 해석하고 찾아내야 해.”  

“그럼, 여긴가….”  

“나한테 묻는 거야? 컴파일을 계속하면서 디버깅(버그 찾기)을 해봐.”  

문구열 과장에게 더 이상의 자세한 설명을 기대하기는 힘들었다. 떠보는 것도 통하지 않는다. 프로그램의 소스 코드는 수천 줄에서, 많게는 만 줄이 넘는다. 난 소스 코드를 첫 줄부터 해석하기로 마음먹었다.  

[타닥타닥]  

첫 줄부터 빠르게 디버깅을 했다.  

“철수야, 너 장님 코끼리 만지듯 엄한 곳을 만지고 있구나?”  

“네? 저는 그저 처음부터 해석해 보려고 했어요. “  

“너의 사고방식에는 문제가 있어. 컴파일하면 버그에 대한 메시지가 출력될 거야. 그것을 보면서 역으로 해석해야지. 처음부터 어느 세월에 보려고 그래? 우리는 시간이 많이 없고 회사는 너를 기다려주지 않아.”  

문구열 과장과 나는 사고방식의 차이가 있었다.  

“후…. 이제 뭐를 해볼까요?”  

“실망스러운데? 그것을 나한테 묻는 것은 옳지 않아. 내가 말했지? 내가 어느 정도 방향은 잡아줄 수 있어. 여기는 학교가 아니야. 할 것은 네가 찾아야 해.”  

“그렇다면…. 방향이 뭘까요?”  

“너는 정말 이해하기 어렵다. 지금 우리가 해야 할 것은 TTR이야, 첫째도 TTR, 둘째도 TTR이지. 그다음에는 신제품 셋업을 해야 해. 그 이후에 다시 TTR 해야 해. 아직도 모르겠어? 이제 네가 어떤 방법으로 TTR 하고 싶은지 생각해 봐.”  

참 어렵다. 질문을 하면 무조건 잔소리를 듣는다. 그저 묵묵히 방향에 맞춰서 빠르고 정확하게 코딩만 해야 한다. 아마도 그것이 문구열 과장이 바라는 점 같다. 아무리 생각해도 이 테스트 그룹 조직 제일의 목표는 TTR이다. 테스트 시간 줄이는 일이다. 지금까지 배운 바에 의하면 필요 없는 테스트 항목을 제거해야 한다. 문제는 여기서부터 나의 철학에 어긋난다. 세상에 필요 없는 것은 없다고 생각하기 때문이다. 직접적으로 필요한 것도 있고 간접적으로 필요한 것도 있다. 우리의 세상은 복잡하고 다양하다. 어떤 조건에서는 어떤 것이 필요할 것이고 다른 조건에서는 다른 것이 필요할 것이다. 프로그램도 마찬가지다. 따라서 배터리 제품도 마찬가지다. 인간이 온도, 습도, 압력에 따라서 기분이 달라지듯 제품 또한 환경에 따라서 성능이 달라진다. 그 모든 것이 고려되어 프로그램이 개발되었다. 당장은 필요 없을 수도 있지만 언젠가는 필요할 수 있다. 모든 것은 결국 연결되었다.


“철수야.”  

“네, 과장님.”  

“잘하고 있어?”  

“네….”  

“너는 너무 질문이 없어.”  

“네? 저기…. TTR를 꼭 해야 하나요?”  

“너는 왜 그런 질문을 하지?”  

“시간을 억지로 줄이는 것 같다고 생각해서요.”  

“왜 그렇게 생각하지?”  

“필요 없는 항목은 없을 것 같아요. 다 제품팀이 생각해서 개발한 소스 코드가 아닐까요?”  

“너는 한참 모르는 게 있어. 우선, 네가 생각하는 것처럼 제품팀의 소스 코드가 그렇게 완벽하지는 않아. 즉, 우리가 손봐야 할 것이 많다는 얘기야. 너는 내가 시간을 줄이는 업무를 하라고 했으면 그것을 해야 하는데 참 말이 많구나. 내가 좀 눈치는 챘지만 너는 좀 4차원인 것 같아.”  

갑자기 사람을 4차원 소시오패스로 만들었다. 그것도 능력이라고 생각된다. 말 나온 김에 볼 장을 봐야겠다고 생각했다.  

“아니, 그게 아니고요. 세상에 쓸데없는 것은 없다고 생각해서요.”  

“너는 왜 항목을 뺄 생각만 하지? 특정 항목을 효율화하는 것도 생각해야지. 효율화에 대해서는 내가 몇 번 보여주고 알려줬었는데 그것을 또 잊은 거야?”  

내가 졌다. 이 사람은 늘 내 말에서 빈틈을 찾아서 그것을 후벼 판다.  

“물론 효율화도 생각했죠. 근데 항목을 빼는 것이 일단은 가장 쉬운 접근 방법으로 알려져 있으니까요. 문 과장님도 항목을 빼는 것을 가장 먼저 하잖아요.”  

“너랑 얘기하면 자꾸 말이 뱅뱅 돌기만 해서 너무 피곤하다. 커피나 한잔하자.”  

논리적으로 끝까지 대답하는 경우 이렇게 갑자기 커피를 한잔하자고 하는 것도 한두 번이 아니다. 우리 둘은 늘 그랬듯이 종이컵과 커피믹스를 하나씩 챙겨서 정수기 물을 받아서 휴게실로 올라갔다. 2층 휴게실을 가기 위해 계단을 올랐다. 우린 거의 대화가 없었다. 휴게실에 도착할 무렵 무척 소란스러운 분위기가 느껴졌다. 역시나 휴게실에 사람이 가득했다.  

“인간들이 일은 안 하고 전부 커피 마시고 쉬고 있네. 우리는 4층 휴게실로 가자.”  

“네.”  

“여기까지 올라와 버렸으니 계단으로 가자.”  

“네….”  

우린 별말 없이 4층으로 올라갔다. 4층의 휴게실은 굉장히 좁다. 3인용 의자 두 개가 마주 보게 되어있으며 의자의 크기가 그렇게 크지는 않아서 네 명이 앉으면 딱 맞는 느낌이다. 그곳에 문구열 과장과 나 둘이 마주 앉았다. 문구열 과장은 앉자마자 그의 낡은 손목시계를 확인했다.  

“철수야 너는 퇴근하고 뭐 하니?”  

“독서를 하거나 글을 써요.”  

“의외의 시간을 보내는구나? 나도 한때 책 좀 읽었는데 너는 무슨 책을 읽니?”  

"파울루 코엘류의 연금술사 아세요? 마크툽!”  

“너는 역시 괴상한 책을 읽는구나? 연금술은 불가능하다는 것을 몰라?”  

“문 과장님, 이 책은 그런 책이 아니고요. 주인공이 어떤 영감을 받아서 여정을 떠나는 얘기예요. 주인공은 다양한 인물을 만나서 지혜를 얻죠. 그러면서 자아를 발견하고 세상의 본질과 삶의 목적에 대한 통찰력을 얻게 되는 내용이거든요.”  

“그러면 책에서 연금술은 어디서 나오는데?”  

“그게 아니고 삶의 연금술은 스스로 소중한 보물을 찾아 떠나는 것이라는 얘기거든요.”  

“너는 언제나 말을 참 뱅뱅 돌려서 하는 버릇이 있네.”  

결국엔 내가 또 당했다. 난 역공을 하기로 했다.  

“과장님은 뭐 읽으셨는데요?”  

“소설은 역시 무협 소설이지.”  

어이가 없었다.  

“너 ‘대도오’라는 무협 소설 알아?”  

“전혀 몰라요.”  

“모르면 모르는 것이지 전혀 모르는 것은 또 뭐야.”  

“몰라요….”  

“그래 너는 대답을 조금 짧게 하면 좋겠어.”  

대체 누가 대답이 긴지 모르겠다.  

“소설 속 중국의 어떤 지역에서 패권을 두고 두 집단이 힘겨루기 하거든. 평소에 제대로 된 대우를 받지 못하던 주인공이 한 집단에 입단하고 조장에 임명된 뒤에 큰 전공을 세우게 되지. 그러나 생각지 못한 마수가 나오며 사달이 나는 내용이야. 무협이긴 해도 굉장히 사실적이야. 어때 재미있겠지?”  

정말 황당하지만 이쯤 되어버리니 그냥 받아줘야겠다는 생각이 들었다.  

“조금은 디즈니의 뮬란 같기도 하네요?”  

“너는 정말 맥을 잘 못 짚는구나?”  

“그래요? 둘 다 중국에서의 무협 아닌가요?”  

“너는 너무 대충 대신해서 말을 하고 있어. 일단은 대도오는 남자의 무협이야. 뮬란 같은 여자의 무협과는 틀리지.”  

나야말로 문구열 과장이 자주 실수하는 말로 ‘틀리지’가 아니고 ‘다르지’라고 해야 한다고 고쳐주고 싶다.  

“그렇군요.”  

“그래 맞아. 그리고 우리는 여기서 쓸데없는 얘기만 하다가 너무 시간을 빼앗겼어.  


벌써 십 분이나 쉬었네.”  

문구열 과장은 손목시계를 보며 말했다.  

“이제 그만 내려가자.”  

문구열 과장은 아마도 나랑 말하면서 답답함을 느끼는 것 같았다. 하지만 내가 더 답답하다는 사실을 그는 모를 것이다.


사무실에 들어오자 박상군 과장과 현진영 대리, 강정혜 사원 셋이 모여서 속닥속닥 어떤 얘기를 하고 있었다. 


“야, 우리 빼놓고 무슨 작당 모의를 하고 있어?”  

문구열 과장이 말했다.  

“작당 모의는요. 업무 교류라고 해두죠.”  

박상군 과장이 말했다. 박상군 과장의 모니터 화면에는 TTR의 비법에 대해서 정리된 자료가 열려있었다.  

“이 비법서 뭐야? 어? 이거 대부분 내가 개발했던 건데?”  

문구열 과장이 말했다.  

“네 선배가 말했던 것들과 제가 애들하고 같이 실험하고 적용했던 것들 모두 종합해서 백과사전처럼 정리했어요.”  

“이야, 너 상당히 번거로운 것을 만들어냈구나. 하지만 이렇게 자료를 만들어서 배포하면 애들이 각자 생각들을 안 할 텐데?”  

“선배, 쓸데없는 것에 생각할 시간이 어디 있어요? 이런 것들은 공식을 만들어서 쉽게 쉽게 하고 우리는 더 효율적인 것들을 찾아봐야죠.”  

“상군아, 세상에 쓸데없는 것이라는 것은 없어.”  

문구열 과장이 말했다. 나와 얘기했던 것과 다르게 태도가 변했다. 내가 주장했던 것을 그가 얘기하고 있었다. 일 중독자 문구열 과장, 그는 참으로 이중적인 사람이다. 지금까지도 그랬지만 앞으로 그와 계속 함께 할 생각을 하니 숨이 막혔다.



이전 12화 누군가는 누군가의 똥을 치워야 한다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari