[javascript] Svelte에서 비공개(private) 변수 및 메소드를 선언하는 방법은 어떻게 되나요?

Svelte에서는 파일 내에서 아무 영역에나 변수와 메소드를 선언할 수 있습니다. 그러나 이름 앞에 $를 붙이면 해당 요소는 비공개로 처리됩니다. 이렇게 비공개로 선언된 변수와 메소드는 다른 파일이나 컴포넌트에서 접근할 수 없습니다.

여기에 예시가 있습니다:

<script>
  let count = 0; // 공개 변수
  let $privateCount = 0; // 비공개 변수

  function increment() {
    count += 1; // 공개 메소드 내에서 count 변수에 접근 가능
    $privateCount += 1; // 공개 메소드 내에서 $privateCount 변수에 접근 가능
  }

  function $privateMethod() {
    // 비공개 메소드 내용
  }
</script>

위의 예시에서 count 변수와 increment 메소드는 공개되어 다른 컴포넌트에서 접근할 수 있습니다. 반면에 $privateCount 변수와 $privateMethod 메소드는 비공개로 선언되었기 때문에 외부에서 접근할 수 없습니다.

비공개 변수와 메소드를 사용하면 컴포넌트 내에서만 유효한 상태나 동작을 정의할 수 있습니다. 이는 코드의 모듈성을 높이고, 의도치 않은 접근으로 인한 오류를 방지하는 데 도움이 됩니다.