<blockquote>
<p>๋‚ด์šฉ์— ๋Œ€ํ•œ ์ถœ์ฒ˜:  <a href="https://stackoverflow.com/a/66364221/13160750">https://stackoverflow.com/a/66364221/13160750</a></p>
</blockquote>
<p><img src="https://blog.atj.sh/post-attachments/v/0194e4fa-e3f6-7441-a8cf-6e0824170dc9" alt="env::var(&quot;tableName&quot;).expect(&quot;failed to resolve table&quot;) ๋ผ๋Š” ๋‚ด์šฉ์˜ Rust ์†Œ์Šค์ฝ”๋“œ." width="100%"></p>
<p>Rust ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด, ์œ„ ์Šคํฌ๋ฆฐ์ƒท์ฒ˜๋Ÿผ <code>Result</code>๋‚˜ <code>Option</code> enum์˜ <code>.expect</code> ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋‹ค.</p>
<p>expect ๋ฉ”์†Œ๋“œ๋Š” ํ•ด๋‹น enum์ด <code>Option::Some</code>์ด๋ฉด ์•ˆ์— ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
๋ฐ˜๋Œ€๋กœ <code>Option::None</code>์ด๋ฉด .expect์˜ ์ธ์ž ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ํŒจ๋‹‰์„ ์ผ์œผํ‚จ๋‹ค.</p>
<p>๊ทธ๋Ÿฐ๋ฐ ์™œ <strong>๋ฉ”์†Œ๋“œ ์ด๋ฆ„</strong>์ด ํ•˜ํ•„ .expect์ผ๊นŒ? </p>
<p>๋ญ˜ ๊ธฐ๋Œ€ํ•œ๋‹ค๋Š” ๊ฑธ๊นŒ? 
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ์จ๋Š” ๋ฉ”์†Œ๋“œ๋กœ๋ถ€ํ„ฐ ํŒจ๋‹‰์ด ์•„๋‹Œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋Œ€ํ•  ํ…๋ฐ...</p>
<p>Rust The Book์ด๋‚˜ <code>Result</code>, <code>Option</code> enum์˜ ์„ค๋ช… ๋ฌธ์„œ์—๋„ expect์˜ ์ด๋ฆ„์˜ ๊ธฐ์›์€ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๋‹ค.</p>
<p>๋‹ค๋งŒ, <a href="https://stackoverflow.com/a/66364221/13160750">Stack Overflow</a>์—์„œ ์‹ ๋น™์„ฑ ์žˆ๋Š” ์˜๊ฒฌ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 
<strong>Rust ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฐœ๋ฐœ ๊ณผ์ • ์†์—์„œ expect ๋ฉ”์†Œ๋“œ์˜ ๊ธฐ์›์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค</strong>๋Š” ๋‚ด์šฉ์ด๋‹ค.</p>
<blockquote>
<p>Rust ์–ธ์–ด์˜ ๊ณต์‹ <strong>์ปดํŒŒ์ผ๋Ÿฌ</strong>์ธ <code>rustc</code>์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ†ตํ•ด, <code>.expect</code> ๋ฉ”์†Œ๋“œ์˜ ๊ธฐ์›์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.</p>
<p>rustc <strong>์ปดํŒŒ์ผ๋Ÿฌ์˜ ์†Œ์Šค์ฝ”๋“œ</strong>์˜ <code>Option</code> struct ์ชฝ ์†Œ์Šค์ฝ”๋“œ์—๋Š” expect์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์ด์ „๋ถ€ํ„ฐ ์กด์žฌํ–ˆ๋‹ค.</p>
<p>๊ทธ ํ•จ์ˆ˜๋Š” </p>
<ul>
<li><code>expect(p, token::SEMI)</code> 
(= &quot;SEMI&quot; ํ† ํฐ์ด parse๋˜๊ธฐ๋ฅผ ์˜ˆ์ƒํ•˜๊ธฐ)</li>
<li><code>expect_word(p, &quot;let&quot;)</code> 
(= &quot;let&quot; ํ‚ค์›Œ๋“œ๊ฐ€ parse๋˜๊ธฐ๋ฅผ ์˜ˆ์ƒํ•˜๊ธฐ)</li>
</ul>
<p>...์™€ ๊ฐ™์€ ๊ผด๋กœ ์“ฐ์˜€๋‹ค. ๋งŒ์•ฝ ์˜ˆ์ƒํ•œ ๋Œ€๋กœ parse๋˜์ง€ ์•Š์œผ๋ฉด, ์ปดํŒŒ์ผ์„ ์‹คํŒจ์‹œํ‚ค๊ณ  &quot;&#39;let&#39; ํ‚ค์›Œ๋“œ๋ฅผ <strong>์˜ˆ์ƒํ–ˆ์Œ</strong>&quot; (<code>expected keyword &#39;let&#39;</code>) ๋ผ๋Š” ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋˜์กŒ๋‹ค.</p>
<p>์ฐธ์œผ๋กœ ์œ ์šฉํ–ˆ๋˜ ์ด ํ•จ์ˆ˜๋Š” ์ด๋ฆ„์„ ์œ ์ง€ํ•œ ์ฑ„ ๊ธฐ๋Šฅ์ด &quot;<code>Option</code> ๋ณ€์ˆ˜๊ฐ€ <code>Some</code>์ธ์ง€&quot; ํ™•์ธํ•˜๋Š” ์ชฝ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๊ณ , ๊ฒฐ๊ตญ์—๋Š” Option์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ํ˜„์žฌ๊นŒ์ง€ ์œ ์ง€๋˜์—ˆ๋‹ค.</p>
</blockquote>
<p>... ์ฆ‰, (๊ตณ์ด Rust๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„) ์ปดํŒŒ์ผ๋Ÿฌ ๊ตฌ๋ฌธ ํ•ด์„ ์˜ค๋ฅ˜๋กœ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ด€์šฉ ๋ฌธ๊ตฌ์ธ <code>expected keyword &#39;let&#39;</code> ์—๋Ÿฌ๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ,
๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฝ”๋“œ๊ฐ€ ์ฝํž ์ˆ˜ ์žˆ๋„๋ก <code>expect</code>๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์ฐจ์šฉํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ๊ตณ์–ด์ง„ ๊ฒƒ์ด๋‹ค.</p>
<p>Stack Overflow์˜ ์› ๊ธ€์—์„œ๋„ &quot;(expect ๋ฉ”์†Œ๋“œ์˜ ์ง€๋‚œ ๊ณผ์ •๋“ค์„ ๋ดค์„ ๋•Œ) ๊ฐœ์ธ์ ์œผ๋กœ expect๋ผ๋Š” ์ด๋ฆ„์ด ์œ ๋ณ„๋‚œ ์ด๋ฆ„๊นŒ์ง€๋Š” ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค. ์ž์—ฐ์Šค๋Ÿฌ์šด ์ด๋ฆ„์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.&quot;๋ผ๋Š” ์ด๋ฆ„ ํ‰๊ฐ€๋ฅผ ๋ง๋ฏธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋„ ์ด ํ‰๊ฐ€์— ๋™์˜ํ•˜๋Š” ํŽธ์ด๋‹ค.</p>