all is well!!
WIL 2주차 본문
### 1. 문제 **(과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)** 이번 주차를 지나며 겪었던 문제가 무엇이었나요?
처음 알게된 데이터 타입들로 비교하고 응용해서 forEach, map 등등의 메소드를 직접 구현하는게 어려웠습니다.
### **2. 시도** 문제를 해결하기 위해 어떤 시도를 하셨나요?
chat gpt, 구글링, 먼저 pr하신분들의 코드를 보면서 왜 이런 코드를 작성해야하는지 이해하려고 노력했습니다.
### **3. 해결** 문제를 어떻게 해결하셨나요?
pr 코드들을 보면서 고민해보고 생각해낸 추측을 chat gpt와 대화하면서
맞는 추측한 내용으로 과제에 적용했습니다.
### **4. 알게된 것** 문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?
1.얕은 비교는 참조주소만 비교한다.
2.깊은 비교는 재귀를 이용해서 1depth 이하의 요소의 object들도 값이 완전히 같은지 비교한다.
3.리액트의 경우 바뀐것을 감지하는데 이때 깊은 비교를 사용하면 모든 속성까지 비교해서 비용이 많이 든다.
이때 얕은 비교는 참조값만 일치하면 되는지 확인하면 되기 때문에 깊은비교보다 비용이 적게 든다.
4.객체가 숫자컨텍스트(객체가 숫자로 변환되어야 하는 상황)에서 사용될 때 객체에 valueOf 메서드가 정의되어 있으면
'valueOf'메서드가 자동으로 호출되어 메서드의 return 값으로 연산.
* 숫자컨텍스트 발생 : 수학 연산, 비교 연산, 단항 연상
JSON.stringify로 문자열 변환을 시도하면 toJSON 메소드가 실행되고,
문자열 컨텍스트에서는 toString 메소드가 실행된다.
5.같은 참조를 바라봐야하는 조건을 통과해야 할때, new Map으로 캐싱한다.
객체를 생성할때 캐시를 확인해서 이전과 동일한 객체가 있을때 그 객체를 반환한다.
동일한 객체가 없을때는 새로운 객체를 생성하고 Map에 캐싱한다.
6.Object.defineProperty : js의 객체의 속성을 정의하거나 수정할때 사용되는 메서드
* 빈 객체가 아니지면 얕은 복사를 할땐 빈 객체와 같아야 할때 Object.defineProperty로
* 직접 접근할수는 있지만 각 속성을 루프, 메서드에 의해 열거(객체의 속성을 반복해서 나열)할 수 없게 만들어준다.
---
### **Keep : 현재 만족하고 계속 유지할 부분** 이번 주를 마무리 하며 나에게 만족했던 부분은 무엇인가요?
이번주는 없습니다. 반성합니다..ㅠ
### **Problem : 개선이 필요하다고 생각하는 문제점** 이번 주를 마무리 하며 개선이 필요하다고 생각했던 문제점은 무엇인가요?
과제 난이도가 많이 어려우면 흥미를 잃어버려서 자꾸 용두사미가 되는것 같습니다..ㅠ
다음주에는 포기하지 않고 끝까지 파보는게 필요할 것 같습니다.
### **Try : 문제점을 해결하기 위해 시도해야 할 것** 이 문제점을 해결하기 위해 다음 한 주간 시도 할 것은 무엇인가요?
다음주에는 하루 todo list를 작성해서 지켜보도록 노력하겠습니다.
'weekly 회고록' 카테고리의 다른 글
WIL 3주차 (0) | 2024.07.06 |
---|---|
WIL 1주차 (0) | 2024.06.22 |
프론트엔드 3기 WIL - 시작하는 마음 (0) | 2024.06.15 |
[ 항해 6주차 회고록] 미니 프로젝트 (0) | 2022.08.07 |
[ 항해 4주차 회고록] 주특기숙련 (0) | 2022.07.17 |