Coding Style - Sizuha/devdog GitHub Wiki

๋ชฉ์ 

๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ณ ์น  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š”, ์ผ๊ด€๋œ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ.

๊ธฐ๋ณธ ์›์น™

  • ๋ณด๊ธฐ ์ข‹๊ณ , ์ฝ๊ธฐ ํŽธํ•ด์•ผ ํ•œ๋‹ค.
    • ํ™”๋ฉด์ƒ์—์„œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธ์‡„๋  ๋•Œ๋„ ์ƒ๊ฐํ•œ๋‹ค.
    • ํ˜ผ๋™์ด ์—†์–ด์•ผ ํ•œ๋‹ค.
  • ๋‚˜์ค‘์— ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
    • ์ค‘๋ณต๋œ ์ •๋ณด๋ฅผ ๋‹ด์ง€ ์•Š๋Š”๋‹ค.
  • ๊ฐ€๋Šฅํ•œ ๋‹ค์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์ด ์“ฐ๋Š” ๋ฐฉ์‹์„ ๋”ฐ๋ฅธ๋‹ค.

๊ณตํ†ต

self ํ˜น์€ this ๋ฅผ ๋ถ™์ด๋Š” ๊ฒฝ์šฐ

์ž๊ธฐ ์ž์‹ ์˜ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜์ธ self ํ˜น์€ this ๊ฐ€ ์ƒ๋žต ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์ด์—ฌ๋„, ํ•ด๋‹น ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋œ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ ๋˜์–ด์ง€๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ๊ธฐํ•œ๋‹ค.

๋‹ค๋ฅธ ํด๋ž˜์Šค ์˜์—ญ(์˜ˆ๋ฅผ๋“ค์–ด, ์ƒ์†์„ ํ†ตํ•ด ์ •์˜๋œ ํ•˜์œ„ ํด๋ž˜์Šค)์—์„œ๋Š” ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค.

๋“ค์—ฌ์“ฐ๊ธฐ

  • ๋“ค์—ฌ์“ฐ๊ธฐ(Intent)๋Š” ํƒญ์œผ๋กœ๋งŒ ํ•œ๋‹ค. ์ŠคํŽ˜์ด์Šค ์‚ฌ์šฉ๊ธˆ์ง€.
    • ๋งŒ์•ฝ ๊ตณ์ด ์ŠคํŽ˜์ด์Šค๋ฅผ ์จ์•ผ ํ•œ๋‹ค๋ฉด, ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” ์ „๋ถ€ ์ŠคํŽ˜์ด์Šค๋กœ๋งŒ ํ•œ๋‹ค. ์ฆ‰, ํƒญ๊ณผ ์„ž์–ด์„œ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ฒƒ!
    • ํƒญ ๋ฌธ์ž์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ์—๋””ํ„ฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ธฐ์— ์„ž์–ด์“ฐ๋ฉด ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ๋ณผ๋•Œ ์ •๋ ฌ์ด ํํŠธ๋Ÿฌ์ง.
  • ์ œ์–ด๋ธ”๋Ÿญ์ด ๋ฐœ์ƒํ•  ๋•Œ, ์ฆ‰ ์ œ์–ด ๋ฒ”์œ„๊ฐ€ ํ•œ ๋‹จ๊ณ„ ๊นŠ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ์— ๋“ค์—ฌ์“ด๋‹ค.
if (...) {
	// ์กฐ๊ฑด ์ฒ˜๋ฆฌ์— ์˜ํ•ด ์ œ์–ด ๊นŠ์ด๊ฐ€ ๋ฐœ์ƒ.
}

void Func(...) {
	// ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ œ์–ด ๋ฒ”์œ„ ๋ฐœ์ƒ.
}

struct XXX {
	// ๊ตฌ์กฐ์ฒด ์„ ์–ธ์— ์˜ํ•œ ์ œ์–ด ๋ฒ”์œ„ ๋ฐœ์ƒ.
}
  • ๋ช…๋ น๋ฌธ์ด ํ•œ ๋ผ์ธ์—์„œ ๋๋‚˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ๋ผ์ธ๊นŒ์ง€ ์ด์–ด์งˆ ๋•Œ, ๊ทธ ๋‹ค์Œ์˜ ๋ผ์ธ๋ถ€ํ„ฐ ๋“ค์—ฌ์“ด๋‹ค.
