Kakao.Auth.login 함수를 사용해 카카오 로그인을 실행하고, scope에 필요한 정보를 가져온다. (사이트 내 프로필 등록을 위한 닉네임, 사진, 생년월일 정보를 가져옴)
success 콜백에서 카카오에서 사용자 토큰을 받아, fetch로 백엔드 서버에 넘겨준다.
백엔드 서버에서 우리 사이트에서 사용할 토큰을 주면, 프론트 localStorage에 저장한다.
호스트 등록 페이지
숙소 정보(text), 게스트 인원(증감 버튼), 숙소 요금, 이미지 업로드 등 다양한 form type 사용
카카오 주소 API, axios를 사용해 주소 찾기 기능 구현
프로젝트 회고 🌟
프로그래밍(기술 구현) 측면
소셜 API 활용
이번 프로젝트에서 가장 기대했던 부분으로 여러 카카오 API를 내가 필요한 기능에 직접 구현해보고 싶었다.
'로그인 정도야 하루면 가능하지!'라고 생각했던 초기와 달리 일주일이 걸려서야 겨우 UI 팝업을 만들어낼 수 있었고, 이후 메인 페이지와의 연결에서도 많은 어려움을 겪었다.
➡️ 공식 문서, 개념의 중요성을 다시 한 번 느끼게 된 계기가 되었다. 공식 문서를 제대로 보지 않고 잘 안될 때마다 구글링을 했는데, 역시 돌아와 공식 문서에서 답을 찾았다. 시간이 걸리더라도 공식 문서를 제대로 읽고, 이해하자.
➡️ 인증/인가, 로그인 구현 원리에 대해 제대로 이해한 후 코드를 짰다면 학습이 많이 되었을 것 같다. 코드를 구현하는데 급급해 원리를 이해하지 못하고 후에서야 다시 공부했다.
GitHub rebase
효율적인 협업을 위한 'rebase'를 진행했다. 처음 진행이라 나의 실수로 다른 분들의 코드에 피해가 갈까봐 조마조마했다.
➡️ 깃과 깃헙은 양파같은 녀석이다. 공부하면 할수록 어려운데 또 결과는 효과적이라 매력적이다. 많이 연습하고 실패해보면서 익혀두어야겠다.
ReactJS function형 & Styled-Component
class형보다 function형은 JS를 더 많이 닮았고 그렇기 때문에 직관적이다. state를 관리하는 것도 class보다 단순하다. 그러나, 코드로만 봤을 때는class형이 componet간의 유기적 관계, 흐름이 잘 드러나는 것 같았다.
styled-component는 별도의 스타일 페이지 없이 해당 component 페이지 내에서 함께 쓸 수 있어 효율적이다. 하지만 CSS, Scss에 비해 제약이 있어 스타일 설정이 어려웠다.
➡️ Redux, axios 등 component를 효과적으로 관리할 수 있는 프레임워크를 공부해야겠다.
프로젝트 매니지먼트 측면
효과적, 효율적 소통을 가능케 한 '프로젝트 기획'과 'API 정의서'
이번 프로젝트는 시작과 그 과정이 매끄러웠다.
많은 이유가 있겠지만 가장 큰 역할은 '프로젝트 기획서'와 'API 정의서'가 했다.
일잘러 팀원의 제안으로 구성할 페이지 별 API, 기능을 설명하는 프로젝트 기획서를 작성하고 서로 어떤 작업을 할지 공유했으며, API 정의서를 통해 프론트-백이 매번 묻지 않아도 기능별 API를 확인할 수 있었다.
SCRUM의 진가
매일 오전 팀 전원이 참여하는 Daily Standup Meeting은 15분 내로 간단한 인사와 함께 간략하게 '오늘의 할 일'과 'blocker'를 나누었다.
blocker에 대해 이야기하면 팀원들이 서로 의견을 내고, 어려운 부분을 도와주거나 프로젝트 방향을 바꾸어 나갈 수 있어 프로젝트 일정을 지연시킬 수 있는 요소들을 사전에 방지할 수 있었다. 그리고 무엇보다 프로젝트에 임하면서 생기는 심리적 부담감과 스트레스를 덜어줄 수 있었다.
프로젝트 나무를 보는 눈
아쉬운 점도 물론 있다. 프로젝트를 기획하는 과정에서 내가 하는 기능의 프론트 부분 뿐 아니라 백엔드와 어떻게 통신하고 연결해야하는지 등에 대한 전반적인 이해가 필요했는데 부족했다. 그 결과 잘못된 데이터 전달 형식의 코드를 멋지게 짰고, 거듭 수정해야했다.
모르면 물어보고, 중간중간 더 자주 백엔드 개발자님과 소통해야겠다는 큰 깨달음을 얻었다.