기술적으로 말도 많고 탈도 많았던 클론프로젝트였다. 결과는 나름대로 선방한? 느낌이지만 아쉬움은 남는 프로젝트였다. 그래도 뿌듯한 일주일이었다.
const Likes =(props)=>{
const dispatch = useDispatch();
const [likes, setLikes] = useState(false)
const [count, setCount] = useState(props.count)
useEffect(() => {
dispatch(__like(props.id))
}, [likes]);
const onLike = () => {
if(likes === true){
setCount(count-1)
setLikes(false)
}else{
setCount(count+1)
setLikes(true)
}
}
return(
<>
<LikeButton onClick={onLike}>{likes ? "❤️" : "🤍"}</LikeButton>
<Span>{count}</Span>
</>
)
}
const useremailCheck = /^[A-Za-z0-9_\.\-]+@[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+/;
const usernicknameCheck = /^[a-z]+[a-z0-9]{5,19}$/g;
const passwordCheck = /^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$/;
const onSubmitHandler = (event) => {
event.preventDefault()
if(!useremailCheck.test(obj.email)){
return alert("이메일 양식에 맞춰주세요")
}
if(!usernicknameCheck.test(obj.nickname)){
return alert("닉네임 양식에 맞춰주세요")
}
if(!passwordCheck.test(obj.password)){
return alert("비밀번호 양식에 맞춰주세요")
}
if(obj.email === "" || obj.email === undefined) {
return alert("빈칸을 입력해주세요.")
}
if(obj.nickname === "" || obj.nickname === undefined) {
return alert("빈칸을 입력해주세요.")
}
if(obj.password === "" || obj.password === undefined) {
return alert("빈칸을 입력해주세요.")
}
dispatch(__userSignUp(obj))
}
const settings = {
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
...
...
{
posts.img && (
<>
<StyledSlider {...settings}>
{
posts.img.map((imgs)=> {
return(
<div key={imgs.id}>
<img src={imgs}
style={{ width: "320px", height: "320px"}}/>
</div>
)
})
}
</StyledSlider>
</>
)
}
if(action.payload.data.statusCode === 200){
state.feeds = action.payload.data.feeds;
state.detail = action.payload.data
}
// 데이터에 필요한 값만 배열에 넣어준다.
백엔드와 전반적으로 소통이 잘 된 일주일이었다고 본다. 기술적인 측면에서 서로 이해도 좋았고 경청하는 자세가 있어서 좋았다. 나도 백엔드가 어려웠던 것은 마찬가지였지만 백엔드도 프론트엔드가 어려운건 마찬가지이니 그 부분에서는 서로 양보하며 진행한게 컸던 것 같다.
또한 서로 부탁하는 것에 대해 어려움이 없어서 잘 통한 것 같다. 실례로 로그인 시 닉네임을 받았어야 하는 경우나 피드를 역순으로 만드는 것 등 계속 조심스럽게 부탁드렸는데 잘 들어주신 것이나 UX 적인 면에 대해서 논의하거나 테마에 대해 논의하는 등이 잘 통했던 것 같다.
기술적인 부분도 서로 스코프를 잘 잡아서 한 쪽에 치우치지 않게 한 것이 컸던 것 같다. 프론트와 백엔드 모두 만족스러운 결과를 낸 것도 스코프에서 서로 욕심을 내지 않은게 크지 않았나 싶다.