someFunc(arg1, 
	arg2, // ๋“ค์—ฌ์“ฐ๊ธฐ
	arg3, // ๋“ค์—ฌ์“ฐ๊ธฐ
	argN); // ๋“ค์—ฌ์“ฐ๊ธฐ
  • ์ „์ฒ˜๋ฆฌ ๋ฌธ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋“ค์—ฌ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
    • C๊ณ„์—ด ์–ธ์–ด์˜ ๊ฒฝ์šฐ #define ์ด๋‚˜ #if ๋“ฑ์˜ ๊ฒฝ์šฐ.

๋ณ€์ˆ˜ ์„ ์–ธ, ์ด๋ฆ„ ์ง“๊ธฐ

  • ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ ๊ธˆ์ง€.
    • int, float ๊ฐ™์€ ๋ป”ํ•œ ํƒ€์ž…(type)์„ ์ ‘๋‘์–ด๋กœ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค.
      • ์ด๋Ÿฐ๊ฑด ์„ ์–ธ๋ฌธ๋งŒ ๋ด๋„ ์•ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ๋„ ํƒ€์ž… ์ฒดํฌ๊ฐ€ ์ด๋ค„์ง€๊ณ , ์—๋””ํ„ฐ์—์„œ๋„ ์‰ฝ๊ฒŒ ํ™•์ธ์ด ๋œ๋‹ค.
      • ํƒ€์ž…์ด ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ, ๋ณ€์ˆ˜ ์ด๋ฆ„๊นŒ์ง€ ๊ณ ์ณ์•ผ ๋˜๋Š” ์ˆ˜๊ณ ๋Š” ํ•˜์ง€ ๋ง์ž.
    • ์—๋””ํ„ฐ์—์„œ ์„œํฌํŠธ ๋˜์ง€ ์•Š์€ ํƒ€์ž… ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜, ๊ฐ์ฒด๋“ค๊ฐ„์— ๊ณตํ†ต๋œ ํŠน์„ฑ ๋“ฑ์„ ๊ฐ•์กฐํ•˜๊ณ ์ž ํ•  ๋•Œ ์ ๋‹นํ•œ ์ ‘๋‘์–ด๋ฅผ ๋ถ™์ธ๋‹ค.
  • ์ƒ์ˆ˜(const)๋Š” ์ „๋ถ€ ๋Œ€๋ฌธ์ž๋กœ ํ•œ๋‹ค.
  • ํ•จ์ˆ˜์˜ ์ธ์ž์™€ ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค.
  • ํƒ€์ž… ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

์—ฐ์‚ฐ์ž

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ดํ•ญ ์—ฐ์‚ฐ์ž์˜ ์–‘์ชฝ์—๋Š” ๊ณต๋ฐฑ์„ ํ•œ์นธ ์”ฉ ๋‘”๋‹ค.
    • ๋‹จ, ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ•์กฐํ•˜๊ณ ์ž ํ•  ๋•Œ ๋ถ™์—ฌ์„œ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. ๋‹ค๋งŒ ๊ด„ํ˜ธ๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ํ•ด์ฃผ๋Š”๊ฒŒ ๋” ๋‚˜์„์ง€๋„.
int a = (1 + 2*3) / 4;

C ๊ณ„์—ด ์–ธ์–ด

์ง€์—ญ ๋ณ€์ˆ˜

  • ์ž„์‹œ ๋ณ€์ˆ˜(์ง€์—ญ ๋ณ€์ˆ˜)๋Š” ์†Œ๋ฌธ์ž์™€ ๋ฐ‘์ค„(_)๋กœ๋งŒ ๋ช…๋ช…ํ•œ๋‹ค. (optional)
  • index, iterator๋กœ ํ™œ์šฉ๋˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๋Š” i_ ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.
  • ๋ณ€์ˆ˜ ์„ ์–ธ์„ ์ตœ๋Œ€ํ•œ ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ง์ „๊นŒ์ง€ ๋ฏธ๋ฃฌ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜ ์„ ์–ธ์€ ๊ณง ์ด ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋  ๊ฑฐ๋ผ๋Š” ๊ฑธ ์•”์‹œํ•œ๋‹ค.

