![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/n5ZrE/btr5epnsxS8/Ck241UmTG9F2ikxBW3LykK/img.png)
학원에서 했던 프로젝트 로컬로 클론 받아서 공부하려고 npm install 했더니 code ERESOLVE 오류 뜸 밑에 오류를 읽어보면 react 16.8 또는 17.0 버전이 필요한데 내 react 버전은 18.2 이다 해결방법은 react 버전을 다운그레이 해줘야함! 먼저 package-lock.json 파일을 삭제하고 npm install --save --legacy-peer-deps 위의 코드 실행하면 오류해결! 💡참고 --force: bypass the conflict --legacy-peer-deps: ignore peer dependencies entirely --force 는 충돌을 우회하고 --legacy-peer-deps 는 충돌을 무시한다고 한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cWWHQc/btr415bpKac/58BfiRuuZikQxvY1FZECG0/img.png)
원티드에서 주니어 개발자 취업을 위한 이벤트가 진행된다고 했다. 오 저번주에 바ㄹㄹㄹㄹ로 신청 3/20 오늘 zoom으로 OT 및 간단한 강의를 진행했다. 참가자 수가 1000명이 넘었다고 했다. (모두 나의 경쟁자들...) ● 기획의도 주니어 개발자들이 나만의 원티드 이력서를 작성해서 하나의 기업에라도 지원을 해보자! ● 일정안내 ● 취업 활동 혜택 마지막에는 완주자 선착순 300명에게 스타벅스 커피 쿠폰을 주고 완주자를 위한 혜택을 제공한다. 무슨 혜택? 주니어를 채용하는 기업을 찾아서 주니어가 합격확률이 높은 기업을 제공! (*완주자란 원티드 이력서를 완성하고 3/20 이후에 완성한 이력서를 한군데이상의 기업에 지원한 사람) 이번주엔 프리미션 진행하고 인증하기 인증을 해야 내 역할이 레벨업 되어서 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bmy32a/btr3SGKlPyI/OhkK5mwwjo8bOD0ZkeQXKK/img.gif)
리액트를 공부하다가 자바스크립트 지식이 정말 중요하다는 것을 알게 되었다. 리액트의 useState를 자바스크립트에서는 어떻게 만들었는지 기억이 안나서 클론코딩을 하며 자바스크립트 문법들을 다시 복습해 보았다. 만들면서 이해되지 않은 부분 time>0라는 조건문이 참이면 time에서 1씩 감소되고, 거짓이면 1초마다 실행되는 카운트다운 함수를 멈추게하는 삼항 연산자였는데 거짓부분에 그냥 바로 clearInterval(interval) (*카운트다운 함수를 즉시 종료시켜줌)을 넣어버리는게 낫지 않나 생각했었다. 왜 굳이 isPlaying이란 변수를 만들어서 false, true 값을 주고 !isPlaying라는 조건문을 또 만들어서 clearInterval(interval)을 실행시키게 하는지 이해가 안되..
커밋 메시지 작성시 전체적인 포맷 타입(Type): 제목(Subject) 본문(Body) 꼬리말(Footer) 타입(type) 해당 커밋은 무엇에 대한 작업인지 키워드를 통해 표시 Feat - 새로운 기능 추가 Fix - 버그 수정 Build - 빌드 관련 파일 수정 Ci - CI관련 설정 수정 Docs - 문서(문서 추가, 수정, 삭제) Style - 스타일(코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없는 경우) Refactor - 코드 리팩토링 Test - 테스트(테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없는 경우) Chore - 기타 변경사항(빌드 스크립트 수정 등) 제목(subject) 커밋 메세지의 제목 제목은 50자를 넘기지 않고, 마침표를 붙이지 않아야함 제목에 커밋 타..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b4lsMe/btsf4ep1EYS/U12L4lJrhlQMPPZd7Fw8H0/img.png)
데이터를 저장할때 구분할 수 있어야 하므로 고유의 _id를 달아서 저장해야 함 몽고DB에서 자동으로 id값 부여되는 이유가 데이터 구분하려고! 데이터 여러개면 id값 하나하나 달기 힘드니까 기존 게시물 총 개수에 +1 해주는 기능 만들면 편할듯 DB에 항목 추가할 때마다 자동으로 id값을 1씩 증가시켜서 저장시켜주는게 auto increment 1. 기존 게시물 총 개수 + 1 의 데이터가 들어갈 곳을 fineOne( )을 사용해서 찾기 db.collection('counter').findOne({name:'게시물개수'},function(에러,결과){ console.log(결과.totalPost); var 총게시물개수 = 결과.totalPost; }); *컬렉션을 따로 만들어서 저장하는게 편함 2. po..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/buFTGc/btr24LGFodj/qks4DpHOOYidQPbWqsKkuk/img.png)
request - 요청 - 서버에 정보 달라고 요청, 서버는 항상 대기중이다가 request가 들어오면 반응하는 것 - request에 대한 처리를 한 후 결과를 response 객체로 돌려줌 - resquest로 요청에 대한 정보를 얻을 수 있음 - 브라우저에서 주소치는 것은 페이지 가져오는 것이므로 GET 요청 ex) http 메소드는 GET url 은 슬래시 조건문이 참이면 restFront.html 실행 http://localhost:8082하면 GET + ' / ' 로 요청을 보내는 것이므로 restFront.html 실행 * 뒤에 ' / ' 슬래시 생략된 것 요청을 보냈을때 개발자도구-Network 탭 들어가보면 실제 요청에 대한 정보 볼 수 있음 200은 req이 성공적으로 res(응답)되었..