230728(금)
🚤 성장일지 6.0
책 행복한 이기주의자(웨인 다이어)
의 내용에 자극받아 시작하는 소박한 성장기록
살아있는 꽃과 죽은 꽃은 어떻게 구별하는가?<br/> 성장하고 있는 것이 살아 있는 것이다.<br/> 생명의 유일한 증거는 성장이다!
🌾 (4.0)학습 키워드에서 최대한 간단한 정보 제공, 고민에서 내 경험을 자세히 적자!<br/> 🥊 (5.0)학습 키워드는 한줄의 핵심으로만 정리, 성공/실패 일지 작성하기! 이 때, 실패의 경험은 자세히 적기!<br/> 🍉 (6.0)<완전 개편!!!> 매일 습관적으로 핵심만 적을 수 있게 프레임 변경. 성공보단 실패에 초점을 맞추기.<br/>
- 🍉 (6.1)<수정> 매번 성공, 실패를 따로 적는 것보단 경험으로 표현하자
🌈 오늘의 회고
이것저것 많이 하고 금요일 밤도 즐겁게 보낸 하루였다. :) 세워놓은 계획들 중에서 너무 개발이나 공부에 치중하는 경향이 있는 것 같은데, 남은 주말에 이력서에 좀더 집중해보려 한다.
🫧 오늘의 고민
프로젝트 - 세컨드 핸드: 동네 설정 api 부분을 수정하면 좋지 않을까?
기존 우리 프로젝트에서는 사용자가 선택한 동네 설정 부분을 PATCH로만 변경 및 수정을 하고 있었다. 요청 시 body에 담는 구조는 객체구조로 아래와 같다.
{ mainTownId: 1, subTownId: 2, }
위와 같이 main과 sub의 동네 id 값을 채워서 보내면 무조건 그렇게 변경이 되고 sub는 없이 보내면 sub 동네는 삭제가 된다. 헌데 위와 같은 구조로 state를 받아서 조건 처리하려니 너무 복잡하고 코드 로직이 가독성이 떨어져서 백엔드 동료분께 동네 데이터 구조를 배열로 변경하고 오름차순으로 보내는 건 어떨지 제안드렸다. 다행히 둘의 생각이 같아서 그렇게 변경하기로 하고 배열로 전달하기로 했다! 이제 배열의 순서만 잘 맞춰주면 코드가 훨씬 깔끔하고 로직도 가독성이 좋아지게 된다!(또한 어차피 동네는 최대 2개이기 때문에 배열로 전달해서 순회해도 성능상 큰 문제는 없을 것 같다.)
[1, 2]; // 너무 까아아아알끔
☀️ 오늘의 경험
reduce 익숙해지기
오늘은 Array 메서드에 대해 좀더 깊은 내용을 공부했다. 허... 그런데 은재님의 reduce에 대한 강의 내용이 너무 좋았다. 사실 그동안 reduce를 사용하면서도 매번 조금 헷갈리고 생각을 많이 했었는데, 오늘 좀 깔끔하게 정리된 것 같아서 넘 행복하다.
const callbackFn = (result, item) => {}; const initialValue = []; // 0, '', {} 등등 어떤 데이터를 누적해서 저장하기 위한 구조 const newResult = someArr.reduce(callbackFn, initialValue);
reduce는 마치 국물을 쫄이는 것
과 같이 어떤 input에 대해서 새로운 차원의 output을 만든다. 그리고 callbackFn의 인자를 acc, cur 보다는 result, item으로 받는 것이 더 직관적이고 가독성이 좋다. initialValue를 통해서 reduce 함수만 보고서 어떤 형태의 결과가 나오는지 알 수 있다.(반대로 내가 원하는 결과의 모양이 나오도록 initialValue를 설정해주면 된다.)
정말 이 사실을 아는 것만해도 앞으로 reduce를 통해서 코드를 작성하는 게 훨씬 쉬워질 것 같다.
🐾 오늘의 교훈
개발과 공부도 좋지만, 이력서 작성과 같은 준비도 서두르자. 아니, 어쩌면 지금은 이게 더 중요할 수도 있다. 집중하자!
🪵 참고
- 없음
undefined