๋ฐ์ผ๋ฆฌ ์žก(Job) ์ง€์‹

์šฐ๋ฆฌ์˜ ์•ฝ์†, ์ฝ”๋“œ ์ปจ๋ฒค์…˜ (Coding Conventions)๊ณผ ๋ณดํ’€ ์ œ๊ฑฐ๊ธฐ Lint

๊ฐœ๋ฐœํ•˜๋Š” ์ฃผ๋””์”จ 2023. 11. 3. 19:53

 

 

์šฐ๋ฆฌ์˜ ์ธ์ƒ์—๋Š” '์ƒ์‹' ์ด๋ผ๋Š”๊ฒŒ ์žˆ๋‹ค. ๊ตญ์–ด์‚ฌ์ „์— ๋”ฐ๋ฅด๋ฉด

 

 

'์ƒ์‹' ์ด๋ž€ ์‚ฌ๋žŒ๋“ค์ด ๋ณดํ†ต ์•Œ๊ณ  ์žˆ๊ฑฐ๋‚˜ ์•Œ์•„์•ผ ํ•˜๋Š” ์ง€์‹.
์ผ๋ฐ˜์  ๊ฒฌ๋ฌธ๊ณผ ํ•จ๊ป˜ ์ดํ•ด๋ ฅ, ํŒ๋‹จ๋ ฅ, ์‚ฌ๋ฆฌ ๋ถ„๋ณ„ ๋”ฐ์œ„๊ฐ€ ํฌํ•จ๋œ๋‹ค.

 

 

 

๋ผ๊ณ  ์„ค๋ช…๋˜์–ด ์žˆ๋Š”๋ฐ, ์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•จ์— ์žˆ์–ด๋„ '์ƒ์‹' ์ด๋ผ๋Š”๊ฒŒ ์žˆ๋‹ค.

 

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ทœ์น™์„ ์ž˜ ์ง€ํ‚ค๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๋“ค๊ฐ„์— ์ƒ์‹์ด๋‹ค. ์ด๊ฒƒ์„ 'Coding Convention' ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ด๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค๋ณด๋ฉด ๋ณ€์ˆ˜๋ช…์€ ์†Œ๋ฌธ์ž(name, age, weight ๋“ฑ)๋กœ, ํด๋ž˜์Šค๋Š” ์ฒซ๊ธ€์ž๊ฐ€ ๋Œ€๋ฌธ์ž(Human, Student ๋“ฑ)๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฐ๊ฒƒ๋“ค์€ ๋‚ด๊ฐ€ ๊ทธ๋ƒฅ ์“ฐ๊ณ ์‹ถ์€๋Œ€๋กœ ์“ด๊ฒŒ ์•„๋‹ˆ๋ผ, ๋ชจ๋‘ ์ผ๋ฐ˜์ ์ธ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅธ ๊ฒƒ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์•ž์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ํ•จ๊ป˜ ํ˜‘์—…ํ•˜๊ฑฐ๋‚˜ ํšŒ์‚ฌ์—์„œ ์ผํ•  ๋•Œ '์ƒ์‹์ด ์—†๋Š” ์‚ฌ๋žŒ' ์ทจ๊ธ‰์„ ๋ฐ›์„์ˆ˜๋„ ์žˆ๋‹ค...

 

์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ–ˆ๋Š”๋ฐ ๋ฐ”๋ณด์ทจ๊ธ‰์€ ๋ฐ›์ง€ ๋ง์•„์•ผ๊ฒ ์ฃ ? 

 


 

์ฝ”๋“œ ์ž‘์„ฑ ๊ทœ์น™๋“ค (Coding Conventions)

 

์ด๋ฆ„ ๊ทœ์น™(Naming Rules) - ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ ๋“ฑ

