[INFCON Tech Series] FE 개발자도 할 수 있다! RESTful API 개발

[INFCON Tech Series] FE 개발자도 할 수 있다! RESTful API 개발

FE 개발자도 할 수 있다! RESTful API 개발
#REST #RESTful_API #API #Firebase #인프콘

ⓒMedium

개발자들이 함께 모여 서로의 경험과 인사이트를 나누는 축제, 인프콘! 8월 26일, 드디어 인프런의 첫 번째 오프라인 개발 콘퍼런스인 인프콘이 개최됩니다. 인프콘을 기다리는 인프러너 여러분들을 위해 인프런이 준비한 <Tech Series>! 인프콘에서 만날 수 있는 여러 기술에 대해 미리 알아볼 수 있도록 소개해 드릴게요. 

인프콘에서 만나볼 수 있는 발표를 미리 살펴보는 <INFCON Tech Series>의 마지막 이야기, Restful API입니다. 프론트엔드 개발자와 백엔드 개발자 모두에게 중요한 RESTful API란 무엇인지 대해 알아보아요 :D

INFCON Tech Series #5 📸

API와 RESTful API에 대해서
보다 쉽고 간단하게 알아보아요.

프론트엔드와 백엔드가 만나는 지점
API에 대해 알아보기

API(Application Programming Interface)는 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어하고, 애플리케이션에서 사용할 수 있도록 만든 인터페이스를 말합니다. API는 컴퓨터나 소프트웨어를 서로 연결하여 애플리케이션 간에 통신할 수 있도록 서비스를 제공해 주는 역할을 주로 해요.

이렇게 API에 대한 정의만으로는 이해가 어려울 수 있어요. 더 빠른 이해를 돕기 위해 API 호출 과정을 '레스토랑에서 주문' 비유를 통해 이해해 보도록 할게요.

ⓒCodeAnalogies Blog

먼저 손님은 테이블에서 웨이터에게 주문을 해요. 그다음으로 웨이터는 손님의 주문을 주방에 전달하고, 주방에서 요리가 완성되면 웨이터를 통해 다시 손님에게 주문한 음식을 가져다줍니다. 여기서 손님은 클라이언트, 주문은 서비스 및 요청, 주문을 받은 테이블은 프론트엔드(User Interface, 유저 인터페이스), 주문을 전달받은 주방은 백엔드(Server, 서버), 그리고 웨이터는 API로 볼 수 있어요.

이 과정을 통해 API에 두 가지 사실을 알 수 있어요. 먼저 API는 손님, 즉 클라이언트에서 받은 요청을 받을 수 있는 수단이자, 통신할 수 있도록 도와주는 역할을 한다는 것입니다. 그 과정을 통해 API는 애플리케이션에서 제공하는 기능을 제어할 수 있어요.

그리고 API에서 진행되는 작업은 클라이언트 눈에는 보이지 않다는 점인데요. 즉, 손님은 주방에서 일어나는 일에 대해 잘 모르고, 관심도 없을 수 있다는 것과 같아요. 대신 손님은 주문한 음식에 대한 정보나 결과가 중요한데요. 음식이 바로 나올 수도 있고, 주방에 재료가 없어 음식이 나오지 않을 수도 있지만 어떤 결과든지 응답을 꼭 해줘야 합니다.

예를 들면, 유저가 웹에서 어떤 버튼을 누를 때, 버튼의 결과에 대해서 궁금할 뿐 버튼을 통해 이루어지는 데이터 요청 및 반환 과정은 궁금해하지 않는 것과 같아요. 그리고 유저가 궁금해하는 버튼의 결과를 위해 API는 요청 받은 명령에 대한 결과를 프로그램에게 정확하게 전달해야 합니다. 이러한 방식을 통해 우리는 API가 프로그램이 서로 상호작용할 수 있도록 요청, 명령, 처리하는 인터페이스라는 것을 이해할 수 있어요.


REST, API, RESTful?
RESTful API는 무엇인가요?

RESTful API를 이해하기 전에 먼저 REST에 대해 알아보도록 할게요. REST는 Representational State Transfer의 약자로, 자원을 이름으로 구분하여 자원의 상태(정보)를 주고받는 모든 것을 의미해요. REST는 기본적으로 웹의 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있습니다. REST의 기본 구성은 다음과 같아요.

  • 자원(Resource) : URI
  • 행위(Verb) : HTTP 메소드(POST, GET, PUT, DELETE)
  • 표현(Representation) : HTTP Message Pay Load
    • REST에서 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 표현으로 나타내질 수 있고, 일반적으로 JSON이나 XML을 통해 데이터를 주고 받는 게 일반적이에요.

다시 말해, REST는 HTTP URI를 통해 이미지, 텍스트, DB 등의 모든 자원을 표현하고, HTTP 메서드를 통해 해당 자원에 대한 CRUD 작업을 적용하는 것을 의미합니다.

REST API는 말 그대로 REST를 기반으로 서비스 API를 구현한 것이에요. REST는 HTTP 기반으로 구현되므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다는 장점이 있어요. 그리고 RESTful은 누구든 요청의 의도를 쉽게 파악할 수 있도록 만들어놓은 REST API를 제공하는 것을 의미해요.

클라이언트와 서버 사이에서 통신할 수 있도록 도와주는 것이 API의 역할이라는 것에서 알 수 있듯이, REST API는 원활한 통신뿐만 아니라 HTTP 규약에 따라 정형화된 통신이 가능하도록 해주는 것인데요. RESTful은 그런 점에서 성능과 API의 호환성과 이해도를 높이는 것을 목적으로 하고 있어요.


RESTful API(with Firebase, GCP)
인프콘에서 만나보세요!

그럼 프론트엔드, 백엔드에게 있어 모두 중요한 RESTful한 API는 어떻게 개발하는 것일까요? REST API는 기본적인 설계 규칙이 있고, 사용자가 이해하기도 쉽고 사용하기도 쉽게 만들어야 한다는 점에서 구축이 어려울 것 같은데요. 의외로 간단하게(?) 누구나 만들 수 있는 방법이 있다고 합니다.

바로 Firebase와 Google Cloud Platform을 활용하여 실제 서비스가 가능한 API를 구현해 볼 수 있는데요. 어떻게 만드는지 궁금하진 않으신가요? 궁금하실 여러분들을 위해 인프콘이 준비했습니다. 인프콘에서 RESTful API를 개발하는 방법을 알아보세요!

FE 개발자도 할 수 있다! RESTful API 개발 (with Firebase, GCP)

조은 | 밑미

본 세션은 누구나 쉽게 할 수 있도록 구축된 웹 서비스 플랫폼인 Firebase와 간단히 서버를 구축할 수 있는 Node Express 서버를 활용하여 Backend Service를 구축하여 웹 서비스 전체를 만드는 법, Google Cloud Platform을 활용하여 실제로 구현한 코드들을 서버에 배포하는 작업 등을 다뤄보려 합니다. 발표자가 프런트엔드 개발자 출신이기 때문에 모든 예제 코드는 TypeScript 기반으로 되어있습니다.

세션 소개 바로가기 >>