Post

프론트엔드와 백엔드, 더 야무지게 협업하는 법

들어가며

웹 애플리케이션 개발은 오늘날 매우 복잡한 작업입니다. 프론트엔드와 백엔드 개발자들이 효율적으로 협업하지 않으면 프로젝트가 지연되거나 품질이 저하될 수 있습니다.

특히 프론트엔드와 백엔드가 다른 주기로 작업을 진행하면서 협업의 중요성은 더욱 강조되고 있습니다.

이 글에서는 프론트엔드 개발자로서 백엔드 개발자와 협력하는 과정에서 경험했던 다양한 방식과 문제 해결 사례를 바탕으로 효율적인 협업 방법을 제안합니다.

협업 과정에서 발생할 수 있는 보틀넥을 피하고 더 매끄럽게 프로젝트를 진행하는 데 경험한 내용을 공유하고자 합니다.

1. 협업을 준비하는 단계: 시작 전에 필요한 것들

Desktop View

“모르면 물어봐라” - 직장인 뫼비우스의 띠

협업을 시작하기 전, 프로젝트의 전반적인 배경과 요구사항을 철저히 이해하는 것이 중요합니다.

흔히 직장인 뫼비우스라 불리는 이 말은 생각보다 협업에서 매우 적절한 조언입니다.

직접 찾아보는 것도 당연히 좋지만 한정된 시간에 더 잘 알고 있는 동료에게 조언을 구하고 능률을 높이는 것이 굉장히 중요합니다.

이는 프로젝트의 방향을 제대로 파악하고, 구현 과정에서 불필요한 오류지연을 방지하는 데 큰 도움이 됩니다.

1.1 요구사항을 철저히 파악하기

협업을 시작할 때, 요구사항을 제대로 파악하지 못하면 이후에 큰 혼선이 발생할 수 있습니다.

특히 프론트엔드 개발자는 UI/UX에만 집중할 것이 아니라, 백엔드에서 제공하는 데이터와 해당 데이터의 흐름을 명확히 이해해야 합니다.

이를 위해 다음과 같은 단계를 따를 수 있습니다.

  • 데이터 플로우 분석:

    • 백엔드에서 제공될 데이터의 흐름을 이해하고, 이를 프론트엔드에서 어떻게 처리할지 구체적으로 계획합니다.
  • 서로의 타임라인 공유:

    • 백엔드 팀과 함께 각 팀의 작업 일정과 우선순위를 공유해 동기화된 협업이 가능하도록 합니다.

1.2 업무의 우선순위 정리하기

프론트엔드와 백엔드는 각자의 업무가 다르기 때문에, 전체 프로젝트에서 어떤 부분을 우선적으로 처리해야 할지 명확히 해야 합니다.

우선순위가 정리되지 않으면 중요한 작업이 뒤로 미뤄지거나, 프로젝트 일정이 예상보다 더 길어질 수 있습니다.

예를 들어, UI는 이미 완성되었지만 데이터가 준비되지 않았거나, 반대로 데이터가 준비되었는데 UI 설계가 지연되는 상황을 방지하기 위해 다음과 같은 질문들을 고려합니다:

  • 백엔드 데이터가 언제 준비되는가?
  • 프론트엔드가 데이터 없이 목업을 사용할 수 있는가?
  • 양쪽 팀의 중요한 마일스톤은 언제인가?

2. 프론트엔드와 백엔드의 다른 업무 사이클 극복하기

Desktop View

프론트엔드/백엔드의 업무 사이클

프론트엔드와 백엔드는 서로 다른 속도로 작업을 진행하기 때문에, 양측의 타임라인을 조율하는 것이 중요합니다.

특히 프론트엔드 작업이 백엔드 준비가 끝나지 않은 상태에서 시작되는 경우가 많기 때문에, 목업 데이터를 적극 활용하는 것이 큰 도움이 됩니다.

2.1 목업 데이터 활용하기

백엔드가 완성되기 전에 프론트엔드는 UI와 상호작용을 먼저 구현해야 하는 경우가 많습니다.

이때 실제 API가 아직 준비되지 않았다면, 목업 데이터를 활용하여 UI 개발을 진행할 수 있습니다.

목업 데이터를 사용하면 데이터 형식과 구조에 대한 사전 검토가 가능하며, 백엔드 API가 완성되었을 때 더 빠르게 통합할 수 있습니다.

2.2 API 설계에 적극적으로 피드백 제공하기

프론트엔드 개발자가 백엔드 개발자에게 API 설계에 대해 피드백을 제공하는 것도 매우 중요합니다.

프론트엔드는 사용자와 직접 상호작용하는 부분을 담당하기 때문에, 백엔드에서 데이터를 어떻게 전달하는지에 대한 사용자 경험을 고려한 피드백이 필요합니다.

