✍️가끔식 기술을 어떻게 정리해서 말해야할 지 고민할 때가 많아서 이번기회에 정리해봅니다
💎비동기 처리 방식: Node.js는 비동기 이벤트 루프 기반으로 동작하기 때문에, 여러 요청을 동시에 처리할 수 있습니다
💎API란?
애플리케이션이 어떤 프로그램이 제공하는 기능을 사용할 수 있게 만든 매개체
날씨 정보 앱을 만들려면, 기상청(서버)이 제공하는 API에 원하는 날씨 정보를 요청해 데이터를 받은 다음 UI 형태로를 사용자에게 날씨 정보를 제공할 수 있다
API는 특정 기능을 제공하는 코드를 외부에서 사용할 수 있도록 정의된 명령어나 함수들의 집합
💎Rest api 란?
HTTP 프로토콜을 기반으로 하여, 클라이언트와 서버 간의 효율적인 통신을 가능하게 합니다.HTTP 프로토콜의 기능을 최대한 활용하여, 별도의 추가 인프라 없이도 클라이언트와 서버 간의 통신을 효율적으로 할 수 있게 해줍니다.
Rest는 클라이언트가 서버로부터 자원의 상태(정보)를 요청할 때, 서버는 해당 자원의 표현을 클라이언트에 전달합니다. 클라이언트는 이 표현을 통해 자원의 상태를 알 수 있다. 이 표현은 즉 http 프로토콜을 의미한다(자원의 표현상태로 전달하는 것을 말함)
URI로 자원을 표현하는 데에 집중하고, 자원의 상태(행위)에 대한 정의는 HTTP METHOD로 하는 것이
REST한 API를 설계하는 중심 규칙
REST는 HTTP를 잘 활용하기 위한 원칙이라고 할 수 있고
REST API는 이 원칙을 준수해 만든 API이다.
💎RDB와 NoSQL의 차이
RDB는 스키마(SCHEMA)를 이용해서 데이터 정리, 타입 정의 가능, 관계 맺을 수 있음 관계를 읽고 쓸 때 SQL을 사용함
NoSQL은 schema-less, Non-relation로 용도에 따라 저장 형태가 다름, 관계와 스키마가 없어서 데이터를 중복해서 저장하게 된다. -> 코드에서 해결해야 한다. -> 개별적으로 데이터 저장
💎Restful
RESTful 서비스는 REST 아키텍처의 모든 제약 조건을 만족시키며, 특히 HATEOAS를 통해 클라이언트와 서버 간의 상호작용을 보다 유연하게 만듭니다
💎리퀘스트의 종류
데이터 조회 GET Request
데이터 추가 POST Request
데이터 수정 PUT Request
데이터 삭제 DELETE Request
→리퀘스트의 메소드라는 정보를 보고 알 수 있다
💎CRUD (Create-Read-Update-Delete)
데이터베이스 관점에서 데이터에 관한 처리를 나타낸 합성어
💎인증과 인가의 차이점
리퀘스트를 보낸 사용자가 누구인지를 파악하는 인증
리퀘스트마다 할 수 있는 걸 제한하는 인가
→ 유저기능
💎세션과 쿠키
세션(Session)과 쿠키(Cookie)는 웹 애플리케이션에서 사용자 정보를 저장하고 관리하는 데 자주 사용된다
• 쿠키: 클라이언트에 저장되며, 비교적 간단한 데이터나 설정 정보를 저장하는 데 사용됩니다. 데이터는 사용자의 브라우저에 직접 저장되며, 보안에 주의가 필요합니다.
• 세션: 서버에 저장되며, 보안이 중요한 사용자 상태나 데이터를 관리하는 데 사용됩니다. 클라이언트에는 세션 ID만 저장되며, 실제 데이터는 서버에서 관리됩니다.
💎JWT
가장 널리 사용되는 토큰 형식 중 하나
json 형식의 데이터를 문자열로 인코딩한 토큰
💎ORM
Object Relational Mapping으로 어떻게 오브젝트를 테이블로 바꾸고 사용할지를 대신해 주는 소프트웨어 - 코드로 스키마를 정의하고 테이블로 만들어주고 사용해 준다. 데이터베이스를 추상화해 주는 프로그램
💎콜백 개념
콜백은 간단히 말해 다른 함수에 인자로 전달되어, 그 함수가 실행을 완료한 후 호출되는 함수
동기 콜백: 콜백이 즉시 실행되고, 호출한 함수가 완료될 때까지 기다린다
비동기 콜백: 콜백이 비동기적으로 실행되며, 호출한 함수가 완료되지 않더라도 다음 코드가 실행된다
💎프로토콜(Protocol)**은 컴퓨터 네트워크에서 데이터를 주고받는 규칙이나 약속
💎콜백 지옥(Callback Hell)
여러 중첩된 콜백들로 인해 코드가 복잡해질 수 있다. 이를 피하기 위해 Promise, async/await 같은 최신 비동기 처리 방법이 사용된자.
Promise를 사용하면 각 작업이 끝난 후 다음 작업을 .then()으로 체인 형태로 연결하여 처리할 수 있습니다
💎Express.js
Express.js는 Node.js 위에서 동작하는 웹 애플리케이션 프레임워크입니다. Express는 라우팅, 미들웨어 관리 등 웹 애플리케이션 개발에 필요한 다양한 기능을 제공합니다. 그 결과, Express는 RESTful API나 웹 애플리케이션 서버를 구축할 때 자주 사용됩니다
💎Node.js에서 모듈이란
Node.js에서 모듈은 특정 기능을 가진 코드 블록을 의미하며, 모듈화를 통해 코드를 분리하고 재사용할 수 있습니다. 모듈은 require 또는 import를 사용해 불러올 수 있습니다. Node.js에서는 CommonJS 표준에 따라 모듈을 정의하며, 파일 단위로 모듈화할 수 있습니다.
💎백엔드
시스템의 뒷단을 의미하며 클라이언트(앱, 브라우저등) 프런트엔드 영역의 요청을 서버(컴퓨터)가 수행하도록 하는 역할
💎클로저
두 개의 함수로 만들어진 환경으로 특별한 객체의 한 종류. 외부 함수 호출이 종료되더라도 외부 함수의 지역 변수 및 변수 스코프 객체의 체인 관계를 유지할 수 있는 구조
클로저는 반환된 내부함수가 자신이 선언됐을 때의 환경 인 스코프를 기억하여 자신이 선언됐을 때의 환경(스코프) 밖에서 호출되어도 그 환경(스코프)에 접근할 수 있는 함수
* 멱등성 : 여러 번 반복할 때와 한번 할 때 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때
💎미들웨어란
미들웨어는 Express.js에서 요청과 응답 사이에 실행되는 함수입니다. 미들웨어는 요청을 처리하고 응답을 변경하거나, 다음 미들웨어 또는 라우트로 제어를 넘겨줄 수 있습니다. 미들웨어는 인증, 로그 기록, 요청 데이터 파싱 등 다양한 목적으로 사용됩니다.
'📚 IT 정보' 카테고리의 다른 글
[Github] Git Issue 템플릿 & PR 템플릿 설정하기 (0) | 2025.07.19 |
---|---|
[항해 99] 잔디 기부 캠페인 참여 완료 🌱 (1) | 2024.12.30 |
[VS code] 유용한 도구 🔏 (0) | 2024.11.26 |
[Github] 프로필 Readme 꾸미기 (0) | 2024.11.14 |
티스토리 블꾸하기 - 마우스 커서 설정 (3) | 2024.11.09 |