상세 컨텐츠

본문 제목

[codecademy JavaScript] 5장. Scope

22-23/22-23 리액트 스타터 1

by YUZ 유즈 2022. 9. 22. 12:31

본문

728x90

Scope(스코프, 변수 영역)

스코프는 프로그래밍에서 가장 중요한 개념 중 하나입니다. 스코프는 변수에 접근하거나 참조할 수 있는 위치를 정의합니다. 스코프에 따라 어떤 변수는 프로그램 내 어디에서나 접근할 수 있지만, 어떤 변수는 특정 블록에서만 접근할 수 있습니다.

 


 

<블록>

우리는 함수와 if 문에서 블록을 본 적이 있습니다. 블록은 중괄호 ‘{}’로 감싸진 코드입니다. 블록은 하나 이상의 명령문을 그룹화하고, 코드에 중요한 구조적 표시 역할을 합니다. 변수는 블록의 외부 또는 내부에 존재할 수 있습니다.

 

<전역 스코프>

전역 스코프에서는 변수가 블록의 외부에서 선언됩니다. 이렇게 선언된 변수를 전역 변수라고 합니다. 전역 변수는 블록 코드를 포함한 프로그램의 모든 코드에서 접근할 수 있습니다. 이 변수는 어디에서든 접근할 수 있음으로, 재할당이 불가능한 const 키워드를 사용해 선언하는 것을 추천합니다.

 

<블록 스코프>

블록 스코프에서는 변수가 블록의 내부에서 선언됩니다. 이렇게 선언된 변수를 지역 변수라고 합니다. 지역 변수는 블록 내부의 코드에서만 접근할 수 있습니다. 만약 블록 외부에서 지역 변수에 접근한다면, 참조 오류가 발생합니다.

 

<스코프 오염>

전역 변수를 사용해 변수에 접근하는 것은 편하게 느껴질 수 있으나, 너무 많은 전역 변수가 있으면 프로그램에 문제가 발생할 수 있습니다전역 변수를 선언하면 전역 네임 스페이스를 사용하게 됩니다. 이 변수는 프로그램이 끝날 때까지 남아있으며, 전역 변수를 많이 사용할수록 전역 네임 스페이스도 빠르게 채워집니다.

스코프 오염은 전역 네임 스페이스에 존재하는 전역 변수가 너무 많거나, 다른 스코프에서 변수를 재사용할 때 일어납니다. 따라서 가능한 전역 변수를 적게 사용하는 것을 권장합니다.

 

<스코핑을 잘하기>

스코핑을 잘하기 위해서는 가능한 한 엄격하게 범위를 지정해야 합니다. 스코핑을 잘하면 여러 장점이 있습니다.

1. 블록이 코드를 나누어 개별로 구성하기 때문에, 코드의 가독성이 높아집니다.

2. 블록을 통해 지역 변수를 쉽게 파악하여, 코드를 이해하기 쉬워집니다.

3. 코드의 유지 관리가 쉬워집니다.

4. 블록 실행이 끝나면, 메모리에 더 이상 존재하지 않기 때문에, 메모리를 절약할 수 있습니다.

 

효율적으로 스코핑하는 방법 중 하나는 각각의 변수 이름을 다르게 선언하여 재사용을 막는 것입니다.

 


Quiz

 

1. 블록 외부에서 선언되어 프로그램 어디에서든 접근이 가능한 변수 영역을 (     )라고 한다.

2. 블록 내부에서 선언되어 블록 내부 코드에서만 접근이 가능한 변수 영역을 (     )라고 한다.

3. 아래 코드에서 스코프 오염이 발생했습니다. 코드를 수정하세요.


Corner React1

Editor: 이조

728x90

관련글 더보기