์ œ์–ด๋ฌธ ๋ธ”๋Ÿญ

  • ์ œ์–ด๋ฌธ ๋ธ”๋Ÿญ์€ ์ œ์–ด๋ฌธ์ด ์„ ์–ธ๋œ ํ–‰์—์„œ { ๋ฅผ ์—ฐ๋‹ค.
  • } ๋Š” ์ œ์–ด๋ฌธ ํ‚ค์›Œ๋“œ๊ฐ€ ์‹œ์ž‘๋œ ์—ด์— ๋งž์ถฐ์„œ ๋‹ซ๋Š”๋‹ค.
  • ๋ธ”๋Ÿญ์„ ์—ฌ๋Š” { ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ํ–‰์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์—ด๊ณผ, ๋ธ”๋Ÿญ์„ ๋‹ซ์„ ๋•Œ ๋‚˜์˜ค๋Š” } ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ์—ด์„ ์ผ์น˜ ์‹œํ‚ค๋„๋ก ํ•œ๋‹ค.
  • ์ œ์–ด๋ฌธ์˜ ( ) ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ œ์–ด๋ฌธ ํ‚ค์›Œ๋“œ์™€ ํ•œ์นธ ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์“ด๋‹ค.

if/else

  • if์™€ else๋ฌธ์žฅ์ด ํ•จ๊ป˜ ๋‚˜์˜ฌ ๋•Œ๋Š”, if์ ˆ ๋‹ค์Œ์—๋Š” ๊ธ์ • ์กฐ๊ฑด์„ else์—๋Š” ๋ถ€์ • ์กฐ๊ฑด ๋•Œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ์ˆ ํ•จ์„ ์›์น™์œผ๋กœ ํ•œ๋‹ค.
    • ์ด๋Š” if ~ else ํ˜•์‹์˜ ๋ฌธ์žฅ์„ ๋ดค์„ ๋•Œ, ๊ฐ€๋Šฅํ•œ ์ผ๊ด€๋˜๊ฒŒ ํ•ด์„์ด ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
if (condition) {
	// when condition == true.
}
else {
	// when condition == false.
}

// ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์ง€ ์•Š๋Š”๋‹ค.
if (!condition) {
	// when condition == false.
}
else {
	// when condition == true.
}
  • if ~ else if ~ else ํ‘œํ˜„:
if (...) {
	// . . .
}
else if (...) {
	// . . .
}
else if (...) {
	// . . .
}
else {
	// . . .
}
  • ๋‹ค์ˆ˜์˜ or , and ๋กœ ์—ฐ๊ฒฐ๋œ ๊ธด ์กฐ๊ฑด์‹์ด ์žˆ๋Š” ๊ฒฝ์šฐ:
if (CONDITION1 ||
	CONDITION2 ||
	CONDITION3 ||
	CONDITIONn)
{
	// . . .
}

// ์ž„์‹œ๋กœ ํŠน์ • ์กฐ๊ฑด์„ ๋ง‰์•„๋‘๊ฑฐ๋‚˜ ํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŽธํ•˜๊ฒŒ ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
if (CONDITION1 ||
	CONDITION2 ||
//	CONDITION3 ||
	CONDITIONn)
{
	// . . .
}
  • C์–ธ์–ด์˜ ๊ฒฝ์šฐ: if๋‚˜ while๋“ฑ์˜ ์กฐ๊ฑด์‹์—์„œ, ๋Œ€์ž… ์—ฐ์‚ฐ(=)๊ณผ ๋น„๊ต ์—ฐ์‚ฐ(==)์˜ ์˜คํƒ€๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค.
    • ์กฐ๊ฑด์‹์—์„œ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ==์˜ ์˜คํƒ€๋กœ ์˜ค์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ.
    • ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ๋น„๊ตํ•  ๊ฒฝ์šฐ, ์ƒ์ˆ˜๋ฅผ ๋จผ์ € ์“ด๋‹ค. ์˜คํƒ€์ผ ๊ฒฝ์šฐ, ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋„๋ก.