์ด๋ฆ„์„ ์ง“๋Š”๋ฐ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ 5๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. ๋„ค์ด๋ฐ ๋ฃฐ(Naming Rules) ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

  • PascalCase (ํŒŒ์Šค์นผ ์ผ€์ด์Šค)
    • ์ฒซ๊ธ€์ž์™€ ์ด์–ด์ง€๋Š” ๋‹จ์–ด์˜ ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์˜ˆ) GoodPerson, MyKakaoCake, IAmDeveloper
    • Pascal ์ด๋ผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ด๋Ÿฌํ•œ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ์œ ๋ช…ํ•ด์ง„ ๋ฐฉ์‹์ด๋‹ค.
  • camelCase (์นด๋ฉœ ์ผ€์ด์Šค)
    • ์ฒซ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜์ง€๋งŒ, ์ด์–ด์ง€๋Š” ๋‹จ์–ด์˜ ์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์˜ˆ) goodPerson, myKakaoCake, iAmDeveloper
    • ๋‚™ํƒ€(camel)์˜ ๋“ฑ๋ชจ์–‘์ด ๋ณผ๋กํ•œ ๊ฒƒ์— ์˜๊ฐ์„ ์–ป์–ด์„œ ์ด๋ ‡๊ฒŒ ๋ถ€๋ฅด๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • snake_case (์Šค๋„ค์ดํฌ ์ผ€์ด์Šค)
    • ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ์†Œ๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๊ณ , ๋‹จ์–ด๋ฅผ ์–ธ๋”๋ฐ”(_) ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์˜ˆ) good_person, my_kakao_cake, i_am_developer
    • ๊ผญ ๋ฑ€(snake)์ด ๋•…์„ ๊ธฐ์–ด๋‹ค๋‹ˆ๋Š” ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ์ด ๋“ค์ง€์•Š๋‚˜์š”?
  • kebab-case (์ผ€๋ฐฅ ์ผ€์ด์Šค)
    • ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ์†Œ๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๊ณ , ๋‹จ์–ด๋ฅผ ๋Œ€์‹œ(-) ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์˜ˆ) good-person, my-kakao-cake, i-am-developer
    • ๊ผฌ์ฑ™์ด์— ํฐ ๊ณ ๊นƒ๋ฉ์–ด๋ฆฌ๊ฐ€ ๊ฝ‚ํ˜€ ์žˆ๋Š” ์ผ€๋ฐฅ(ํ„ฐํ‚ค์Œ์‹)์˜ ์ด๋ฏธ์ง€์—์„œ ์˜๊ฐ์„ ์–ป์–ด์„œ ์ง€์€ ์ด๋ฆ„์ด๋‹ค. ๋ช…๋™์˜ ๊ธธ๊ฑฐ๋ฆฌ์— ํŒŒ๋Š”๊ฑธ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด ๋ฐฉ์‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ž˜ ์•ˆ์“ฐ์ด๊ณ , ๋ณดํ†ต ํŒŒ์ผ๋ช…์ด๋‚˜ ํด๋”๋ช…์„ ๋งŒ๋“ค๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค. ์ฝ”๋”ฉ์ด ์ต์ˆ™ํ•ด์ง€๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ฉด ํŒŒ์ผ๊ณผ ํด๋”์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•  ๋•Œ, space(๊ณต๋ฐฑ) ๋Œ€์‹ ์— dash(-) ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋œ๋‹ค. (๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—์„œ ์ด๊ฒŒ ์ข‹๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ฒŒ ๋˜๊ฑฐ๋“ ์š”)
  • UPPER_CASE (์–ดํผ ์ผ€์ด์Šค)
    • ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•˜๊ณ , ๋‹จ์–ด๋ฅผ ์–ธ๋”๋ฐ”(_) ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์˜ˆ) GOOD_PERSON, MY_KAKAO_CAKE, I_AM_DEVELOPER
    • ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ƒ์ˆ˜๋ณ€์ˆ˜(constant variable)์˜ ์ด๋ฆ„์„ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
    • ๋ญ”๊ฐ€ ์†Œ๋ฆฌ์น˜๋Š” ๋Š๋‚Œ๊ณผ ๋งค์šฐ ์ค‘์š”ํ•œ ๋Š๋‚Œ์ด ๋“ค์ฃ ?

 

์ด๋Ÿฌํ•œ case ๋“ค์€ ์–ธ์–ด๋งˆ๋‹ค, ํ™˜๊ฒฝ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ๋„ ํ•˜๋Š”๋ฐ, Python / JavaScript & Java ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ฉด ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

PascalCase ํด๋ž˜์Šค, Exception ํด๋ž˜์Šค, Exception -
camelCase - ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฉ”์†Œ๋“œ -
snake_case ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฉ”์†Œ๋“œ - -
kebab-case - - ํŒŒ์ผ, ํด๋”๋ช…
UPPER_CASE ์ƒ์ˆ˜๋ณ€์ˆ˜ ์ƒ์ˆ˜๋ณ€์ˆ˜ -

 

