2주간의 프로젝트를 마치며 어떤 것을 하려고했고, 어떤 일들이 있었으며 결과는 어땠고, 내 생각은 어땠는지 적어보려고합니다.
저희팀은 https://drop.com/all-communities/drops
Drop이라는 사이트를 선택받아서 진행하려고했고 , 어떤 사이트냐면
헤드셋,키보드를 파는 사이트인데 특이하게 커스텀한 키보드를 살 수 있고 그에 따른 리뷰들을 볼 수 있으며 게시판에서 투표를 해서 원하는 제품이 입고 될 수 있도록 하는 기능이 있습니다.
2주간의 짧은 시간이니만큼 모든 기능을 구현할 수는 없다고 생각했습니다.
프론트쪽에서는 레이아웃을 금방 만든다고해도 백엔드에서 데이터가 완성되지 않으면 안되니까 일단 최대한 빨리 만들어서 다른 팀원들을 도와주거나 추가 기능사항을 완성시켜보고 싶었습니다.
제가 맡은 부분은 웹페이지의 Footer, 상세 페이지를 만들었습니다.
[Product Detail] 제가 상세페이지에서 가장 신경쓴 부분은 아무래도 캐러셀입니다. 리액트 라이브러리로도 만들 수 있지만 1차 프로젝트는 연습의 의미가 크기 때문에 쓰지말라고 하셨습니다.
//캐러셀 코드입니다.
const [mainCarousel, setMainCarousel] = useState(0);
const [subCarousel, setSubCarousel] = useState(0);
const leftCarouselButton = () => { //main과 sub 캐러셀에 각각 다른 state를 주어서 움직이게 했습니다.
if (mainCarousel === 0 && subCarousel === 0) {
setMainCarousel(0);
setSubCarousel(0);
} else {
setMainCarousel(mainCarousel + 1050);
setSubCarousel(subCarousel + 160);
}
};
const rightCarouselButton = () => {
if (mainCarousel === 13650 && subCarousel === 1920) {
setMainCarousel(13650);
setSubCarousel(1920);
} else {
setMainCarousel(mainCarousel - 1050);
setSubCarousel(subCarousel - 160);
}
};
// 매인 캐러셀을 움직이는 코드입니다.
//누를 때마다 state가 전달되어 리스트가 X축으로 움직입니다.
const ProductMainCarousel = ({ headphoneId, imgPath, mainCarousel }) => {
return (
<li
className="main_image_container"
style={{ transform: `translateX(${mainCarousel}px)` }}
>
<img src={imgPath} alt={headphoneId} />
</li>
);
};
export default ProductMainCarousel;
//scss 코드입니다.
.product_image_main {
height: 700px; //보여지는 캐러셀의 크기를 정해놓았습니다.
margin-left: 70px;
overflow: hidden;
.main_carousel_box {
width: 10000px; 이미지들이 움직이는 컨테이너의 크기를 임의로 정해놓았습니다.
display: flex;
overflow: hidden;
.main_image_container {
transition: all 0.5s;
img {
width: 1050px;
height: 700px;
}
}
}
}
아무래도 백엔드와는 처음해보는 프로젝트여서 기대를 많이했지만 사실 좋은 결과는 아니었습니다. 왜냐하면 api를 받아서 이것들을 만든 것이 아니라 mock data를 가지고 만들었기 때문에 협업의 의미가 조금 아쉽지 않았나 싶습니다.. 비록 팀원들 모두 고생하셨지만 제대로 끝마무리짓지 못한 것같아 너무 아쉽습니다..
소통이 많이 부족했던 것 같습니다. 프론트끼리도 말이죠, 컨벤션을 처음에 명확하게 정해놓고 하지않아서 merge했을 때 classname이 겹친다든지 크고 작은 conflict들이 있었습니다. 또한 백엔드님한테 정확한 요구사항을 전달하지 못했습니다. 저는 그냥 백엔드분이 만들어준 데이터를 가공하기만 하면 된다고 생각했습니다만.. 막상 그 데이터를 받았을 때는.. 정말 어지러웠죠.. 이래서 소통이 중요하다..고 생각했습니다!
좀 더 열심히 하지 않았던 것 같습니다. 연결이 안되면 아무것도 못한다고 생각해서 본인이 할 일에 집중을 잘 하지 못했습니다. 연결이 안되더라도 목데이터를 좀 손본다든가 그것으로 다른 일들도 할 수 있었는데 너무 아쉽습니다.