๊ธฐ๋ก๋ฐฉ

๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ• ์ •๋ฆฌ ๋ณธ๋ฌธ

CS

๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ• ์ •๋ฆฌ

Soom_1n 2024. 5. 20. 21:24
๐Ÿ’ก ์ข‹์€ ๊ฐœ๋ฐœ์ž์˜ ํ•„์ˆ˜ ๊ต์–‘์ธ ๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด์ž.

1. ๋Œ€ํ‘œ์ ์ธ ๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ• ์ข…๋ฅ˜ ์•Œ์•„๋ณด๊ธฐ
2. ๊ฐ ํ™˜๊ฒฝ ๋ณ„ ์ ์šฉ ์‚ฌ๋ก€
3. ์ข‹์€ ๋ณ€์ˆ˜ ์ž‘๋ช… ์ด๋ก 

๐Ÿ“š ๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ• ์ข…๋ฅ˜

1. ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•(Camel Case)

ํ˜•์‹ ์ฒซ ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž, ์ดํ›„ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž
์œ ๋ž˜ ๋‚™ํƒ€(camel)์˜ ํ˜น์ฒ˜๋Ÿผ ๋‹จ์–ด๊ฐ€ ์—ฐ๊ฒฐ๋  ๋•Œ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ๋Œ€๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ๋ชจ์–‘์—์„œ ์œ ๋ž˜
์˜๋„ ๊ธด ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ ๋‹จ์–ด๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
์žฅ์  ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  Java, JavaScript, C# ๋“ฑ์˜ ์–ธ์–ด์—์„œ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ
๋‹จ์  ๋งค์šฐ ๊ธด ๋ณ€์ˆ˜๋ช…์€ ์—ฌ์ „ํžˆ ์ฝ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ
์‚ฌ์šฉ ์˜ˆ userName, orderAmount, isLoggedIn, dailyUserTable

2. ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ•(Pascal Case)

ํ˜•์‹ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๊ฐ€ ๋Œ€๋ฌธ์ž
์œ ๋ž˜ 19์„ธ๊ธฐ ์ˆ˜ํ•™์ž ๋ธ”๋ ˆ์ฆˆ ํŒŒ์Šค์นผ์˜ ์ด๋ฆ„์—์„œ ์œ ๋ž˜
์˜๋„ ํด๋ž˜์Šค๋‚˜ ํƒ€์ž…๋ช…์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ณ€์ˆ˜๋ช…๊ณผ ์ง๊ด€์ ์œผ๋กœ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ.
์žฅ์  ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ณ , Typescript์™€ C#์—์„œ ๋งŽ์ด ์‚ฌ์šฉ
๋‹จ์  ๋งค์šฐ ๊ธด ํด๋ž˜์Šค๋ช…์€ ์—ฌ์ „ํžˆ ์ฝ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ
์‚ฌ์šฉ ์˜ˆ UserName, OrderAmount, IsLoggedIn

3. ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•(Snake Case), ํŒŸํ™€ ํ‘œ๊ธฐ๋ฒ•(Pothole Case)

ํ˜•์‹ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ์†Œ๋ฌธ์ž๋กœ ์—ฐ๊ฒฐ๋˜๊ณ  ๋‹จ์–ด ์‚ฌ์ด์— ์–ธ๋”์Šค์ฝ”์–ด('_' ; ์–ธ๋”๋ฐ”) ์‚ฌ์šฉ
์œ ๋ž˜ ์–ธ๋”์Šค์ฝ”์–ด๊ฐ€ ๋ฑ€์˜ ํ˜•ํƒœ๋ฅผ ๋‹ฎ์•„์„œ ์œ ๋ž˜ (์–ธ๋”๋ฐ” ํ‘œ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„)
์˜๋„ ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž์ด๋ฏ€๋กœ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ์œ ์šฉ
์žฅ์  ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , ์–ธ๋”์Šค์ฝ”์–ด๋กœ ๋‹จ์–ด๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ / C++์—์„œ ๊ถŒ์žฅ / Linux์˜ GNU ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ
๋‹จ์  ๋ณ€์ˆ˜๋ช…์ด ๊ธธ์–ด์ง€๋ฉด ํƒ€์ดํ•‘์ด ๋ถˆํŽธํ•  ์ˆ˜ ์žˆ์Œ
์‚ฌ์šฉ ์˜ˆ user_name, order_amount, is_logged_in, daily_user_table

