안녕하세요, 김당쿽🥕입니다! 원티드 프리온보딩 프론트엔드
과정에 참여하게 되었고, 2회차 수업을 들은 후 남기는 기록입니다!
가치를 표현할 수 있는 징표. 화폐랑은 다른 의미.
a piece of data that is used to represent and replace another one, in order to prevent private information being seen by someone who is not allowed to do so
컴퓨팅적 사고로 보자면 다른 개인 정보를 표현하고 대체하는 데이터
라고 할 수 있다.
참고 자료
사용자의 신원을 파악하기 좋은 수단이기 때문! 그러나 토큰만이 로그인의 수단이 되지는 않는다. 많은 수단 중 하나.
HTTP 통신은 stateless(무상태성)이기 때문에 누가 로그인을 하는지 알 수가 없기 때문에 식별자로서 이용된다.
JSON Web Token
프론트엔드에서는 Encoded 된 토큰을 받아서 정보를 주고받게 된다.
해싱은 단방향으로 흐르기 때문에 복구할 수 없다. 마지막 Signature은 복호화를 할 수 없을 것.
해싱은 여러 방식이 있지만 토큰을 암호화하는 것은 단방향이다
로그인 API를 활용하여서 JWT 토큰을 받은 후 header Authorization
에 넣어 회원 정보 받기. 기존에 많이 해 봤던 API 사용법이라 어렵지 않게 할 수 있었지만 오랜만에 axios 없이 사용하려니 조금 버벅거렸던 것 같다.
type LoginType =
| {
result: boolean;
accessToken: string;
}
| {
result: boolean;
accessToken: null;
}
interface LoginRequest = {
usename: string;
password: string;
}
const login = async (args: LoginRequest): Promise<LoginType> => {
const response = await fetch(`${BASE_URL}/auth/login`, {
method: "POST",
headers: {
"Content-type": "application/json",
},
body: JSON.stringify(args),
})
if (response.ok) {
const data = await response.json()
return {
result: true,
accessToken: data.access_token
}
}
// 로그인 api 실행 함수
const formData = new FormData(event.crrentTarget)
const loginResult = await login({
username: formData.get("username") as string,
password: formData.get("password") as string
})
위 예제와 같이 formData를 인수로 줄 수 있다.
Hyper Text Transfer Protocol의 약자.
커맨드라인을 통해 데이터를 전송하는 데 사용된다. 즉 소프트웨어 애플리케이션을 위한 인터넷 전송 엔진.
sample api를 사용해 보자!
public-apis를 모아둔 깃허브도 발견하였다!
axios와 fetch 중 어느 것이 좋다고 말하긴 어렵다. 가벼운 코드에서 axios가 무거울 수 있으나 interceptor를 잘 사용한다면 가벼운 코드에서 사용하는 것도 나쁘지 않다. fetch의 장점은 기본 내장된 메소드이기 때문에 쉽게 접근할 수 있다는 점. 현업에서는 axios를 많이 쓰는 편이다.
nest js 문서를 참고해서 작성하면 충분히 가능하다.
그렇다기보단 프론트엔드 세상은 너무 무궁무진하기 때문에 다양한 프로젝트를 배워야 한다고 생각한다. 다양한 경험이 필요!
프로젝트 경험!
주변에 잘하는 사람들 꿀을 빨아 먹으면 된다. 그리고 검색한 코드나 주변 사람들의 코드를 그대로 작성해 보는 것도 좋지만 (물론 공부가 된다) 어? 근데 나는 이렇게 생각하는데? 하면서 짜 보는 것도 굉장히 좋은 방법. 만약에 안 된다면 아, 이런 문제 때문에 저렇게 코드를 짰구나 할 수 있다.
코드 흐름을 읽고 걔를 hooks처럼 이용해 보기.