if (10 == a) { ... }
  • C++์€ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ’์ด bool ํƒ€์ž…์ด ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, C์—์„œ์™€ ๊ฐ™์€ ์˜คํƒ€๋กœ ์ธํ•œ ์˜ค๋ฅ˜๋Š” ๋ฐฉ์ง€๊ฐ€ ๋˜์ง€๋งŒ, ํ˜ผ๋™์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๊ฑด์‹ ์•ˆ์—์„œ ๋Œ€์ž… ์—ฐ์‚ฐ์€ ๊ฐ€๋Šฅํ•œ ํ•˜์ง€ ๋ง์ž.
    • ์กฐ๊ฑด์‹์˜ ํŒ์ •์„ bool ํƒ€์ž…์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด true/false๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์จ์ค„ ํ•„์š”๋Š” ์—†๋‹ค.
// ๋‹ค์Œ์€ ์˜๋ฏธ์ƒ์˜ ์ค‘๋ณต
if (a == true) { ... }

// ์˜คํƒ€๋กœ ์ธํ•œ ๋ฒ„๊ทธ๋„ ์šฐ๋ ค๋œ๋‹ค
if (a = true) { ... }

switch

switch (condition) {
	case CASE_1:
		break;

	case CASE_2:
	case CASE_3:
		break;

	case CASE_n:
		break;

	default:
		break;
}

/* case ์•ˆ์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ */
switch (condition) {
	case CASE_x: {
		int x = xxx;
		// . . .	
		break;
	}
}

wile, do ~ while

while {
	// . . .
}

do {
	// . . .
} while (...);

do ~ while์—์„œ while์€ } ๋‹ค์Œ์— ์“ด๋‹ค. ๋‹ค์Œ ํ–‰์œผ๋กœ ๋‚ด๋ ค์„œ ์“ฐ๋ฉด ์ผ๋ฐ˜ while๋ฌธ๊ณผ ํ˜ผ๋™๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—.

for

for (int i = 0; i < MAX, i++) {
	// . . .
}

3ํ•ญ ์—ฐ์‚ฐ์ž

์กฐ๊ฑด์— ๋•Œ๋ผ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์งˆ ๋•Œ,

/* Java */
int some;
if (cond)
	some = 1;
else
	some = 0;

3ํ•ญ ์—ฐ์ƒ์ž๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•˜๊ธฐ.

/* Java */
final int some = cond ? 1 : 0;

// ๋˜๋Š” 
final int some = cond
	? 1
	: 0;

๋‘๋ฒˆ์งธ ํ‘œํ˜„ ๋ฐฉ์‹์€, ๋‹จ์ˆœํ•œ ์ƒ์ˆ˜๋ฅผ ํ• ๋‹นํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋‚ด์šฉ์ด ์ข€ ๋” ๋ณต์žกํ•œ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋‹ค.

ํŠนํžˆ ์ค‘์ฒฉ๋œ ์กฐ๊ฑด์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—,

/* Java */
final int some = cond > 0
	? cond == 1
		? getCase1()
		: getCase2()
	: cond < 0
		? getCase3()
		: getCase4();

ํ•จ์ˆ˜

ํ•จ์ˆ˜ ์„ ์–ธ

void Func(int argName, ...) {
	// TODO ...
}

void Func(int arg_1,
	int arg_2,
	int arg_n)
{
	// TODO ...
}

// ๊ฒฐ๊ณผ๊ฐ’์„ return๋ฌธ ์•„๋‹Œ ์ธ์ˆ˜์—๋‹ค ์ „๋‹ฌ ํ•  ๊ฒฝ์šฐ, ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌ ๋ฐ›๋Š” ์ธ์ˆ˜์— ์ ‘๋‘์–ด 'out_' ์„ ๋ถ™์ธ๋‹ค.
// out_์ด ๋ถ™์€ ์ธ์ž๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•จ์ˆ˜๋‚ด์—์„œ ์ดˆ๊ธฐํ™”๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.
void FuncA(int* out_result) { ... }
void FuncB(int& out_result) { ... }

