일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- nodejs
- ts
- react
- Git
- CSS
- js
- ML
- figma
- CV
- html
- postgresql
- SOLID
- PyTorch
- DB
- GAN
- PRISMA
- sqlite
- API
- Express
- Three
- review
- frontend
- python
- mongo
- C++
- Linux
- vscode
- UI
- ps
- backend
- Today
- Total
목록Backend (41)
아카이브

Express는 Node.js를 이용해 서버를 만들 수 있는 Node.js 웹 프레임워크입니다.Express는 미들웨어, 라우터, 에러 핸들러와 같이 서버 구성에 필요한 기능들을 API 형태로 제공하고 있습니다. ※ 미들웨어(middleware) : 클라이언트와 서버의 중간에서 요청과 응답을 먼저 받은 뒤 추가적인 작업을 처리하여 전달해주는 소프트웨어 또는 함수 https://expressjs.com/ko/ Express - Node.js 웹 애플리케이션 프레임워크Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크 $ npm install express --saveexpressjs.com
Paginiation은 일정한 개수만큼 자원을 묶어 한 번에 보내는 방법을 뜻합니다.일반적으로 적은 양의 자원이 이동할 때는 서버와 클라이언트 모두 부담을 받지 않습니다.그러나 이동하는 자원의 양이 많아질 수록 한 번에 모든 자원을 보내는 것이 어려워지기 때문에,한 번의 통신에서 보내는 자원의 양을 정한 뒤 조금씩 나눠 보내는 것이 더 효율적입니다. Pagination이 적용된 API를 사용하면 응답과 요청에서 추가적인 정보를 포함할 수 있습니다.응답에서는 찾고자 하는 페이지의 정보나 한 페이지에 담을 자원을 양 등을 함께 넘겨줄 수 있으며,요청에서는 현재 페이지 번호, 전체 페이지 개수 등의 정보를 함께 보내줍니다.// 2번 페이지, 한 페이지 당 20개 씩GET /members?page=2&size=..
API versioning은 문자 그대로 API의 개발 버전을 명시하는 행위입니다.API는 엔드포인트가 추가/제거 되거나, 사용 방법이 바뀌기 때문에 이를 사용자가 알 수 있도록 명시해야 합니다.특히 엔드포인트의 사용방법이 바뀐다면, 사용자가 이를 알지 못하고 사용했을 때 프로그램에 치명적인 오류가 발생할 수 있습니다. 이 때문에 엔드포인트에 큰 변경 사항이 있다면, 기존 엔드포인트는 수정하지 않되 변경 사항이 적용된 새로운 엔드포인트를 만들어 배포하는 방법이 사용됩니다.이 엔드포인트는 기존의 것과 동일한 이름을 사용하지만, 둘을 구분하기 위해 버전명을 명시하게 됩니다.GET /v1/members/ // 첫 번째 버전GET /v2/members/ // 두 번째 버전사용자는 여전히 v1, v2 엔드포인..
캐시 가능성은 API 통신 간 자주 호출되는 데이터를 캐시 메모리에 별도로 저장하는 것으로, REST API의 조건 중 하나입니다.API 캐싱은 요청/응답의 header에 명시된 정보를 통해 그 여부를 판단할 수 있습니다.1. Cache-Control headerCache-Control header의 max-age값은 해당 자원이 캐싱될 경우, 얼마나 유효한지를 초 단위로 나타냅니다.예를 들어, max-age=60일 때는 응답의 자원이 캐시 된 후 60초 내로 동일한 자원을 요청하면 캐시에 보관된 데이터를 바로 사용할 수 있습니다. 60초 이후 새로운 요청이 있다면, 응답할 때 자원은 다시 캐시됩니다.client >>> GET /members/1/profileserver 2. Last-Modified h..
하이퍼미디어를 사용한 애플리케이션 상태 표현 (Hypermedia As The Engine Of Application State, HATEOAS) HATEOAS는 하이퍼미디어를 사용하여 애플리케이션의 상태 표현하거나 변경하는 방법을 제공해야 한다는 조건입니다. 일반적으로 응답에 대한 요청은 json형식을 많이 사용합니다.하지만 json은 자원에 대한 표현만 나타낼 뿐, 애플리케이션에서 그 자원을 이용해 무엇을 더 할 수 있는지는 전달하지 않습니다.{ "id": "1", "name": "John",}때문에 응답은 json과 함께 또 다른 타입의 데이터를 보내 어떤 동작을 수행할 수 있는지를 설명해야 합니다.{ "id": "1", "name": "John", "delete": { ..

자기 서술적 메시지 (self-descriptive messages) API 통신에서 요청과 응답은 모두 문자열을 형태로 전달됩니다. 때문에 API를 통해 사전에 약속된 내용이 아닌 정보는 상대가 해석하기 어려울 수 밖에 없습니다. 이 때문에 좀 더 다양한 종류의 정보를 보내기 위해서는 메시지 자신이 어떤 내용을 담고 있는지 스스로 설명할 수 있어야 합니다. 이를 자기 서술적 메시지라고 합니다. 메세지가 자신을 설명할 수 있으려면 메세지의 구조, 의미 등을 해석할 수 있는 방법을 함께 전달해야 합니다.이를 전달 할 수 있는 방법은 크게 두 가지가 있습니다.1. Content Type: Media type Content Type 헤더는 해당 문서의 데이터가 어떤 종류(텍스트, 이미지, 프로그램 등)인지를 ..
서버는 클라이언트에게서 받은 요청을 수행한 후,그 요청이 어떻게 처리되었는지 알 수 있도록 응답에 상태 코드를 명시해야 합니다.아래는 서버에서 보낼 수 있는 상태 코드들과 그 의미입니다.1__정보 응답100Continue요청의 첫 부분을 받아서 다음 요청을 기다리고 있음 2__성공적으로 처리200OK요청 처리됨201Created요청 처리 후 새로운 자원 생성204No Content요청 처리 후 콘텐츠 제공하지 않음 3__리다이렉션 메세지 전송301Moved Permanently요청 자원이 새로운 위치에 영구히 이동함302Found요청 자원이 새로운 위치에 일시적으로 이동함304Not Modified요청 자원은 수정되지 않았음 4__클라이언트 에러400Bad Request클라이언트가 잘못된 형식의 요청을 ..
표현을 통한 자원에 대한 조작 (manipulation of resources through representations)URI가 자원을 명시하는 부분이라면, HTTP Method는 그 자원을 어떻게 할 것인지에 대한 동작을 명시합니다.따라서 API 요청은 동작을 담당하는 HTTP Methoddhk 자원을 담당하는 URI의 조합으로 이루어집니다. 아래에 대표적인 HTTP Method에 대해 정리하였습니다.1. GET자원을 가져옵니다. 가져오기만 할 뿐 자원 자체를 수정하지 않으므로 안전한 메소드라고 할 수 있습니다.요청시 json 형식의 자원과 상태코드 200 OK를 반환합니다.GET /members2. POST자원을 추가합니다. 요청시 json 형식의 자원과 상태코드 201 Created를 반환합니다...