사례 연구 Work and Co 확장성 높은 애플리케이션 개발 속도 향상 
몇 달이 아닌 몇 주 만에 필수 사내 앱을 제공한 Work & Co의 사례
접착 메모지에 아이디어를 적는 여성과 남성 동료

현대의 많은 기업과 마찬가지로 Work & Co의 인력은 전 세계에 분산되어 있으며, 끊임없이 진화하는 프로젝트에 참여하고 있습니다. 인적 자원과 프로젝트 자원을 효과적으로 관리하는 능력은 회사의 생산성에 매우 중요합니다. 

Work & Co는 IBM® 회사인 StepZen(ibm.com 외부 링크)과 협력하여 Mavenlink 백엔드에서 GraphQL 데이터 계층을 설계, 개발 및 출시한 다음, 내부 직원과 관리자가 매일 소통, 협업 및 프로젝트 할당 및 범위를 이해하는 데 사용하는 '직원 디렉토리 앱'을 개조했습니다.

Work & Co 직원 디렉토리 앱은 여러 HR 시스템의 데이터를 기반으로 하며, 전 세계적으로 분산되고 지속적으로 발전하는 프로젝트에서 소통하고 협업하기 위해 많은 직원이 매일 사용하고 있습니다. 회사가 여러 타사 인사 및 인력 관리 서비스의 데이터를 새로운 공급업체인 Mavenlink에 통합하기로 결정했을 때, 팀은 내부 앱에 관한 결정을 내려야 했습니다.

폐기하거나, 재구축하거나, 새로운 데이터 원본에 다시 장착할 수 있습니다. 직원들이 매일 업무를 처리해야 하므로 폐기는 생각도 할 수 없었습니다. 재구축은 가능한 일이었고, 회사는 필요한 기술을 보유하고 있었습니다. 그러나 이러한 기술은 주로 고객에게 청구 가능한 프로젝트에 배포되며, 이 귀중한 리소스를 내부 활동에 사용하는 것은 정당화하기 어려웠습니다.

결국 재장착이 최선의 선택이었습니다. 하지만 중요한 질문이 생겼습니다. Work & Co가 회사의 업무량을 최소화하면서 앞으로도 계속해서 기능과 데이터 소스를 추가하거나 시스템을 다시 전환할 수 있도록 필수 애플리케이션을 재구축할 방법은 무엇일까요?

사용자 경험을 개선하고 더 많은 기능을 제공할 수 있는 새로운 데이터 소스를 사용할 수 있게 되면서, 이 앱을 업데이트하고 확장하는 것이 중요해졌습니다. 이 회사는 포괄적이면서도 유연한 애플리케이션을 지금 구축할 수 있고, 향후 확장 및 새로운 사용 사례에 대비할 수 있는 솔루션이 필요했습니다.

Mavenlink의 GraphQL API를 사용하면 리소스 관리를 빠르고 정확하고 쉽게 시각화하고 계획할 수 있는 내부 앱을 몇 주 안에 구축할 수 있습니다. 이 앱은 많은 정보를 한데 모으기 때문에 성능이 매우 중요합니다. 네마냐 니시포로비치(Nemanja Niciforovic) MD 및 엔지니어링 책임자 Work & Co
필수 애플리케이션 재구축

첫 번째 단계는 앱의 기존 REST API 호출을 GraphQL API 호출로 변환하는 것이었습니다. GraphQL로 전환하면 클라이언트 애플리케이션은 GraphQL 호출 방법만 알고 필요한 데이터만 요청하면 되며, 데이터의 출처를 알 필요는 없습니다. 이 애플리케이션을 GraphQL로 표준화하면 회사는 애플리케이션에 영향을 주지 않고 새 데이터 소스를 추가하고 데이터 소스를 전환할 수 있으며, GraphQL 쿼리는 동일하게 유지됩니다.

그러나 일반적으로 이를 위해서는 API를 데이터에 매핑하기 위해 GraphQL 서버와 많은 리졸버 코드를 작성해야 합니다. 작성하고 유지 관리할 코드는 적을수록 좋습니다. 선언적 구성 중심의 호스팅 GraphQL 서버인 StepZen은 리졸버를 쉽게 구성할 수 있어 코드가 많이 필요하지 않습니다.

Work & Co의 MD 겸 엔지니어링 책임자인 네마냐 니시포로비치는 다음과 같이 설명합니다. "Mavenlink의 GraphQL API를 사용하면 리소스 관리를 빠르고 정확하고 쉽게 시각화하고 계획할 수 있는 내부 앱을 몇 주 안에 구축할 수 있습니다. 이 앱은 많은 정보를 한데 모으기 때문에 성능이 매우 중요합니다. StepZen의 자동 병렬 처리가 큰 도움이 되었죠. 또한 백엔드 서비스를 추가하고 단일 GraphQL API에서 새로운 앱을 구축할 때 미래를 대비하고 확장하는 데 도움이 됩니다."

Mavenlink는 다양한 HR 및 리소스 관리 데이터에 대한 액세스를 관리할 수 있는 포괄적인 REST API를 갖추고 있습니다. Work & Co는 StepZen의 GraphQL 지시문(@rest)을 사용하여 직원 디렉토리 앱에 사용할 수 있는 데이터를 미세 조정할 수 있었습니다. 간단한 예로, 이 팀은 애플리케이션에서 사용되는 이름과 일치하도록 Mavenlink API의 필드 이름을 쉽게 변경하여 프론트엔드 개발자의 인지 부하를 없애고 애플리케이션에서 필요한 코드 변경 횟수를 줄였습니다.

