DAY 6

๐Ÿ”–ย ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ : 3์žฅ ํ•จ์ˆ˜.


<aside> ๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์จ๋ณด์„ธ์š”.

</aside>

<aside> ๐Ÿค” ์˜ค๋Š˜ ์ฝ์€ ์†Œ๊ฐ์€? ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ์„ ๊ฐ€๋ณ๊ฒŒ ์ ์–ด๋ณด์„ธ์š”

</aside>

ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ์— ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด๋ผ.. ๋ผ๋Š” ๋‚ด์šฉ์€ ์•„๋‹ˆ๋‹ค.

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

ํ•จ์ˆ˜์˜ ์™ธํ˜•์ ์œผ๋กœ๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ์ธ์ˆ˜์˜ ๊ฐฏ์ˆ˜, ์ถœ๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ• ์ˆ˜ ์žˆ์—ˆ๊ณ , ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ, ๊ทธ๋ฆฌ๊ณ  ์—ญํ• ์„ ๋ถ„๋ฆฌํ•ด์„œ, ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ์‚ฌ๋žŒ์ด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ• ๊นŒ๋ฅผ ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ•ํ„ฐ์˜€๋‹ค.

<aside> ๐Ÿ”Ž ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์ ์–ด๋ณด์„ธ์š”.

</aside>

ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.. ๋ผ๊ณ  ์ฑ…์— ๋‚˜์™€์žˆ๋‹ค. ์ถ”์ƒํ™”๋Š” ๋ณดํ†ต class์˜ ๋ผˆ๋Œ€์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ํ•จ์ˆ˜์— ์žˆ์–ด์„œ ์ถ”์ƒํ™”๊ฐ€ ๋ฌด์—‡์ผ๊นŒ.. ์ƒ๊ฐ์„ ํ•ด๋ณด๊ณ  ๊ตฌ๊ธ€๋ง๋„ ํ•ด๋ดค๋Š”๋ฐ..

๋‚ด ์ƒ๊ฐ์—๋Š” ํ•จ์ˆ˜์˜ ์ถ”์ƒํ™”๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ทธ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š๋ƒ์™€๋„ ๊ด€๊ณ„๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•œ๋‹ค. ๊ณตํ•™์—์„œ ๋งํ•˜๋Š” ์ถ”์ƒํ™”๋Š”..

The process of establishing the decomposition of a problem into simpler and more understood primitives is basic to science and software engineering. This process has many underlying techniques of abstraction.

์œ„์˜ ๊ธ€์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ์ชผ๊ฐœ๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ๋ถ„ํ•ดํ•ด์„œ.. ๋ช…๋ฃŒํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ธ๋ฐ..

์ด ์ฑ…์—์„œ ๋งํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ถ”์ƒํ™”๋Š” ์œ„์˜ ๊ฐœ๋…์ด ์•„๋‹๊นŒ ํ•œ๋‹ค.. ์ด๋ฅผํ…Œ๋ฉด, ์ฑ…์— ๋‚˜์™€์žˆ๋Š” ์ฝ”๋“œ์ธ getHtml()์€ ์ถ”์ƒํ™”๊ฐ€ ๋งค์šฐ ๋†’๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿด ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ฒƒ์ด.. getHtml์€ html์„ ์–ป์–ด์™€์„œ ๋ฌด์—‡์„ ํ•˜๊ฒ ๋‹ค๋ผ๋Š” ๊ฒƒ์ด.. ์—†๋‹ค. ์ถ”์ƒํ™”๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์€.. ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋ ค๋ฉด ์ด ์•„์ด๋ฅผ ๋” ์ชผ๊ฐœ์„œ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•œ๋‹ค. ์ฆ‰ getHtml์•ˆ์—์„œ๋Š” ๊ทธ ์ฝ”๋“œ๊ฐ€ ํ•˜๋ ค๋Š” ์ž‘์—…์„ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—ญํ• ์„ ํ•˜๋Š” ์ฝ”๋“œ๋“ค์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๋ณธ๋‹ค.

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

ํ•จ์ˆ˜์˜ ์ถ”์ƒํ™”๋Š” ์ด๋ ‡๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•œ๋‹ค.