
에러의 분류서버측 에러상태코드 5XX으로 대표되는, 백엔드 개발자나 서버 어드민이 관심을 가져야하는 오류를 뜻한다.주로 서버 내부 로직의 잘못된 작성, DB 오류, 외부 API 연결 실패 등이 해당 에러를 발생시킨다.사용자측 에러상태코드 4XX으로 대표되는, 사용자측의 잘못된 요청으로 인한 오류를 뜻한다.주로 인증 실패, 유효성 검사 실패, 토큰 변조, 권한 없음, 매개변수 누락 등이 해당 에러를 발생시킨다.에러 메세지 구조 정의위의 두 에러는 전부 백엔드에서 프론트엔드로 반환해야하는 에러이기 때문에 백엔드에선 일관적인 에러 포맷을 반환해야 한다.예시로, 다음과 같은 포맷을 사용할 수 있다.{ statusCode: number, error: string, message: string, code: stri..
구조적 서브타이핑특정한 개체의 멤버만으로 타입을 관계시키는 방식.type Person = { name: string, age: number}let x: Person;let y = { name: "Siyoun", age: 21}위처럼 Person타입의 x와 객체 y는 동일한 타입을 갖고 있어 서로 호환된다.이는 y의 추론된 타입이 { name: string, age: number }이기 때문이다.만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면 나는 그 새를 오리라고 부를 것이다.type Student = Person & { major: string}const s1: Student = { name: "Siyoun", age: 21, major: "CE"}const s..

개요 HTTP의 비상태성 세션 토큰 HTTP의 비상태성(Stateless) HTTP는 요청-응답 쌍으로 이루어진 통신 규약이라고 알고 있습니다. 그렇다면, 요청-응답이 올바르게 진행된 후 응답은 어떻게 흘러갈까요? 클라이언트는 응답받은 데이터를 갖고 있지만, 서버에선 응답한 내용을 일절 저장하지 않습니다. 클라이언트는 인증(Authentication)을 거쳐야 하는 경우처럼, 서버에서 제공하는 모든 api에 접근할 권한이 없습니다. 클라이언트가 서버에 인증 요청을 보냈고, 적절한 응답("인증되었습니다"와 같은 문구)를 받았다고 해봅시다. 후에 인증이 필요한 api에 접근할 때, 서버에선 응답을 했었는지 모르기 때문에 인증이 되지 않은 클라이언트라고 판단합니다. 그렇다고 인증이 필요한 api를 사용할 때 ..