4. ์ผ€๋ฐฅ ํ‘œ๊ธฐ๋ฒ•(Kebab Case)

ํ˜•์‹ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ์†Œ๋ฌธ์ž๋กœ ์—ฐ๊ฒฐ๋˜๊ณ  ๋‹จ์–ด ์‚ฌ์ด์— ํ•˜์ดํ”ˆ('-') ์‚ฌ์šฉ
์œ ๋ž˜ ํ•˜์ดํ”ˆ์ด ์ผ€๋ฐฅ์˜ ๊ผฌ์น˜ ๋ชจ์–‘๊ณผ ๋น„์Šทํ•˜๋‹ค๋Š” ๊ฒƒ์—์„œ ์œ ๋ž˜
์˜๋„ ๋ณ€์ˆ˜์˜ ๊ฐ ๋‹จ์–ด ๊ตฌ๋ถ„์ด ๋ช…ํ™• / URL์ด๋‚˜ CSS ํด๋ž˜์Šค๋ช…์—์„œ ์‚ฌ์šฉ
์žฅ์  ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , ๋‹จ์–ด๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ / ์ค‘๊ฐ„ ๋‹จ์–ด๋ฅผ ๋ฐ”๊พธ๊ธฐ ์‰ฌ์›€(๋”๋ธ” ํด๋ฆญ์œผ๋กœ ๋“œ๋ž˜๊ทธ)
๋‹จ์  ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ : ํ•˜์ดํ”ˆ์ด ์—ฐ์‚ฐ์ž๋กœ ์ธ์‹
/ ์ „์ฒด ๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜๊ธฐ ๋ถˆํŽธ : ๋”๋ธ” ํด๋ฆญ ์‹œ ๋‹จ์–ด ํ•˜๋‚˜๋งŒ ๋“œ๋ž˜๊ทธ ๋จ
์‚ฌ์šฉ ์˜ˆ user-name, order-amount, is-logged-in

5. ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ๋ฒ•(Hungarian Case)

ํ˜•์‹ ์ ‘๋‘์‚ฌ๋กœ ์ž๋ฃŒํ˜•์„ ๋ถ™ํž˜
์œ ๋ž˜ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๊ฐœ๋ฐœ์ž ์ค‘ ํ—๊ฐ€๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์“ฐ๋˜ ๋ณ€์ˆ˜ ๋ช…๋ช…๋ฒ•
์˜๋„ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‚˜ ์‚ฌ์šฉ ๋ชฉ์ ์„ ๋ช…ํ™•ํžˆ ํ•˜์—ฌ ์ฝ”๋“œ ์ดํ•ด์™€ ๋””๋ฒ„๊น…์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ
์žฅ์  ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ณ , Typescript์™€ C#์—์„œ ๋งŽ์ด ์‚ฌ์šฉ
๋‹จ์  ํ˜„์žฌ๋Š” ์ž๋ฃŒํ˜•์„ ์‰ฝ๊ฒŒ ์•Œ์•„ ๋ณผ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค(IDE ๊ธฐ๋Šฅ ๋“ฑ)์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ
์‚ฌ์šฉ ์˜ˆ
  • strName: ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜
  • iCount: ์ •์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜
  • fPrice: ์‹ค์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜
  • bIsValid: ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜
  • pNext: ํฌ์ธํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜ (์ฃผ๋กœ C/C++์—์„œ ์‚ฌ์šฉ)

6. ์ƒ์ˆ˜(Constant)

  • ๊ฑฐ์˜ ๋ชจ๋“  ๋ฐฉ๋ฒ•์—์„œ ๋™์ผํ•˜๊ฒŒ ๋Œ€๋ฌธ์ž + ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ
  • ex) DEFAULT_COUNTRY_CODE

