기타 Lobsters · 2일 전

"표준이라더니 왜 다 지멋대로임?" 대형 API 50개 연동해본 개발자의 절규

핵심 요약
  • 구글, 노션, 슬랙 등 50대 인기 API에 OAuth 2.0을 직접 연동해 본 엔지니어링 팀의 분석 글이 화제입니다.
  • OAuth는 공식 표준이지만 실제로는 플랫폼마다 파라미터, 토큰 전달 방식, 인증 URL 등이 제각각이라 2008년 자바스크립트 호환성 지옥과 같다고 지적했습니다.
  • 노션의 독자적 용어 도입이나 조호·쇼피파이의 서브도메인/리전 분기 등 파편화로 인해 개발 생산성이 크게 저하되고 있습니다.
요약 통합 연동 플랫폼을 개발하는 엔지니어링 팀이 구글, 마이크로소프트, 쇼피파이, 노션 등 가장 널리 쓰이는 인기 API 50여 개에 OAuth를 직접 연동해 본 뒤 남긴 경험담이 해외 개발자 커뮤니티에서 큰 공감을 얻고 있습니다. 기술적으로 OAuth 2.0은 널리 보급된 국제 표준 프로토콜이지만, 실제 현장에서는 마치 2008년 무렵 웹 브라우저마다 제각각이었던 자바스크립트 API 춘추전국시대를 방불케 한다는 지적입니다. 표준 규격 자체가 17개에 달하는 RFC 문서와 72개 공식 파라미터로 구성되어 지나치게 방대하다 보니, 대다수 API 제공 업체들은 전체를 구현하지 않고 자신들에게 필요한 하위 기능만 임의로 골라 구현하고 있습니다. 문제는 각 기업마다 구현 방식과 해석이 완전히 다르다는 점입니다. 예를 들어 지라(Jira)는 고정된 audience 파라미터 입력을 강제하고, 마이크로소프트는 response_mode를 항상 query로 지정해야 작동합니다. 노션의 경우 표준에서 흔히 쓰이는 scope 파라미터를 아예 없애고 자체적으로 'capabilities'라는 명칭을 도입해 앱 등록 시점에 설정하도록 강제하기도 했습니다. 토큰 요청 방식 역시 제각각이어서, 대부분 폼 인코딩 방식을 쓸 때 노션은 JSON을 요구하고 핏빗은 헤더에 데이터를 실어 보내야 합니다. 쇼피파이나 젠데스크처럼 계정마다 개별 서브도메인을 요구하거나, 조호(Zoho)처럼 사용자 지역에 따라 인증 URL 자체를 다르게 분기해야 하는 등 플랫폼마다 독자적인 '함정'이 곳곳에 도사리고 있어 표준화의 취지가 무색해진 실정입니다.
Sponsored · 광고