REST API를 만들다 보면 처음에는 동작하는 API를 구현하는 데 집중하게 됩니다.예를 들어 게시글 목록 API, 회원가입 API, 로그인 API, 결제 완료 웹훅 같은 기능을 하나씩 만듭니다.그런데 API가 조금만 늘어나도 이런 문제가 생깁니다.이 API는 어떤 URL로 호출해야 하지?GET인지 POST인지 헷갈리네.요청 body에는 어떤 값을 넣어야 하지?응답 JSON 구조가 어떻게 생겼지?인증 토큰은 필요한가?실패하면 어떤 상태 코드와 에러 메시지가 올까?혼자 개발할 때도 이런 정보가 정리되어 있지 않으면 불편합니다.프론트엔드 개발자, 모바일 개발자, 외부 파트너, QA 담당자와 함께 일한다면 API 문서화는 더 중요해집니다.이번 글에서는 API 문서화가 왜 필요한지, Swagger와 OpenA..
웹 서비스를 만들다 보면 외부 서비스와 연동해야 하는 일이 자주 생깁니다.예를 들어 결제 서비스에서 결제가 완료되었는지 알아야 할 수 있습니다.GitHub에서 코드가 push되었는지 받아야 할 수도 있고, Slack이나 Discord로 알림을 보내야 할 수도 있습니다.또 이메일 발송 서비스에서 메일이 성공적으로 전달되었는지, 반송되었는지 확인해야 할 수도 있습니다.이때 자주 등장하는 개념이 웹훅(Webhook)입니다.처음 보면 웹훅은 API와 비슷해 보입니다.하지만 일반적인 API 호출과 웹훅은 방향이 다릅니다.보통 API는 내가 필요할 때 외부 서비스에 요청을 보내 데이터를 가져오는 방식입니다.내 서버→ 외부 API 호출→ 응답 받기반면 웹훅은 외부 서비스에서 이벤트가 발생했을 때, 외부 서비스가 내 ..
Django로 웹 서비스를 만들다 보면 처음에는 템플릿으로 HTML을 렌더링하는 방식에 익숙해집니다.하지만 프론트엔드와 백엔드를 분리하거나, 모바일 앱에서 사용할 API를 만들거나, 외부 서비스와 데이터를 주고받아야 한다면 JSON 기반 API가 필요해집니다.이때 Django에서 REST API를 만들 때 가장 많이 사용하는 도구 중 하나가 Django REST Framework, 줄여서 DRF입니다.DRF를 처음 공부하면 여러 개념이 한꺼번에 나옵니다.SerializerViewSetRouterAPIViewPermissionAuthenticationPaginationFilter처음부터 모든 기능을 다 외우려고 하면 어렵습니다.먼저 API 요청이 들어와서 응답이 나가기까지의 흐름을 이해하는 것이 좋습니다...
웹 개발을 하다 보면 거의 반드시 API라는 말을 만나게 됩니다.프론트엔드에서 백엔드로 데이터를 요청할 때도 API를 사용하고, 모바일 앱이 서버와 통신할 때도 API를 사용합니다.외부 서비스의 데이터를 가져오거나, 결제 시스템과 연동하거나, 관리자 페이지에서 데이터를 조회할 때도 API가 사용됩니다.그중 웹에서 가장 자주 접하는 방식이 REST API입니다.REST API는 HTTP를 기반으로 리소스를 조회하고, 생성하고, 수정하고, 삭제하는 방식으로 설계됩니다.처음에는 GET, POST, PUT, DELETE 같은 HTTP 메서드만 외우게 되지만, 실제로는 URL 설계, 상태 코드, JSON 응답, 에러 처리, 인증 방식까지 함께 이해해야 합니다.이번 글에서는 REST API를 처음 배울 때 꼭 알아..
