์ฝ๋ฉ ์ผ์ด์ค ๋ณํ โ ํ๋ก๊ทธ๋๋ฐ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์๋ฒฝ ๊ฐ์ด๋
์ฝ๋ฉ์์ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋ ์์ํฌ๋ ๊ถ์ฅํ๋ ์ผ์ด์ค ์คํ์ผ์ด ์์ผ๋ฉฐ, ํ ํ๋ก์ ํธ์์๋ ๋์ผํ ์ปจ๋ฒค์ ์ ๋ฐ๋ฅด๋ ๊ฒ์ด ํ์์ ๋๋ค. ์ด ๋๊ตฌ๋ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋ฉด 5๊ฐ์ง ์ฃผ์ ์ฝ๋ฉ ์ผ์ด์ค ํ์์ผ๋ก ์ฆ์ ๋ณํํ์ฌ ๋ณต์ฌํ ์ ์์ต๋๋ค.
์ผ์ด์ค๋ณ ์ฃผ์ ์ฌ์ฉ์ฒ:
camelCase: JavaScript/TypeScript ๋ณ์, ํจ์๋ช
PascalCase: ํด๋์ค๋ช
, React ์ปดํฌ๋ํธ, TypeScript ์ธํฐํ์ด์ค
snake_case: Python ๋ณ์/ํจ์, Ruby, SQL ์ปฌ๋ผ๋ช
kebab-case: CSS ํด๋์ค, HTML ์์ฑ, URL ์ฌ๋ฌ๊ทธ
SCREAMING_SNAKE_CASE: ์์, ํ๊ฒฝ ๋ณ์(.env)
flatcase: ์ผ๋ถ ํจํค์ง๋ช
, ํ์ผ๋ช
(์๋ฌธ์ ์ฐ์)
์ ๋ ฅ ํ ์คํธ๋ ๊ณต๋ฐฑ, ์ธ๋์ค์ฝ์ด, ํ์ดํ, ๋๋ฌธ์ ๊ฒฝ๊ณ ๋ฑ ๋ค์ํ ๊ตฌ๋ถ์๋ฅผ ์๋์ผ๋ก ์ธ์ํ์ฌ ๋จ์ด๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด "myVariableName", "my_variable_name", "my-variable-name" ๋ชจ๋ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฑ๋ฉ๋๋ค. ์ฌ๋ฌ ๋จ์ด๋ฅผ ํ ๋ฒ์ ๋ณํํ๋ ค๋ฉด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ ๋ ฅํ์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ (FAQ)
A: JavaScript์์ ๋ณ์์ ํจ์๋ camelCase(์: getUserName), ์์ฑ์ ํจ์์ ํด๋์ค๋ PascalCase(์: UserProfile)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์ค ์ปจ๋ฒค์ ์ ๋๋ค. React ์ปดํฌ๋ํธ ํ์ผ๋ช ๊ณผ ์ปดํฌ๋ํธ ์์ฒด๋ PascalCase๋ฅผ ์๋๋ค. ์์๋ SCREAMING_SNAKE_CASE๋ฅผ ์ฌ์ฉํ๋ฉฐ, CSS ๋ชจ๋์ด๋ ํ์ผ๋ช ์ kebab-case๋ฅผ ์ ํธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
A: Go๋ ๋ ํนํ ์ปจ๋ฒค์ ์ ์ฌ์ฉํฉ๋๋ค. ๊ณต๊ฐ(exported) ์๋ณ์๋ PascalCase, ๋น๊ณต๊ฐ(unexported) ์๋ณ์๋ camelCase๋ฅผ ์ฌ์ฉํฉ๋๋ค. snake_case๋ kebab-case๋ Go์์ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ํจํค์ง๋ช ์ ์๋ฌธ์ ๋จ์ผ ๋จ์ด(flatcase)๊ฐ ๊ถ์ฅ๋ฉ๋๋ค.
A: SQL ํ์ค๊ณผ ๋๋ถ๋ถ์ RDBMS์์๋ snake_case๊ฐ ๊ถ์ฅ๋ฉ๋๋ค(์: user_id, created_at). PostgreSQL, MySQL ๋ชจ๋ snake_case๋ฅผ ๊ด๋ก๋ก ๋ฐ๋ฅด๋ฉฐ, camelCase ์ปฌ๋ผ๋ช ์ ์ฟผ๋ฆฌ ์ ๋ฐ์ดํ ์ฒ๋ฆฌ๊ฐ ํ์ํด ๋ถํธํฉ๋๋ค. Prisma, Sequelize ๋ฑ ORM์ snake_case DB ์ปฌ๋ผ์ camelCase ์์ฑ์ผ๋ก ์๋ ๋งคํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.