C# coding Conventions - TeamCrazyPerformance/Game_study GitHub Wiki

๋ณ€์ˆ˜ ์ด๋ฆ„ ์ง“๊ธฐ์˜ ์ข…๋ฅ˜

๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ง“๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๋‚˜ ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํ‘œ๊ธฐ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ C#์€ ์ฃผ๋กœ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•๊ณผ ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•(Camel Case): ๊ฐ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๋˜ ์ฒซ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. Java, C#, JS์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ex) camelCase, southKorea, numberOfProjectiles,...
  • ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ•(Pascal Case): ๊ฐ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•œ๋‹ค. ์š”์ฆˆ์Œ์€ ๊ทธ๋ƒฅ ์ด๊ฒƒ๋„ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ๋Š” ์นด๋ฉœ๋ฐฑ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋ผ๊ณ  ํ•ด๋„ ์ ์–ด๋„ ํด๋ž˜์Šค ์ด๋ฆ„์€ ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋ณดํ†ต์ด๋‹ค. ex) PascalCase, NationalBasketballAssociation, TotalCalculator,...
  • ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•(Snake Case): ๋ชจ๋‘ ์†Œ๋ฌธ์ž(ํ˜น์€ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž)๋กœ ์“ฐ๋˜, ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๋ฐ‘์ค„(_) ๊ธฐํ˜ธ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. C, C++์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜, ์œ ํ˜•, ํด๋ž˜์Šค ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋ฅผ, ์ƒ์ˆ˜ ๋ฐ ๋งคํฌ๋กœ ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๊ด€๋ก€. ex) snake_case, united_states_of_america, input_key,...

์‚ฌ์šฉ์ฒ˜

ํŒŒ์Šค์นผ ์ผ€์ด์Šค(PascalCase)

  • class, record, sturct, namespace๋Š” ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ•์„ ๋”ฐ๋ฅธ๋‹ค. record์˜ ํ”„๋กœํผํ‹ฐ๋Š” public์ด๋ฏ€๋กœ ํŒŒ์Šค์นผ ์ผ€์ด์Šค๋กœ ์ž‘์„ฑ๋œ๋‹ค.
  • interface ๋˜ํ•œ ํŒŒ์Šค์นผ ์ผ€์ด์Šค๋กœ ์ž‘์„ฑํ•˜๋˜ ์ด๋ฆ„ ์•ž์— "I"๋ฅผ ๋ถ™์ด๊ณ , ์—ด๊ฑฐํ˜•(enum)์„ ์„ ์–ธํ•  ๋•Œ๋Š” ์•ž์— "E"๋ฅผ ๋ถ™์ธ๋‹ค. enum์˜ ์š”์†Œ ๋˜ํ•œ ํŒŒ์Šค์นผ ํ˜•์‹์„ ๋”ฐ๋ฅธ๋‹ค.
  • public ํ•„๋“œ, ์†์„ฑ, ์ด๋ฒคํŠธ, ๋ฉ”์„œ๋“œ ๋ฐ ๋กœ์ปฌ ํ•จ์ˆ˜๋Š” ํŒŒ์Šค์นผ์ผ€์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์นด๋ฉœ ์ผ€์ด์Šค(camelCase)

  • private ํ˜น์€ internal์™€ ๊ฐ™์€ ์•ก์„ธ์Šค ํ•œ์ •์ž๋Š” ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•์„ ๋”ฐ๋ฅด๊ณ , ํ”„๋กœํผํ‹ฐ์˜ ๊ฒฝ์šฐ ์ด๋ฆ„ ์•ž์— "_"์„ ๋ถ™์ธ๋‹ค.
  • static ํ•„๋“œ๋กœ ์ž‘์—…ํ•  ๋•Œ ์Šค๋ ˆ๋“œ ์ •์  ์‚ฌ์šฉ์„ ์œ„ํ•ด ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ฉ”์†Œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•์„ ๋”ฐ๋ฅธ๋‹ค.

์Šค๋„ค์ดํฌ ์ผ€์ด์Šค(SNAKE_CASE)

  • const๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€๋ฌธ์ž ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•(UPPER_SNAKE_CASE)์„ ๋”ฐ๋ฅธ๋‹ค. image

๋ ˆ์ด์•„์›ƒ

์ข‹์€ ๋ ˆ์ด์•„์›ƒ์€ ์„œ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๊ฐ•์กฐํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ ๋‹ค. Microsoft ์˜ˆ์ œ ๋ฐ ์ƒ˜ํ”Œ์€ ๋‹ค์Œ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.

  • ํ•œ ์ค„์— ํ•˜๋‚˜์˜ ๋ฌธ์žฅ๋งŒ ์ž‘์„ฑํ•  ๊ฒƒ.
  • ํ•œ ์ค„์— ํ•˜๋‚˜์˜ ์„ ์–ธ๋งŒ ์ž‘์„ฑํ•  ๊ฒƒ.
  • ์—ฐ์† ์ค„์ด ์ž๋™์œผ๋กœ ๋“ค์—ฌ์“ฐ๊ธฐ๋˜์ง€ ์•Š์œผ๋ฉด ํ•œ ํƒญ ๊ฐ„๊ฒฉ(๊ณต๋ฐฑ 4๊ฐœ)์„ ๋“ค์—ฌ์“ธ ๊ฒƒ.
  • ๋ฉ”์„œ๋“œ ์ •์˜์™€ ํ”„๋กœํผํ‹ฐ ์ •์˜ ์‚ฌ์ด์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋นˆ ์ค„์„ ์ถ”๊ฐ€ํ•  ๊ฒƒ.
  • ์ค‘๊ด„ํ˜ธ("{}")๋Š” ๋‹ค์Œ ์ค„์— ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„์‹์˜ ์ ˆ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•  ๊ฒƒ.
  • ํด๋ž˜์Šค ์•ˆ์—์„œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ์˜ ๋“ฑ์žฅ ์ˆœ์„œ๋Š” ๋‹ค์Œ์„ ๋”ฐ๋ฅธ๋‹ค.
  1. public ๋ฉค๋ฒ„๋ณ€์ˆ˜/ํ”„๋กœํผํ‹ฐ
  2. internal ๋ฉค๋ฒ„๋ณ€์ˆ˜/ํ”„๋กœํผํ‹ฐ
  3. protected ๋ฉค๋ฒ„๋ณ€์ˆ˜/ํ”„๋กœํผํ‹ฐ
  4. private ๋ฉค๋ฒ„๋ณ€์ˆ˜
  5. ์ƒ์„ฑ์ž
  6. public ๋ฉ”์„œ๋“œ
  7. Internal ๋ฉ”์„œ๋“œ
  8. protected ๋ฉ”์„œ๋“œ
  9. private ๋ฉ”์„œ๋“œ

19์˜ค์„ฑํ˜

์ฐธ๊ณ