์ด๋Ÿฐ ๋„ค์ด๋ฐ ๋ฃฐ ๋•๋ถ„์— ์šฐ๋ฆฌ๋Š” ์•ž๊ธ€์ž๊ฐ€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”๊ฑธ ๋ณธ ์ˆœ๊ฐ„, "์•„ํ•˜, ์ด๊ฑด Class ์ด๊ฒ ๊ตฌ๋‚˜." ๋ผ๊ณ  ๋ณธ๋Šฅ์ ์œผ๋กœ ๋ˆˆ์น˜์ฑŒ ์ˆ˜ ์žˆ๋‹ค.

 

Boolean ํƒ€์ž…์˜ ๋ณ€์ˆ˜ ์ž‘๋ช…๊ทœ์น™

์œ„์˜ ๋„ค์ด๋ฐ ๋ฃฐ์— ์ด์–ด์„œ boolean ํƒ€์ž…์˜ ๋…ํŠนํ•œ ๋ณ€์ˆ˜๋ช… ์ž‘๋ช… ๊ทœ์น™์ด ์žˆ๋Š”๋ฐ, ๊ฑฐ์˜ ๋ณดํ†ต is ๋ผ๋Š” ์ ‘๋‘์‚ฌ(prefix) ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

is_human = True    # ์‚ฌ๋žŒ์ธ์ง€ ์•„๋‹Œ์ง€
is_animal = False  # ๋™๋ฌผ์ธ์ง€ ์•„๋‹Œ์ง€
is_exist = True    # ์กด์žฌํ•˜๋Š”์ง€ ์•ˆํ•˜๋Š”์ง€
is_final_data = False  # ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ์ธ์ง€ ์•„๋‹Œ์ง€
...

 

์ด๋Ÿฐ ๋„ค์ด๋ฐ ๋ฃฐ ๋•๋ถ„์— ์šฐ๋ฆฌ๋Š” is ๋ผ๋Š” ๊ธ€์ž๋ฅผ ๋ณด๋Š” ์ˆœ๊ฐ„, "์•„ํ•˜, ์ด ๋ณ€์ˆ˜๋Š” boolean ํƒ€์ž…์˜ ๋ณ€์ˆ˜๊ฒ ๊ตฌ๋‚˜. true/false ์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ฒ ๊ตฌ๋‚˜." ๋ผ๊ณ  ๋ณธ๋Šฅ์ ์œผ๋กœ ๋ˆˆ์น˜์ฑŒ ์ˆ˜ ์žˆ๋‹ค. ๋„ค์ด๋ฐ ๋ฃฐ์€ ๊ธฐ๋ณธ์ค‘์˜ ๊ธฐ๋ณธ์ด๋‹ˆ๊นŒ ๊ผญ ๋”ฐ๋ฅด๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค!

๋“ค์—ฌ์“ฐ๊ธฐ (indent)

๋“ค์—ฌ์“ฐ๊ธฐ(indent)๋Š” 2์ข…๋ฅ˜ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • tab ๋ฐฉ์‹
  • space ๋ฐฉ์‹

๋‘˜๋‹ค ๋”ฑ ๋ณด๊ธฐ์—” ๋˜‘๊ฐ™์ด ๋นˆ์นธ์œผ๋กœ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ ์ฝ”๋“œ์—์„œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๋กœ space ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋˜๋Š” ํŽธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋“ค์—ฌ์“ฐ๊ธฐ์˜ ์นธ ์ˆ˜๋ฅผ 2์นธ์œผ๋กœ ํ• ์ง€, 4์นธ์œผ๋กœ ํ• ์ง€, 8์นธ์œผ๋กœ ํ• ์ง€๋„ ๋‹ค์–‘ํ•˜๊ฒŒ ๋…ผ์˜๋˜๋Š” ํŽธ์ด์ง€. ๋ณดํ†ต ์ ์ ˆํ•œ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด์„œ ๊ธฐ๋ณธ์„ค์ •์œผ๋กœ 4 space ๋ฅผ ์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ธ ๊ฒƒ ๊ฐ™๋‹ค. 

 

