백엔드 api 설계
백엔드 개발자에게 반드시 필요한 백엔드 API 설계 무엇일까?|백엔드 스쿨
백엔드 API 설계 방식, 예시로 쉽게 설명해 드려요.
- 이 글은 백엔드 개발자 취업을 준비하는 모든 분들을 위한 글입니다.
API는 API가 무엇인지 모르는 백엔드 개발자는 개발자라 할 수 없을 만큼 중요합니다. API가 무엇인지부터, 왜 중요한지에 대해 전부 알려드릴게요.
-
목차
1. API란?
2. 백엔드 API 설계 방식
3. 백엔드 API의 필요성
ㅣ API 란? - Application Programming Interface
웹 개발자라고 하면 대표적으로 프론트엔드 개발자와 백엔드 개발자로 나누어집니다. 하나의 웹 서비스를 구현하기 위해서는 여러 프로그램이 동작되어야 하고, 여기에는 많은 데이터베이스와 기능들이 존재합니다.
이 때 이것들이 서로 통신하는 규칙을 정하고 이를 기반으로 요청-응답이 이루어질 수 있도록 정해놓은 규칙을 ‘API’라고 합니다.
사전적인 의미로만 이해하기에는 어려울 수 있으니 예시를 들어보겠습니다.
먼저 사용자가 웹 페이지에 로그인을 한다고 가정해 봅시다.
프론트엔드 개발자는 로그인 화면에서 계정 입력 칸, 로그인 버튼, 아이디/비밀번호 찾기 버튼 등을 구현합니다. 그리고 사용자가 로그인 버튼을 눌렀을 때 서버에 ‘회원가입 시에 입력한 계정 정보랑 비교해서 일치하면 로그인 시켜줘.’라는 요청을 보냅니다. 그럼 백엔드 개발자는 회원가입 계정과 로그인 계정을 비교하여 일치하면 로그인, 일치하지 않으면 오류 메시지를 띄우는 기능을 개발합니다. 일치 여부에 따라 다른 응답을 보내게 되는 거죠.
만약 이때 규칙이 정해져 있지 않아 프론트엔드 개발자는 ‘영어’로, 백엔드 개발자는 ‘한글’로만 커뮤니케이션이 가능하도록 만든다면 제대로 요청/응답이 이루어질까요? 당연히 아니겠죠.
이런 불상사를 방지하기 위해 정해놓은 통신 규칙을 API라고 합니다.
ㅣ 백엔드 API 설계 방식
API에는 여러 종류가 있습니다. 어떤 통신 프로토콜을 사용하는지, 어떤 구조로 통신하는지, 요청이 여러 개 들어왔을 때 어떻게 처리하는지 등을 기준으로 API 종류가 나누어집니다.
그중 가장 보편적으로 사용하는 것은 REST API인데요. 보편적으로 사용하는 데에는 모두 이유가 있겠죠? Representational State Transfer의 약자인 REST는 요청/응답을 이름으로 구분하여 통신하도록 정해진 규칙을 의미합니다.
API에는 크게 아래 두 가지가 들어가야 합니다.
1.
HTTP URL을 통해 요청/응답 명시
· 요청 예시 : https://zero-base.co.kr/login (로그인 페이지 요청)
· 응답 예시 : https://zero-base.co.kr/login/success (로그인 성공 응답)
https://zerobase.co.kr/login/fail (로그인 실패 응답)
2. HTTP Method를 통해 동작 적용
· Create
: (회원가입 시) 지금 요청 보내는 계정을 데이터베이스에 새로 넣어줘
· Read
: (로그인 시) 올바른 계정인지 데이터베이스에 저장되어 있는 회원 가입 계정을 읽어줘
· Update
: (로그인 계정 변경할 때) 데이터베이스에 저장되어 있는 계정 비밀번호를 지금 요청 보내는 비밀번호로 변경해줘
· Delete
: (회원 탈퇴 시) 데이터베이스에 저장되어 있는 이 계정 삭제해줘
이런 식으로 어떤 url로 요청을 보냈을 때, 어떤 method를 적용하고, 어떤 응답을 url로 보낼지 프론트엔드 개발자와 백엔드 개발자는 상의해서 설정을 하게 됩니다.
이 API 설계 문서를 자동화해서 편하게 기록할 수 있는 플랫폼이 있습니다. 바로 스웨거라고 하는 사이트를 이용하는 건데요.
▲ 백엔드 API 설계 - 스웨거 사용 예시 이미지
설명드린 url과 method가 한 눈에 잘 보이죠? 이렇게 작성해 놓으면 프론트엔드 개발자와 백엔드 개발자가 각자 적지 않아도 알아볼 수 있고, 수정 및 테스트가 용이하다는 장점이 있습니다.
▲ 백엔드 API 설계 - 스웨거 사용 예시 이미지 2
위 이미지는 책 정보를 데이터베이스에 저장하는 API 규칙을 작성해놓은 건데요. 책 이름, 이미지, 조회수를 하나의 데이터베이스에 넣고자 할 때 아래와 같은 변수명, 형식으로 넣을 수 있도록 규칙을 설정했습니다.
-
1. 책 이름
book_title이란 변수명, string(문자열) 형식
2. 책 이미지
book_img란 변수명, file(이미지 파일) 형식
3. 책 조회수
book_hit란 변수명, number(숫자) 형식
그럼 프론트엔드 개발자가 ‘아, 요청을 줄 때 책의 이름은 book_title이란 변수명으로, 그리고 string이라는 형식으로 주어야 하는구나!’라고 알게 되고, 직접 데이터를 넣어서 제대로 저장이 되는지까지 바로 테스트해 볼 수 있습니다.
ㅣ 백엔드 API 설계의 필요성
규칙이라고 한 API, 왜 중요할까요? 특히 백엔드 개발자에게 있어 API는 뗄래야 뗄 수 없는 관계입니다. 서버를 개발하는 백엔드 개발자는 주로 데이터를 다루고, 요청에 따라 어떤 응답을 보낼지 설계하는 것이 주 업무이기 때문입니다.
수학 선생님이 학생들을 잘 가르치기 위해서는 문제 풀이를 깔끔하게 잘 쓰는 것이 중요하듯 백엔드 개발자에게 있어 백엔드 API 설계는 중요한 역량 중 하나입니다. 백엔드 개발자의 채용 공고에서 빠지지 않는 것 중 하나이니 얼마나 중요한지 아시겠죠?
▲ 네이버페이 백엔드 개발자 채용 공고 중 일부
백엔드 API 설계는 개발자 취업을 준비하시는 분이라면 실제 다른 개발자들과 함께 프로젝트를 진행하며 학습하는 것을 추천합니다.
백엔드 API 설계를 다른 관점에서 보면 ‘커뮤니케이션’이기 때문에 잘 학습해 놓는다면 소통 능력을 중요하게 생각하는 신입 개발자로 취업할 때 훨씬 많은 도움이 됩니다.
커뮤니케이션 역량을 잘 갖춘
백엔드 개발자가 되고 싶으신가요?
제로베이스 백엔드 스쿨에서 시작해 보세요! 처음 배우는 입문자라면 첫 단추가 정말 중요합니다.
‘누구에게, 무엇을, 왜 배우는지’ 반드시 알아야 합니다. 제로베이스 백엔드 스쿨은 그냥 배우고 끝내지 않습니다.
네카라쿠배 현직자의 멘토링으로 백엔드 프로젝트 진행, 프론트엔드 협업 프로젝트, 포트폴리오 작성 커리어 서비스까지 모두 경험할 수 있습니다. 제로베이스 백엔드 스쿨, 개발자로 취업할 수 있는 가장 정확한 방법이라고 감히 말씀드릴 수 있습니다.
제로베이스에서는 취업이라는 목표를 달성해 볼 여러분을 기다립니다.
제로베이스에서 시작해 보세요.
취업은 제로베이스
추천 컨텐츠