ํ•จ์ˆ˜ ํ˜ธ์ถœ

  • ์ œ์–ด๋ฌธ๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด, ํ•จ์ˆ˜๋ช…์— ( )๋ฅผ ๊ณต๋ฐฑ์—†์ด ๋ถ™์—ฌ์„œ ์“ด๋‹ค.
  • ํ•จ์ˆ˜ ์ธ์ž๊ฐ€ ๊ธธ์–ด์ง€๋Š” ๊ฒฝ์šฐ:
Func(arg_1,
	arg_2,
	arg_n);

result = Func(arg_1,
	arg_2,
	arg_n);
  • ๋ถ€๋“ฑํ˜ธ๊ฐ€ ํฌํ•จ๋œ ์—ฐ์‚ฐ(>, <, >=, <=)์€ ํ•จ์ˆ˜ ์ธ์ž๋ฅผ ๋„˜๊ธฐ๋Š” ๊ณณ์—์„œ๋Š” ๊ฐ€๊ธ‰์  ์“ฐ์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. C++์˜ ๊ฒฝ์šฐ ํ…œํ”Œ๋ฆฟ ๋ฌธ๋ฒ•(< >)๊ณผ ํ˜ผ๋™์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

C#

  • ๋งค์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‚™ํƒ€๋ฒ•์œผ๋กœ ๋ช…๋ช…ํ•œ๋‹ค.
  • ๋งด๋ฒ„๋ณ€์ˆ˜๋Š” m_ ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‚™ํƒ€๋ฒ•์œผ๋กœ ๋ช…๋ช…ํ•œ๋‹ค.
    • ๋‹จ public ๋งด๋ฒ„๋ณ€์ˆ˜๋Š” ํ”„๋กœํผํ‹ฐ ์ž‘๋ช…๊ณผ ๋™์ผํ•œ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค.
class Sample {
	public string Name;
	private int m_memberVar;

	public int ExcuteSome(int someParam) {
		int local_var = 1;
		return local_var * memberVar + someParam;
	}

	public int Count {
		get { return 0; } 
	}
}

Java

  • ๋งด๋ฒ„ ๋ณ€์ˆ˜๋Š” ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‚™ํƒ€๋ฒ•์œผ๋กœ ๋ช…๋ช…ํ•œ๋‹ค.
  • ๋งค์„œ๋“œ๋Š” ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‚™ํƒ€๋ฒ•์œผ๋กœ ๋ช…๋ช…ํ•œ๋‹ค.
class Sample {
	public string name;
	private int memberVar;

	public int excuteSome(int someParam) {
		int local_var = 1;
		return local_var * m_memberVar + someParam;
	}
}

Kotlin

๋ช…๋ช…๊ทœ์น™

  • Type์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘
    • enum ๋‚ด๋ถ€์˜ ํ•ญ๋ชฉ๋“ค์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘. (์ƒ์ˆ˜ ์ทจ๊ธ‰)
  • ์ปดํŒŒ์ผ ํƒ€์ž„ ์ƒ์ˆ˜(const)๋Š” ๋ชจ๋‘ ๋Œ€๋ฌธ์ž
  • ์ด ์™ธ๋Š” ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘

Android

Resource ID ๋ช…๋ช… ๊ทœ์น™

๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ๋ฌธ์ž์™€ ๋ฐ‘์ค„(_)๋งŒ์œผ๋กœ ๋ช…๋ช…ํ•˜๋Š” ๊ฒƒ์„ ์›์น™์œผ๋กœ ํ•œ๋‹ค.

View ID

