강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

corp님의 프로필 이미지
corp

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

express 싱글톤 패턴, 서비스 패턴

nestjs 에서 api

작성

·

223

1

api ( 식당에서 웨이터 역할)

프로그램들이 서로 상호작용하는것을 도와주는 매개체

 

기냥 추상적으로 이렇게만 알고있는데요

nestjs에서 쓰이는 api는 알아야 하는 좀더 다른것이 있나요?

 

조금만 자세하게 설명해주시면 감사하겠습니다.

답변 1

3

윤상석님의 프로필 이미지
윤상석
지식공유자

api는 "application programming interface = 기능이 있는 프로그램에 접근이 쉽도록 하는 것" 입니다.

즉, 프로그램들이 서로 상호작용하는 것을 도와주는 매개체입니다.

좀 더 구체적인 사례를 들자면, 자바로 만들어진 프로그램 A, 파이썬으로 만들어진 프로그램 B, 자바스크립트로 만들어진 프로그램 C가 있다고 가정하겠습니다. A, B, C에서 공통적으로 사용하고 싶은 기능 Y가 있다고 한다면 Y는 자바로 만들어야 할까요? 파이썬으로 만들어야 할까요? 아니면 자바스크립트로 만들어야 할까요? 베스트는 3개의 언어에 모두 인식할 수 있는 "규칙"으로 만들면 되는 것입니다. 이 규칙을 지키며 만든 것이 API입니다. A, B, C를 만든 개발자는 Y가 어떻게 만들어 졌는지 몰라도 사용할 수 있으며 A, B, C 뿐만 아니라 Go언어로 만든 D에도 동작이 가능합니다. 여기서 "규칙"에 해당하는 것, 여러 프로그램에서 호환되는 포멧(확장자)가 바로 JSON입니다. 그리고 이 JSON을 반환하는 프로그램이 바로 API인 것이죠.

이것은 많은 사례일뿐 API의 정의는 "기능이 있는 프로그램에 접근이 쉽도록 하는 것", "프로그램들이 서로 상호작용하는 것을 도와주는 매개체"입니다. 해당 의미에 맞으면 API라고 할 수 있는 것이죠. 예를들어 시스템 엔지니어링에서 운영체제 또한 API를 제공합니다.

여기까지가 이론적인 설명의 전부입니다. 애초에 개념 자체가 추상적이라 직접 사용해보시거나 만들어보시면 이해하는 것이 좋을 것 같습니다! 추가적인 문서를 읽으시면서 정리하시면 좋을 것 같습니다.

https://www.redhat.com/ko/topics/api/what-are-application-programming-interfaces

저희는 NestJS를 통해 API를 개발하는 것이 목표입니다. 프론트엔드에서 사용 가능한 API를 만드는 것이죠.

 

corp님의 프로필 이미지
corp
질문자

답변 너무 감사합니다 ㅜㅜ

corp님의 프로필 이미지
corp

작성한 질문수

질문하기