웹에서 데이터를 주고받을 때,
목적에 따라 적절한 HTTP Method를 사용해야 한다.
POST : 생성(등록)
GET : 조회
PUT : 전체 수정(덮어쓰기)
PATCH : 부분 수정
DELETE : 삭제
기타 : HEAD, OPTIONS, CONNECT, TRACE
예를 들어, 마이페이지에서 연락처만 수정하려면 PATCH를 사용하고, 회원 정보를 통째로 바꿀 땐 PUT을 쓰면 된다.
백엔드 개발에서 Node.js는 필수로 배우는 기술 중 하나다.
단순히 서버 개발뿐만 아니라
넷플릭스, 에어비앤비, 링크드인, 우버, NASA 등 대형 서비스에서도 활용하고 있다.
Node.js를 하나의 요리사로 생각해서 쉽게 설명해보겠다.
싱글 스레드 : Node.js는 혼자 일하는 요리사다.
한 번에 하나의 주문을 받을 수 있지만, 일을 효율적으로 처리해서 여러 주문을 빠르게 소화한다.
이벤트 기반 : 요리사가 주문이 들어오면 바로 요리를 시작하는 게 아니라, 재료 손질, 요리 시작, 완성 후 서빙 같은 이벤트를 설정해둔다. 주문이 들어오면 이벤트에 따라 빠르게 움직인다.
논블로킹 I/O : 요리사가 재료를 썰 때, 손님이 음료를 주문하면 바로 음료를 만들어 제공하고 다시 요리에 집중하는 방식이다. 즉, 하나의 작업이 끝날 때까지 기다리지 않고 다음 작업을 수행한다.
이런 특성 덕분에 Node.js는 빠르고 확장성이 뛰어난 서버를 만들 수 있다.
개발할 때 모든 기능을 직접 구현하면 비효율적이다.
모듈(Module)은 미리 만들어진 코드 조각을 가져와서 쉽게 사용할 수 있도록 도와주는 개념이다.
내장 모듈 : Node.js에 기본적으로 포함된 모듈 (예: setTimeout())
외부 모듈 : npm(Node.js 패키지 관리자)을 통해 설치하여 사용하는 모듈
Node.js 덕분에 자바스크립트에서도 모듈을 만들고 사용할 수 있다.
라이브러리는 도서관처럼 필요한 기능을 가져와서 사용하는 개념이다.
장점 : 필요한 기능만 골라서 사용 가능
단점 : 어떤 걸 선택해야 할지 고민해야 함
프레임워크는 이미 틀이 정해져 있는 상태에서 개발을 진행하는 방식이다.
필요한 기능이 미리 포함되어 있어, 개발자가 일일이 선택할 필요가 없다.
이해하기 쉽게 정리하자면,
- 라이브러리 : 내가 필요한 기능을 가져와서 사용하는 방식 (도서관에서 책을 빌리는 느낌)
- 프레임워크 : 정해진 구조 안에서 개발하는 방식 (셋 메뉴가 있는 코스 요리 느낌)
오늘은 API 설계의 기본 개념과 Node.js의 핵심 요소들(HTTP Method, 모듈, 라이브러리, 프레임워크 등)에 대해 공부를 했다.
실제 프로젝트에서 이 개념들을 어떻게 활용할지 고민해보는 시간이였다.