๋ณดํต โ์ํ์ด ์ ํ์ํ๊ฐ?โ๋ผ๋ ์ง๋ฌธ์ ๋ฐ์ต๋๋ค. ๊ทธ๋ค์ "๋ง์์ ์ฒด์กฐ"์ ๊ฐ์ ๋๋ต์ ํฉ๋๋ค. ์ ์๊ฐ์๋ ์ด ์ค๋ช ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ฌ๋์ด ์ ์ฒด ์ด๋์ ํ ๋ ๋ฐ๋ฌํ๋ ๊ทผ์ก๊ตฐ์ ์ ํํ ์ด๋ฆ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํ์ ๊ดํ ๋ํ๋ ์ฌ์ ํ ๋๋ฌด ์ถ์์ ์ ๋๋ค. ํ๊ต ๋์ํ์์๋ ์ด๋ค ๊ตฌ์ฒด์ ์ธ "์ ์ ๊ทผ์ก"์ ํ๋ จํฉ๋๊น? ์๋ํ ๋ฐ๊ฒฌ์ด ์ด๋ฃจ์ด์ง๋ ์ค์ ์ํ๊ณผ ์ ํ ์ ์ฌํ์ง ์์ต๋๋ค. ์ผ๋ถ ๋ณต์กํ ํจ์์ ๋ฏธ๋ถ์ ์ฐพ๋ ๋ฅ๋ ฅ์ ๋ฌด์์ ์ ๊ณตํฉ๋๊น?
์ฝํ ํ์๋ค์๊ฒ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅด์น๋ฉด์ โ์?โ๋ผ๋ ์ง๋ฌธ์ ๋ํ ๋ ์ ํํ ๋ต์ ์ป์์ต๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ๊ทธ๊ฒ์ ์ฌ๋ฌ๋ถ์๊ฒ ์ ๋ฌํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
ํ๊ต์์๋ ํํ์ ๋ณํํ๊ณ ๋จ์ํํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ํ ์ ํฉ๋๋ค. ์: 81ร2+126xy+49y2๋ (9x+7y)2๋ก ๋ณํ๋์ด์ผ ํฉ๋๋ค.
์ด ์์์ ํ์์ ํฉ๊ณ์ ์ ๊ณฑ ๊ณต์์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
๋ ๋ณต์กํ ๊ฒฝ์ฐ์๋ ๊ฒฐ๊ณผ ํํ์์ ๋ค๋ฅธ ๋ณํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
๋จผ์ ๋ค์์ผ๋ก ๋ณํ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ (a + 2b) != 0์ผ๋ก ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ฉ๋๋ค.
์ด ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ํ์์ ์๋ ํํ์์ ์ธ์ํ ๋ค์ ์ธ ๊ฐ์ง ๊ณต์์ ์ ์ฉํด์ผ ํฉ๋๋ค.
- ํฉ์ ์ ๊ณฑ
- ์ ๊ณฑ์ ์ฐจ์ด
- ๊ณต๋ถ์์ ์ธ์ ์ค์ด๊ธฐ
๋์ํ๋ถ์์๋ ๊ฑฐ์ ๋๋ถ๋ถ์ ์๊ฐ์ ์ด๋ฐ ์์ผ๋ก ๋ณํํ๋ ๋ฐ ์๋นํ์ต๋๋ค. ๋ํ์ ๊ณ ๋ฑ์ํ์์๋ ํฌ๊ฒ ๋ณํ ๊ฒ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํจ์(์ ๋ถ ๋ฑ)๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณ ์๋ง์ ๋ฌธ์ ๊ฐ ์ฃผ์ด์ก์ต๋๋ค. ๋์์ด ๋์๋์? ์ ์๊ฐ์๋ - ๊ทธ๋ ์ต๋๋ค. ๋ค์ ์ฐ์ต์ ์ํํ ๊ฒฐ๊ณผ:
- ํ์ ์ ๋ณํ์ํค๋ ์คํฌ์ด ์ฐ๋ง๋์์ต๋๋ค.
- ์ธ๋ถ ์ฌํญ์ ๋ํ ๊ด์ฌ์ด ๋ฐ์ ํ์ต๋๋ค.
- ์ด์์ด ํ์ฑ๋์์ต๋๋ค. ๋ ธ๋ ฅํ ์์๋ ๊ฐ๊ฒฐํ ํํ์ ๋๋ค.
์ ์๊ฐ์๋ ๊ทธ๋ฌํ ์ ์ , ํ์ง, ๊ธฐ์ ์ ๊ฐ๋ ๊ฒ์ ๊ฐ๋ฐ์์ ์ผ์ ์ ๋ฌด์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๊ฒฐ๊ตญ, ํํ์ ๋จ์ํํ๋ค๋ ๊ฒ์ ์๋ฏธ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ํํ์ ๊ตฌ์กฐ๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ญ๊ฐ ์๊ฐ๋๋ ๊ฒ ์๋์?
์ด๋ ์ค์ง์ ์ผ๋ก Martin Fowler์ ๋๋ช ์ฑ ์ ๋์ค๋ ๋ฆฌํฉํ ๋ง์ ์ ์์ ๋๋ค.
๊ทธ์ ์ํ์์ ์ ์๋ ์ด๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ณต์ํํฉ๋๋ค.
๋ฆฌํฉํ ๋ง(n): ๊ด์ฐฐ ๊ฐ๋ฅํ ๋์์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ ๋ ์ฝ๊ฒ ์์ ํ ์ ์๋๋ก ์ํํธ์จ์ด์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋๋ค.
๋ฆฌํฉํฐ๋ง(๋์ฌ): ๋์์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ผ๋ จ์ ๋ฆฌํฉํ ๋ง์ ์ ์ฉํ์ฌ ์ํํธ์จ์ด์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
์ด ์ฑ ์ ์์ค ์ฝ๋์์ ์ธ์ํด์ผ ํ๋ '๊ณต์'๊ณผ ์ด๋ฅผ ๋ณํํ๋ ๊ท์น์ ์ ๊ณตํฉ๋๋ค.
๊ฐ๋จํ ์๋ก ์ฑ ์ ๋์ค๋ "์ค๋ช ๋ณ์ ์๊ฐ"๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
if ( (platform.toUpperCase().indexOf(โMACโ) > -1 ) &&
(browser.toUpperCase().indexOf(โIEโ) > -1 )&&
wasInitialized() && resize > 0 ) {
// do something
}
ํํ์์ ์ผ๋ถ๋ ์ด๋ฆ์ด ํด๋น ๋ชฉ์ ์ ์ค๋ช ํ๋ ๋ณ์์ ์์ฑ๋์ด์ผ ํฉ๋๋ค.
final boolean isMacOS = platform.toUpperCase().indexOf(โMACโ) > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf(โIEโ) > -1;
final boolean isResized = resize > 0;
if(isMacOS && isIEBrowser && wasInitialized() && isResized) {
// do something
}
์ ๊ณฑํฉ๊ณผ ์ ๊ณฑ์ฐจ ๊ณต์์ ์ฌ์ฉํ์ฌ ๋์์์ ๋จ์ํํ ์ ์๋ ์ฌ๋์ ์์ํด ๋ณด์ญ์์ค.
์ด ์ฌ๋์ด ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ ์ ์๋ค๊ณ ์๊ฐํ์๋์?
์ด ๊ฐ๊ฒฐํจ์ ์ด์์ ํ์ฑํ์ง ์์๋ค๋ฉด ๊ทธ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ดํดํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์๊น์? ๋ด ์๊ฐ์๋ ๊ทธ๋ ์ง ์๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋๊ฐ ํ๊ต์ ๊ฐ๊ณ ์์๋ง์ด ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฉ๋๋ค. ํ์ ๋ณํ ์คํฌ์ด ์ผ๋ฐ์ธ์๊ฒ๋ ์ ์ฉํ๊ฐ์? ๋ง๋ ๊ฒ ๊ฐ์์. ๊ธฐ์ ๋ง์ด ๋ณด๋ค ์ถ์์ ์ธ ํํ๋ก ์ ์ฉ๋ฉ๋๋ค. ๋ชฉํ์ ๋ ๊ฐ๊น์์ง๋ ค๋ฉด ์ํฉ์ ํ๊ฐํ๊ณ ์ถ๊ฐ ์กฐ์น๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ๊ต์กํ์์๋ ์ด ํ์์
๊ฐ์ฅ ๋์ ๋๋ ์ฌ๋ก๋ ์ฆ์์์ "์ง๋จ ๋์ฅ" ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ง์์ ์๋ฆฌํ๋ ๋์ ๋ฐ์ํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์ผํ "ํธ๋ฆญ"๊ณผ ๊ตฌ๋ช ํดํน์ด ๋ํ๋๊ณ ๊ทธ ์ค ํ๋๊ฐ KPDV์ ํ์๋ฉ๋๋ค. ์์ด๋์ด์ ์ ์๋ ๋๋ฌด ์กฐ๊ฐ, ์ฒ ์ฌ, ๋์ฌ XNUMX๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ๊ทธ๋ ๋จํ ์์ผ ํ ํ๋ฆฟ์ ๊ธฐ์ตํ๊ณ ๊ทธ ํ ํ๋ฆฟ์ผ๋ก ์ง์ ๋ง๋ ๋จํ ์์ผ์ ์กฐ๋ฆฝํ์ต๋๋ค.
์ฐจ๋์ ์ด์ ํ ๋์๋ ์ด์ ์๋ ๋์์์ด ์ฃผ๋ณ ์ธ๊ณ์ ํจํด์ ์ธ์ํ๊ณ ๋ชฉ์ ์ง์ ๋๋ฌํ๊ธฐ ์ํด ์ ์ ํ ๊ธฐ๋์ ์คํํฉ๋๋ค.
๋น์ ์ด ์ฃฝ์ผ๋ฉด ๋น์ ์ ๊ทธ๊ฒ์ ๋ํด ๋ชจ๋ฅด๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ์ด๋ ค์ธ๋ฟ์ ๋๋ค. ์ํ์ ๋ง์คํฐํ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ฌ๋์ด ํํ์ ๋ณํ์ ์ตํ์ง ๋ชปํ๋ฉด ์ด๋ป๊ฒ ๋๋์? ๊ฐ๋ ํ๊ต์์ ์ํ์ ์ ๋ชปํ๋ ํ์๋ค์๊ฒ ๊ฐ์ธ ๋ ์จ์ ๊ฐ๋ฅด์น๊ธฐ๋ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ค์ ์ํ ์ฃผ์ ์ ์์ ํ ๋น ์ ธ ์์ต๋๋ค. ๋๋ฌด ๋ง์์ "๋์ํ"์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ํํด์ผ ํฉ๋๋ค.
์ด๋ ๋ฃจํ๋ฅผ ์์ฑํ ๋ ์ฃผ์ ๊ธฐ์ ์ด ๋์ผํ ํํ์ ๊ทธ๋ฃน์ ๋ณํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ๊ฒฐ๊ณผ๊ฐ ๋ค์๊ณผ ๊ฐ์์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
์๊ฐ
์ฅ 1
์ฅ 2
์ฅ 3
์ฅ 4
์ฅ 5
์ฅ 6
์ฅ 7
๊ฒฐ๋ก
์ด ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
static void Main(string[] args)
{
Console.WriteLine("ะะฒะตะดะตะฝะธะต");
Console.WriteLine("ะะปะฐะฒะฐ 1");
Console.WriteLine("ะะปะฐะฒะฐ 2");
Console.WriteLine("ะะปะฐะฒะฐ 3");
Console.WriteLine("ะะปะฐะฒะฐ 4");
Console.WriteLine("ะะปะฐะฒะฐ 5");
Console.WriteLine("ะะปะฐะฒะฐ 6");
Console.WriteLine("ะะปะฐะฒะฐ 7");
Console.WriteLine("ะะฐะบะปััะตะฝะธะต");
}
๊ทธ๋ฌ๋ ์ด ์๋ฃจ์ ์ ๊ฐ๊ฒฐํ ์ด์๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋ค. ๋จผ์ ๊ทธ ์์์ ๋ฐ๋ณต๋๋ ์์ ๊ทธ๋ฃน์ ์ฐพ์ ๋ณํํด์ผ ํฉ๋๋ค. ๊ฒฐ๊ณผ ์๋ฃจ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
static void Main(string[] args)
{
Console.WriteLine("ะะฒะตะดะตะฝะธะต");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("ะะปะฐะฒะฐ " + i);
}
Console.WriteLine("ะะฐะบะปััะตะฝะธะต");
}
์ฌ๋์ด ํ ๋ฒ์ ์ํ์ ๋ง์คํฐํ์ง ์์๋ค๋ฉด ๊ทธ๋ฌํ ๋ณํ์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋จ์ํ ์ ์ ํ ๊ธฐ์ ์ ๊ฐ๊ณ ์์ง ์์ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๋ฃจํ๋ผ๋ ์ฃผ์ ๊ฐ ๊ฐ๋ฐ์ ๊ต์ก์ ์ฒซ ๋ฒ์งธ ์ฅ์ ๋ฌผ์ด ๋๋ ์ด์ ์ ๋๋ค.
๋ค๋ฅธ ์์ญ์์๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฌ๋์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๋ฉด ์ผ์์ ์ธ ๋ ์ฐฝ์ฑ์ ๋ณด์ฌ์ค ์ ์์ต๋๋ค. ์ ํ ๋ฐฉ์ธ์ ์์ด ์๋ฑํ ๊ณณ์์ ์๋ผ๊ณ ์๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค. ๋๋ก์์ ์ด๋ ์ํฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๊ฐํ๊ณ ๊ธฐ๋์ ์ ํํ ์ ์๋ค๋ ์ ์์ ๋ํ๋ฉ๋๋ค. ๋๋ก๋ ๋น๊ทน์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์๋ ์์ต๋๋ค.
๊ฒฐ๋ก :
- ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ์๋จ์ผ๋ก ์ธ์์ ๋ ๋์ ๊ณณ์ผ๋ก ๋ง๋ค๋ ค๋ฉด ํ๊ต์ ๋ํ์ ์ํ์ด ํ์ํฉ๋๋ค.
- ๋น์ ์ด ํ์์ด๊ณ ํ์ต์ฃผ๊ธฐ์ ์ด๋ ค์์ ๊ฒช๊ณ ์๋ค๋ฉด ๊ธฐ๋ณธ, ์ฆ ํ๊ต ๋์ํ์ผ๋ก ๋์๊ฐ์ญ์์ค. 9ํ๋ ๋ฌธ์ ์ง์ ๊ฐ์ง๊ณ ๊ทธ ์์ ์๋ ์๋ฅผ ํ์ด๋ณด์ธ์.
์ถ์ฒ : habr.com