Rust: ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฆ„์— ๋Œ€ํ•ด snake_case๋ฅผ ์ ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์— ๋งŒ๋“  2017๋…„ 10์›” 09์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-lang/rust

ํ˜„์žฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ Cargo.toml์ด ์žˆ๋Š” ๊ฒฝ์šฐ:

[package]
name = "some_package"
version = "0.0.0"

[[bin]]
name = "somePackage"
path = "src/main.rs"

Rustc๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

warning: crate `somePackage` should have a snake case name such as `some_package`
  |
  = note: #[warn(non_snake_case)] on by default

Rust ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ณตํ†ต ๋ช…๋ช… ๊ทœ์น™์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํฌ๋ ˆ์ดํŠธ์— ํ•ฉ๋ฆฌ์ ์ธ ์ด์œ ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์ด์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”์ด๋„ˆ๋ฆฌ์—๋„ ์ด๊ฒƒ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(ํฌ๋ ˆ์ดํŠธ ์ด๋ฆ„์€ camelCase๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฆ„๋งŒ ์žˆ์Œ).


$ rustc --version
rustc 1.22.0-nightly (05f8ddc46 2017-10-07)
A-lint C-feature-request

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ •์ฑ…์€ ์‹คํ–‰ ํŒŒ์ผ๊ณผ cdylib์— ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ƒ์ž ์ด๋ฆ„์— ๋Œ€ํ•ด์„œ๋งŒ #[warn(non_snake_case)] ๋ฅผ ๋Œ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ #![allow(non_snake_case)] ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ํฌ๋ ˆ์ดํŠธ์— ๋Œ€ํ•œ ๋ณดํ‘ธ๋ผ๊ธฐ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

๋‚˜๋Š” ์‹ค์ œ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํŒŒ๊ณ  ๋“ค์—ˆ๊ณ  Rust ํŒ€์ด ๋™์˜ํ•œ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๋ฐ›์•„๋“ค์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋นŒ๋“œ๋Š” [[bin]]::name ๋ฅผ --crate-name ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ณด์•˜๋‹ค.

  1. ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•  ๋•Œ snake_case ๊ทœ์น™์„ ์ ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  2. ๊ฒฐ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์  --bin-name ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ --crate-name ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ํ™”๋ฌผ๊ณผ์˜ ์กฐ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ 2๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

์ •์ฑ…์€ ์‹คํ–‰ ํŒŒ์ผ๊ณผ cdylib์— ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ƒ์ž ์ด๋ฆ„์— ๋Œ€ํ•ด์„œ๋งŒ #[warn(non_snake_case)] ๋ฅผ ๋Œ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ #![allow(non_snake_case)] ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ํฌ๋ ˆ์ดํŠธ์— ๋Œ€ํ•œ ๋ณดํ‘ธ๋ผ๊ธฐ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

์ •์ฑ…์€ ์‹คํ–‰ ํŒŒ์ผ๊ณผ cdylib์— ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ƒ์ž ์ด๋ฆ„์— ๋Œ€ํ•ด์„œ๋งŒ #[warn(non_snake_case)] ๋ฅผ ๋Œ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ #![allow(non_snake_case)] ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ํฌ๋ ˆ์ดํŠธ์— ๋Œ€ํ•œ ๋ณดํ‘ธ๋ผ๊ธฐ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฌผ์„ ๋งŒ๋“œ๋Š” ๋™์•ˆ ํฌ๋ ˆ์ดํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ด ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