또한 팀은 StepZen의 @materializer 지침을 사용하여 Mavenlink API를 단순화할 수 있었습니다. 이를 통해 여러 API 호출의 데이터를 포함하는 유형을 정의할 수 있었습니다. 예를 들어, '사용자' 유형에 '프로젝트' 유형을 추가하여 애플리케이션 개발자가 프로필 사진 및 이메일 주소와 같은 사용자 세부 정보를 검색하는 동시에 사용자의 활성 프로젝트를 검색할 수 있도록 했습니다...

페이지 매김: Mavenlink API는 단일 호출에서 반환되는 레코드 수를 제한하여 페이지 매김을 강제합니다. Work & Co 앱은 이러한 방식으로 데이터를 처리하도록 구축되지 않았기 때문에 페이지 매김을 사용하기 위해 앱을 재작업하는 것은 원치 않는 작업이었습니다. 팀은 StepZen의 @sequence 지시문을 사용하여 Mavenlink API에 대한 많은 REST API 호출을 병렬화하고 단일 GraphQL 쿼리 요청으로 결과 집합의 모든 페이지를 검색할 수 있었습니다.

성능 조정: 이 접근 방식의 예상치 못한 이점은 성능 조정입니다. REST API로 더 작은 페이지 크기를 검색하면 응답 시간이 더 빨라집니다. 따라서 200개 레코드에 대한 10개의 병렬 요청은 각각 100개 레코드에 대한 20개의 병렬 요청보다 더 오래 걸립니다. Work & Co의 애플리케이션 개발자는 StepZen 쿼리를 적절하게 정의하여 GraphQL 쿼리의 성능을 미세 조정할 수 있었습니다.

보안 및 캐싱: 이러한 구체적인 구현 세부 사항 외에도 Work & Co는 보안 및 캐싱에 대한 StepZen의 전반적인 접근 방식을 통해 이점을 얻었습니다. 유연한 보안 구성을 통해 애플리케이션 전체 보안 컨텍스트를 사용하는 쿼리와 사용자별 보안 컨텍스트를 사용하는 쿼리를 정의할 수 있었습니다. 이러한 세분화된 제어는 REST API를 직접 사용할 때 관리하기가 매우 어렵고 일반적으로 둘 중 하나만 사용합니다. StepZen의 자동 캐싱은 애플리케이션 사용자가 개발 노력 없이도 향상된 성능을 경험할 수 있음을 의미합니다.

StepZen의 자동 병렬 처리가 큰 도움이 되었죠. 또한 백엔드 서비스를 추가하고 단일 GraphQL API에서 새로운 앱을 구축할 때 미래를 대비하고 확장하는 데 도움이 됩니다. 네마냐 니시포로비치(Nemanja Niciforovic) MD 및 엔지니어링 책임자 Work & Co
미래 전망

내부 앱을 특정 REST API 호출 대신 StepZen에서 실행되는 GraphQL을 사용하도록 변환한 후, Work & Co 팀은 더 많은 플랫폼을 채택함에 따라 Mavenlink 내의 새로운 기능을 활용할 수 있게 되었습니다. 또한 StepZen을 통해 제공되는 데이터로 구동되는 애플리케이션에 미치는 영향을 최소화하면서 GraphQL API에 새로운 서비스를 쉽게 도입할 수 있습니다.

Work & Co 소개

수상 경력에 빛나는 에이전시인 Work & Co(ibm.com 외부 링크)는 기업을 혁신하는 디지털 제품을 설계하고 출시하고 있습니다. 이 회사는 고객이 디지털 전략을 정의하고 디지털 제품을 대규모로 시장에 출시하고 운영할 수 있도록 지원합니다. 매일 수백만 명의 사람들이 Work & Co 웹 사이트, 앱 및 디지털 경험을 사용합니다.

StepZen

데이터에 대한 연합 액세스를 위한 유일한 선언적 접근 방식입니다.

더 알아보기 IBM 뉴스레터 구독하기    
법률

© Copyright IBM Corporation 2023. IBM Corporation, New Orchard Road, Armonk, NY 10504

2023년 6월 미국에서 제작.

IBM과 IBM 로고는 미국 및/또는 기타 국가에서 사용되는 International Business Machines Corporation의 상표 또는 등록 상표입니다. 기타 제품 및 서비스 이름은 IBM 또는 다른 회사의 상표일 수 있습니다. IBM 상표의 최신 목록은 ibm.com/trademark에서 확인할 수 있습니다.

이 문서는 최초 발행일 기준 최신 문서로, IBM은 언제든지 해당 내용을 변경할 수 있습니다. IBM이 현재 영업 중인 모든 국가에서 모든 제품이 제공되는 것은 아닙니다.

본 문서에서 인용되거나 설명된 모든 고객 사례는 일부 고객이 IBM 제품을 이용한 방식과 그로 인해 달성할 수 있는 결과에 대한 예시로 제공됩니다. 실제 환경 비용과 성능 특성은 개별 고객 구성 및 조건에 따라 다를 수 있습니다. 각 고객별 실제 결과는 전적으로 고객이 주문한 시스템과 서비스에 따라 크게 달라질 수 있으므로 일반적인 기대 결과는 제시될 수 없습니다. 는 미국 및/또는 기타 국가에서 사용되는 International Business Machines Corporation의 상표 또는 등록 상표입니다. 본 문서의 정보는 상품성, 특정 목적에의 적합성, 비침해성 보증 또는 조건을 포함하여 명시적 또는 묵시적 보증 없이 '있는 그대로' 제공됩니다. 제품 제공 시의 계약 조건에 따라 해당 IBM 제품을 보증합니다.