인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Sec님의 프로필 이미지

작성한 질문수

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

옵셔널 체이닝 문법

옵셔널 체이닝 적당한 깊이는 어느 정도인가요?

해결된 질문

작성

·

56

·

수정됨

0

구글에 '자바스크립트 옵셔널 체이닝 적당한 깊이'나 'JavaScript Optional Chaining at the Right Depth'로 검색해봐도 적당한 깊이가 어느 정도인지 안나오네요.

 

ChatGPT에 물어보니까
// 좋은 예시

const theme = user?.profile?.settings?.theme ?? 'light';

// 나쁜 예시 (남용)

const email = user?.profile?.settings?.preferences?.notification?.email?.address?.text;

라는데 제가 볼땐 3단계 깊이도 깊다고 생각해요.

 

일반적으로 옵셔널 체이닝의 적당한 깊이는 어느 정도인가요?

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

옵셔널 체이닝은 단순히 앞에 것이 없어도 에러가 안 나게 해주는 것이라 깊이를 따질 것은 아닙니다. 나중에 타입스크립트를 쓰게 되시면 알아서 최소한으로만 적을 수 있게 됩니다(타입스크립트는 객체 속성이 undefined나 null이 될 수 있는지 여부를 체크해줍니다)

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. Sec님, 옵셔널 체이닝에 대해 궁금증이 있으시군요.

옵셔널 체이닝이란 JavaScript에서 null이나 undefined일 수 있는 객체의 체인을 안전하게 액세스할 수 있게 해주는 문법입니다. 옵셔널 체이닝은 객체 탐색 시 안전성을 높여주는 유용한 기능이지만, 지나치게 깊은 탐색은 코드의 가독성을 떨어뜨리고 유지보수를 어렵게 만들 수 있습니다.

일반적으로, 옵셔널 체이닝의 적당한 깊이는 상황에 따라 다르지만, 2~3단계를 넘어서면 코드의 복잡도가 증가할 가능성이 큽니다. 깊이가 깊어질수록 코드의 가독성이 떨어질 수 있으며, 이는 코드 리뷰나 유지보수 시 불편함을 초래할 수 있습니다.

따라서, 옵셔널 체이닝을 사용할 때는:
- 객체 구조가 복잡하다면, 중간 결과를 변수에 저장하여 가독성을 높이는 방법을 고려해보세요.
- 데이터를 조작하기 전에 필요한 데이터를 올바르게 구조화하는 것이 중요합니다.

질문해주신 예시에서, 최대한 2단계 정도로 유지하려고 노력하는 것이 좋습니다. 만약 그 이상의 깊이가 필요하다면, 구조 자체를 리팩토링하거나, 중간 값을 변수에 저장하여 가독성을 높이는 것을 고려하시면 좋습니다.

아래는 관련된 기존 질문과 답변 링크입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Sec님의 프로필 이미지

작성한 질문수

질문하기