0Pricing
Zig Academy · 강의

undefined와 초기화되지 않은 메모리

값을 갖기 전에 저장 공간을 예약합니다.

undefined와 초기화되지 않은 메모리은(는) CoddyKit의 무료 Zig Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Zig Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Zig Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

먼저 공간 확보하기

값을 넣기 전에 저장 공간을 먼저 확보하고 싶을 때가 있습니다. Zig는 바로 이 목적을 위해 undefined 키워드를 제공합니다.

undefined 만나기

undefined를 작성하면 메모리는 예약되지만 아직 의미 있는 값은 없는 바인딩을 선언합니다. 곧 값을 채우겠다는 약속입니다.

var buffer: [16]u8 = undefined;

하나의 약속입니다

undefined는 읽기 전에 실제 값을 할당하겠다는 약속입니다. 먼저 읽으면 지정되지 않은 비트 패턴인 쓰레기 값을 얻게 됩니다.

버퍼와 함께 흔히 사용합니다

곧 채울 고정 배열이 대표적인 경우입니다. buffer의 크기를 정하고 undefined 상태로 둔 다음 요소별로 값을 기록합니다.

var line: [256]u8 = undefined;

안전 기능이 찾아냅니다

Debug 및 ReleaseSafe 모드에서 Zig는 undefined 메모리를 0xAA 바이트로 채웁니다. 이 뚜렷한 패턴은 실수로 값을 너무 일찍 읽는 문제를 찾는 데 도움이 됩니다.

읽기 전에 할당하기

규칙은 간단합니다. undefined 바인딩을 읽기 전에 항상 실제 값을 기록하세요. 먼저 읽는 것은 Zig가 피하도록 요구하는 버그입니다.

var x: i32 = undefined;
x = 42;

undefined는 null이 아닙니다

undefined는 초기화되지 않은 메모리를 뜻하고, null은 선택적 값에 의도적으로 값이 없는 상태를 뜻합니다. 둘은 완전히 다른 문제를 해결합니다.

0으로 초기화하는 비용 건너뛰기

큰 저장 공간을 undefined로 두면 필요하지 않은 0을 기록하는 비용을 피할 수 있습니다. 이는 게으름이 아니라 의도적인 성능 선택입니다.

필드도 undefined일 수 있습니다

나중에 설정할 구조체 필드도 undefined로 시작할 수 있습니다. 핵심은 정직하고 명시적인 초기화되지 않은 상태입니다.

var p: Point = undefined;

절제해서 사용하기

대부분의 바인딩은 처음부터 실제 값을 가져야 합니다. 원시 저장 공간을 미리 확보하는 것이 정말 필요할 때만 undefined를 사용하세요.

숨기는 것보다 명시하는 것이 낫습니다

다른 언어는 변수를 조용히 초기화하지 않은 상태로 둘 수 있습니다. Zig는 이를 명시적으로 만들어 코드를 읽는 사람이 의도를 분명히 알 수 있게 합니다.

빠른 확인

var x: i32 = undefined;를 작성하고 x에 값을 할당하기 전에 읽었습니다. 무엇을 한 것일까요?

요약

undefined는 값 없이 저장 공간을 예약하며, 버퍼에 자주 사용된다는 것을 배웠습니다. 항상 읽기 전에 할당하고 null과 다르다는 점을 기억하세요. 📦

자주 묻는 질문

“undefined와 초기화되지 않은 메모리” 강의는 무료인가요?

네 — “undefined와 초기화되지 않은 메모리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Zig Academy 강의 전체를 잠금 해제할 수 있습니다. Zig Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“undefined와 초기화되지 않은 메모리”에서 뭘 배우나요?

값을 갖기 전에 저장 공간을 예약합니다. 브라우저에서 직접 실행하는 실습 코드로 Zig Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Zig Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Zig Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“undefined와 초기화되지 않은 메모리” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Zig Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Zig Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 절대 바뀌지 않는 값에는 const 사용하기
  2. 변경 가능한 상태에는 var 사용하기
  3. 타입 추론과 명시적 타입 비교
  4. undefined와 초기화되지 않은 메모리
← Zig Academy(으)로 돌아가기