약 1달간의 부트캠프 메인프로젝트 대장정이 끝났다.
(4월 28일 ~ 5월 25일)
프로젝트의 미흡한 코드는 계속 보수해나갈 계획이지만,
정규적인 프로젝트 기간은 마무리 되었다.
기념으로 오늘은 1달간의 과정을 회고해보는 시간을 가져보자!
배포 주소 : http://foodpedia.co.kr/
프리 프로젝트를 보내며
2가지의 마음을 가졌다.
첫 번째는,
너무너무너무 어렵다.
시간이 지날 수록 배운 개념들이 리셋되거나 서로 뒤섞이는 상태였고,
한 웹페이지 조차 만드는 것이 너무 어려웠다.
(특히 css로 구조를 짜는 것도 많이 헤매였다.)
두 번째는,
그렇기에 이번 메인프로젝트에는 정말 열심히 해보자 마음먹었다.
프리 프로젝트 때 부족함을 많이 느꼈지만,
열정으로 커버하고 싶었다.
더군다나 우리만의 사이트를 만드는 것이기에 더욱 애착이 가고
열심있게 만들 수 있지 않을까 싶었다.
마주하는 에러와 새로운 기능들도 많은 시간을 쏟는 한이 있더라도
이겨내자는 마음을 가졌다.
팀원들과 약 1주간
1. 웹사이트의 주제를 정하고
2. 구현할 기능을 정하고
3. 개발자 테스트 체크리스트 / 사용자 요구사항 정의서를 작성하고
4. FE는 와이어 프레임을 그리고 페이지/기능을 분배했다.
메인 페이지의 와이어 프레임이다.
웹 사이트로서 디자인을 예쁘게 뽑아내기 위해서는
vw, vh를 100으로 가져가는 디자인을 해야한다고 생각했다.
또한 첫 화면(섹션)을 임팩트 있게 가져가야 사이트의 존재감을 드러낼 수 있다 생각했다.
첫 번째 섹션)
그래서 메인 페이지의 첫 섹션은
뒷 배경에 음식 사진이 자동으로 넘어가고 있고,
카테고리 추천 버튼(오늘 뭐먹지)을 누르면 랜덤으로 카테고리를 추천해주는 기능을 생각했다.
두 번째 섹션)
이 버튼 기능이
두 번째 섹션까지 이어진다.
버튼을 누르지 않으면, 리렌더마다 랜덤으로 카테고리를 보여주고, 해당 카테고리의 식당들의 별점을 내림차순하여 보여준다.
버튼을 눌렀다면, 나온 카테고리로 두번째 섹션의 내용들이 바뀐다.
세 번째 섹션)
세 번째 섹션은 식당의 즐겨찾기를 내림차순하여 보여주고,
네 번째 섹션)
네 번쨰 섹션은 좋아요를 많이 받은 리뷰들을 보여준다.
첫 섹션/ 넘어가는 슬라이드 기능을 '캐러셀'이라고 한다.
두 번째 섹션/만들고 보니 영화 필름같다. 그래서 좋았는데 기획 컬러와 맞지 않아 임시 상태.
여러 번의 멘토링을 거치며
마음도 다지고, 코드도 수정해갔다.
기억나는 것은
1. rem, em보다는 px 단위로 바꿈.
2. 내부, 외부 import를 주석으로 나눠줌
3. 코드마다 주석처리를 하여 제 3자가 코드를 이해할 수 있도록 도움
4. 상수화를 통해 유지보수 늘리기
5. 시맨틱 요소 사용
+로 마음 가짐과 멘탈관리에 도움을 주셨다 :D
캐러셀 디자인이 별로라, 배민 디자인을 참고하여 위와 같이 만들었다
(컨셉 컬러로 바꿈).
메뉴 추천 기능도 시간상 제거했다.
(우선순위가 낮은 기능을 제거, 미완성된 페이지 구현에 더 우선순위를 두고 작업함).
react-redux를 사용하여 랜덤 카테고리를 받아오고 있다.
즐겾찾기 내림차순 페이지
좋아요가 많은 리뷰 페이지
검색어를 입력하면, 카테고리, 식당명, 지역대로 필터링을 서버에서 해서 데이터를 보내준다.
페이지 네이션을 진행할 때
1. 식당 데이터 전체를 불러와서 필터링 할 수 있고,
2. 서버에서 필터링된 데이터를 불러올 수 있다.
전자는 쉽지만, 부담이 크기에 대체로 후자를 사용해야하고,
이것을 현업에서 많이 사용하기에 꼭 경험해보라고 멘토님이 말씀해주셨다.
이 또한 react-redux를 사용해서 식당 데이터를 조회하고,
useNavigation으로 enter이벤트 시 링크 이동,
링크의 page와 size는 useState로 관리하고 있다.
페이지 네이션은 react-js-pagination 라이브러리를 사용했다.
1~4주차 동안 진행했던 일들과
그간의 생각들을 정리해보았다.
이제 프로젝트가 끝나서 마음이 한 켠 풀리면서도,
다른 동기들의 작업물을 보니 참 나도 잘하고 싶다는 생각이 든다.
내 실력은 딱 중간 언저리인 것 같다.
애초에 프로그래밍에 재능이 있는 사람도 아니기에...
하지만 나의 재능과 특징은 초기에 발현되지 않는다!!
포기하지 않고 열심히 개발하다보면 나의 아이디어와 보이지않는 재능들이
분명히 빛을 발할 것이라 믿는다.
이것이 나와 내 주변 모든 것에 도움이 되길 바란다.
프로젝트가 끝난 후의 발자취에 대해서 생각해본 것은.
멘토님 조언대로
1. next.js/typeScript 학습
2. 코드 책 학습
3. 기존 프로젝트 리팩토링
4. 꾸준한 블로깅
으로 실력을 향상해나갈 계획이다.
주말과 월요일 휴일을 잘 보냈으니,
다시 열심히 나아가자!~