본문 바로가기

업무 TIL

230801 월요일 업무 TIL

8월의 시작, 화이팅!

 

'오늘의 고민' 

전체적인 API (@Get ~ @Delete 요청까지)를 설계할때 나 혼자만 구현된다고 끝낼게 아니라, 같은 기능을 가진 다른 팀원들은 어떤 식으로 짰는지 주의깊게 봐야하며, 어느정도 양식을 통일해서 API를 설계&수정하는게 좋다고 느꼈다. 나 혼자 이질적인 API를 짰어서 수정하느라 혼났다. 

 

[잘한점]

팀원이 코드 시범을 보여준 내용이 있었는데, 그 내용을 최대한 기억해서 내 코드에 적용하려는 연습을 했다. ex) map() 메소드는 await 비동기 처리가 어려우니, for...of 반복문으로 비동기 처리할 것.


[개선점]

상황1) API를 설계할때 혼자서 '이거 결과값 나오네~'에서 끝내는 경향이 짙어, 나중에 리팩토링 할때 고생을 많이 하는 것 같다. 

원인1) 다른 팀원들이 구현한 내용을 이해하는데 어차피 시간이 오래 걸리니, 얼른 내 업무를 끝내자 라는 마인드에서 다른 팀원들이 구현한 내용을 깊게 보지 않는 것 같다. 

액션플랜1) API를 설계할때 혼자서 '이거 결과값 나오네~'에서 끝낼게 아니라, 비슷한 기능을 가진 api에 대해서 다른 팀원들은 어떻게 구현했는지 볼 것 

 

 

[배운점]
배움1) TypeError: Cannot read properties of null (reading 'id')라는 에러가 발생했었다. 엔티티가 2개가 있었는데 내가 해당 객체의 중심이 되는 엔티티를 바꾸고 그 id값으로 포스트맨 param 값에 넣었었는데, 중심이 되는 엔티티를 바꾸기 이전의 엔티티 id로 조회를 했기 때문에 위와 같은 에러가 발생했다. 

의미1) 어떤 엔티티의 id값인지 구분 중요하다. id는 테이블 내부의 각 컬럼들의 유일한 고유값이다! 

배움2) object.assign()은 얕은 복사이다. <-> 깊은 복사도 있음. 

의미2) 객체의 자체 속성을 복사하여, 대상 객체에 붙여넣는다. 

 

MDN 문서를 통해 코드를 복습해 보았다. 

target은 목표 객체로, 출처 객체(source)의 속성을 복사해 반영한 후 반환할 객체이다. -> 얘가 반환값! 

source는 출처 객체로, 목표 객체(target)에 반영하고자 하는 속성들을 갖고 있는 객체이다. 

const target = { a:1, b:2 }; 
const source = { b:4, c:5 }; 

const returnedTarget = Object.assign(target, source); 

console.log(target); // Object { a:1, b:4, c:5 } 
console.log(target == returnedTarget) // true

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

'업무 TIL' 카테고리의 다른 글

230731 월요일 업무 TIL  (0) 2023.08.01
230728 금요일 업무 TIL  (0) 2023.08.01
230727 목요일 업무 TIL  (0) 2023.08.01
230726 수요일 업무 TIL  (0) 2023.08.01
230725 화요일 업무 TIL  (0) 2023.07.26