쓸만한 도구 3
2015년인 지금, 28살 나이로 어린 유민희는 항상 막내 노릇을 했다. 그러다 자기보다 더 경력이 없는 이진수와 대화하는 것이 재밌었다.
"헤헤.. 그럼, 제가 알려드릴게요. 여기 보시면 인벤토리에 아이콘이 빙글빙글 도는 애니메이션은 GIF에요. GIF가 뭔지는 알죠? 이미지 한장 한장 보여줘서 애니메이션 하는 거예요. 옛날에 그... 책에다 한 페이지 한 페이지 이어지는 그림 그려서 책을 촤라락 펼치면 움직이는 것처럼 보이잖아요. 그건 알죠?"
"네. 알죠. 그것도 알고 GIF도 알아요."
"이게 보이긴 쉬워 보여도, 애니메이션 한 장 한 장 다 그려야 되고, 그 그린 걸 GIF 애니메이션으로 만들려면, 또 한 장 한 장 GIF에 등록을 해줘야 해요. 아셨죠?"
GIF 애니메이션이란, 만화를 그리듯 한 컷 한 컷 이미지로 그린 다음 그 이미지를 순서대로 보여주는 것이다. 1초짜리 애니메이션은 보통 30장의 이미지가 들어간다. 그래서 유민희는 1초짜리 애니메이션을 만들기 위해 미리 그려둔 이미지 30개를 순서대로 등록하고 있었다.
"네. GIF 애니메이션에 들어갈 이미지 모아둔 폴더 볼 수 있을까요?"
"네~ 당연하죠! GIF 애니메이션 어떻게 만드는지 궁금하시구나! 제가 보여드릴게요."
유민희는 자기가 그린 이미지가 모여 있는 폴더를 보여줬다. 그곳에는 애니메이션 프레임별로 네이밍이 잘 된 이미지들이 있었다.
예를 들면, invenAni_01.png, invenAni_02.png, invenAni_03.png 이런 식이었다
이진수가 말했다.
"네이밍이 잘 돼 있네요."
UI 깊이 문제가 수정돼 기분 좋아진 유민희 말투에는 애교가 섞였다.
"그럼요~ 당연하죵! 진수 님도 경력 쌓이다 보면 알게 되시겠지만~ 네이밍 잘 안 해두면 나중에 파일 찾기 힘들어져용!"
"네."
이진수는 해맑은 유민희를 뒤로하고, 자리로 돌아왔다. 그는 평소 좋아하지 않는 야근까지 하며, 불쌍한 민희 님을 위한 MiniAnimationTool을 만들었다. 사실 만들기 쉽고 간단한 툴이지만 사용성은 아주 좋다. 그래서 프로그래머 입장에서는 가성비 좋은 툴이다.
우선 디자이너들의 습성을 보면 저런 GIF(Sprite) Animation을 만들 때, 이미지 파일 이름을 “XXX_001.png”, “XXX__002.png” 이런 식으로 규칙성 있게 만든다. 그래야 본인들도 몇 번째 프레임의 그림인지 알 수 있기 때문이다.
그래서 이진수는 하나의 이미지 파일을 드래그해서 툴 위에 올려 두면, 드래그 된 파일 이름을 분석한 뒤, XXX_001, XXX_002, XXX_003식으로 이미지 이름의 넘버링 값을 1씩 올리면서 해당 파일이 존재하는지 찾는 기능을 만들었다. 그리고 플러스 된 넘버링의 파일이 존재하면, 그 파일들을 모조리 리스트에 등록하고, 이름순으로 정렬한다.
이진수가 만든 이 툴을 사용하면, 이미지가 30장짜리 애니메이션이든, 1,000장짜리 애니메이션이든, 파일 1개만 등록하면 나머지 파일들은 툴이 자동으로 찾아서 등록시켜 준다. 즉, 이것은 아트 디자이너의 노가다를 줄여 주는 소소하지만 유용한 툴이다.
다음 날 아침 9시 반.
이진수는 30분 일찍 출근했다. 그리고 어제 만든 MiniAnimator 툴을 테스트했다. MiniAniamtor 툴은 문제없이 잘 작동했다.
9시 50분이 되자 유민희의 메신저가 온라인 상태가 됐다. 이진수는 MiniAnmator 툴을 커밋 한 뒤, 바로 유민희의 자리로 찾아갔다.
“안녕하세요."
"앗! 안녕하세요. 일찍 나오셨네요?"
"업데이트 한 번 받아 보실래요?”
이진수가 만든 툴을 유민희 자리에서 쓰려면, 유민희 PC에서 업데이트를 받아야 한다.
“네. 지금 받아 볼게요. 뭐가 올라왔나요?”
“어제 민희 님이 GIF 애니메이션 만드시는 거 보고, 툴 하나 만들었어요.”
이진수는 간이 의자를 가져와 유민희 옆에 두고 앉았다. 그리고 그녀를 멀뚱멀뚱 바라봤다.
“아···?”
“MiniAnimatior 툴 실행시켜 보세요. 어떻게 사용하는지 알려드릴게요.”
그는 그녀에게 툴을 사용하는 방법을 알려줬다. 그간 프로그램 파트에 뭐 하나 부탁하기가 여간 어려웠던 유민희는, 자기가 부탁도 하지 않은 것을 만들어 온 이진수에게 감동을 받았다.
"우왕! 진짜 멋져요. 진수 님!"
툴이든 게임이든 코딩의 결과물은 누군가가 이용하라고 만드는 프로그램이다. 장공건설 시절 근육이 너무 많아, 별명이 근육맨이었던 실장님한테 배운 것이 있다. 가구든, 건물이든 제작하는 사람이 아니라 실제 사용하는 사람 입장에서 만들어야 한다는 것이다. 그래서 무엇이든 만들고 나면, 실제 사용자가 어떻게 사용하는지 반드시 확인하라고 했다.
이진수는 근육맨 실장에게 배운 대로 유민희의 옆자리에 계속 앉아, 그녀가 작업하는 모습을 한동안 지켜봤다.
조금 지켜보자 역시나 사용자인 유민희는 이진수가 예상하지 못한 방법으로 툴을 사용하려고 시도했다. 그녀는 파일이 아닌 폴더를 통째로 툴에 등록하려고 했다.
“왜 파일이 아니라 폴더를 통째로 넣으려고 해요?”
“저는 애니메이션을 폴더별로 정리해 두고 있어서요. 그래서 혹시 폴더 안에 있는 이미지 파일이 한 번에 다 등록되나 해봤어요. 근데 안되네요? 헤헤.”
“지금은 안되지만, 안될 거 없죠. 민희 님이 그렇게 쓰는 게 편하시면, 툴 기능을 그렇게 바꾸면 돼요. 잠시만요.”
이진수는 다시 자기 자리로 돌아왔다. 그리고 폴더를 툴에 바로 넣을 수 있게 작업했다. 파일이 아닌 폴더를 툴에 등록하면, 그 폴더에 있는 이미지 파일들을 이름순으로 정렬해서 모든 이미지를 한 번에 등록시키게 기능을 추가했다.
작업은 60분 만에 끝났고, 바로 커밋했다. 그리고 유민희가 있는 아트 파트 자리로 갔다.
"진수 씨. 다시 왔네요?"
"네 민희 씨. 다시 업데이트 받아 볼래요?"
“진수 씨가 업데이트 받아 보라고 하니 설레는데요?”
사실 유민희의 사회생활은 그다지 평탄치 못했다. 유민희는 마얀 천진난만해 보이는 외모와 다르게 일에 진지한 편이었다. 그런데 스타트업에서 3년 일했을 때나 지금이나 유민희를 대하는 사람은 대부분 두 부류로 나뉜다. 인기 많은 유민희에게 다가가기 어려워 말을 아예 안 하는 사람과, 못 먹는 감 찔러나 본다고 짓궂은 장난만 치는 사람. 박형돈 같은 사람이 후자에 속했다. 그런데 이진수는 유민희에게 스스럼없이 다가와 밑도 끝도 없이 일 얘기만 하고 있다.
"네. 민희 씨 일단... 업데이트 받고 다시 해보시고, 불편한 거 있으면 알려주세요."
"넹! 그런데 진수 님. 왜 저한테 민희 씨 라고 불러요?"
"아까 민희 씨가 먼저 저한테 진수 씨라고 하셔서요. 사실 님과 씨 차이도 잘 모르겠고요."
유민희는 흔쾌히 웃으며 대답했다.
"괜찮아요! 저도 님 으로 불리는 게 어색해요. 그냥 우리끼리는 편하게 씨 라고 해요. 헤헤... 저도 진수 씨라고 불러도 되죠?"
이 일을 계기로, 이진수와 유민희는 지나가다 마주치면 서로 간단한 인사를 나눌 정도의 친분이 생겼다. 그리고 이진수는 MiniAnimator 툴을 개선해 주기 위해 간간이 디자인 파트로 갔다.
며칠 후.
유민희가 이진수에게 메시지를 보냈다.
[유민희 : 진수 씨! 안녕하세용!]
[이진수 : 넵. 안녕하세요.]
[유민희 : 혹시 지금 바쁘신가요?]
[이진수 : 아니에요 말씀하세요.]
[유민희 : 죄송한데요... 그럼, 기능 하나만 더 만들어 줄 수 있으세요?]
[이진수 : 그럼요. 지금 갈게요]
이진수는 온라인보다 오프라인 대화가 더 익숙한 사람이다. 그는 곧장 디자인 파트로 걸어갔다.
이진수는 자연스럽게 유민희 옆으로 가서 말했다.
"어떤 기능이 필요하신 가요?"
"다른게 아니라... 최근에 작업했던 내역을 저장해 줄 수 있을까요?"
"최근 파일 보기 이런 메뉴 말씀인가요?"
"넹! 맞아요!"
"네. 어렵지 않아요. 작업하고 말씀드릴게요."
유민희는 쭈뼛쭈뼛 이진수의 눈치를 보며 말했다."
“진수 씨... 사실... 이건 제 요청 사항은 아니에요."
"그럼요?"
"제가 저희 파트 분들한테도 툴을 공유해 줘서, 저희 파트 분들 다 같이 쓰고 있거든요... 괜찮죠?”
“당연하죠. 다 같이 쓰면 더 좋죠.”
유민희는 MiniAnimator 툴을 다른 사람에게 공유한 것을 흔쾌히 받아 준 것에 대한 고마운 감정. 그리고 자기 이름을 딴 툴을 "당연히" 남들에게도 주는 것에 대한 서운한 감정이 동시에 들었다.
Comment ' 1