์œ„ 2๊ฐ€์ง€ ์™ธ์—๋„ ์•„์ฃผ ์‚ฌ์†Œํ•˜๊ฒŒ ๋“ค์–ด๊ฐ€๋ฉด

  • ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์•ˆํ• ์ง€
  • ๋„์–ด์“ฐ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€
  • comma ๋ฅผ ์–ด๋Š ์œ„์น˜์— ์ฐ์„์ง€
  • ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ• ์ง€ ์•ˆํ• ์ง€
  • ์ค„ ๊ฐ„๊ฒฉ์„ ์–ด๋–ป๊ฒŒ ํ• ์ง€
  • ์ค„ ๋ฐ”๊ฟˆ์„ ํ• ์ง€ ์•ˆํ• ์ง€
  • ์ฃผ์„์„ ์–ด๋–ค์‹์œผ๋กœ ๋‹ฌ์ง€
  • ์ž‘์€๋”ฐ์˜ดํ‘œ(')๋ฅผ ์‚ฌ์šฉํ•  ๊ฑด์ง€, ํฐ๋”ฐ์˜ดํ‘œ(")๋ฅผ ์‚ฌ์šฉํ•  ๊ฑด์ง€

๋“ฑ๋“ฑ ๋”ฐ์ง€๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค.

 

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฑ…๋“ค์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ฑ…์„ ๋งŽ์ด ์ฝ๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์ฝ”๋”ฉํ•˜๋‹ค๋ณด๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํ•œ๊ตญ์–ด๋ฅผ ์ฒด๋“ํ•˜๋“ฏ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ข‹์€ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ผํ•˜๊ฒŒ ๋œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ.. ์œ„์™€ ๊ฐ™์€ ์•ฝ์†๋“ค์„ ์ผ์ผํžˆ ์ƒ๊ฐํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ๊ดด๋กญ์ง€ ์•Š๋‚˜์š”..?

 

๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•ด์„œ ๋งŒ๋“  ์†Œ์Šค์ฝ”๋“œ ๋ถ„์„๋„๊ตฌ๊ฐ€ ์žˆ๋‹ค. ๋ฐ”๋กœ Lint ๋ผ๋Š” ๋…€์„.

 

์†Œ์Šค์ฝ”๋“œ ๋ถ„์„๋„๊ตฌ Lint

Lint ๋ž€, ์†Œ์Šค์ฝ”๋“œ์˜ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ์‰ฝ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ๋กœ 'Lint' ๋ผ๋Š” ๋‹จ์–ด๋Š” ์˜ท์— ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” '๋ณดํ‘ธ๋ผ๊ธฐ' ๋ผ๋Š” ๋œป์ด๋‹ค. ์˜ท์— ๋ณดํ’€์ด ๋งŽ์œผ๋ฉด ์ง€์ €๋ถ„ํ•ด ๋ณด์ด์ž–์•„์š”? ๊ทธ๋ž˜์„œ ๋ณดํ’€์ œ๊ฑฐ๊ธฐ ๊ฐ™์€ ๊ธฐ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜์ง€. ๊ทธ ๋ณดํ’€์ œ๊ฑฐ๊ธฐ๊ฐ€ ๋ฐ”๋กœ Lint!!!

 

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

 

๊ณต๋ถ€ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๋„˜์–ด์„œ ์‹ค์ œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋œ๋‹ค๋ฉด ๋ชจ๋“  ์†Œ์Šค์ฝ”๋“œ ์ž‘์„ฑ์— Lint ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์œผ๋‹ˆ ๊ผญ ์•Œ์•„๋‘˜ ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด์—๋Š” ๊ฐ ์–ธ์–ด๋ณ„ Lint(๋ถ„์„๋„๊ตฌ)๊ฐ€ ์žˆ์œผ๋‹ˆ ๋ณธ์ธ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์— ๋งž๋Š” Lint๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

Python ์€ PyLint

JavaScript ๋Š” ESLint

Java ๋Š” CheckStyle ๋“ฑ

 

 

Lint๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ ๋ธ”๋กœ๊ทธ๋“ค์€ ๋งŽ์œผ๋‹ˆ, ์Šค์Šค๋กœ ์ฐพ์•„๋ณด๋Š” ๊ฒƒ๋„ ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์•„์„œ ์—ฌ๊ธฐ๊นŒ์ง€ ์ ์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

 

๋.