Skip to content

3. Dev_Method

jaekim edited this page Apr 3, 2023 · 1 revision

☝🏻 ν”„λ‘œκ·Έλž˜λ° 방식

β†˜οΈŽ MOB ν”„λ‘œκ·Έλž˜λ°μœΌλ‘œ 진행

πŸ’‘ MOB ν”„λ‘œκ·Έλž˜λ°μ΄λž€?

MOB ν”„λ‘œκ·Έλž˜λ°μ€ 두 개 μ΄μƒμ˜ κ°œλ°œμžκ°€ ν•¨κ»˜ μž‘μ—…ν•˜μ—¬ ν•˜λ‚˜μ˜ κΈ°λŠ₯ λ˜λŠ” μž‘μ—…μ„ μ™„λ£Œν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μž…λ‹ˆλ‹€. 이 방식은 μ• μžμΌ 개발 방법둠과 TDD(Test Driven Development) 개발 방식에 κΈ°λ°˜μ„ 두고 μžˆμŠ΅λ‹ˆλ‹€.

MOB ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” λͺ¨λ“  κ°œλ°œμžκ°€ λ™μ‹œμ— ν•˜λ‚˜μ˜ μž‘μ—…μ— μ°Έμ—¬ν•˜μ—¬, μ½”λ“œ μž‘μ„±, 디버깅, λ¦¬νŒ©ν† λ§ λ“±μ˜ μž‘μ—…μ„ ν•¨κ»˜ μˆ˜ν–‰ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ ν’ˆμ§ˆμ„ κ°œμ„ ν•˜κ³ , μ½”λ“œμ— λŒ€ν•œ 이해도λ₯Ό 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ MOB ν”„λ‘œκ·Έλž˜λ°μ€ μ½”λ“œ 리뷰 과정을 λŒ€μ‹ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžλ“€μ΄ ν•¨κ»˜ μž‘μ—…ν•˜λ©΄μ„œ μ„œλ‘œ μ½”λ“œλ₯Ό κ²€ν† ν•˜κ³ , μ½”λ“œμ˜ 였λ₯˜λ‚˜ κ°œμ„ μ μ„ λ°œκ²¬ν•˜λ©΄ μ¦‰μ‹œ μˆ˜μ •ν•  수 μžˆμœΌλ―€λ‘œ, μ½”λ“œ 리뷰λ₯Ό λ³„λ„λ‘œ μˆ˜ν–‰ν•  ν•„μš”κ°€ μ—†μ–΄μ§‘λ‹ˆλ‹€.

MOB ν”„λ‘œκ·Έλž˜λ°μ€ κ°œλ°œμžλ“€ κ°„μ˜ ν˜‘μ—…μ„ κ°•ν™”ν•˜κ³ , μ½”λ“œμ˜ ν’ˆμ§ˆμ„ ν–₯μƒμ‹œν‚€λŠ” 데에 맀우 μœ μš©ν•œ λ°©λ²•μž…λ‹ˆλ‹€. λ˜ν•œ MOB ν”„λ‘œκ·Έλž˜λ°μ€ μƒˆλ‘œμš΄ κ°œλ°œμžκ°€ κΈ°μ‘΄ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³ , μ μ‘ν•˜λŠ” 데에도 도움이 λ©λ‹ˆλ‹€.



☝🏻 κΉƒ μ»¨λ²€μ…˜



β†˜οΈŽ TDD

할지 말지 좔후에 λ…Όμ˜ν•˜κΈ°



☝🏻 μ½”λ“œ μ»¨λ²€μ…˜

β†˜οΈŽ 넀이밍 κ·œμΉ™

  • λ³€μˆ˜μ˜ 이름은 λͺ¨λ‘ μ†Œλ¬Έμžμ™€ 밑쀄을 μ‚¬μš©ν•©λ‹ˆλ‹€.

    예: my_variable

  • ν•¨μˆ˜μ˜ 이름은 camelCaseλ₯Ό μ‚¬μš©ν•˜λ©°, 첫 κΈ€μžλŠ” μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€.

    예: myFunction

  • ν΄λž˜μŠ€μ™€ ꡬ쑰체 λͺ…은 UpperCamelCaseλ₯Ό μ‚¬μš©ν•˜λ©°, 첫 κΈ€μžλŠ” λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€.

    예: MyClass

  • μƒμˆ˜, 맀크둜 λ“±μ˜ 이름은 λͺ¨λ‘ λŒ€λ¬Έμžμ™€ 밑쀄을 μ‚¬μš©ν•©λ‹ˆλ‹€.

    예: #define MY_MACRO


β†˜οΈŽ ν•¨μˆ˜ κ·œμΉ™

  • ν•¨μˆ˜μ˜ μΈμžλŠ” κ°€λŠ₯ν•œ ν•œ const둜 μ„ μ–Έν•©λ‹ˆλ‹€.
  • ν•¨μˆ˜μ—μ„œ λ°˜ν™˜λ˜λŠ” 값은 κ°€λŠ₯ν•œ ν•œ const둜 μ„ μ–Έν•©λ‹ˆλ‹€.

β†˜οΈŽ 클래슀 κ·œμΉ™ (μΆ”ν›„ λ°”λ€” 수 있음)

  • private λ©€λ²„μ—λŠ” _ λ₯Ό λ„£μ–΄μ€€λ‹€.
  • protected λ©€λ²„μ—λŠ” __ λ₯Ό λ„£μ–΄μ€€λ‹€.
class A {
private:
    int _a;
    int _b;
    int _func(int c);

protected:
    int __d;
    int __e;
    int __func(int f);

public:
    int g;
    int h;
    int func(int i);
    
};

β†˜οΈŽ μ€‘κ΄„ν˜Έ κ·œμΉ™

  • μ€‘κ΄„ν˜ΈλŠ” μ€„λ°”κΏˆ 없이 ν•œλ‹€.
  • ν•œ 쀄 μΌλ•Œλ„ { } λ₯Ό λ„£λŠ”λ‹€.

O

ex 1.
int func(void) {
	...
}

ex 2.
if (...) {
	...
} else if {
	...
} else {
	...
}

…

ex 1.
int func(void)
{
	...
}

ex 2.
if (...)
{
	...
}
else if
{
	...
}
else
{
	...
}

β†˜οΈŽ λ³€μˆ˜ μ„ μ–Έ & 헀더 파일 ν•¨μˆ˜ μ„ μ–Έ κ·œμΉ™

  • 라인 λ§žμΆ”κΈ°
int       a;
double    b;
long long c;

β†˜οΈŽ λ“€μ—¬μ“°κΈ° κ·œμΉ™

  • λ“€μ—¬μ“°κΈ°λŠ” νƒ­(4μΉΈ)을 μ‚¬μš©ν•©λ‹ˆλ‹€.

β†˜οΈŽ 주석 κ·œμΉ™

  • ν΄λž˜μŠ€μ™€ ν•¨μˆ˜μ— λŒ€ν•œ 주석은 Doxygen μŠ€νƒ€μΌμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • 주석은 ν•œκΈ€λ‘œ μž‘μ„±ν•œλ‹€.
  • μ½”λ“œ 라인에 주석을 달 λ•ŒλŠ” "//"λ₯Ό μ‚¬μš©ν•˜λ©°, 블둝 주석은 "/* */"λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.