2021년 03월 20일
styled-components를 사용하는 도중 defaultProps 타입 오류가 발생했다.
Props 전달에도 이상이 없었고 어떤 오류인가 싶어서 검색해봤다.
Type of property 'defaultProps' circularly references itself in mapped type
TypeScript Github에 등록된 이슈를 확인해보니, 정확하지는 않지만 Typescript^3.9.0
이후 나타나며 해당 오류는 styled-components에서 5.0.1 버전대에서 fix 되었다. ( 자세한 사항은 하단 참고자료로 이동하여 확인하면 좋을 것 같다. )
yarn upgrade @types/styled-components --latest
# or
npm install @types/styled-components@latest
styled-components의 type을 업데이트하는 방법이 있으며, 어려운 경우에는 styled-components.d.ts를 생성하여 예외처리 하는 방향도 있다.
https://github.com/microsoft/TypeScript/issues/37597#issuecomment-628149946
2021년 09월 04일
학생정보와 과목 별 점수 데이터가 들어오는데, 해당 과목에서 최고 점수와 최소 점수를 제외하고 등급 순서로 나열한다. ```js const grade = (arr) => { const average = arr.reduce((sum, currValue) => sum + currValue, 0) / arr.length; if (average >= 90) return "A"; if (average >= 80) return "B"; if (average >= 70) return "C"; if (average >= 50) return "D"; return "F"; }; function solution(scores) { const item = scores.map((_, arrIndex) => { let group = scores.map((_, numIndex) => scores[numIndex][arrIndex]); const personNum = group[arrIndex]; if ( personNum === Math.max.apply(null, group) || personNum === Math.min.apply(null, group) ) { group.filter((num) => num === personNum).length === 1 && group.splice(arrIndex, 1); } return grade(group); }); return item.join(""); } ```
2021년 09월 04일
LV2 문제 ```js function solution(n) { if (n < 3) return `${n || ""}`; if (!(n % 3)) return `${solution(Math.floor(n / 3) - 1)}4`; else return `${solution(Math.floor(n / 3))}${n % 3}`; } ```
2021년 03월 10일
작업을 스테이지에 올렸다가 릴리즈 날짜에 배포가 불가능하면 해당 기능을 잠시 스테이지에서 빼둬야한다. 이때 develop 브랜치에서 Revert를 생성하여 Merge 하는 작업을 진행한다. 여기까지는 괜찮았으나 작업중인 브랜치에서 devleop을 Pull 받으니 문제가 나타났다. develop에서는 Merge를 통하여 해당 내용들을 전부 삭제했으니 작업중인 브랜치에 있는 내용들도 전부 삭제 시켜버린다. 동일 파일을 작업하던 부분들까지 날려버리니 멘붕이 나버렸다. 여러번의 검색 끝에 간단한 해결방법을 찾았는데 결국 Revert를 Revert하자! 라는게 편한 방법이다. 해결방법 Merge, Revert한 브랜치명을 develop으로 명칭하고 진행한다. Revert Commit SHA Key를 가져오자. develop에서 git log를 확인하여 revert한 커밋 키 값을 가져온다. git checkout develop git log commit [REVERT_COMMIT_SHA_KEY] (tag: ...) Author: Doriri <public.doriri@gmail.com> Date: ... Revert "커밋 메시지" 여기서 REVERT_COMMIT_SHA_KEY 해당 부분을 복사해준다. New Branch & Revert를 Revert 하자. 새로운 브랜치를 생성하고, Revert 커밋을 Revert 해보자. git checkout -b [new_branch] git revert [REVERT_COMMIT_SHA_KEY] 그리고 마무리로 기존 브랜치를 pull 받으면 끝이다. git pull origin [origin_branch] 커맨드 요약 git checkout develop git checkout -b feature/new-branch git revert [SHA_REVERT_COMMIT] git...