위코드에서의 마지막 프로젝트에서 겪었던 느낌을 다시 한 번 생각해보았다.
FRONT-END
BACK-END
공통
이미지 다운로드
url 복사
핀 수정
댓글 추가 기능
const reviewInputChange = e => {
handleResizeHeight('40px');
e.target.value.length <= 1 &&
setIsStateObj({
...isStateObj,
reviewValue: textRef.current.value,
});
};
댓글 리뷰 좋아요 기능
무한 스크롤
팔로우 기능
const [pinData, setPinData] = useState({});
const [tagId, setTagId] = useState(0);
const [followBtn, setFollowBtn] = useState(false);
const params = useParams();
const token = localStorage.getItem('Token');
const getPinData = async () => {
try {
const res = await axios.get(`http:/주소/pins/${params.id}`, {
headers: {
Authorization: token,
},
});
const { data } = res;
if (data.tagIds.length > 1) {
setTagId(data.tagIds.slice(0, 1).join());
} else {
setTagId(data.tagIds);
}
if (data.duplicatedResult === '1') {
setFollowBtn(true);
} else {
setFollowBtn(false);
}
setPinData(data);
} catch (err) {
throw new Error(err);
}
};
const handleResizeHeight = defaultHeight => {
textRef.current.style.height = defaultHeight;
textRef.current.style.height = textRef.current.scrollHeight + 'px';
};
const handleChangeInfo = ({ target }) => {
handleResizeHeight('48px');
setChangeInfo({
...changeInfo,
[target.name]: target.value,
});
};
const reviewInputChange = e => {
handleResizeHeight('40px');
e.target.value.length <= 1 &&
setIsStateObj({
...isStateObj,
reviewValue: textRef.current.value,
});
};
const debounce = (func, delay) => {
let timer = null;
return () => {
if (timer) clearTimeout(timer);
timer = setTimeout(func, delay);
};
};
저번 프로젝트와 같이 소통을 할 때 너무 소심하게 했던 거 같다. 특히 데이터를 요청할 때가 심하게 조심스럽게 해서 백엔드 입장에서 내가 필요한 데이터가 어떤 것을 원하는지 제대로 파악하기 어려워했던 거 같다.
이번 프로젝트에서는 처음으로 Styled Component를 사용하게 되었는데, 프로젝트 초기에 style을 나누는 방법이 있다는 것을 알게 되었고 그 방법을 팀원들과 맞추기 위해서 이 방법을 사용하는건 어떤지 요청을 하는것이 어려웠던 거 같다.
프로젝트에서 공통 컴포넌트로 나눈 기능 중에서 버튼과 모달창이 있었는데 이 기능을 사용하게되는 입장에서 인풋 값들은 많은데 어떤 형태로 인풋 값을 줘야되는지를 몰라서 그냥 해당 파일에서 스타일을 짜게되었다. 이 과정에서 해당 기능을 맡은 팀원에게 간단한 명세서를 만들어 달라는 요청과 질문을 더 했으면 어땠을까 하는 심정이 있었다.
프로젝트를 진행하는 초기에 왜 이런 기능들이 있는지 기획자의 의도를 몰라서 페이지를 중간중간 바꾼 것들이 있었는데 프로젝트를 진행하다 보니 점점 더 사용자 입장에서 원래 페이지에 있는 기능들이 더 편하다고 느낄 수 있다고 생각이 들어서 해당 사이트의 대한 이해도가 거의 없었다는 것을 알게 되었다.
중간중간 데이터 통신에 대해 살짝 바뀌게 된 경우가 있었는데 그때그때 문제를 급하게 해결하느라 코드를 정리를 하지 못하게 되어서, 내가 개발 실력과 지식이 더 좋았다면 그 상황에서 더 유연하게 대처할 수 있었을 거라는 아쉬움이 많다.
이번 프로젝트는 개인적으로 너무 아쉬웠던 프로젝트였던 거 같다.