[HTTP] 401 Unauthorized와 403 Forbidden의 차이

개발/CS 2022. 9. 13. 08:20

간혹 API 예외처리를 하다보면 어드민만 사용할 수 있어야하거나, 내 정보의 수정/삭제 같이 권한에 민감한 PATCH, DELETE 메소드 api들에 대한 예외가 발생 시 예외 상황에 맞는 HTTP 상태코드를 전달해야하는데 같은 예외 사항에 대해 가끔 403 Forbidden과 401 Unauthorized를 혼용하는 경우가 있었다. HTTP 401 Unauthorized 401 상태 코드는 해당 클라이언트가 인증되지 않았거나, 유효한 인증 자격 증명이 없기 때문에 요청이 거부되었음을 나타내는 상태이다. 해당 코드는 인증되지 않은 클라이언트가 요청을 전송하였기에 요청의 정상 처리가 불가함을 나타내는 것이다. 대표적으로 내 정보 조회/수정 같이 유저 민감 정보를 핸들링하는 경우와 같이 유저 인증이 필요한 ..

AWS RDS MySQL 마이그레이션 체크 사항

개발/MySQL 2022. 8. 25. 08:20

AWS Aurora RDS MySQL에서 AWS MySQL 8.0으로 마이그레이션을 진행 후, save 메소드를 사용하는 api를 호출할 때, TypeORM에서 id 값 관련된 쿼리 error가 발생하였다. TypeORMError: Cannot update entity because entity id is not set in the entity. 해당 에러가 발생하는 부분의 쿼리를 로깅해보면 정상적으로 쿼리가 생성되지만, 타겟 entity의 id가 entity에 세팅되지 않았다는 에러는 발생되므로 ORM이 아닌 DB가 이슈일 가능성이 있었다. INSERT INTO "tableName"("id", "createdAt", "updatedAt", "body") VALUES (DEFAULT, DEFAULT, D..

Article Thumbnail
TypeORM Seeding을 통한 DB 시딩(Seeding)

개발/TypeORM 2022. 8. 1. 08:20

기존에 faker.js를 사용해서 Seeding용 API 엔드포인트를 구성하였었는데 해당 Faker 모듈이 관리가 안되는 이슈도 있고, request한 유저의 권한을 valid하긴 하지만, 데이터 베이스에 직접적으로 영향을 줄 수 있는 엔드포인트가 외부로 노출되어있는 점이 불안해서 typeorm seeding을 통해 ssh로 직접 서버에 접속해서 커맨드를 날리는 방향으로 변경하였다. Faker.js를 통한 Seed API 작성 백엔드를 개발하다보면 REST API의 GET 메소드에서 DB에서 데이터를 제대로 불러오는지 확인해야하는데 이럴 때 Seed API를 통해 테스트 용도의 fake DB를 구성하는 것이 매번 데이터를 직접 입력해넣 eight20.tistory.com NestJS와 관련된 Seedin..

Article Thumbnail
[React-router-dom] render와 component의 차이

개발/ReactJS 2022. 7. 28. 08:20

기존 React Router에서 Route를 지정할 때, 안에 컴포넌트에서 path props으로 url을 지정하고 component props로 랜더링을 원하는 페이지 컴포넌트를 지정하였었다. // Route.tsx 한 페이지 안에 3개의 UX 뎁스로 구성되어있는 UI에서 3번째 뎁스 까지 도달했을 때, Add 혹은 EditPage로 넘어가게 하였다. 2번째 뎁스에서 id값을 props로 넘기는 것을 받아왔을 때, focus가 해당 페이지를 벗어나면 AddPage 혹은 EditPage가 언마운트되었디가 다시 마운트되면서 3번째 뎁스 안의 title, content등의 state가 모두 초기화되어 작성한 내용이 빈칸으로 되는 이슈가 발생하였다. 해당 이슈가 발생한 원인은 한 페이지 안에 여러 개로 뎁스가..

Article Thumbnail