[JSDoc] 유용한 주석 달기
올바른 네이밍과 가독성 좋게 코드를 작성한다면, 코드 그 자체로 모든 것이 설명되므로 주석은 불필요하다고 할 수도 있겠다. 그러나 가끔 해당 프로젝트 코드 외적인 이유를 설명해야 할 때도 있고, (이런 일이 없는 것이 더 좋긴 하겠지만) 비슷하지만 약간 다른 기능을 하는 함수가 존재하는 경우도 있을수 있다. 예를들어... 아래와 같은 경우가 있을 수 있다. 피시방에서 쓰는 프로그램을 만드는데, 내가 프론트 작업을 해야 한다. 근데 백엔드에서 데이터를 아래와 같이 보내주고 있었다. [ { id: 1, name: '10시간 이용권', count: 10, price: 10000, }, { id: 2, name: '20시간 이용권', count: 20, price: 15000, }, ]; 그런데... 피시방에서..
2022. 9. 6.
[Javascript] 객체 수정시 원본이 변경되는 문제(얕은 복사와 깊은 복사)
자바스크립트의 값의 종류는 원시값과 참조값이 존재한다. Boolean, String, number, null, undefined : 원시값 Object, Array : 참조값 원시값의 경우 새로운 변수에 할당시 값 자체가 할당되고, 참조값은 값의 주소가 할당된다. 그러므로 새로운 변수에 할당 후 수정하면, 객체나 배열의 경우 원본의 값이 변경되어버린다. const obj = {'a': 1, 'b': 2}; const tempObj = obj; tempObj.a = 3; console.log(obj); // {'a': 3, 'b': 2} 문제 문제는, formData의 변경이 필요할때 등 원본을 보존하는 복사가 필요한 경우가 생긴다. 예를 들면, 아래와 같은 form 데이터가 있다. formData = {..
2021. 5. 6.
[Typscript] 유틸리티 타입 - Partial, Readonly, Record
Partial 일부의 속성만 가질 수 있을 때 사용한다. 예를 들어 게시글 인터페이스엔 제목, 글쓴이, 내용 등등이 있을 것이다. 게시글 수정시 항상 모든 필드를 수정하지는 않는다. 게시글에 포함된 프로퍼티 중 일부의 프로퍼티(하위 타입 집합)만 사용하고 싶을 때 사용할 수 있다. interface Post { title: string; author: string; content: string; isHidden: boolean; } // 게시글을 작성한다. const newPost = { title: 'hello world', author: 'effy', content: 'hello', isHidden: false, } // 수정하고 싶어졌다. 제목만 바꿀수도 있고, 내용만 바꿀수도 있고, 다 바꿀수도 ..
2020. 7. 21.