[Node.js_4기] TIL : 주특기 심화 팀프로젝트 Day3 개발일지 (24/03/20)
2024. 3. 20. 23:01ㆍ공부/내배캠 TIL
목차
1. 일?기
문제라기 보다는 오늘의 개발내용 정리
< comment 기능 구현>
-> comment생성, update, delete
간단하게 구현, card와 many(comment) to one(card) 관계를 설정
CRUD
<card와 user를 연결하고, 작업자 할당 구현>
-> working 엔티티를 생성하여 user와 card를 각각 연결하여 M:N 구조를 만설정.
이쪽이 좀 더 어려웠다.
CRD
<어제 했던 작업중 기록할만한 작업>
const ordersMap = cardIds.reduce((map, id, index) => {
map[id] = index + 1;
return map;
}, {});
cardIds 배열을 사용하여 reduce 메서드를 통해 ordersMap 객체를 생성하는 코드이다.
즉, 이 코드는 cardIds 배열의 요소를 key로, 해당 요소의 인덱스에 1을 더한 값을 value로 가지는 객체를 만든다.
자세한 설명은 다음과 같다.
- cardIds.reduce((map, id, index) => { ... }, {}) : cardIds 배열에 reduce 메서드를 호출하며, 두 개의 인수를 취한다.
- (map, id, index) => { ... } : 콜백 함수
- {} : 누산기 초기값
- 콜백 함수 (map, id, index) => { ... }는 cardIds 배열의 각 요소에 대해 실행된다.
- map: 이전 반복의 반환값으로, 첫 번째 반복에서는 초기값
- id: 현재 처리 중인 cardIds 배열의 요소
- index: 현재 요소의 인덱스
- 콜백 함수 내부에서:
- map[id] = index + 1;은 map 객체에 새로운 프로퍼티를 만듭니다. 키는 현재 id(cardIds의 요소)이며, 값은 index + 1(현재 요소의 인덱스에 1을 더한 값)입니다.
- return map;은 업데이트된 map 객체를 반환하며, 다음 반복에서 누산기로 사용됩니다.
- reduce 메서드의 두 번째 인수인 초기값은 빈 객체 {}입니다.
- reduce 연산이 완료되면 ordersMap 객체가 반환됩니다.
ex ) cardIds = [1, 2, 3, 4]일 때, reduce 연산은 다음과 같이 진행된다.
- 초기 map은 {}입니다.
- 첫 번째 반복: id = 1, index = 0이므로 map[1] = 0 + 1 = 1이 되고, map은 {"1": 1}이 됩니다.
- 두 번째 반복: id = 2, index = 1이므로 map[2] = 1 + 1 = 2이 되고, map은 {"1": 1, "2": 2}가 됩니다.
- 세 번째 반복: id = 3, index = 2이므로 map[3] = 2 + 1 = 3이 되고, map은 {"1": 1, "2": 2, "3": 3}이 됩니다.
- 네 번째 반복: id = 4, index = 3이므로 map[4] = 3 + 1 = 4이 되고, map은 {"1": 1, "2": 2, "3": 3, "4": 4}가 됩니다.
- 마지막 반복 후, 최종 ordersMap 객체인 {"1": 1, "2": 2, "3": 3, "4": 4}가 reduce 메서드에 의해 반환됩니다.
'공부 > 내배캠 TIL' 카테고리의 다른 글
[Node.js_4기] 팀 프로젝트 회고 : KPT + 프로젝트 회고 (24/03/25) (0) | 2024.03.25 |
---|---|
[Node.js_4기] TIL : 주특기 심화 팀프로젝트 Day4 개발일지 (24/03/21) (0) | 2024.03.21 |
[Node.js_4기] TIL : 주특기 심화 팀프로젝트 Day2 개발일지 (24/03/19) (0) | 2024.03.19 |
[Node.js_4기] TIL : 주특기 심화 팀프로젝트 Day1 개발일지 (24/03/18) (3) | 2024.03.18 |
[Node.js_4기] TIL : Nest.js 3_AOP와 캐싱, (24/03/15) (1) | 2024.03.17 |