-
WIL - WEEK 3 (Restful API, package.json)삐약이 성장기 2022. 10. 9. 18:31
이번주에는 Restful API, package.json를 회고해 보도록 하자.
1. Restful API
먼저 Restful API란 무엇일까?
Restful API란, 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스라고 한다.
나는 여기서 restful 과 API 를 나누어서 더 세부적으로 알아보기로 했다.
1 - 1 . API
먼저 API는 애플리케이션 프로그래밍 인터페이스의 준말이며,
다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.
개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다.
즉, 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다.
- 클라이언트 : 웹에서 정보에 액세스 하려는 사용자. API를 사용하는 사람이거나 소프트웨어 시스템일 수 있다.
- 리소스 : 다양한 애플리케이션이 클라이언트에게 제공하는 정보, 이미지, 동영상, 텍스트 또는 모든 유형의 데이터일 수 있다.
1 - 2 . REST
REST란 Representational State Transfer의 약자로 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처이다.
REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌다.
REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있고,
쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있다.
그렇다면 Restful API를 사용하면 어떤 이점이 있을까?
1. 확장성
REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있다.
무상태는 서버가 과거 클라이언트 요청 정보를 유지할 필요가 없기 때문에 서버 로드를 제거한다.
잘 관리된 캐싱은 일부 클라이언트-서버 상호 작용을 부분적으로 또는 완전히 제거한다.
이러한 모든 기능은 성능을 저하시키는 통신 병목 현상을 일으키지 않으면서 확장성을 지원한다.
2. 유연성
RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원한다.
각 부분이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리한다.
버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않는다.
애플리케이션 함수를 계층화하는 기능은 유연성을 더욱 향상시킨다.
3. 독립성
REST API는 사용되는 기술과 독립적이다.
API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있다.
또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있다.
이렇게 세 가지로 나타낼 수 있다고 한다.
2. package.json
package.json은 npm과 연관이 있기 때문에
package.json을 알아보기 전에 간단하게 npm이 무엇인지 먼저 간단하게 알아보도록 하자.
npm(Node Package Manager)은 node.js를 위한 패키지 매니저이자, node.js를 위한 오픈소스 생태계이다.
npm은 node.js에서 사용하는 모듈들을 패키지로 만들어 관리하고 배포하고 있다.
그렇다면 package.json 또한 npm안에 있는 패키지중 하나가 아닐까?
라는 생각이 들어 npm Docs에 찾아가 package.json을 어떻게 표현했는지 찾아보았다.
기본적으로 package.json은 문서라는 것을 알 수 있고
개발자가 배포한 패키지에 대해 다른 사람들이 관리하고 설치하기 쉽게 하기 위한 문서라고 표현되어 있고,
npm에 패키지를 배포하고 npm registry에 올리기 위해서 반드시 필요한 문서파일이라고 명시되어 있다.
- 자신의 프로젝트가 의존하는 패키지의 리스트
- 자신의 프로젝트의 버전을 명시
- 다른 환경에서도 빌드를 재생 가능하게 만들어, 다른 개발자가 쉽게 사용할 수 있도록 한다.
첫 번째와 세 번째 항목을 살펴 보았을 때 자신이 프로젝트 개발을 위한 목적인지,
패키지를 배포하기 위한 목적인지에 따라 용도가 갈릴 수 도 있을 것 같다.
실제로 생성된 PACKAGE.JSON파일을 열어보면 이런식으로 구성되어 있음을 확인 할 수 있다.
'삐약이 성장기' 카테고리의 다른 글
WIL - WEEK 2 (ES) (0) 2022.10.02 WIL - WEEK 1 (JWT, API) (0) 2022.09.25 Javascript 알아보기 (0) 2022.09.23 개발 바다 위에서 쓰는 항해일지 5 (1) 2022.09.02 개발 바다 위에서 쓰는 항해일지 4 (0) 2022.08.31