프로젝트 18일차, 마무리 스프린트
CORS!!!!!!!!!!!!!!!!!!! API!!!!!!!!!!!!!!!!!!!!
오늘 발생한 문제점은 다음과 같았다. CORS 그리고... API 구조에 대한 문제점이다. 바로 알아보도록 하자. 가장 첫 번째 문제는 axios의 delete와 관련된 문제였다.
기존의 다른 코드들과 다르게 delete에서 body에 데이터를 탑재하는 과정에서 약간 다르게 작성해야한다. 바로 data로 한 번 더 감싸주어야한다는 것인데,,, 아래와 같이 작성해야한다. 참고
export const _DELETE = async (endPoint: string, params: any) => {
try {
const response = await rootAPI.delete(endPoint, {
data: params,
});
return response;
} catch (error) {
console.error(error);
}
};
어쨌든 예전에 경험했던 문제였기도 하고, 그래서 바로 해결했다.
API 구조,,, 하... 솔직히 약간 아쉽다. 많은 교육생들이 힘듦을 토로하고 있는 상황에서 나도 최대한 잘 해보려고 노력했지만, 솔직히 구조적으로 사용하기 너무 어렵다는 생각이 든다.
오늘 follow 기능을 구현하던 중 문제가 발생했는데, follow 요청을 보내면 요청이 잘 간다. 이 부분까지는 무난하게 구현되었는데, 이후 해당 정보를 가지고 와서 follow여부를 구분하고 화면을 그려주는 과정이 필요했는데 follow여부를 API에서 구분할 수 없는 구조였다.
follow 요청을 성공하면 해당 follow에 대한 새로운 ID가 부여되는데, 해당 ID를 가지고 할 수 있는게 없었다. 상대방의 정보도 알 수 없었고, 해당 ID로 나의 정보도 알 수 없었다. 솔직히 구현하려면 복잡한 정제로직을 거쳐서 데이터를 가공한다면 가능 할 수도 있겠지만, 로컬스토리지에 값을 저장한다면 가능하겠지만, 시간의 압박이 너무 심해서 일단 follow 기능을 포기하기로 했다. 어찌보면 핑계일 수도 있겠지만 API에서 일부 데이터만 더 지원해줬어도 충분히 할 수 있었을텐데... 아쉽다.
완성 vs 품질, 정답은 완성이라고 생각한다.
음... 지난 주 까지만해도 굉장히 낙관적이였다. 나름 빠르다고 생각했고, 실제로 느린편이 아니기는 하다. 하지만 이번 주 들어서 든 생각은 다음 주에는 시간이 없다는 것이다! 다음 주에는 PPT도 만들어야하고, 발표 준비도 해야하고 중요한 부분에서 에러나는 경우 리팩토링까지 진행해야 한다. 시간이 없다...
그래서 이제 쳐내야하는 기능은 어느 정도 쳐내면서 기능 구현을 하려고 한다. 일단 기본적으로는 웹 서비스를 지향하는 만큼 반응형에 대한 부분은 차선으로 두고, 기능적인 로직에서 크게 성능적인 제약을 두는 리렌더링, 리페인트의 경우 개의치 않고 넘어가려고 한다. 또한 데이터 가공, fetch 역시 성능에서 문제되지 않으면 일단 넘어가고... 추후에 리팩토링 하는 한이 있더라도, 일단은 기능적인 완성을 우선시하는 방향으로 진행하고자 한다.
히히... 회원수 -8!! 재미있는 기능이지만 실제 API에는 다행히 음수 값은 안 들어가더라ㅎㅎ
오늘은 페어코딩으로 열심히 진행해봤는데 확실히 페어코딩을 하니 진행속도도 빠르고 재미있었다. 무엇보다 재미있었다는 것이 가장 큰 핵심인 것 같다.
내일도 달려보자 할 게 많다!!! 내일도 화이팅!!🔥🔥🔥
TIL 작성 소요시간 20분