남성 화장품 구독사이트 오픈워크 클론프로젝트(디자인, 비즈니스모델)
프론트, 백 기능 자체구현
위즐리(Weasley)
2030을 타겟으로 한 합리적인 가격과 편리한 화장품 구독사이트
2021.11.29 ~ 2021.12.10
프론트 3명, 백엔드 3명
상세페이지 내에 구독 부분에서 조건에 따른 렌더링과 API명세서를 보고 GET, POST 요청하는 중첩된 부분이 기억에 남는다.
const openModal = () => {
fetch(API.USER_ADDRESS, {
headers: {
Authorization: `Bearer ${sessionStorage.getItem('access_token')}`,
},
method: 'GET',
})
.then(res => res.json())
.then(data => {
if (data.MESSAGE === 'INVALID_TOKEN') {
alert('로그인이 필요합니다!');
navigate('/signin');
return;
}
if (data.RESULT.length) {
setSaveAddress(data.RESULT[0].address_id);
postAddressUser(data.RESULT[0].address_id);
} else {
setModalSwitch(!modalSwitch);
}
});
};
const postAddressUser = ad => {
fetch(API.SUBSCRIBE, {
headers: {
Authorization: `Bearer ${sessionStorage.getItem('access_token')}`,
},
method: 'POST',
body: JSON.stringify({
product_id: id,
amount: count,
address_id: ad,
}),
})
.then(res => {
return res.json();
})
.then(data => {
if (data.MESSAGE === 'SUBSCRIBE_ALREADY_EXIST') {
alert('이미 구독중인 상품입니다!');
} else {
alert('구독신청 완료 되었습니다.');
}
});
};
const subscribeAction = () => {
fetch(API.USER_ADDRESS, {
method: 'POST',
headers: {
Authorization: `Bearer ${sessionStorage.getItem('access_token')}`,
},
body: JSON.stringify({
address_id: saveAddress,
location: subscribeUserAddressInput,
}),
})
.then(res => res.json())
.then(data => {
fetch(API.USER_ADDRESS, {
headers: {
Authorization: `Bearer ${sessionStorage.getItem('access_token')}`,
},
method: 'GET',
})
.then(res => res.json())
.then(data => {
if (data.MESSAGE === 'SUCCESS') {
setSaveAddress(data.RESULT[0].address_id);
fetch(API.SUBSCRIBE, {
headers: {
Authorization: `Bearer ${sessionStorage.getItem(
'access_token'
)}`,
},
method: 'POST',
body: {
product_id: id,
amount: count,
address_id: saveAddress,
},
})
.then(res => res.json())
.then(data => {
if (data.MESSAGE === 'SUCCESS') {
navigate('/subscribe');
}
});
}
});
});
};
팀프로젝트를 기능구현과 다른 팀과의 경쟁이 아닌 내면의 성장을 목표로 두고 진행하려고 노력하였고, 기능구현이 우선이 아닌 팀 전체가 배워가는 것이 있고 팀이 하나가 되어 나아갔으면 좋겠다고 생각하고 프로젝트에 임했다. 학교에서나 일터에서 배운 프로젝트를 하게 될 때에는 항상 1인분을 해내야 한다는 생각으로 임했는데 스크럼방식으로 진행하니 1인분에 대한 생각보단 규율과 책임감을 가지고 하나의 요리를 다같이 협심해서 낸다는 생각으로 프로젝트를 진행하였다.
상세페이지를 구현하면 특히 처음에 상세페이지 레이아웃을 구현한 뒤 상품리스트별 상세페이지를 렌더링 해줄 코드에 대해 혼자 고민을 많이 했던 것 같다.
총 2주 동안 진행된 스프린트를 토대로 팀원들과 중간회고를 가지는 시간을 가졌다. 팀 회고 결과 팀원 모두 이런 팀프로젝트가 처음이기도 하며 개개인의 실력이 다르다고 느꼈다. 그에따른 각 기능에 리소스 투입에 대한 인지가 부족하여 트렐로나 업무세분화가 체계적으로 된 것 같지 않았고, 다행히 이 문제를 중간회고 기간에 점검하여 트렐로의 체크리스트를 통해 업무세분화하여 이를 보완하였다.
또한 기능 구현에 초점을 맞춰서 사용자 중심의 UI를 고려하지 못했다. 그에 따라 CSS의 완성도가 부족했던 것 같다.
그래도 리액트로 초기세팅부터 AWS배포까지, 그리고 무엇보다 프로젝트 보다 좋은 팀원들을 얻게 되었다는게 너무 기쁘다.
[Project] Weasly Project 1주차 시작, 중간회고 (0) | 2021.12.10 |
---|