◐
토월은 라선을 데리고 회사 맞은편 카페로 갔다. 대낮에도 동굴 같은 허름한 재즈 카페였다. 디자인팀이 점심 회식으로 반드시 간다는 곳이라 들었는데, 전적으로 토월의 취향이었나 보다. 토월은 인절미 크림 라테 아이스를 시켰고, 라선은 노슈가 계피생강 에이드를 주문했다.
"낙하산 타고 내려와서, 당장 성과 내시려니 많이 힘드시죠."
핀잔을 주듯 토월이 말했다. 낙하산이라니, 라선은 단 한 번도 자신이 낙하산이라고 생각하지 않았다. 추천을 받았고, 인터뷰를 통해 채용되었다. 리코와 초율과는 어떠한 이해관계도 없었다.
"엔젤윙즈에서 꽂아준 거, 회사 사람들이 모를 줄 알았어요?""
토월이 한 번 더 찔렀다. 억울해서, 말이 나오지 않았다. 손이 부들부들 떨렸다.
"그건..."
"들었어요. 엔젤윙즈에 지인 분 계시다면서요. 투자사에 잘 보이려, 리코가 데려온 거잖아요."
아니다. 결코 사실이 아닐 것이다. 능력으로, 간절함으로 이룬 결과여야만 한다. 라선은 토월이 자신의 전부를 부정하는 것 같았다.
"잘못 알고 계신 것 같아요. 지인 추천을 받았지만, 포트폴리오를 제출하고, 서류 심사 통과 후 입사 인터뷰를 했어요. 그 가운데 어떠한 부정은 없었습니다."
"그거야 형식은 갖춰야 되니까 그랬겠죠. 뭐 상관없어요. 피해만 안 주면. 그런데 지금 주고 있어요. 라선 욕심 때문에 왜 모두 희생당해야 하는 거죠? 갑자기 화가 나네."
손으로 부채질하며 토월이 열을 냈다.
"업무에 부담이 되지 않게, 조율해서 진행해 나가면 되지 않-"
"'업무에 부담이 되지 않게'가 말처럼 그렇게 쉬워요? 이미 그게 업무예요! 라선 디자인 안 해봤죠? 라선 입사 전에 여기 디자이너들 밤새 야근했어요. 그걸 내가 어떻게 막아서 지금 정퇴 문화 만들었는데. 지금 라선이 와서 일 벌여 다시 끔찍한 야근 분위기 살아나면, 책임질 거예요? 낙하산인 본인은 일찍 잘도 퇴근하시겠지."
토월이 흥분해서 씩씩거렸다. 어쩐지 IT기반의 스타트업이 성장한 회사가 야근이 없다는 게 이상했었다. 지금의 넥스테이트의 조직 문화가 처음부터 갖추어져 있지는 않았던 것이었다. 라선은 토월이 화내는 이유를 조금 이해할 수 있었다.
"지금 디자인 시스템 정리하는 것도 장난 아닌데."
이마의 땀을 닦고 나서, 토월은 인절미 크림 라테 아이스를 벌컥벌컥 마셨다.
"제가 도와드릴게요."
"진짜, 말로는 뭐든 못 해요!"
"빈말 아니에요. 디자인 시스템이면, 도와드릴 수 있어요. 토큰 네이밍 규칙 만들고, 정리하는 부분에서요."
라선이 똑바로 토월을 바라보았다. 디자인팀 모두가 토월과 같은 생각이라면, 반드시 입증해야 한다. 자신의 쓸모를, 운 좋게 굴러 들어온 짱돌이 아니라는 사실을. 계피생강 에이드를 한 모금 마셨다. 토월은 네가 뭘 할 수 있겠냐는 눈으로 노려보았다. 중요한 것은 무엇을 할 수 있느냐가 아니다. 무엇이라도 해야 한다. 할 수 있는 일이라면. 퀵펜슬에서 디자인팀이 디자인 시스템을 구축하려다 실패한 것을 보았다. 여러 가지 이유가 있었지만, 그중에 하나는 근본 없는 네이밍 규칙이었다. 지금 디자인 시스템을 정리하고 있다면, 네이밍 규칙도 통일시켜야 할 것이다. 이건 리뉴얼 작업과도 이어진다. 잘 구축된 디자인 시스템은 개발 과정 전체 효율을 높인다. 지금 어디까지 진행된 지는 알 수 없지만, 할 수 있는 부분은 반드시 있을 것이다. 하다못해 버튼명 하나라도.
◑
사무실로 돌아가자마자 토월이 작업 중인 디자인 시스템 링크와 함께 데이터 파일을 메신저로 공유해 주었다. 아니나 다를까 문제점이 바로 보였다. 가장 먼저 발견한 문제점은 토큰이 형태가 아니라 기능으로 분류되어 있다는 것이었다. 별 모양의 아이콘명을 'favorite'이라고 했을 경우 즐겨찾기를 의미하는 다른 아이콘이 함께 검색될 수 있다. 따라서 별 모양 아이콘은 Star을 어근으로 하는 것이 좋다. 이를 기본으로 두고 접두사에는 아이콘, 이미지, 버튼과 같은 에셋 타입과 화면에서 위치를 나타내는 네임 스페이스를 붙이고, 접미사는 이름 중복을 피하기 위한 크기, 방향, 색상과 같은 한정자를 붙이는 것이 좋다. 현재 별 모양은 탭에 나와있고 관심단지를 저장할 때 사용되니, ButtonTap를 접두사로 하고, 속이 빈 경우 ButtonTapStarOutlined, 속이 채워진 경우 ButtonTapStarfilled로 변경하는 것이 좋다. 라선은 규칙을 보기 좋게 그림으로 만든 뒤, 규칙 원리와 적용 시 이점을 예시와 함께 자세한 설명을 적어 토월에게 보냈다.
-각 토큰명을 통일하는 게 좋을 것 같아요. 지금은 기능을 중심으로 분류되어 있어, 직관적이지 못해요. 개발자들에게 핸드오프 할 때도 소통하기 편하려면 형태에 따라 구분하는 게 나아요.
-확인해 볼게요.
37분 뒤에 답장이 왔다.
-프론트엔드 개발자랑 같이 상의해 봐야겠네요.
물론이었다. 디자인 시스템 규칙을 세우기 위해서는 디자이너 사이에서뿐만 아니라 실제로 구현할 개발자들과도 합의점을 찾아야 한다.
-그러려면 개발팀에 만나자고 해야 하는데...
토월이 말을 잇지 못했다. 정확히는 '세안나'의 이름을 꺼내고 싶지 않은 것 같았다. 세안나는 데이터를 다루는 개발자였다. '디자인은 부수적이다'라는 굳은 인식을 가지고 있을 게 뻔했다. 세안나를 만나기 꺼려하는 토월의 입장을 이해할 수 있었다. 그러나 미팅은 반드시 필요했다.
-제가 세안나한테 말해볼게요!
-그럼, 부탁드릴게요.
토월과의 채팅을 끝내고 라선은 일어나 세안나에게로 갔다. 헤드폰을 낀 세안나는 라선이 바로 옆에 가까이 붙을 때까지 모니터 속 코드를 뚫어져라 보고 있었다.
"세안나."
한 번 불렀다. 미동도 없었다.
"세안나?"
두 번 불렀다. 마찬가지였다.
"세안나"
이번엔 책상 위에 손가락을 내려놓으며 라선이 말했다. 그제야 헤드폰을 벗고 세안나가 돌아보았다. '뭐야'하는 눈빛이었다.
"세안나, 이번 리뉴얼 기초 작업을 위해서 디자인 시스템 관련으로 개발팀이랑 디자인팀 같이 미팅하면 좋을 것 같은데, 시간 내줄 수 있어요?"
라선이 밝게 말했다,
"지금 리뉴얼로 바쁜데 디자인 시스템 구축은 나중에 해도 되는 거 아닌가요?"
세안나가 말투는 그대로였지만, 이제 라선에겐 전혀 공격적으로 들리지 않았다.
"리뉴얼을 해야 하니까 디자인 시스템 구축이 필요한 거예요. 지금 당장 완성하자는 게 아니라, MVP(최소기능제품)을 만들고 리뉴얼 중에 발견되는 문제점과 함께 수정해 나가는 거죠. 프론트엔드 개발자랑 디자이너가 협력해야 해요. 토월도 지금 두 건이 같이 걸려 있다고 생각해 버거워하는 거고요. 개발팀에서 조금만 협조해 주면 최종적으로 리뉴얼에 들어가는 소요 시간도 단축시킬 수 있을 거예요. 세안나는 참석 안 해도 될 것 같아요."
"그런데 이걸 지금 왜 라선이 저한테 얘기해요? 토월이 아니라."
"그야, 누가 세안나랑 얘기하고 싶어 해요. 싸움날 게 뻔한 주제로."
라선이 짓궂게 말했다. 세안나가 어이없다는 표정을 지었다.
"알겠어요. 소배가 프론트엔드 담당이니까 미팅에 참여하라고 말해둘게요. 시간 잡히면 소배한테 알려줘요."
"고마워요. 그럼 디자인팀이랑 얘기해서 일정 확인 후 연락할게요!"
라이더 손인사를 하며, 라선이 물러났다.
등 뒤로 '뭐야'하는 시선이 느껴졌다.
◑
디자인팀과 상의해 다음 날 오전 10시에 미팅을 잡았다. 디자인팀에서는 토월과 UX디자이너 반호가 참여했고, 개발팀에서는 소배가 나왔다. 미팅 전 라선이 토월에게 줬던 네이밍 규칙과 문서화 가이드라인 관련 내용을 간략하게 브리핑했다.
"디자인팀과 개발팀 컴포넌트 연결에서 네이밍 규칙에 동의하시면, 제가 1차적으로 현재 구축된 모든 토큰을 규칙을 적용해 변경할 예정이에요. 이전에 디자인팀은 각 폴더에 중첩되는 파일을 하나로 삭제해 주시고요."
"지금 네이밍이 파스칼로 되어 있는데, 카멜로 바꿀 수 있을까요? 저희 변수명을 전부 카멜식으로 표기해서요."
*파스칼: 단어 연결 시 모든 단어의 첫 글자를 대문자로 적는 표기법, 카멜: 첫 글자(소문자)를 제외한 각 단어의 첫 글자를 대문자로 적는 표기법*
"네, 그럼 그렇게 바꿀게요."
"네이밍 할 때 컬러명은 시맨틱 컬러 이름으로 해야 할 것 같아요. 지금은 그냥 베이직 컬러명으로 되어 있어서, 모호해요."
반호가 의견을 제시했다.
"사실 개발 입장에서는 상황별로 컬러명을 지정해 주는 게 편하긴 해요."
소배가 덧붙였다.
"상황별로 컬러명을 부여할 경우에는 상황을 어떻게 나누냐에 따라서, 컬러명이 기하급수적으로 늘어날 수 있어요."
라선이 문제점을 지적했다.
"그러면 네이밍은 시맨틱 컬러로 하고, 개발팀으로 넘겨주실 때는 콘텍스트 네이밍을 같이 줄 수 있나요?"
"그건 디자인팀에서 정리해서 드릴게요. 에셋 타입과 네임 스페이스의 경우 변동될 가능성이 있으니, 고정된 것이 아니면 표시하지 않는 게 낫지 않을까요?"
토월이 라선의 의견을 물었다.
"그럼 고정되어 사용되는 컴포넌트에만 네임 스페이스를 붙일게요. 괜찮죠, 소배?"
"네 그게 좋을 것 같네요. 한 가지 더 추가로 각 컴포넌트마다 고정 속성과 가변 속성을 구분해 주면 좋을 것 같아요. 고정 속성이 다르면 다른 컴포넌트로 구성하면, 유사하지만 실제로는 다르게 사용되는 것들을 쉽게 분리할 수 있을 것 같아요. 예를 들면 아이콘에서 높이는 고정 속성이고, 컬러는 가변 속성이다 이런 식으로 구분하는 것이요."
"그건 컴포넌트 설명에 추가할 수 있을 것 같아요. 디자인팀에서 소스를 주면 제가 시스템에 문서화해 둘게요."
라선이 의견을 받아들였다.
소배가 적극적으로 나와준 덕분에 첫 번째 미팅에서 시스템 기초의 상당 부분을 정리할 수 있었다. 라선은 회의록에 R&R에 따라 task를 나누고, 마감일을 명시하고 디자인팀과 개발팀에 공유했다. 이제 하나씩 해나가면 된다. 조바심과 기대감, 압박감과 설렘이 가슴을 조여왔다. 100m 달리기 시작 직전의 느낌이 이랬다. 라선은 발바닥을 바닥에 딱 붙였다. 흔들리면 안 되니까.
◑
웨일은 오후에 WBS(Work breakdown structure)를 공유했다. 대략적인 윤곽과 덩어리로 된 과업을 넣은 WBS였다. 전체적인 틀 안에서 각 팀이 업무를 수정할 것이다. 회의를 통해서 지속적으로 수정하고, 다듬어 개발을 진행해야 한다, 무리없이.
'협력'이 중요했다.
토월과 세안나의 긴장이 마음에 걸렸다. 다시 천천히 표를 살펴보고 있을 때, 벌써 누군가 수정하고 있는 것이 보였다. 디자인팀과 개발팀 부분이었다. 그 자리엔 디자인 시스템 협력 건이 추가되어 있었다. 일정 편집자는 라선이었다. 혼자서 마음대로 수정하는 건 아닐 테다. 그 정도 생각 없는 사람은 아니었다. 그렇다면, 라선이 어떻게든 두 팀을 연결시키는 데 성공했다는 뜻이었다. 그 결과인 디자인 시스템 구축 업무가 옳은 결정인지는 웨일도 자세한 사항을 들어봐야 알 것이다. 웨일은 통제 가능한 상태를 선호한다. 통제가 가능하지 않는 상태를 참아낼 수 있게 된 것은, 리코 때문이었다.
웨일은 검은 피부에 양갈래 머리를 한 리코가 벌컥 문을 열고 들어왔던 날을 떠올렸다.
[다음 화에 계속]