prefix ่ชฌๆ˜Ž
action_ Button ๋“ฑ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์•ก์…˜์„ ๋ฐ˜์˜ํ•˜๋Š” UI
edit_ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ/ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ๋Š” UI
select_ ์—ด๊ฑฐ๋œ ํ•ญ๋ชฉ ์ค‘์—์„œ ์„ ํƒ๋งŒ ๊ฐ€๋Šฅํ•œ UI
text_ ๋ฌธ์ž์—ด์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ UI
img_ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ UI
view_ ๊ธฐํƒ€, ์ •๋ณด ํ‘œ์‹œ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” UI
touch_ ํ„ฐ์น˜ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•œ UI. ์‹ค์ œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋‚ด์šฉ๋ณด๋‹ค ๋” ๋„“์€ ํ„ฐ์น˜ ์˜์—ญ์„ ์ง€์ •ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ.
list_ ListView, RecyclerView ๊ฐ™์ด Adapter๋ฅผ ์ด์šฉํ•ด์„œ ๋‚ด๋ถ€์— ๋‹ค์ˆ˜์˜ Item View๋ฅผ ํ‘œ์‹œํ•˜๋Š” UI
group_ ๋ณต์ˆ˜์˜ View๋ฅผ ๊ทธ๋ฃนํ™”ํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์˜ UI

๋‚ด์šฉ์ƒ ์ค‘๋ณต๋˜๋Š” UI๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ช…๋ช… ๊ทœ์น™์€ ์œ„์—์„œ ๋ถ€ํ„ฐ ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” UI์ด์ง€๋งŒ ๋ฒ„ํŠผ์ฒ˜๋Ÿผ ์“ฐ์ด๋Š” ๊ฒฝ์šฐ๋Š” action_ ์„ ๋ถ™์ธ๋‹ค.

strings

prefix ่ชฌๆ˜Ž
err_ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€
fmt_ Formatting์„ ์œ„ํ•œ ๋ฌธ์ž์—ด
msg_ ๋ฉ”์„ธ์ง€ ํ‘œ์‹œ๋ฅผ ์œ„ํ•œ ๋ฌธ์ž์—ด

๋ฆฌ์†Œ์Šค ํŒŒ์ผ ๋ช…๋ช… ๊ทœ์น™

Layout

prefix ่ชฌๆ˜Ž
activity_ Activity Layout
fragment_ Fragment Layout
dailog_ Dialog Layout
adapter_ Adapter์—์„œ Item View๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” Layout
sub_ ๋‹ค๋ฅธ Layout์—์„œ include ํƒœ๊ทธ ๋“ฑ์œผ๋กœ ๋ถˆ๋ ค์ง€๋Š” Layout

Swift

๋ช…๋ช…๋ฒ•

UI Controls

  • ์ž…๋ ฅ ์ปจํŠธ๋กค: inputXxxx
  • ํ‘œ์‹œ์šฉ ์ปจํŠธ๋กค(์ž…๋ ฅ/๋ถˆ๋Ÿฌ์˜จ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ์šฉ๋„): dispXxxx
  • ๋ฒ„ํŠผ: btnXxxx
  • ๋ผ๋ฒจ: lblXxxx
  • ์ด๋ฏธ์ง€ ํ‘œ์‹œ: imgXxxx
  • UIBarButtonItem: bbiXxxx

Class

class HomeViewController: UIViewController {
// ...
}

// ํด๋ž˜์Šค ์„ ์–ธ๋ถ€๊ฐ€ ๊ธด ๊ฒฝ์šฐ
class HomeViewController
: UIViewController
, AVAudioRecorderDelegate
, CLLocationManagerDelegate {	
	@IBOutlet weak var txtDisplay: UILabel!
	@IBOutlet weak var btnStart: UIButton!
	@IBOutlet weak var btnStop: UIButton!

	// . . .
}

function / method

์ธ์ˆ˜๊ฐ€ ๊ธด ๊ฒฝ์šฐ

func getTodayData(
	date: SizYearMonthDay,
	onResponse: @escaping (
		_ resultCode: SimpleApiResultCode,
		_ today: CheckInOut?,
		_ today_vocation: Vocation?,
		_ yesterday: CheckInOut?
	) ->Void
) -> Bool {
	//...
}

์ œ์–ด๋ฌธ

if ~ else

if cond {
    // ...
}
else {
    // ...
}

Switch

switch์™€ case/default๋Š” ๊ฐ™์€ ์—ด์—

switch xxx {
case A:
    // ...

case B:
    // ...

case C:
    // ...

default: break // default๋Š” ๋ฐ˜๋“œ์‹œ ํฌํ•จ ์‹œํ‚ฌ ๊ฒƒ!
}

do ~ catch

do {
    try some()
}
catch someException {
    // ...
}