TIL 2023 10 19

김민준·2023년 10월 19일

얕고 짧은 정리

REST API

API

다른 소프트웨어 시스템과 소통하기 위한 규칙
다른 소프트웨어 시스템과 데이터를 주고 받거나, 서비스를 요청하고 응답받는데 사용한다.

정의

RESTful 하게 짜여진 API를 일컫는 말
표준이나 공식이 존재하지 않는다.

  • 자원을 URI로 상호작용한다.
  • HTTP 메서드로 자원을 요청하거나 변경한다.
  • 무상태성
  • 자기 서술적

장단점

장점

  • 다양한 플랫폼 언어와 통신할 수 있는 유연한 구조를 제공한다.
  • 서비스 디자인의 문제를 최소화한다.
  • 서버와 클라이언트의 역할을 명확히 구분한다.
  • HTTP 프로토콜의 인프라를 그대로 사용한다.
  • API 메세지가 의미하는 바가 명확하다.

단점

  • 사용할 수 있는 메소드가 제한적이다.
  • 브라우저로 테스트하기 힘들다.
  • 구형 브라우저나 일부 환경에서 지원되지 않는다.

프로세스와 스레드의 차이

  • 프로세스 : 프로그램이 돌아가는 과정
  • 스레드 : 프로세스의 조각중 하나

프로세스는 운영체제에서 별도로 관리하는 독립적인 실행단위로, 자체 메모리를 가지고 있다.
그렇기 때문에 생성에 오래걸리고 IPC없이 서로의 메모리에 직접 접근할 수 없으나, 반대로 하나의 프로세스에 에러가 발생해도 다른데 영향을 주지 않는다.
프로세스 컨텍스트 스위칭이 비효율적, 오버헤드가 크다.
프로세스는 하나이상의 스레드로 이루어져있습니다.

스레드는 프로세스 내에서 메모리 공간을 공유하여 스레드 간 통신은 상대적으로 쉬우나, (공유 데이터 동시 업데이터, 경쟁조건, 데드락 등의 )문제가 생길 수 있으며, 하나의 스레드에서 문제가 생겨도 프로세스 전체에 영향이 갈 수 있다.

참조한 페이지

What is a RESTful API?
[Network] REST란? REST API란? RESTful이란?

프로세스와 스레드의 차이
사용자수준 쓰레드와 커널수준 쓰레드의 차이?
Process vs Thread – Difference Between Them
Difference between Process and Thread
스레드간 데이터 통신

profile
node 개발자

0개의 댓글