10년 넘게 클라이언트의 꿈을 구현해온 우리가, 드디어 우리 자신의 이야기를 코드로 썼습니다.
"10년이 넘도록 수백 개의 프로젝트를 완성해왔지만, 정작 우리 자신을 위한 프로그램은 단 하나도 없었다."
우리는 웹 에이전시입니다. 기획부터 디자인, 퍼블리싱 , 개발까지 — 클라이언트가 원하는 모든 것을 만들어왔습니다. 그런데 어느 날 문득 깨달았습니다. 회사 내부에서 쓸 수 있는, 우리 손으로 만든 솔루션이 단 하나도 없다는 사실을요. 그렇게 시작된 첫 번째 도전이 바로 ONA 휴가 관리 시스템입니다. 거창한 목표가 아니었습니다. 우리 팀이 매일 쓸 수 있는, 작지만 진짜인 우리만의 프로그램 하나를 만들어보자는 것이었습니다.
Story 1. 개발자의 이야기
이번 프로젝트는 단순히 휴가 관리 시스템을 만든 경험이 아니었습니다. 그동안 우리는 클라이언트의 요구사항에 맞춰 화면을 구현하는 일을 해왔습니다. 정해진 기획과 디자인, 정해진 일정 안에서 최고의 결과물을 만드는 것이 우리의 역할이었습니다. 하지만 이번에는 달랐습니다. 사용자도 우리였고, 기획자도 우리였고, 운영자도 우리였습니다. 누군가의 요구사항을 구현하는 것이 아니라 실제로 사용할 서비스를 처음부터 끝까지 만들어야 했습니다.
처음으로 '서비스'를 만들다
클라이언트 프로젝트에서는 완성된 기획서를 기반으로 개발을 진행하는 경우가 많습니다. 하지만 이번 프로젝트는 어떤 기능이 필요한지부터 직접 고민해야 했습니다. 휴가 신청은 어떤 방식으로 진행할 것인지, 승인 프로세스는 어떻게 동작해야 하는지, 구성원별 권한은 어떻게 구분할 것인지, 관리자는 어떤 정보를 확인해야 하는지. 당연하게 여겼던 기능들이 사실은 수많은 고민과 설계 위에서 만들어진다는 것을 직접 경험하게 되었습니다.

UI 퍼블리싱팀에서 UI 개발팀으로
이 프로젝트가 남긴 가장 큰 변화는 결과물이 아니라 사람들의 변화였습니다. 기획자는 더 깊이 서비스 구조를 고민하게 되었고, 디자이너는 사용자 경험을 설계하게 되었으며, 퍼블리셔는 프론트엔드와 백엔드를 연결하는 개발자가 되었습니다. 프로젝트가 끝난 뒤 팀의 이름은 'UI 퍼블리싱팀'에서 'UI 개발팀'으로 바뀌었습니다. 단순히 명칭이 바뀐 것이 아닙니다. 우리가 할 수 있는 일의 범위가 넓어졌고, 스스로를 바라보는 시선도 달라졌습니다. ONA 휴가 관리 시스템은 단순한 사내 솔루션이 아니라, 우리 팀이 한 단계 성장하게 만든 첫 번째 프로덕트였습니다.
직접 운영한다는 것의 의미
개발은 배포와 함께 끝나지 않았습니다. 시스템은 React로 구축되었고 , 회사에서 직접 운영 중인 NAS 서버에 배포하여 현재도 실제 업무에서 사용하고 있습니다. 외부 서비스에 의존하지 않고 우리의 인프라 위에서 돌아가는 우리만의 솔루션 — 작은 것이지만 , 그 의미는 결코 작지 않습니다. 지금도 팀원들의 피드백을 반영하며 꾸준히 업데이트하고 있습니다. 완성이 아닌, 함께 성장하는 프로덕트로 이어가고 있습니다. 앞으로도 우리는 클라이언트의 꿈을 만드는 동시에, 우리 자신의 꿈도 직접 만들어가려 합니다.
ONA 휴가 관리 시스템이 그 첫 페이지의 성공적 시작이었기를 바랍니다.
Story 2. 디자이너의 이야기
보통은 기획과 디자인을 먼저 진행한 뒤 개발에 들어가지만, ONA 휴가 관리 시스템은 개발에서부터 시작된 독특한(?) 프로젝트였습니다. 바통을 이어받은 디자인팀의 역할은 개발팀이 잘 만들어 놓은 시스템 위에 ONA만의 색깔을 입히는 것이었습니다. 어떻게? 매일 사용하는 우리의 시스템이 조금 더 편하고, 조금 더 즐겁고, 무엇보다 우리다운 모습이 곳곳에 담겨있도록 말이죠!
우리다운 디자인 컨셉
하루의 절반 이상을 모니터 앞에서 보내는 구성원들을 고려해 장시간 사용에도 눈의 피로를 덜 수 있도록 전체 UI는 다크 테마를 기반으로 구성했고, 오렌지 컬러를 포인트로 활용해 ONA만의 에너지와 개성을 담았습니다. 또한 카드 중심의 레이아웃을 적용해 다양한 정보를 한눈에 파악할 수 있도록 구성했습니다. 사용자는 로그인과 동시에 오늘의 휴가 현황, 잔여 연차, 근무 기록, 공지사항 등 핵심 정보를 한 번에 확인할 수 있습니다.

