심볼 관련 질문
255
작성한 질문수 6
안녕하세요.자바스크립트 중급강의 듣다가 질문 드립니다.영상 5:56 부분에서 심볼을 사용하면 user객체에 해당 메소드가 있었는지 고민할 필요가 없다고 말씀해주셨는데요.그 이유가 궁금합니다.다른 개발자가 만들어놓은 프로퍼티를 덮어쓸 위험이 없는 것과는 다른 이유가 또 있을 것 같아서요.답변 부탁드릴게요.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
qoswfxin님, 자바스크립트 중급 강의를 수강하시면서 심볼(Symbol)에 관한 궁금증을 가지셨군요.
심볼을 사용하는 주된 이유 중 하나는 말씀하신 것처럼 다른 개발자가 만들어놓은 프로퍼티를 덮어쓰는 것을 방지하기 위함입니다. 심볼은 고유하고 수정 불가능한 데이터 타입으로, 객체의 고유한 식별자로 사용할 수 있습니다. 이 특성 덕분에 심볼을 프로퍼티 키로 사용하면 라이브러리나 다른 코드에서 우연히 같은 이름의 프로퍼티 키를 사용했을 때 발생할 수 있는 충돌을 피할 수 있습니다.
추가로 심볼을 사용하는 이유는 다음과 같습니다:
- 객체의 속성을 비공개로 만들 수 있어, 객체의 일부 속성을 숨기고 싶을 때 유용합니다. 심볼로 만든 프로퍼티는 for…in 루프나 Object.keys() 같은 메서드로 접근할 수 없습니다.
- Well-Known 심볼을 사용하면 기본 언어 작업을 사용자 정의할 수 있어, 내장된 메서드의 동작을 변경하고자 할 때 활용할 수 있습니다. 예를 들어 Symbol.iterator를 활용하여 객체의 기본 반복자를 정의할 수 있습니다.
심볼을 통해 이런 유연성과 안정성을 동시에 확보할 수 있으므로, 코드의 확장성과 유지보수성 측면에서 여러 장점을 제공합니다.
질문에 대한 충분한 답변이 되었길 바라며, 강의 수강 중 더 궁금한 사항이 생기신다면 언제든지 문의해주세요.
3강 질문
0
13
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
25
1
2강 nodejs 3단계 설명 질문
0
32
1
imagesLoaded에 관한 질문
0
19
2
useEffect와 lifecycle문의
0
26
2
프론트엔드 학습 수준 문의
0
37
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
47
2
최근 코테, 과제 테스트 트렌드
0
67
2
lucide react 아이콘 설치
0
46
2
17강 zustand store 서버에서 생성
1
36
1
문의관련 문의
0
44
2
next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?
0
55
2
76. 전문성 더하기: 놓치면 아쉬운 관련 기술들 수업 자료가 없어요.
0
46
2
ai 도구 질문
0
31
1
저는 왜 콘솔에서 props가 한 줄만 찍히나요?
0
47
1
렌더링 차단 리소스 javascript 실행에 관련해서 질문 있습니다.
0
47
2
데이터 로딩중 화면만 계속 나와요!!
0
53
2
퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요
0
79
2
02-04 layout.tsx 구조가 달라요
0
58
2
불변성을 지키며 수정 삭제를 할때도 Map이 유리한가요?
0
54
1
개인 프로젝트로 앱 개발해서 다운로드 1300 달성했는데 어느 정도 의미가 있을까요? (안드로이드 개발자)
0
69
1
22강 강의 영상 문의 드립니다.
0
49
2
async에서 catch 질문 있습니다.
0
536
2
마지막 부분에 질문 있습니다.
1
292
1





