14/11/2023

heyjk2212·2023년 11월 14일

TodayILearned

목록 보기
1/8
post-thumbnail

매일 공부를 하고 있는데 뭔가 머리에 잘 쌓이지 않는 느낌이 들어서 TIL을 작성해 보려고 한다. 매일 내가 공부한 것을 정리하는 시간이 필요하다는 것은 아는데 그게 잘 지켜지지 않았다.

JWT (JSON Web Token)

JSON 형식을 가진 보안 토큰의 일종으로, 정보를 안전하게 전달하기 위해 사용한다.

Bearer Token

Bearer Token이라는 용어는 JWT를 전송하는 방식을 나타낸다. Bearer Token은 요청 헤더의 Authorization 필드에 'Bearer'라는 문자열과 함께 JWT를 넣어 전송하는 방식이다.

브라우져가 서버로부터 응답으로 set-cookie 헤더를 받을 경우 해당 데이터를 브라우져에 저장한 뒤 그 다음 모든 요청에 이 쿠키를 포함시켜서 보낸다.

  • 쿠키를 가진 상태에서는 이 클라이언트가 서버로 매번 request를 할때마다, 즉 해당하는 서버에 request를 보낼때마다 해당하는 쿠키정보를 가진 채로 계속 서버에 전달하게 되는 것이다.

  • 쿠키를 발급하는 조건은 일반적으로 로그인 기능이다. 서버는 사용자가 로그인에 성공했다라고 한다면, 해당하는 사용자의 정보를 바탕으로 해서 쿠키 정보를 클라이언트에게 response로 전달해주게 된다.

  • 쿠키는 일반적으로 쿠키안에 해당하는 사용자가 누군지, 사용자의 정보가 무엇인지 다 담기게 된다.

session

실제 정보를 서버에 저장하는 장점을 가지는데, 쿠키랑 다르게 좀 더 안정적이다. 그렇지만 결국에 쿠키에 기반해서 구현된다.

payload

전송되는 순수한 데이터이다.

사용자 인증 미들웨어

쿠키를 검증한다. 쿠키에 담긴 JWT를 이용한다.

bcrypt 라이브러리

비밀번호를 암호화시켜준다.

리프레시 토큰

엑세스 토큰이 만료되었을 때, 새로운 엑세스 토큰을 발급받기 위한 토큰입니다. 엑세스 토큰이 유효기간이 지나면 리프레시 토큰을 사용하여 새로운 엑세스 토큰을 발급받아 인증을 유지합니다.

엑세스 토큰

실제로 내가 API를 사용하기 위해 필요한 토큰이다.

인메모리 방식으로 저장한다

컴퓨터가 작업하는 동안에만 필요한 정보를 RAM(Random Access Memory)에 저장한다는 것을 의미한다.

Request header

클라이언트가 서버로 요청을 보낼때, 해당 요청에 대한 정보를 포함한다. Cookie도 이 요청헤더에 담기게 된다.

stateless

서버가 재시작 되더라도 동일하게 작동한다

statefull

서버가 계속 관리해줘야 한다.

비즈니스 로직

간단히 말해서 어떤 작업이 이루어지는 순서와 그 작업이 처리되는 방법을 나타내는 것이다.

UUID

데이터베이스에서 각각의 데이터를 구분하고 식별하기 위한 특별한 식별자라고 볼 수 있어있다. 대부분의 경우 uuid는 문자열의 형태를 가진다.

req

HTTP 요청(request) 객체를 나타낸다. 클라이언트로부터 오는 요청에 대한 정보를 포함한다.

res

HTTP 응답(response) 객체를 나타낸다. 클라이언트로 응답을 보내는 데 사용되며, 요청에 대한 응답으로 상태 코드, 헤더, 데이터 등을 설정합니다.

res.body

클라이언트로부터 받은 요청의 본문(body)을 나타냅니다. 주로 POST나 PUT과 같은 요청에서 클라이언트가 보낸 데이터를 담고 있습니다.

req.user

이것은 주로 사용자 인증(authentication)과 관련이 있습니다. 로그인한 사용자의 정보나 사용자의 권한 등을 담고 있습니다.

req.params

라우팅 경로의 매개변수(parameter)를 나타냅니다. 예를 들어, URL의 특정 부분에 있는 값을 가져오고 사용할 수 있게 해줍니다.

자주 사용되는 status code

  • 200 OK: 요청이 잘 처리되었다는 걸 뜻이다.

  • 201 Created: 요청이 성공적으로 처리되어 새로운 리소스가 생성되었음을 나타냅니다. 주로 POST 요청 후 새로운 리소스가 만들어졌을 때 사용됩니다.

  • 400 Bad Request:
    요청이 서버에 전달되었지만 잘못된 구문 또는 유효하지 않은 요청으로 인해 처리할 수 없음을 나타냅니다.

  • 401 Unauthorized: 요청한 리소스에 접근할 권한이 없음을 나타냅니다. 클라이언트가 인증되지 않았거나 인증 정보가 유효하지 않을 때 사용됩니다.

  • 404 Not Found: 뭔가를 찾을 때 "404"라는 숫자는 찾는 것이 없다는 걸 의미한다. 주로 잘못된 URL을 요청했을 때나 존재하지 않는 리소스에 접근했을 때 반환됩니다.

  • 500 Internal Server Error: 서버 내부에서 오류가 발생하여 요청을 처리할 수 없음을 나타냅니다. 주로 서버에서 예상치 못한 오류가 발생했을 때 반환됩니다.

profile
She can do it, He can do it, Why not me?

0개의 댓글