위코드에서 마지막 프로젝트여서 더욱 맘이 쓰이기도 했고 1차 프로젝트에서 협업의 아쉬웠던 점들을 보충하고자 했는데 너무 매끄럽게 협업이 이루어져서 놀라리만큼 수월하게 프로젝트를 진행했다.
또한 처음 프로젝트를 시작할때 새로운 부분(React-Hook, Styled-components)를 적용하여 1차 프로젝트보다 더욱 난이도 있는 사이트를 더 짧은 기간에 클론해야해서 부담이 있었다.
하지만 구글/블로그/공식문서 등 다양한 자료를 활용해 새로운 기능을 생각보다 일찍 적용해 기능 구현을할 수 있었다.
새로운 기술을 빨리 적용해 활용할 수 있다는 자신감을 얻은게 가장 큰 수확인것 같다.
1차프로젝트를 한 이후의 아쉬운점을 보강하고 추가로 배웠던부분을 적용하는것이 가장 큰 목표였다. 목표를 크게나누면 밑과 같다.
1) 깔끔한 코드를 작성할 것 --> 변수명 더욱 직관적으로, 동일기능 하는 함수 하나로 통일해 중복없이 효율적인 코드 작성
2) 새로 배웠던 부분을 적용/익숙해질것 --> React-Hook, Styled-components
3) 소셜로그인 : 소셜로그인 구현하며 전체 흐름 파악, 코드로 구현 후 숙지할것
4) 클론코딩 그이상 : 클론 코딩이지만 순수 우리힘으로 코딩하고자 했다. 실제로도 그랬고, IKEA 에서 놓쳤던 발전시킬 부분도 찾아서 적용하기
2021.07.26 ~ 2021.08.10 (16일)
FrontEnd
function KakaoButton(props) {
const loginWithKakao = () => {
window.Kakao.Auth.login({
scope: 'account_email', //백엔드에 전달할 정보//
success: authObj => {
// 로그인 성공시 토큰 발급 받음, 그 토큰을 백엔드 서버로 넘긴다//
axios(KAKAO_LOGIN_API, {
method: 'post',
//카카오에서 받은 토큰 --> 백엔드 전달//
headers: {
'Content-Type': 'application/json',
Authorization: authObj.access_token,
//받아오는 response객체의 access_token을 통해 유저 정보를 authorize한다.
},
}).then(res => {
localStorage.setItem('token', res.data.token);
//백엔드에서 요구하는 key 값(token)으로 저장해서 localStorage에 저장한다.//
alert('로그인 되었습니다.');
props.history.push('/');
});
},
fail: error => {
alert(JSON.stringify(error));
},
});
};
const kakaoLogout = () => {
if (window.Kakao.Auth.getAccessToken()) {
window.Kakao.API.request({
url: '/v1/user/unlink',
//로그아웃 시키는 API//
success: function (response) {
console.log(response);
},
fail: function (error) {
console.log(error);
},
});
alert('로그아웃이 완료되었습니다.');
window.Kakao.Auth.setAccessToken(undefined);
//로그아웃 이후 토큰 삭제//
}
};