예를 들어, API 호출 결과가 너무 방대한 데이터를 반환하거나 불필요한 데이터가 포함된 경우, API를 최적화하여 네트워크 트래픽을 줄이고 성능을 높이는 방안을 제안할 수 있습니다.

3. 협업에서 발생하는 문제 해결

협업 과정에서는 항상 예상치 못한 문제가 발생합니다.

특히 프론트엔드와 백엔드 간의 데이터 통신에서 오류나 보안 문제(CORS) 등이 대표적인 예입니다.

이러한 문제를 사전에 예측하고 신속히 해결하는 것이 중요합니다.

3.1 CORS 문제 해결하기

Desktop View

CORS

CORS는 서로 다른 도메인 간의 요청을 막는 브라우저의 보안 정책으로, 프론트엔드 개발자가 자주 직면하는 문제입니다.

CORS 문제가 발생하면 백엔드 서버에서 CORS 정책을 수정하거나, 프론트엔드에서는 프록시 설정을 통해 이를 우회할 수 있습니다.

백엔드에서 특정 도메인에서만 요청을 허용하는 방식으로 CORS 설정을 수정하거나, 개발 환경에서는 CORS를 일시적으로 무시하도록 설정할 수 있습니다.

필자의 경우 사내에선 로컬 IP를 허용하는 방식으로 진행하기 때문에 빠르게 공유하는 것이 1순위가 됩니다.

3.2 401 에러 및 인증 문제 해결하기

Desktop View

API 호출 시 401 인증 오류가 발생하는 경우, 이는 프론트엔드와 백엔드 모두에서 문제가 될 수 있습니다.

프론트엔드에서는 토큰의 유효성을 먼저 확인하고, 백엔드에서는 인증 로직이 올바르게 작동하고 있는지 점검해야 합니다.

프론트엔드에서 인증된 토큰을 올바르게 전달하고 있음에도 불구하고 401 에러가 발생하는 경우, 백엔드의 인증 로직에서 문제를 찾아야 합니다.

이러한 문제를 해결하기 위해 양측의 로그를 공유하고 실시간 디버깅을 진행하는 것이 효과적입니다.

4. 소통과 협업의 기술: 신뢰와 투명성

결국 성공적인 협업의 핵심은 소통투명성입니다.

프로젝트 진행 중에는 다양한 변경 사항이 발생할 수 있으며, 이때 양측 팀 간의 명확한 소통이 없으면 혼란이 발생할 수 있습니다. 다음은 원활한 소통을 위한 몇 가지 팁입니다.

4.1 소통 도구의 적극적 활용

협업 도구(슬랙, 노션, Jira 등)를 적극적으로 활용하여 진행 상황과 문제를 즉각적으로 공유하는 것이 중요합니다.

특히 API 변경이나 데이터 구조 변경 등 중요한 사항은 문서화하여 모든 팀원이 접근할 수 있도록 해야 합니다.

API가 업데이트된다면 프론트엔드 팀이 바로 확인할 수 있도록 공유하거나, 노션에서 해당 문서를 멘션하여 실시간으로 공유될 수 있도록 하는 것이 좋습니다.

4.2 문제 발생 시 투명하게 공유하기

문제가 발생했을 때 빠르게 문제를 공유하고 해결 방안을 논의하는 것이 중요합니다.

문제가 있는 부분을 은폐하거나 뒤로 미루는 것이 아니라, 투명하게 소통하여 함께 해결할 수 있도록 해야 합니다.

API 성능 문제나 예상치 못한 버그가 발생했을 때, 이를 프론트엔드 또는 백엔드에서 발견했더라도 서로의 작업 영역을 존중하며 빠르게 소통하고 함께 해결해야 합니다.

마치며

프론트엔드와 백엔드의 협업은 웹 개발에서 필수적인 요소입니다. 목업 데이터를 활용한 빠른 진행, API 설계에 대한 적극적인 피드백, 문제 발생 시 신속한 해결은 성공적인 협업의 필수 요소입니다. 또한, 투명한 소통문서화는 협업 과정에서 발생하는 오류를 최소화하고, 프로젝트의 원활한 진행을 도와줍니다.

협업의 궁극적인 목적은 더 나은 사용자 경험을 제공하는 것입니다. 프론트엔드와 백엔드가 서로의 역할과 책임을 명확히 이해하고, 서로의 강점을 활용하면서 함께 성장할 때 비로소 진정한 협업이 이루어집니다.

프론트엔드 개발자는 단순히 UI를 만드는 것을 넘어 백엔드와 함께 더 나은 결과물을 만들어내기 위한 핵심적인 역할을 할 수 있습니다. 서로의 기술을 이해하고, 신뢰를 바탕으로 한 협업을 통해 더 높은 수준의 웹 애플리케이션을 만들어갈 수 있기를 바랍니다.

레퍼런스

This post is licensed under CC BY 4.0 by the author.