๐Ÿฆพ3์žฅ ํ•จ์ˆ˜

๊น€์ข…์™„ยท2023๋…„ 4์›” 29์ผ
1

CleanCode

๋ชฉ๋ก ๋ณด๊ธฐ
2/6

์ž‘๊ฒŒ๋งŒ๋“ค์–ด๋ผ

์ €์ž๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ€๋Šฅํ•˜๋ฉด ์งง๊ฒŒ ๋งŒ๋“ค๋ผ๊ณ  ์กฐ์–ธํ•œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์ดํ•ดํ•˜๊ธฐย ์‰ฝ๊ฒŒ ํ•˜๊ณ ย ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€๋ฅผ ์ง๊ด€์ ์œผ๋กœ ํŒŒ์•…ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒย ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? ์ €์ž๋Š” ๋งค์šฐ ๋‹จ์ˆœํ•œ ํ•ด๊ฒฐ์ฑ…์„ย ์ œ์‹œํ•œ๋‹ค. ํ•จ์ˆ˜ย ์ฝ”๋“œ๋ฅผย ๊ฐ€๋Šฅํ•œ ํ•œ ์ž‘๊ฒŒย ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. 2๊ฐœ์˜ ํ•จ์ˆ˜๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

์•„๋ž˜ ํ•จ์ˆ˜๋Š” ํŽ˜์ด์ง€๋ฅผย ๋ Œ๋”๋งํ•˜๊ณ ย ์„ค์ • ๋ฐ ์ฒญ์†Œํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

ํ•จ์ˆ˜ 1

public static String renderPageWithSetupAndTeardowns(
	PageData pageData, boolean isSuite
) throws Exception {
  boolean isTestPage = pageData.hasAttribute("Test");
	if (isTestPage) {
		WikiPage testPage = pageData.getWikiPage();
		StringBuffer newPageContent = new StringBuffer();
		includeSetupPages(testPage, newPageContent, isSuite);
		newPageContent.append(pageData.getContent());
		includeTeardownPages(testPage, newPageContent, isSuite);
		pageData.setContent(newPageContent.toString());
	}
	return pageData.getHtml();
}

ํ•จ์ˆ˜2

public static String renderPageWithSetupsAndTeardowns(
	PageData pageData, boolean isSuite) throws Exception {
	if (isTestPage(pageData))
		includeSetupAndTeardownPages(pageData, isSuite);
	return pageData.getHtml();
}

์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ์ง๊ด€์ ์ด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด๊ฐ€? ํ•จ์ˆ˜ 1์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ดํ•ด ํ•ด์•ผ๋˜์ง€๋งŒ ํ•จ์ˆ˜ 2์˜ ๊ฒฝ์šฐ ์กฐ๊ฑด๋ฌธ ํ•˜๋‚˜์™€ ๋‚ด๋ถ€ ํ•จ์ˆ˜ ํ•˜๋‚˜ ๊ทธ๋ฆฌ๊ณ  ๋ฆฌํ„ด๋ฌธ์—์„œ html ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ๋งŒ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.

ํ•œ๊ฐ€์ง€๋งŒ ํ•ด๋ผ

ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋งŒ ํ•ด์•ผ๋œ๋‹ค. ์ง€์ •๋œ ํ•จ์ˆ˜ ์ด๋ฆ„ ์•„๋ž˜์—์„œ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•˜๋‚˜์ธ ๋‹จ๊ณ„๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋Š” ํ•œ๊ฐ€์ง€ ์ž‘์—…์„ ํ•œ๋‹ค.

ํ•จ์ˆ˜ ๋‹น ์ถ”์ƒํ™” ์ˆ˜์ค€์€ ํ•˜๋‚˜๋กœ

ํ•จ์ˆ˜์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์„ž์ด๋ฉด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด getHtml()์€ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์•„์ฃผ ๋†’๋‹ค.
String pagePathName = PathParser.render(pagepath); ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์ค‘๊ฐ„์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  .append(โ€\nโ€)์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์•„์ฃผ ๋‚ฎ๋‹ค.
ํ•œ ํ•จ์ˆ˜ ๋‚ด์— ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์„ž์œผ๋ฉด ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ํŠน์ • ํ‘œํ˜„์ด ๊ทผ๋ณธ ๊ฐœ๋…์ธ์ง€ ์•„๋‹ˆ๋ฉด ์„ธ๋ถ€์‚ฌํ•ญ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ค์šด ํƒ“์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์ด์ •๋„๋กœ ๊ทธ์น˜์ง€ ์•Š๋Š”๋‹ค. ๊ทผ๋ณธ ๊ฐœ๋…๊ณผ ์„ธ๋ถ€์‚ฌํ•ญ์„ ๋’ค์„ž๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด, ๊นจ์–ด์ง„ ์ฐฝ๋ฌธ์ฒ˜๋Ÿผ ์‚ฌ๋žŒ๋“ค์ด ํ•จ์ˆ˜์— ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ ์  ๋” ์ถ”๊ฐ€ํ•œ๋‹ค.

switch ๋ฌธ์€ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ๋กœ ํ•ด๊ฒฐ

switch๋ฌธ์€ ๋ณธ์งˆ์ ์œผ๋กœ n๊ฐ€์ง€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ switch๋ฌธ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ switch๋ฌธ์„ ์ €์ฐจ์› ํด๋ž˜์Šค์— ์ˆจ๊ธฐ๊ณ  ์ ˆ๋Œ€๋กœ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜ ์ธ์ˆ˜๋Š” ๊ฐ€๋Šฅํ•œ ์ ๊ฒŒ

ํ•จ์ˆ˜ ์ธ์ˆ˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ผ€์ด์Šค์—์„œ ๋Š˜์–ด๋‚  ์ˆ˜๋ก ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.

๋งŒ์•ฝ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค๊ณ  ํ•˜์ž

  • includeSetupPageInto(new PageContent)
  • includeSetupPageInto()

ํ•จ์ˆ˜ ์ธ์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ ์ถ”์ธกํ•˜๋ฉด ๋˜์ง€๋งŒ ์ธ์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ํ•จ์ˆ˜๋ฅผ ํ•œ๋ฒˆ์— ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค์–ด์ง„๋‹ค.

profile
๊ฐœ๋ฐœ์— ์žฌ๋ฏธ๋ฅผ ๋Š๋ผ๋ฉฐ ๊พธ์ค€ํžˆ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๊น€์ข…์™„ ์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€