우산 쇼핑몰
Frontend
Backend
type of window === undefined ?
처리를 하였습니다. 이는 차후 typescript 적용과정에서 자연스럽게 없어질 문제일 것입니다.📌 코드 확인
setValue( '값')
바로 아래줄 부터 value
값이 '값'
형태로 사용될 수가 없습니다. 아래줄에 반영되는 value
는 setValue
이전 값이였습니다. 여기에 대한이유는 Closure 때문입니다. useState 훅 코드를 뜯어보면 setValue 함수는 value값의 setter 함수임을 알 수있습니다. 따라서setValue 함수는 const 로 선언된 value가 아닌 react 모듈속에 들어있는 dispatcher 함수의 value 값을 수정하고 이후 setValue에서 비롯된 리렌더링에 의해 컴포넌트가 재실행되며 value값이 변하게 됩니다.📌 코드 확인
CORS 에러
flex-wrap 처리
중복코드 컴포넌트화
동적페이지 생성
next js 에서는 실제로 페이지를 만들지 않더라도 변수를 입력받아 동적페이지를 작성할 수 있습니다.
/product/[id].js 나 /product/[...slug].js 형태가 있는데 이런 동적페이지에 데이터를 넘기려면 Link 컴포넌트를 이용해 href에 qurey 값을 주면 됩니다.
useEffect 의존성 배열 감지
mongoDB의 key indexing 중복
1) 우산 카드는 마우스가 호버 될 때 밑면의 그림자만 보이지 않습니다. Margin을 더 넣어주시는게 좋을 것 같습니다.
2) "Choose your Brella" 버튼의 경우 글자가 가운데로 정렬되지 않아서 불편한 느낌을 줍니다. bottom의 padding을 추가하면 좋을 것 같습니다.
3) style이 mobile 환경에 responsive하지 않습니다. 글자가 서로 겹치거나 이미지 정렬이 되지 않거나 폰트 사이즈가 너무 작아 사용하기 불편합니다. 반응형으로 해주셔야 합니다.
4) 회원 가입시 이메일 인증 절차가 필요합니다. 이메일 인증을 지원하지 않으면 존재하지 않는 이메일이나 타인의 이메일로 가입이 가능하게 됩니다. 더불어 계정 생성시 password를 암호화하지 않았다면 암호화 하시기 바랍니다.
5) 메뉴에 장바구니를 추가하시기 바랍니다. 물건을 카트에 담아도 다른 물건을 선택하지 않는 이상 장바구니를 확인할 방법이 없습니다.
6) 로그인 후 "payment" 버튼을 클릭하면 로그인 하라는 메세지가 뜹니다.
총평: 쇼핑몰이나 반응형이 아니라 불편하며 기본적인 비지니스 로직이 제대로 짜여지지 않았다는 느낌을 받았습니다. 또 프로젝트가 너무 단순하여 제대로 비지니스 로직을 구현할 능력이 있는지 확인할 수 없습니다.
피드백을 위해 프로젝트를 올린 결정은 현명했다고 생각합니다. 많은 사람들이 지적 받는 것을 두려워 하여 피드백을 얻지 못하는 경우가 많습니다.
블로그도 대략 읽어 보았습니다. 열심히 공부하신 것 같습니다만 아마도 제대로 된 피드백과 교재를 갖추지 못한게 진척을 느리게 한 것이 아닐까 생각을 합니다.
Udemy에 웹 디벨로퍼를 위한 강의를 추천 드립니다. 강의는 배우는 것의 핵심을 빠르게 익힐 수 있고 중요한 것과 중요하지 않은 것이 무엇인지 알 수 있도록 도와줍니다. 예를 들어, 대부분의 강의는 var, let, const keywords에 대해서 다루기 때문에 강의를 들었다면 var을 사용하는 일이 없었을 것 입니다.
관련 서적도 많은 도움이 되지만 기초를 다지고 큰 그림을 보기 위해서는 좋은 강의만 한 것이 없습니다.
관련 서적을 추천 드리자면
JavaScript The Definitive Guide
JavaScript: The Good Parts
JavaScript Patterns
Mastering JavaScript Functional Programming
Node.js Design Patterns
Mastering React Test-Driven Development
Refactoring the second edition
Clean Code
https://github.com/getify/You-Dont-Know-JS
그리고 코드를 작성하실 때 확실하지 않으신게 있다면 무조건 해당 레퍼런스를 참고하시기 바랍니다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript
https://nodejs.org/dist/latest-v14.x/docs/api/
https://reactjs.org/
https://create-react-app.dev/
https://reactpatterns.com/
https://usehooks.com/
https://nextjs.org/docs/getting-started
https://tc39.es/ecma262/
더불어 개발자 community를 항상 체크 하셔야 합니다.
https://dev.to/
https://medium.com/
https://news.ycombinator.com/
프로젝트에 관해서 말하자면 경험상 너무 단순한 프로젝트 보다는 어느 정도 복잡한 프로젝트가 더 큰 도움이 되는 것 같습니다. 규모가 크고 복잡하기 때문에 나타나는 문제들이 있고 특정 디자인 패턴이나 아키텍처가 필요한 상황을 알기 때문입니다. 꽤 많은 블로그를 작성하셨던데 그 정도 성실함이라는 빠르게 발전할 것이라 생각합니다. 화이팅 하시길!
무엇이든 맨땅에 헤딩해가면서 배우는게 좋다고 생각하던 나였지만 방식에 있어서 크게 잘못되었던 것같다.
저분의 피드백을 해주셔서 큰 감사드를 드린다고 말씀드렸고 더이상 내가 바보가 되지 않기 위해서 충실히 피드백대로 성장하는 모습을 보여드려야 겠다.
혹시나, 그냥 아무 프로젝트나 만들어보라고 권유하는 사람들이 있다면 좋다. 만들어보라, 다만 꼭 피드백을 받아야한다. 자신의 결과물을 공개하지 않고 혼자만의 세계에 갇혀 있게 된다면 정말 혼자살아가는 것이다. 앞으로는 프로젝트를 만들면 공개를 해서 피드백을 받아야겠다. 살면서 이런 피드백이 정말 중요하고 값지다.
과외를 받을 수도 없는 만큼 피드백 구걸은 필수적이다.
다시
html, css
javascript es6~es10
typescript
react
의 전부분에 걸친 꼼꼼하게 짜여진 강의와 문서를 모두 읽어보고 예제를 탐독하며 고민에 고민을 해서 탐구해야한다.
이후 다시 한번 프로젝트 도전후 피드백 구걸을 하며 수준을 알아봐야겠다.
현재로서는 아쉽지만 그래도 도전이다.