7. ์ปค์Šคํ…€

  • ๊ฐœ๋ฐœ์‚ฌ๋งŒ์˜ ๋˜๋Š” ๊ฐœ๋ฐœ ์กฐ์ง ์ž์ฒด์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ ๋˜ํ•œ ๋งŽ์ด ์‚ฌ์šฉ
  • ex1) <์ ‘๋‘์‚ฌ(2์ž๋ฆฌ)>_<ํ’€๋„ค์ž„(๋‹จ์–ด)>_<์•ฝ์–ด>
    • ์ ‘๋‘์‚ฌ ๋Œ€๋ฌธ์ž, ๋‹จ์–ด์˜ ์ฒซ๊ธ€์ž ๋Œ€๋ฌธ์ž, ์•ฝ์–ด ๋Œ€๋ฌธ์ž
    • ST_User_CD
  • ex2) C์–ธ์–ด ์ž์ฒด์˜ ๊ถŒ์žฅ ๊ทœ์น™์ด ์กด์žฌ
    • ํ•จ์ˆ˜๋Š” ๋™์‚ฌ + ๋ชฉ์ ์–ด ์ด๊ณ  ์™„์ „ํ•œ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉ
    • ๊ตฌ์กฐ์ฒด๋ช…์€ _S ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‹จ์–ด์˜ ์‹œ์ž‘์€ ๋Œ€๋ฌธ์ž, ์ƒˆ๋กœ์šด ๋‹จ์–ด์˜ ์‹œ์ž‘๋„ ๋Œ€๋ฌธ์ž 
  • ex3) HTML / JS
    • ๋ณ€์ˆ˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํŒŒ์ผ๊ณผ ํด๋” ์ด๋ฆ„ ๋ฐ ํ˜•์‹ ๊ทœ์ •
    • ๋ชจ๋“  ํด๋”๋Š” index.html(ํ˜น์€ .shtml, .asp)ํŒŒ์ผ์„ ํฌํ•จํ•˜๋„๋ก ํ•œ๋‹ค
    • ๏ฟญ ์ด๋ฏธ์ง€ ํŒŒ์ผ์€ “/images/.” ํด๋”์— ์ €์žฅํ•œ๋‹ค

๐ŸŽจ ๊ฐ ํ™˜๊ฒฝ์—์„œ์˜ ๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ• ์ ์šฉ

ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๋งˆ์ฃผํ•  ์ˆ˜ ์žˆ๋Š” 5๊ฐ€์ง€ ํ™˜๊ฒฝ์—์„œ์˜ ๋ณ€์ˆ˜ ์ž‘๋ช…๋ฒ• ์ ์šฉ ์‚ฌ๋ก€๋ฅผ ์•Œ์•„๋ณด์ž

1. Java (SpringBoot)

  • ์ถ”์ฒœ ์ž‘๋ช…๋ฒ•: ์นด๋ฉœ ์ผ€์ด์Šค, ํŒŒ์Šค์นผ ์ผ€์ด์Šค
  • ์ ์šฉ ์˜ˆ: userName, orderAmount / UserController, OrderService
  • ๊ธฐํƒ€: ๋ฉ”์„œ๋“œ์™€ ๋ณ€์ˆ˜๋Š” ์นด๋ฉœ ์ผ€์ด์Šค, ํด๋ž˜์Šค๋ช…์€ ํŒŒ์Šค์นผ ์ผ€์ด์Šค

2. JavaScript/TypeScript (React)

  • ์ถ”์ฒœ ์ž‘๋ช…๋ฒ•: ์นด๋ฉœ ์ผ€์ด์Šค, ํŒŒ์Šค์นผ ์ผ€์ด์Šค
  • ์ ์šฉ ์˜ˆ: userName, orderAmount, UserProfile
  • ๊ธฐํƒ€: ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋Š” ์นด๋ฉœ ์ผ€์ด์Šค, ์ปดํฌ๋„ŒํŠธ๋ช…์ด๋‚˜ ํด๋ž˜์Šค๋ช…์€ ํŒŒ์Šค์นผ ์ผ€์ด์Šค

