후, 자 세션듣자마자 바로 정리하자!!!!화이팅 !!!!!!!👊🏻👊🏻👊🏻🔥
지금까지 작업했던 위스타그램에 백엔드 데이터를 가져와 보려고 한다.
작업순서는 아래와 같고 나는 1~5번까지의 작업은 이미 완료된 상태이다. 6번 fetch함수 작업부터 해보자!!
일단 동기와 비동기에 대해서 짚고 넘어가자.
코드를 위부터 아래로 차레차레 읽어 처리해주는 것을 동기
라고 하며, 그와 반대로 비동기
는 비동기 부분을 부분을 일단 건너뛰고 작업을 처리하는 것이다. 비동기함수를 쓰는 이유는 fetch함수와 같이 그안에서 데이터처리를 진행해야하는데 그때 처리가 완료가 될때까지 기다렸다가 다음 코드로 넘어가면 실행이 느려질 수 있기 때문에 데이터 처리부분은 일단 건너뛰고 다음 코드를 읽어주는거다. 비동기함수는 그럼 언제 실행되느냐? 서버로 부터 데이터가 넘어오면, 즉 response를 받으면 실행된다.
fetch함수는 비동기 함수이며, api주소
method와 body
총 2가지를 인자로 받는다.
첫번째 인자인 API 주소
는 백앤드 개발자님에게 잘 받아오면되고!
두번째 인자를 뜯어보자.
POST
를 사용한다. 로그인 데이터를 받아오는 것이니까 get
을 사용하면 되지 않나? 싶지만,, get으로 정보를 받아오게되면 그게 다 url에 담기게된다. 그러므로 get은 검색할때 사용해주고! 로그인은 POST로 해주자. JSON.stringify()
는 무엇이냐.string
으로 이루어지기 때문에 Json
형식을 을 string
으로 변환해줘야한다. stringify
는 Json
을 string
으로 변환해주는 똑똑한 아이 ! 자, 이번엔 .then()
부분을 뜯어보자.
.then()
메서드는 Promise를 리턴하고 두개의 콜백함수를 인자로 받으며, 그중 하나는 Promise가 이행되었을때, 다른 하나는 거부되었을때를 위한 콜백함수라고 한다. .then()
메서드는reponse
를 인자로 받았으며, 그 리턴값이 response.json()
이다. 또 그 결과값인 result
를 두번째 .then()
메서드에서 인자로 받고 있는 구조이다. .json()
을 해주는 이유는 받은 response값에서 원하는 객체만 뽑아주기 위해서다.const API = "API주소";
.
.
.
handleClick = () => {
fetch(API, {
method: "POST",
body: JSON.stringify({
email: this.state.id,
password: this.state.pw
}),
})
.then(response => response.json())
.then(result => {
if (result.Authorization) {
localStorage.setItem("token", result.Authorization);
}
});
};
checkToken = () => {
const token = localStorage.getItem("token");
alert(token)
}
.
.
.
<button
onClick={this.checkValidation}
onClick={this.handleClick}
>로그인/회원가입</button>
핫, 이렇게 토큰이 예쁘게 들어온다. 👻💕
데이터 예쁘게 들어오고 예쁘게 찍히는거 보는게 요즘 힐링방법ㅠㅠ
세션후 기억에 남았던 것을 빠르게 남겨보았는데, 좀더 찬찬히 공부하고 프로젝트때 직접 사용해 보면서 글을 다듬어 봐야겠다!이제 밥먹자!!!🍚🍚🍚