본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://fastcampus.info/4n8ztzq
250728(월) 28일차
문법 - 객체 - 프로그래밍 도구로서의 객체
객체를 만들고 조작하고 복사하는 방법
기본적인 객체 생성 방식은 객체 리터럴이지만
함수, 클래스, 전개 연산자나 object.assign( )을 이용한 복사기법까지 객체를 유연하게 생성하고 다루는 다양한 패턴을 배웠다
- 객체 리터럴 vs 함수 생성 vs 클래스 생성
- 구조와 데이터의 분리
- 얕은 복사, 깊은 복사, 참조의 개념
- 동적 속성 추가 및 삭제, 컴퓨티드 프로퍼티 사용법
프라이빗 필드
객체 안에 외부에서 접근할 수 없는 프라이빗 속성을 만들 수 있음
class Example {
#secret = 'hidden';
getSecret() {
return this.#secret;
}
}
자바스크립트에서도 #을 사용한 프라이빗 필드 문법을 공식 지원함.
다만 브라우저 호환성 ㅁ누제로 실무에서는 바벨 등의 트랜스파일러를 사용하는 것이 안전
객체는 사고의 도구
객체를 데이터를 담는 그릇으로만 보지말고
현실의 개념을 코드로 모델링하는 수단으로 인식하자
- 객체를 어떤 구조로 만들 것인가
- 그 구조와 데이터를 어떻게 분리할 것인가
- 유지보수에 강한 구조란 무엇인가
이번 강의에서는 자바스크립트 객체에 대해 두 가지 관점에서 배웠다
데이터로서의 객체 / 프로그래밍 도구로서의 객체
이 두 관점을 통해 객체를 단순한 값 저장소로만 보던 기존 시각에서 벗어나 어떻게 모델링하고 구조화할 것인가에 대한 시야를 넓힐 수 있었다
객체란 단순한 데이터 묶음이 아니라 사고의 구조를 코드로 표현하는 도구이고
함수와 클래스, 타입, 전개 연산자, 프라이빗 필드 등 다양한 문법 요소가 그 구조를 더욱 정밀하고 확장 가능하게 만들어 준다는 것을 실습하며 체감했다
앞으로는 객체를 만들 때마다 이 구조가 향후 유지보수와 확장에 유리할지, 구조와 데이터를 잘 분리했는지를 한 번쯤은 고민하며 더 나은 코드를 설계해보기