3. Linux ๋ช…๋ น์–ด ๋ฐ ์Šคํฌ๋ฆฝํŠธ

  • ์ถ”์ฒœ ์ž‘๋ช…๋ฒ•: ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค
  • ์ ์šฉ ์˜ˆ: user_name, order_amount
  • ๊ธฐํƒ€: ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋Œ€๋ฌธ์ž์™€ ์–ธ๋”์Šค์ฝ”์–ด ์‚ฌ์šฉ (USER_NAME)

4. GitHub Actions

  • ์ถ”์ฒœ ์ž‘๋ช…๋ฒ•: ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค
  • ์ ์šฉ ์˜ˆ: user_name, order_amount
  • ๊ธฐํƒ€: YAML ํŒŒ์ผ์˜ ํŠน์„ฑ์ƒ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค๊ฐ€ ๊ฐ€๋…์„ฑ์ด ์ข‹์Œ

5. Dockerfile

  • ์ถ”์ฒœ ์ž‘๋ช…๋ฒ•: ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค
  • ์ ์šฉ ์˜ˆ: user_name, order_amount
  • ๊ธฐํƒ€: ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๋น„์Šทํ•œ ํ˜•์‹ (USER_NAME)

๐ŸŽˆ ์ข‹์€ ์ž‘๋ช…๋ฒ•์˜ ๊ฐ„๋‹จ ์ด๋ก 

๋ชฉ์ 

  • ์ž‘๋ช…๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ฝ”๋“œ ์ผ๊ด€์„ฑ์„ ๋†’ํ˜€ ๊ฐ€๋…์„ฑ์„ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•จ
  • ๋ณ€์ˆ˜๋‚˜ ํด๋ž˜์Šค์˜ ์‚ฌ์šฉ ๋ชฉ์ , ํŒŒ์ผ์˜ ํ˜•์‹์„ ์ง๊ด€์ ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ž‘๋ช…ํ•ด์•ผ ํ•จ
  • ์˜๋‹จ์–ด๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์–ด์˜ ๋‰˜์•™์Šค๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•จ

์ฃผ์˜์ 

  • ์˜๋ฏธ ์—†๋Š” ๋‹จ์–ด์˜ ๋‚จ์šฉ์„ ํ”ผํ•˜๊ธฐ
  • ๋„ˆ๋ฌด ๊ธธ์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ(IDE์˜ ๋ณด์กฐ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋ฐฉํ•ด๋Š” ๋˜์ง€ ์•Š์ง€๋งŒ, ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง)
  • ์ž๋ฃŒํ˜• ๋“ฑ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฉด ์ข‹์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ (series_list ๋ณด๋‹ค series_set)
  • ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์—†๋„๋ก ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œ๊ธฐ
  • ์ผ๊ด€์ ์œผ๋กœ ํ‘œ๊ธฐ (boolean ๋ณ€์ˆ˜๋Š” is, has, can, should, use ๋“ฑ์„ ๋ถ™์ด๊ธฐ)

ํ•˜๋ฉด ์ข‹์Œ

  • ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉด ์ข‹์Œ (Simple Storage Service -> S3)
  • ์ž…๋ ฅํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉด ์ข‹์Œ (success -> ok)

๐Ÿ’ก ์ •๋ฆฌ

  • ์ž‘๋ช…๋ฒ•์€ ๋‹ค์–‘ํ•˜์ง€๋งŒ ๋Œ€์ค‘์ ์ธ ๊ฒƒ๋“ค๋งŒ ์•Œ๋ฉด ์ถฉ๋ถ„ํ•˜๊ณ , ๊ทธ๋ฃน์—์„œ ํŠน๋ณ„ํžˆ ์ž์ฒด์ ์ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ
  • ์ค‘์š”ํ•œ๊ฑด ์‚ฌ์šฉ ํ•  ๋•Œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ
  • ํŠน์ • ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ๊ด€๋ก€๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํžˆ ์กฐ์‚ฌํ•ด๋ณด๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋จ

 

๋ ˆํผ๋Ÿฐ์Šค

728x90