지금까지 배운 것을 복습하기 위해 서비스하고 있는 사이트 중에서 기능 구현을 해보고 싶은 사이트를 클론코딩을 한다.
팀에서의 협업이 어떤 것인지 git 같은 협업에서 프로젝트 관리 툴 사용 방법을 익힌다.
어떤 방식으로 프로젝트가 진행되는지 알아본다. 예를 들면 스케줄 관리, 티켓 배분, 아키텍쳐 설계 등..
공부할 것을 복습하고 공부를 하기 위한 목적이기 때문에 최대한 라이브러리의 사용을 지양하며 진행하게 되었다.
UI
스타일
서버
데이터
보안
💉 Planning Meeting Sprint
🕖 매주 월요일
이번 주에 무엇을 해야하나 정리한다.
☀️ Daily Standup Meeting
🕖 매일 아침 10:30
Meeting 후 notion에 어제 한일, 오늘 한일, blocker 정리 공유
🖥 Front 페이지, 컴포넌트 분리
🔙 Back route가 각자 가지는 역할
/
홈
/user
/user/signup
유저들의 회원가입/user/login
유저들의 로그인middleware
JWT를 이용해 유저들의 로그인 상태 확인/categories
navbar에서 누른 카테고리안에서 더 자세한 카테고리를 고름 ex) 거실 > 러그
/categories/:category
더 자세한 카테고리에서 그 카테고리에 해당하는 제품들의 list/categories/:category/:id
해당하는 제품의 상세 정보INSERT
하는 데이터는 users & shopcarts 뿐이다.*:1 관계
이다위코드를 다니기 전에는 혼자 공부를 하면서 클론코딩으로 인강을 듣고 챌린지라는 제도를 통해서 작은 프로젝트를 몇번 해서 그런지 프로젝트를 시작하는데 그 자체에는 부담감이 없었다.
하지만 나 혼자가 아니라 다른 사람들과 하는 것은 처음이었기 때문에 긴장되었는데 내 막 빨리 친해지는 성격이 아니기도 하고 내가 부족해서 프로젝트에서 발목을 잡는 것이 무서웠는데 다들 같이 차근차근 나아가고 좋은 분들이라 이런 긴장감은 일주차에 사라졌다.
프로젝트를 페이지 단위로 역할을 나누면서 작업을 진행한다는게 나한테는 엄청 생소한 일이었고 매일 아침에 standup-meeting, notion을 통해 daily Agenda 정리 등.. 책에서 본 내용을 내가 한다는 사실에 약간 흥분이 되었었다.
하지만 라이브러리의 사용 금지는 약간의 스트레스였다.
프로젝트를 진행하면서 계획이 생각보다 많이 변경되면서 초기세팅이 바뀌는 일이 잦았다.
짧은 시간이 정해져 있다는 게 다들 엄청나게 부담으로 다가왔던 것 같다.
나도 혼자 하면 날을 잡아놓고 하는 게 아니고 그냥 그 잘 나온 만큼만 구현하면 끝이었고 구현을 못하더라고 다음날 답을 알려줬기 때문에 내가 직접 오늘 할 일 내일 할 일을 잡아놓으며 그날 안에 꼭 끝나야 하고 이건 내가 몰라도 구현해야 한다는 압박감이 있었던 것 같다.
처음 내가 맡은 페이지에서 컴포넌트를 분리할 때 상태공유를 하는 컴포넌트가 많았기 때문에 멘토님께 Recoil 라이브러리를 사용하기를 원한다고 하였지만, Context API (React 내장 API)를 알려주셨다.
난 상태를 다른 데서도 공유한다는 기능은 라이브러리를 통해서만 가능한 일인지 알았었는데 진짜 신기했었다.
난 내가 리액트가 가진 핵심 기능은 알고 있었다고 생각했었는데 더 공부해야겠고 역시 공부는 뭔가를 만들면서 배우는 거라고 느꼈다.
간단할거라고 생각했던 것이 생각보다 오래걸렸다.
1주차에서 백과 함께 초기세팅을 하면서 같이 했었기 때문에 정신이 없었고 그래도 어찌저찌 내가 맡은 부분은 완성이 된 것 같다.
기술적으로나 사람들과 같이 무언가를 만드는 협업 등 많은 것을 배운것 같다.
2주차가 끝나고 팀별로 발표를 하는데 신기한 기능들이 많았고 완성도가 엄청났다.
하나의 분야를 잡고 몰입해도 시간이 부족할거 같다는 생각을 하게 되었다.
🖥 프론트 - ShopCart.js
Context API를 사용해 자식에게 깔끔하고 간단하게 함수나 Props를 전달할 수 있었다.
넘겨주는 것까진 괜찮았는데 re-rendering이 되지 않아 setItems
를 넘겨줘 업데이트를 하게 만들어 줄 수 있었다.
항상 내 생각이나 공부하는 것을 멈춰있으면 안된다고 느꼈다.
아는 만큼 내가 편해진다.
🖥 프론트 - Header.scss
애니메이션을 만들 기회가 없었는데 헤더를 만드신 동기분 코드를 통해 배우게 되었고 cursor
까지 설정하시며 꼼꼼하게 하셔서 동기부여를 엄청 받게된 코드였다.
🔙 백 - userService.js
혼자 해볼 땐 해봤자 이 글자가 여기에 들어가는지 안 들어가는지 확인하는 것만 해보다가 복잡한 정규표현식을 이용해 설정하는걸 이때 처음 본 거 같다.
🔙 백 -2
const productsByCategory = async (category) => {
return await prisma.$queryRaw`select p.id, p.name, JSON_ARRAYAGG(JSON_OBJECT(size,price)) as prices , image_url as imageUrl from product_size join sizes on size_id=sizes.id join products as p on p.id=product_id join categories as c on c.id=p.category_id join images on images.product_id=p.id where c.name=${category} group by p.id, p.name, image_url;`;
};
SQL과 사이가 좀 좋아진 경험이라 역사적인 순간이라 기록하고 싶었다.
내가 어떤 쪽을 좋아하는지 확실히 하는 시간을 가져본다.
앞으로 라이브러리의 사용을 최대한 지양해본다.
프론트와 백 결정