시스템이 있어야 일관성이 생긴다
내부 프로젝트라고 해서 화면마다 다른 스타일을 적용하거나, 그때그때 필요한 요소를 만드는 방식은 지양하고 싶었습니다. 서비스를 운영하다 보면 분명 새로운 기능이 추가되고, 제작해야 하는 화면이 늘어기도 하고, 앞으로 확장될 사내 시스템이 더 있을 지도 모르기 때문입니다. 그래서 처음부터 디자인 시스템 관점으로 접근해 디자이너와 개발자는 일관된 기준 안에서 더 빠르고 효율적으로 작업할 수 있고, 사용자는 어떤 화면에서도 익숙한 경험을 할 수 있도록하여 서비스를 지속적으로 확장하고 발전시켜 나가기 위한 기반을 만들었습니다.

업무 시스템에도 재미는 필요했다
업무를 위한 서비스라고 해서 꼭 딱딱할 필요는 없다고 생각했습니다. 누구나 마음 한편에는 작은 장난기 하나쯤 품고 살아가니까요. 매일 사용하는 시스템이라면 조금 더 친근하고, 조금 더 웃을 수 있고, 조금 더 우리다운 모습이 담겨 있어도 좋지 않을까 생각했습니다. 그래서 ONA 휴가 관리 시스템 곳곳에는 실용적인 기능 사이로 작은 재미 요소들을 숨겨두었습니다.
나의 연차 바사삭까지 365일 남음
잔여 연차를 단순히 숫자로만 보여주는 대신, 조금은 위트 있는 문구를 활용했습니다. 딱딱한 데이터가 아니라, 사용자가 자연스럽게 미소 지을 수 있는 경험을 만들고 싶었습니다.

나를 소개합니다
사내 시스템의 구성원 정보는 보통 이름과 직책 정도만 표시 되지만, 매력이 넘치는 ONA에서는 개개인의 개성과 스토리를 담을 수 있도록 스토리 구성의 프로필을 제작했습니다. 개성 넘치는 프로필 이미지와 문구를 통해 구성원을 하나의 데이터가 아닌 사람으로 보여주고 싶었습니다.

나의 최애 컬러는요
다크 UI 위에 배치된 컬러들은 정보를 더욱 직관적으로 전달해 주는 동시에 화면에 생동감을 더해줍니다. 여기에 각 구성원이 자신만의 컬러를 지정할 수 있는 기능을 더했습니다. 작은 기능이지만 캘린더에 자연스럽게 애착이 생기고, 동료들의 색을 통해 일정을 한눈에 인지할 수 있도록 했습니다.

마치며. 모두가 함께 만든 결과물
ONA 휴가 관리 시스템은 특정 팀이나 직군의 결과물이 아닙니다. 개발팀이 서비스의 뼈대를 만들고, 디자인팀이 그 위에 경험과 브랜드의 색을 입혔습니다. 그리고 기획, 개발, 디자인을 비롯한 모든 구성원이 실제 사용자가 되어 의견을 나누고 개선점을 제안하며 함께 완성해 나갔습니다. 어쩌면 이 프로젝트의 가장 큰 성과는 시스템 자체가 아니라, 서로의 영역을 이해하고 하나의 목표를 향해 함께 달려본 경험인지도 모릅니다.
지금도 ONA 휴가 관리 시스템은 팀원들의 피드백을 반영하며 계속해서 발전하고 있습니다. 앞으로도 우리는 더 나은 업무 환경을 만들기 위한 다양한 시도를 이어갈 예정입니다. 클라이언트의 서비스를 만들며 쌓아온 경험을 이제는 우리 자신을 위해서도 활용해 보려 합니다.
ONA 휴가 관리 시스템은 그렇게 시작된 우리의 첫 번째 프로덕트이며, 앞으로 펼쳐질 더 많은 이야기의 시작점입니다.

