์๊ธ์ ์ฃผ์ฅ
1. ๊ฐ์ฒด์งํฅ์์ ๊ฐ์ฒด๋ ์ค์ ์ธ๊ณ์ ์กด์ฌํ์ง ์๋๋ค
2. ๊ฐ์ฒด์งํฅ์ ๋ฉค๋ฒ๋ณ์, ๋ฉ์๋๋ฅผ ๋ฌถ์ ๊ฒ ๋์ด๋ค
3. SOLID, ๋์์ธ ํจํด์ ๊ฐ์ฒด์งํฅ์ ํ์๊ฐ ์๋๋ค
211์ ์ฃผ์ฅ
1. ๊ฐ์ฒด์งํฅ์ ์ค์ ์ธ๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๊ฑฐ ๋ง์
2. SOLID, ๋์์ธํจํด์ ๊ฐ์ฒด์งํฅ์ ํ์๊ฐ ์๋
219์ ์ฃผ์ฅ
1. ์ค์ ์ธ๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ค๋ ๊ฒ๋ง์ผ๋ก๋ ๊ฐ์ฒด์งํฅ์ ์ค๋ช ํ ์ ์๋ค. ๋ค๋ฅธ ์ธ์ด๋ก๋ ์ค์ ์ธ๊ณ๋ฅผ ๋ชจ๋ธ๋งํ ์ ์๋ค
2. ๊ฐ์ฒด์งํฅ์ ๋จ์ํ ๋ฉค๋ฒ๋ณ์์ ๋ฉ์๋๋ฅผ ๋ฌถ์ ๊ฑฐ๋ค
112์ ์ฃผ์ฅ (์๋ง 211)
1. 219์ ๋ง์ ์ดํด ๋ชป ํจย (์์งํ 219 ๊ธ์ด ์ ๋ฌ๋ ฅ์ด ์๊ธด ํ์)
2. ๊ฐ์ฒด์งํฅ์ ํ๋ก๊ทธ๋๋ฐ์ ์ฝ๊ฒย ํ๊ธฐ ์ํด ์๊ฒจ๋ฌ๋ค
3. ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด๋ ์์ฐจ์ ์ผ๋ก ๋์ํ๋ค (๋ ๋ค๋ฅธ ์ธ์๊ฑฐ๋ฆฌ)
219
1. ๋ง๋ ๋ง
2. ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด๋ ์์ฐจ์ ์ผ๋ก ๋์ํ์ง ์์
112
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํ๋ก๊ทธ๋จ๋ฐ ํจ๋ฌ๋ค์์ ๋ฌ๋ผ์ ๊ฐ์ฒด์งํฅ์ธ์ด๋ก๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ ํ ์ ์๋ค
219
๊ฐ์ฒด์งํฅ์ธ์ด๋กย ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ ๋ชป ํจ
(๋๋ ๊ฑฐ ์๋?)
112
1.ย ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด๊ฐ ์ค์ ๋ก ์์ฐจ์ ์ผ๋ก ์งํ๋์ง ์๋๋ผ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ย ์์ฐจ์ ์ผ๋ก ์งํ๋๋ค
2. ๊ฐ์ฒด์งํฅ์ธ์ด๋กย ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ ํ ์ ์์
219
1. ํจ๋ฌ๋ค์๊ณผ ์ธ์ด๋ ์๋ฒฝํ๊ฒ ๊ตฌ๋ถํ ์ ์๋ค
2. ์ปด๊ณต์ ์
112
1.ย ํจ๋ฌ๋ค์๊ณผ ์ธ์ด๋ ๊ตฌ๋ถ ๊ฐ๋ฅ
2. ๋ฐ์ฌใ ใ
219
์ปด๊ณต ํด~~~์ฆ
112
๋ชฐ?๋ฃจ
219
1. 219๊ฐ ์ง
2. ๊ทผ๋ฐ 112๋ ์ ๊ณต์๊ฐ ์๋๋ค
112
1. ์๋ ์ฒ ๋ง๊ณ GPT ๊บผ๋ผ
2. ๋ด๊ฐ ๋ชฐ๋๋ ๊ฑด ๋ถ์ผ๊ฐ ๋ฌ๋๊ธฐ ๋๋ฌธ
219
๋๋ฌด์ํค์
๊ฐ์ฒด์งํฅ์ ์ค์ ์ฌ๋ฌผ์ ๋ชจ๋ธ๋ก ํ๋๊ฒ ์๋๊ฑด ๋ง์ง.. ๋ณด๋ค ๋ ์ถ์์ ์ด๊ณ ํฌ๊ด์ ์ธ ํจ๋ฌ๋ค์์.. ๋ชฉ์ ์ด ์ง๋๋ ํน์ฑ์ ์ธํฐํ์ด์ค๋ก ๊ตฌ์ฑํ๊ณ ๋คํ์ฑ์ผ๋ก ๊ทธ ๋ชฉ์ ์ ํน์ฑ์ ๋ถ๋ฅํ ์ ์๊ณ , ์์์ผ๋ก ๊ฐ๋ ๋๋ฌผ์ ์ผ์ข ์ด๋ค๊ฐ์ is-a ๊ด๊ณ๋ ๋ง๋ค ์ ์๋๊ฑฐ๊ณ ..
์ค์ ์ฌ๋ฌผ์ด ์๋๋ผ๋ ๊ทผ๊ฑฐ๋, ๊ฐ์ฒด๋ผ๋๊ฑธ ๊ผญ ์ฌ๋ฌผ์ด๋ ๋๋ฌผ, ์๋ช ๊ฐ์๊ฑธ๋ก ํ ํ์๊ฐ ์๊ณ , ํน์ ๊ธฐ๋ฅ์ ํ๋ ํด๋์ค์ ๋ํด์ ์ฝ๋ ์ฌํ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฐ๊ด์ฑ์ด ์๋ ์ฝ๋๋ก ํ์์ํค๋ ๊ฒ๋ ๊ฐ์ฒด์งํฅ์ ์๋ฆฌ์ค ํ ๋ถ๋ถ์
๊ทธ๋ฆฌ๊ณ ๋์์ธ ํจํด์ด๋ ๊ฐ์ฒด์งํฅ์ด๋ ๋ ๋ณ๋ก ์ฐ๊ด์ฑ์ด ์๋ค๊ณ ์๊ฐํจ. ๋์์ธ ํจํด์ด๋๊ฒ ๊ผญ ์ง์ผ์ง ํ์๊ฐ ์๊ณ ํํ ์ด๋ฐ ํจํด๋ค์ด ์ฃผ๋ก ์ฐ์ธ๋ค ์ ๋๋ก ์ผ๋ฐํ ์์ผ๋์ ๋ ํผ๋ฐ์ค์ ๋ถ๊ณผํ์ง.. ๊ทธ๊ฑธ ๊ตณ์ด ์ฐธ๊ณ ํด์ ์งค ํ์๊ฐ ์๊ณ ์ ์ด์ ๊ทธ ๋์์ธ ํจํด์ด ๋ฑ ๋ค์ด๋ง๋ ๊ฒฝ์ฐ๋ ์ ์์.. ํนํ๋ ๊ฒ์์ฒ๋ผ ๋ณต์กํ ๊ตฌ์กฐ์ ์ํํธ์จ์ด๋ฉด ๋๋์ฑ;; ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์งํฅ์ ๋ฉค๋ฒ๋ณ์๋ ๋ฉ์๋ ์ด๋ฐ๋ง์ ํ๋๋ฐ.. ์ด๊ฒ๋ ๋ณ ์ฐ๊ด์ฑ์ด ์๋ ์ด์ผ๊ธฐ์.. ๋ฉค๋ฒ๋ณ์๊ฐ์๋ ์ถ์ํด๋์ค๋ก ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ํ์์์ผ์ ํน์ฑ์ ๋ถ๋ฅํ๋ ๊ฒฝ์ฐ๋ ๋ค๋ฐ์ฌ์ธ๋ฐ
๊ฐ์ฒด์งํฅ์ ๊ทธ๋ฅ ์ ์ง๋ณด์ ํธํ๊ฒ ํ๋ ค๊ณ ํ๋๊ฑฐ ์๋์๋ ์๋๋ง๊ณ
์ ๋ง ใ ๊ฐ์์ค
์ด์ฐจํผ ์ธ๋๊ฒ์๊ฐ๋ฐ์ ์๋ฒฝํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋ค์ด๋ก๋ 10๋ฐ๋ฆฌ ์ข๋ง๊ฒ ๋ง๋ ์ฌ๋๋ณด๋ค 10๋ง์ค์ง๋ฆฌ ํด๋์ค๋ก 100๋ง ๋ค์ด๋ก๋ ๊ฒ์ ๋ง๋ ์ฌ๋์ด ์น์์
์ด๊ฑด ํ์ ์์๋ ๋น์ทํจ ๋จธ๊ธฐ์ ๊ฐ๋ฉด ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์ข์์์ ์ฐ์ฐํ ๋๋ฐํฐ์ง ๊ฒ์ ์ฝ๋๋ณด๋ฉด ์ข๊ฐ์ ์คํ๊ฒํฐ ์ฒ์ง์ธ ๊ฒฝ์ฐ๋ ๋ดค์
"๋ฉํฐํจ๋ฌ๋ค์ ์ธ์ด ๊ฐ๋ ๋ ๋ชจ๋ฅด๋๊น C++ ๋ก๋ ์ ์ฐจ์งํฅ ๊ฐ๋ฅ ์ด๋ฐ ์๋ฆฌ ํ๊ณ ์์ง"์ ๋ป์ "๊ฐ์ฒด์งํฅ์ธ์ด๋กย ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ ๋ชป ํจ"์ด ์๋๋ผ "C++์ด ๋ฉํฐํจ๋ฌ๋ค์ ์ด๋๊น ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๊ฑด๋ฐ C++ ๋ก๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๋ค๋ฅผ ์ฃผ์ฅํ๋ค๋๊ฒ ํ์ฌํ๋จ ๋ป"์ผ๋ก ์ด๊ฑฐ์
๋๊ฐ์์๋ฆฌ ๊ธธ๊ฒ์จ์ ๊ฐ์๋ฆฌ๋ก ๋ง๋๋ ์ฌ์ฃผ๊ฐ ์๋ค
- C++์ด ๋ฉํฐํจ๋ฌ๋ค์ ์ด๋๊น ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅ - C++ ๋ก๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅ ๋ญ๊ฐ ๋ค๋ฅด๋ค๊ณ ์๊ฐํ๋?
๊ทธ๋๊น C++ ๋ก๋ ์ ์ฐจ์งํฅ์ด ๊ฐ๋ฅํ๋๊น ๋ชจ๋ ํจ๋ฌ๋ค์์ด ์ธ์ด๋ ์๊ด์๋ค๋ ๋ ์ฃผ์ฅ์ด ใ ใด ํ์ฐฎ๋ค๋ ์๊ธธํ๊ณ ์๋๊ฑฐ์. C++ ์ด ์ ์ฐจ์งํฅ์ด ๊ฐ๋ฅํ๊ฑด ๊ทธ ์ธ์ด๊ฐ ๊ทธ ํจ๋ฌ๋ค์์ ์ง์ํ๋๊ฑฐ๋๊น ๊ฐ๋ฅํ๊ฑฐ์ง ์ธ์ด๋ ํจ๋ฌ๋ค์์ด ๊ตฌ๋ถ๋๋๊ฒ ์๋๋ผ๋๊ฑฐ์. ๋ด ์ฃผ์ฅ์ ์ธ์ด์์ ํจ๋ฌ๋ค์์ ์ง์ํ์ง ์์ผ๋ฉด ๊ทธ ํจ๋ฌ๋ค์์ผ๋ก ์ฝ๋ฉ์ด ๋ถ๊ฐ๋ฅํ๋จ ๋ป์ด๊ณ ใ ใ ?
c++ ๋ฟ๋ง ์๋๋ผ ์ด๋ค ์ธ์ด๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅํจ .
"์ด๋ค ์ธ์ด๋ ์ ์ฐจ์งํฅ์ด ๊ฐ๋ฅ"์ด ๋ ผ์ ๊ฐ ์๋๋ผ "์ด๋ค ์ธ์ด๋ ์ด๋ค ํจ๋ฌ๋ค์ ์ฝ๋ฉ์ด ๊ฐ๋ฅ" ์ด ๋ ผ์ ์์. ๊ทธ๋์ Brainfuck ์ผ๋ก ๊ฐ์ฒด์งํฅ ์ฝ๋ฉ์ ํ๋ผ๊ณ ๋ต๊ธ ๋ฌ์๊ฑฐ์. ๋ถ๊ฐ๋ฅํ๋๊น.
ํ๋ง ์์ ์ ์ฌ๊ธฐ์ ํด๋น๋๋ ๋ง์ด ์๋. ํ๋ง ์์ ์ ํ๋ง๊ธฐ๊ณ๊ฐ ํ ์ ์๋ ์ผ์ ๋๊ฐ์ด ํ ์ ์๋ค๋๊ฑฐ์ง ํ๋ง ์์ ํ ์ธ์ด A๊ฐ ํ ์ ์๋ ์ผ์ ๋ค๋ฅธ ์ธ์ด B๊ฐ ํ ์ ์๋ค๋ ๋ป์ด ์๋๋๊น.
๋ฑ๋ด๋ ์ธ์ด๊ฐ ํจ๋ฌ๋ค์์ ์ข ์์ ์ด์ง ์์๊ฒ ๊ฐ์์ ์ข ์ฐพ์๋ณด๊ณ gptํํ ๋ ๋ฌผ์ด๋ดค๋๋ ๋ชจ๋ ์ธ์ด๋ก ๋ชจ๋ ํจ๋ฌ๋ค์ ํ ์ ์๋ค๊ณ ๋งํ๋๋ฐ? + ํ๋ง ์์ ์๊ธฐ๋ ๋์ด ๋ง๊ทธ๋๋ก "์งํฅ"์ธ๋ฐ ๋ชปํ ๊ฒ ๋ญ๊ฐ ์์ ๊ทธ๋ฅ ๊ทธ ํจ๋ฌ๋ค์์ ๋ง๊ฒ ์ง๋ฉด ๋๋๊ฑฐ ์๋๊ฐ...? ๋ฌผ๋ก ์ข ๋ ์ด๋ ต๊ฒ ์ง๋ง
112๋ ์ค๋ช ์ ํด์ค๋ ๋ค์ผ๋ คํ์ง ์๊ณ ๊ณ์ ใ ใน์ด๋ค
BF ๋ ๊ฐ์ฒด๋ชจ๋ธ๋ง ํ๋ด์กฐ์ฐจ ๋ชป๋ด์;
๊ทธ๋ฆฌ๊ณ gpt๊ฐ ๋งํ๊ฒ ํ๋ฆฐ๊ฑฐ์. ํ๋ง๊ธฐ๊ณ๊ฐ ๋ชจ๋ ํจ๋ฌ๋ค์์ ๊ตฌํ๊ฐ๋ฅํ๋ค๊ณ ์ฆ๋ช ์ด ๋์ด์ผ ์ด๋ค ํ๋ง ์์ ํ ์ธ์ด๋ก๋ ๋ชจ๋ ํจ๋ฌ๋ค์ ๊ตฌํ๊ฐ๋ฅ์ด ์ฆ๋ช ๋๋๊ฑด๋ฐ ์ฆ๋ช ๋์ ์์
๋๋ค ๋์๋ ํ๋ง๊ธฐ๊ณ์ ๋์น๋๊น ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด์ ์ฌ์ฉ๋๋ ๋ช๋ช ์ฐ์ฐ ๋ค์ ๋ฐ๋ผํ ์ ์๊ฒ ์ง ๊ทผ๋ฐ ๊ฐ์ฒด์งํฅ์ ๊ทธ๋ฐ ์ฐ๊ตฌ๊ฐ ์์. C์ธ์ด ๊ตฌ์กฐ์ฒด์ ํจ์ํ ํฌ์ธํฐ ๋ฐ์๋๊ณ ์ด๋ ๊ฒ ์ฝ๋ฉํ๋ฉด ๊ฐ์ฒด์งํฅ์ด๋ค๋ผ๊ณ ์ฝํ์ดํ๋ฉด ๋๋ถ๋ถ ์ธ์ด๋ค๋ ๊ฐ๋ฅํ๊ฒ ์ง ๊ทผ๋ฐ ์๊ฐํด๋ณด๋ฉด ๊ฑ๋ค์ ์ฐ์ฐ๋จ์๊ฐ ๊ทธ๋ผ ๊ฐ์ฒด์? ํฌ์ธํฐ์ง. ๊ทธ๊ฑธ ๊ฐ์ฒด์งํฅ์ด๋ผ๊ณ ๋ฐ์๋ค์ด๋ ์ฌ๋์ด ์ผ๋ง๋ ์์๊ฑฐ ๊ฐ์? BF ๋ ๋ง์ฐฌ๊ฐ์ง์ง.
๊ทธ๋ผ ๋ฐ๋๋ก ๋ด ์๊ธ์ ์ฃผ์ฅ์ด ํ๋ ธ๋ค๋ฉด ์ค์ ์ธ๊ณ๋ฅผ ๋ชจ๋ธ๋ง์ด ๊ฐ๋ฅํด์ผ ๊ฐ์ฒด์งํฅ์ด ๋ง๋ค๋๊ฑด๋ฐ ์ด ์ธ์ ๋ชจ๋ ํ๋ง์์ ๊ธฐ๊ณ๋ค์ ํ๋ง๊ธฐ๊ณ๋ ๋ฌ๋ฆฌ ๋ฌดํํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์. ๊ทธ๋ก ์ธํ ๋ฌธ์ ์ ์ ์ค์ ์ธ๊ณ๋ฅผ ๋ชจ๋ธ๋ง ํ ์ ์๋๊ฑฐ์ง. ๋ถ๋์์์ ๋ง ๋ด๋ ใ ใด ๋ถ์์ ํ๋ฐ ๊ทธ๋ผ ์ด๊ฑด ๊ฐ์ฒด์งํฅ์ธ๊ฐ?
์... ๊ฐ์ฒด"์งํฅ"์ด๋ผ ํจ์ ๋ฐ๋์ ๊ฐ์ฒด๋ก ๊ตฌ์ฑํด์ ํ๋ผ๋๊ฒ ์๋๊ณ ~~ํ๊ฒ ์ข๋๋ผ ํ๋๊ฑธ ๋ฌถ์๊ฒ ํจ๋ฌ๋ค์์ด์์ ๊ทธ๊ฑธ ์ธ์ด๋จ์์ ์ง์ํด์ฃผ๋๊ฑฐ๊ณ ๊ทธ๋์ C๋ก ๋น์ค๋ฌด๋ฆฌํ๊ฒ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋๊ฑฐ ๋ณด๊ณ ์ C๋ก ํจ? ์ด๋ผ๊ณ ํ ์ง์ธ์ ๊ทธ๊ฑฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์๋ ์ด๋ผ๊ณ ํ ๊ฑด ์๋์ฌ ๋ณด์ด๋๋ฐ
C++ ์ด ๊ฐ์ฒด์งํฅ์ธ์ด๋ก ๋ฐ๊พธ๋ฉด์ ์ง์ํ๊ฒ ์ฐธ์กฐํ ํ์ ์. ํฌ์ธํฐ๋ก๋ ๋ค ๊ฐ๋ฅํ๋ฐ ๊ตณ์ด ์ฐธ์กฐํ์ ๋ง๋ ์ด์ ๋ ์์ ์ฑ ๋ฟ์ด ์๋๋ผ ํ๋ก๊ทธ๋จ ์ฐ์ฐ์ ๋จ์๋ฅผ "ํฌ์ธํฐ"์์ "๊ฐ์ฒด"๋ก ๋ฐ๊พธ๋๊ฑฐ์. ์งํฅ์ด๋ ๊ทธ๋ฐ ์๋ฏธ์ธ๊ฑฐ์
์ ์ด์ ๋์ด ๊ฐ์ฒด์งํฅ์ด ๋ฐ์ดํฐ๋ ํจ์ ๋ฌถ์๊ฒ์ ๋ถ๊ณผ ํ๋ค๊ณ ํ์์ bf๋ก ๋ชปํ ์ด์ ๋ ๋ญ๋๋๊ฑฐ์
๊ทธ๊ฑด c++์ด ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ์ํด ๊ธฐ๋ฅ์ ์ง์ํ๊ฑฐ์ง
BF ๋ ๋ฐ์ดํฐ๋ ํจ์๋ฅผ ๋ฌถ์์๊ฐ ์๋ค๊ณ ๊ทธ๋ฅ ํฌ์ธํฐ ์ฃผ์๋ง ์์ ๋ฟ์ ๊ฐ์ฒด๋๊ฒ ์์ด BF ์ธ์ด ์๊ธดํ์ง?
๊ทธ๋๊น ๊ทธ๋ฅ ๊ทธ๊ฑด ๊ฐ์ฒด์งํฅ์ ํธํ๊ฒ ํด์ฃผ๋ ค๊ณ ์ธ์ด๋จ์์ ์ง์ํ๊ฒ ์๋๋์๋ฆฌ์ง ์งํฅ์ด๋ผ๋ ๋ง ์์ฒด๊ฐ ๊ทธ ๋ฐฉํฅ์ผ๋ก ํฅํ๋ค ์ด๋ฐ๋ป์ธ๋ฐ ๊ฐ์ฒด์งํฅ๋ ๊ฐ์ฒด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉํฅ์ผ๋ก ์ง๋ฉด ๊ทธ๊ฒ ๊ฐ์ฒด์งํฅ์ธ๊ฑฐ์ง ์์๊น?
์์๋ฅผ ํ๋ ๋ค์ด๋ณด์ C์ธ์ด์ for while ํจ์ ๊ตฌ์กฐ์ฒด ๋ค ์ญ์ ์ํค๊ณ ๊ธฐ๋ณธ ๋ณ์์ main, goto๋ง ๊ฐ๋ฅํ ์๋ก์ด ์ธ์ด๋ฅผ ๋ด๊ฐ ๋ง๋ค์๋ค๊ณ ํด๋ณด์ ๊ทธ๋ผ ์ฌ๋๋ค์ ์ด์ ๊ตฌ์กฐํ๋ ํ๋ก๊ทธ๋จ ํ๋ฆ์ ์ ์ ์๋ ์ฝ๋๋ง์ ์ง๊ฒ ๋๊ฒ ์ง? ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅํ๊ฒ ์ด?
์๋ ํจ์ํฌ์ธํฐ๊ฐ ์๋ค๋๊น? ๋๋ ๋จ ํ๋์ main ํจ์์ goto ๋ผ๋ฒจ๋ก๋ง ์ด๋ ๊ฐ๋ฅํ๊ฑฐ์ ๊ทธ๋ฆฌ๊ณ Rust ๋ ๋ด๊ฐ ์ด๋ฏธ ์๊ธ์์ ์ค๋ช ํด๋จ์
ํ๋ง ์์ ์ if ๋ฌธ๊ณผ goto, ๋ฉ๋ชจ๋ฆฌ ์กฐ์๋ง ์์ด๋ ํ๋ง ์์ ํด; ์๋ ๊ทธ๊ฒ๋ ๋ชจ๋ฅด๋ฉด์ ํ๋ง ์์ ํ๋ค ์ด์ฉ๊ตฌ ํ๊ฑฐ์?
BF ์ ๊ทธ๋ผ ์ ๊ฐ๋ฅํ๋ค ํ๊ฑฐ๋? BrainFuck ์ธ์ด ๋ช ์ธ๋ ์๋ดค๋ค ์ด๊ฑฐ ใ ใ ใ ใ ใ ใ ใ
C์ธ์ด์์ for while ํจ์ ๊ตฌ์กฐ์ฒด ์ญ์ ํ๊ฑด๋ฐ if๋ ๊ทธ๋๋ก ๋จ์์์ง
๊ทธ๋ฆฌ๊ณ ํ๋ง์์ ์ "๋๋ค" ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ํ์์๋ค
๋ด๊ฐ ๋ช๋ฒ์ด๊ณ ๋งํ์ง๋ง ์งํฅ์ ์งํฅ์ด์ผ ๊ทธ๋ฅ ๊ทธ ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์์ ์ ์ํ๋ ๊ธฐ์ค๋ค์ ๋ง๊ฒ ์ต๋ํ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ง๋ฉด ๊ทธ๊ฒ ๊ฐ์ฒด์งํฅ์ด๋ผ๋ ์๋ฆฌ์ ์ญ์ผ๋ก ๋ฌผ์ด๋ณด์ c++๋ก ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ง ํ๋ก๊ทธ๋จ์ ๋จธ์ ์ฝ๋๋ก ๋ณํํ ํ์ผ์ด ์๋ค๊ณ ์ณ ๊ทธ ๋จธ์ ์ฝ๋๋ฅผ ๋๊ฐ ๋ง๋ ๊ทธ ์ธ์ด๋ก ๋ฐ๊ฟ์ ์์๊น ๋น์ฐํ ๋ฐ๊ฟ์ ์๊ฒ ์ง ํ๋ง ์์ ํ๋๊น ๊ทธ๋ผ ๋ฐ๊ฟจ์๋ ์ด ์ฝ๋๋ ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ง ๊ฑธ๊น? ๋จธ์ ๋ ๋ฒจ์์ ๋๊ฐ๊ณ ์ฐ๋ฆฐ ๊ทธ๋ฅ ๊ทธ ํจ๋ฌ๋ค์์ด ์๋ ค์ฃผ๋ ๋ฐฉํฅ, ๋ฐฉ์์ผ๋ก ํ๋ก๊ทธ๋จ์ ์งค ๋ฟ์ด์ง ๋ฐฉ์์ด ์๋ชป๋๋ฉด ๊ทธ๊ฑฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์๋์ผ ๋ผ๊ณ ํ ์๋ ์๊ฒ ์ง
๊ทธ๋๊น. ํ๋ง ์์ ์๋ "์์์ ์ฃผ์์" ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํ์์๋ค๊ณ ๋ฐ๋ณด์ผ ๋ด๊ฐ ๋๋ค์ ๋ฌด์์์ ๋๋ค์ผ๋ก ์ผ๊ฒ ๋?
์ ๊ฐ์ ธ์๋ค C์ธ์ด์์ for while ํจ์ ๊ตฌ์กฐ์ฒด๋ฅผ ๋บ ์ธ์ด๋ ํ๋ง์์ ํ๋ค
์ ์ ๋ ผ์์ด ์ง์๋๋์ง ์๊ฒ ๋ค. ๋ฐ์ดํฐ๋ ํจ์๋ฅผ ๋ฌถ๋๋ค๋๊ฒ ๊ผญ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฌถ๋๋ค๋ ๋ง์ด ์๋๋ค;;
๋ด๊ฐ ์ด๋ฏธ ์๊ธ ๋๊ธ์์ Rust ์์ trait์ผ๋ก ๊ฐ์ฒด์งํฅ์ด ๋ง๋ค๊ณ ์ค๋ช ํ๋๋ฐ ๋ฌผ๋ฆฌ์ ์ด์ฉ๊ตฌํ๋ฉด์ ์ด์ํ๊ฑธ๋ก ๋ ๋ฌผ ํ๋ฆฌ์ง๋ง๊ณ trait ๋ด๋ถ ๋์ ์๋ฉด ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฌถ๋๋ค์ ๋ฐ๋ฐ์ผ๋ก ์ด ์๊ธฐ ์ ๋์ค๋์ง ์ดํดํ ๊ฑฐ๋ผ ๋ฏฟ์
๊ตฌ์กฐ์ฒด ๊ฐ์ด ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฎ์ด ์ฃผ๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ฌ์ฉ์๊ฐ ๋ณ์๋ช ์ ์ด์ฉํด์ ๊ตฌ๋ถํ๋ ํ๊ฒ ์ง ํจ๋ฌ๋ค์์ด๋ ๊ทธ๋ฐ๊ฑฐ์
๊ทธ๋ด ์ ์์. ์ด ๊ตฌ์กฐ์์๋ ๋ฐํ์์ ์์ฑ๋ ๊ฐ์ฒด์์ ์ด๋ค ํจ์(ํธ์์ ํจ์๋ก ๋งํจ, ์ค์ ๋ก goto ๋ผ๋ฒจ๋ก ๋ง๋ ๊ฑฐ) ํธ์ถ ํด์ผํ ์ง ๊ทธ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ง์ผ๋ก๋ ์์๊ฐ ์์
์ด๊ฑด ์ปดํ์ผ๋ฌ๊ฐ ์ปดํ์ผ ํ์์ ํจ์ ํฌ์ธํฐ๊ฐ์ ๋งตํ ํด์ฃผ๋๊ฐ, ๋ฐํ์์ ๊ฐ์ฒด์ ๊ฐ์ ํ ์ด๋ธ์ ์ฎ๋ ๊ธฐ์ ์ด ํ์ํ๋๊ฐ, ๋ฌ์คํธ์ฒ๋ผ Fatํฌ์ธํฐ๋ก ํฌ์ธํฐ์ ํจ์์์น๊ฐ๊น์ง ๊ฐ์ด ์ ์ฅ์ ํด์ผ๋ง ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ธ๊ฑฐ์ ์ด C์ธ์ด ๊ตฌ์กฐ๋ก๋ ๋ถ๊ฐ๋ฅํจ. ๊ฐ์ฒด๊ฐ ์์
๋ฌผ๋ก ๊ทธ ์ธ์ด์ ๊ฐ์ํ ์ด๋ธ์ ์ง์ ๊ตฌํํ๋ฉด ๋๋๊ฑฐ ์๋๋ํ ์ ์๋๋ฐ ๊ทธ๊ฑด ์ด๋ฏธ ์ธ์ด์์ค์ ๋์์ง?
๊ทธ๊ฑด C์ธ์ด๊ณ ๋ด๊ฐ ๋งํ ์ธ์ด๊ฐ ์๋์์?
C์ธ์ด์๋ ๊ตฌ์กฐ์ฒด์ ํจ์ํฌ์ธํฐ๋ฅผ ๋ฃ์ด์ ํด๋น ํจ์์ ์์น๋ฅผ ์์๋ผ ์ ์๋๋ฐ ๋ด๊ฐ ๋งํ ์ธ์ด์์๋ ๋ฐํ์์ ์์ฑ๋ ๋ฐ์ดํฐ์ ๋ง๋ ํจ์์ ์์น๋ฅผ ์์๋ผ ์ ์์
๋ฐ์ดํฐ ์ฌ์ด์ฆ๋ก ๊ตฌ๋ณํ๋๊ฑฐ๋ฉด ๊ฐ์ ๋ฐ์ดํฐ ์ฌ์ด์ฆ๋ฅผ ๊ฐ๋ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์๋๋ก ์ ์ฒด ์ฝ๋ ์ฒดํฌํ๋ฉฐ ์ฝ๋ฉํ๋๊ฑฐ์ผ?
์ ์ด์ ํ๋ง๊ธฐ๊ณ๋ ๋๋ค ์ก์ธ์ค๋ฅผ ์์ ํ์ง ์์์ ์ด ๋ฌธ์ ๋ ํ๋ ์ธ์ด์์๋ ์์ฒญ ์ด๋ ค์ด๊ฒ ๋ง์ ๊ทธ๋์ RTTI ๊ฐ ์๋ ์ธ์ด ์ฐพ๊ธฐ๊ฐ ํ๋ ๊ฑฐ์
๋ด๊ฐ ๋งํ ์ธ์ด์ ๊ตฌ์กฐ์ฒด๋ ์์
์ฝ๋๋ก ๊ตฌํ ๊ฐ๋ฅํ ๋ฒํ ์๊ธฐ๋ฅผ ํ์
์๊น ๋ด๊ฐ ๋งํ๋ฏ ๋ชจ๋ ๋จธ์ ์ฝ๋๋ค์ ํ๋ง ์์ ํ ์ธ์ด๋ผ๋ฉด ๋์ผํ๊ฒ ๋ฐ๊ฟ์ ์๋๋ฐ c++ ๊ฐ์ฒด์งํฅ์ผ๋ก ์ง ์ฝ๋๋ฅผ ๋ฐ๊พธ๋ฉด ๊ทธ๊ฒ ์ฝ๋๋ก ๊ตฌํ๊ฐ๋ฅํ๊ฑฐ์ง ์ฝ๊ฐ ์ด๋ก ์ ์ธ๊ฒ๊ณผ ํ์ค์ ์ธ๊ฑฐ๋ฅผ ๊ตฌ๋ถ ๋ชปํ๋๊ฑฐ ๊ฐ์๋ฐ ๊ณ ๋๊ฒ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋งํ๋๊ฑด ์ด๋๊น์ง๋ "์ด๋ก ์ ์ผ๋ก" ๊ฐ๋ฅํ๋ค๋๊ฑฐ๊ณ ๋๋ "ํ์ค์ ์ผ๋ก" ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๊ธฐํ๋๊ฑฐ ๊ฐ๋ค
์๋ ๋ด๊ฐ ์ดํด๊ฐ ์ ๊ฐ๋ ๊ฒ ํจ๋ฌ๋ค์๊ณผ ์ธ์ด๋ ๋ค๋ฅด๋ค๋ ๋ ผ์ ๊ฐ ์ ์ด๋ค ์ธ์ด๋ ์ด๋ค ํจ๋ฌ๋ค์์ผ๋ก ์ฝ๋ฉ ๊ฐ๋ฅ์ผ๋ก ๋ฐ๋๋๊ฑฐ์??
์ ์ด์ ๋ ผ์ ๋ฅผ ์๊ณกํด๋ฒ๋ฆฌ๋ ํ ๋ก ์ด ์ด์ํ๊ฒ ํ๋ฌ๋ค์ด์ด
ใ ใ (219.251)"์ด๋ค ์ธ์ด๋ ์ ์ฐจ์งํฅ์ด ๊ฐ๋ฅ"์ด ๋ ผ์ ๊ฐ ์๋๋ผ "์ด๋ค ์ธ์ด๋ ์ด๋ค ํจ๋ฌ๋ค์ ์ฝ๋ฉ์ด ๊ฐ๋ฅ" ์ด ๋ ผ์ ์์. ๊ทธ๋์ Brainfuck ์ผ๋ก ๊ฐ์ฒด์งํฅ ์ฝ๋ฉ์ ํ๋ผ๊ณ ๋ต๊ธ ๋ฌ์๊ฑฐ์. ๋ถ๊ฐ๋ฅํ๋๊น. << ์ฌ๊ธฐ ๋ ผ์ ๋ผ๊ณ ์ ํ์๋๋ฐ? ๋ ์ด๊ฑฐ๋ณด๊ณ ๋๊ธ ๋จ๊ฑฐ๊ณ
๊ทธ๋๊น ์ด๋ค ์ธ์ด๋ก ์ด๋ค ํจ๋ฌ๋ค์์ด๋ ์ง ๋ง๋ค ์ ์๋ค๊ณ ์ฃผ์ฅํ ์ฌ๋์ด ์๋ฌด๋ ์๋๋ฐ
์๋ ํ๋ง ๋จธ์ ์ด ๊ฐ๋ฅํ๊ฑด ํ๋ง ์์ ํ ์ธ์ด๊ฐ ๊ฐ๋ฅํ๊ฑฐ์ง ๊ทธ ์ญ์ด ์ฑ๋ฆฝ์ด ์๋๋ค๋๊ฑธ ์ดํด๋ฅผ ๋ชปํ๊ณ , TuuiK๋ C์ธ์ด๋ก ์ปดํ์ผ ๋์ง๋ ์์ ์๊ธฐํ๊ณ ์๊ณ ์ฐธ,,,
๋ช ์ ๊ฐ ์ฐธ์ด๋ผ๋ ์ญ์ด ์ฐธ์ด ์๋์ ์๋ค ๋ฐฐ์ฐ์ง์๋...? A๋ผ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด๊ฐ ํ๋ง๋จธ์ ์ด ๊ฐ๋ฅํ ์ผ์ ํ ์ ์๋๊ฑฐ์ง ๊ทธ ์ญ์ธ A๋ผ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด๊ฐ ํ ์ ์๋ ์ผ์ ํ๋ง๋จธ์ ์ด ๊ฐ๋ฅํ๋จ๊ฒ ์๋๋๊ฑฐ์์;; ์ ์ด์ ์ด๊ฑด ๊ทธ ์์๋ ์ฌ์ด๊ฒ ํ๋ง๋จธ์ ์ ๋๋ค์์ธ์ค๋ฅผ ๋ชปํจ;;;
๋ง ์ํ๋ค ํ๋ด. ๊ทธ๋ฆฌ๊ณ P์ ์กฐ๊ฑด์ ๊ฐ์ฒด์งํฅ์ด ์๋ ์๊น ๋งํ if then ์ด ์กฐ๊ฑด์ธ๊ฑฐ๊ณ RTTI ์ด๋ฐ๊ฑด ํ๋ง๋์น์ ํฌํจ ์๋์ด์์
๊ทธ๋ฆฌ๊ณ ์ ์ฐจ์ ์ธ์ด์ ์กฐ๊ฑด๋ง์ผ๋ก ํ์ ์์คํ ์ด ์ข ๋ณต์กํ๊ฒ ์ฝํ์์ผ๋ฉด ํจ์์ ์์น๋ฅผ ์ ์ ์๊ณ , RTTI ๋ฅผ ์ ์ ๋จ์์ ๊ตฌํํ๋๊ฑด ๋ง์ด์๋จ. ์ด๊ฑด ์๋ก์ด ์ธ์ด ๋ง๋ค์ด์ ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ์ง์ํ๋๊ฑฐ๋ผ ๋ณด๋๊ฒ ๋ ๋ง์
์๋ ๊ณ์ ๋งํ๋ ๋ด๊ฐ ๋งํ๋ ๋ฐ์ดํฐ์ ํจ์๋ฅผ ๋ฌถ์ด์ ๊ฐ์ฒด๋จ์๋ก ์ฝ๋ฉ. ์ฌ๊ธฐ์ ๋ฐ์ดํฐ์ ํจ์๋ฅผ ๋ฌถ๋ ๋ฐฉ๋ฒ์์ 3๊ฐ์ง ์๊ธฐํ๊ณ , ๊ทธ๋๋ง ์ธ ์์๋๊ฒ RTTI ๋ผ๊ณ ์๊ธฐํ์์ ใ ใ
๋ ๋ น์๊ธฐ๋ ์๋๊ณ ๊ณ์ ๋๊ฐ์ ์๊ธฐํ๋? ํ ๋ฐ์ฆ๋ C์ธ์ด๊ฐ ๊ฐ๋ฅํ๋ค ํ๊ฑฐ๊ณ ๋๋ ๋ถ๊ฐ๋ฅํ ์ธ์ด๊ฐ ์๋ค๊ณ ์๊ธฐํ๋๊ฑฐ์์ ๋นก๋๊ฐ๋ฆฌ์ผ ์ด๋ฏธ ํ๋์๊ธฐ ๋ ํ๊ฒ ๋ง๋ค์ง๋ง
์ฌ์ฌ ๋จผ ์๋ฆฌํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค ์๋ ๊ทธ๋์ ์ด๋ ํ ํ๋ง ์์ ํ ์ธ์ด๋ก ์ปดํ์ผํด์ ๋์จ ๋จธ์ ์ฝ๋๋ฅผ ๋ค๋ฅธ ํ๋ง ์์ ํ ์ธ์ด๋ก๋ ๋์ผํ๊ฒ ๋ชป ๋ง๋ค์๋ ์๋ค๊ณ ๋งํ๋๊ฑฐ๋?
๋๊ฐ์ ์๊ธฐํ ๊ฑฐ๋ฉด ๊ฑ ์๋ฌ๊ฐ๋ผ
183.100 ์ ๊ณ์ ์ด์ํ ๋จธ์ ์ฝ๋ ์๊ธฐ๋ ํ๊ณ ์๊ณ ์ฐธ ใ ใ ๊ทธ๋ฆฌ๊ณ ๋ ์ํ๋๋๋ก ๋ด๊ธธ ์ข ์์ฃผ๋ฉด ๊ทธ ๋ง๋๋ก ๋๊ฐ์ ๋จธ์ ์ฝ๋๋ฅผ ๋ค๋ฅธ์ธ์ด๋ก ๋๊ฐ์ด ์์ฑ ๋ถ๊ฐ๋ฅํ๋ค. ํ๋์ฝ๋ฉ์ผ๋ก ๋ฐ์๋๊ฑฐ ์๋๋ฉด ใ ใ
๊ทธ๋ฆฌ๊ณ ํ๋ง ์์ ๋น๊ต๋ ๊ฐ์ฒด์งํฅ์ด๋ ์๊ธฐํ๊ณ ์๋๋ฐ ๋ญ ๋จธ์ ์ฝ๋ ๋น๊ต๋ฅผ ํ๊ณ ์์? ํ๋ง ์์ ์ ๊ทธ ์ธ์ด ๋ช ์ธ ์์ฒด๋ก ๋น๊ตํ๋๊ฑฐ์ง ์ปดํ์ผ๋ ๊ฒฐ๊ณผ๋ก ๋ฐ์ง๋๊ฒ ์๋์ผ ๋ฐ๋ณด์ผ;
๋ ๋ง๋๋ก ๋จธ์ ์ฝ๋๋ก ๋น๊ตํ๋๊ฑฐ๋ฉด ๋๋ค์ํคํ ์ฒ๊ฐ ์ ํ๋ง๋จธ์ ๊ณผ ๋์น๊ฒ ๋ ใ ใ ใ ?
๋ค ๋ฐ๋ฐํ์ผ๋ ์๋ก์ด ์ฃผ์ฅ ์์ผ๋ฉด ๋ต๊ธ ์๋จ๋ค. ๋ น์๊ธฐ ๋๋ฆฌ์ง๋ง๊ณ ๋ ์ํ์ํค๊ณ ์ถ์ผ๋ฉด ์๋ก์ด ๋ฐ๋ฐ์ ๊ฐ์ ธ์๋ผ
๋ง์ ์ดํด ๋ชปํ๋ ธ ๊ฐ์ฒด์งํฅ์ด๋๊ฑด ๊ฒฐ๊ตญ ์ฌ๋์ด ๋ง๋ ๊ฐ๋ ์ด๊ณ ๊ธฐ๊ณ์์ค์์ ๋์ผํ ๋ ๋ฒจ์ด๋ผ๋๊ฑธ ์ฃผ์ฅํ๊ณ ์๋๊ฑด๋ฐ
In theory, you could write a compiler and supporting libraries to do any paradigms. It would be a very confusing language to read if you mixed some of the paradigms together in one program, but it could be done. Likely, weโre better off with multiple languages, each having a limited set of paradigms to work in. ๊ตฌ๊ธ๋ง ํด์ ๋์จ๊ฑด๋ฐ ์ด๊ฒ๋ ํ๋ฆฐ ์ ๋ณด๋ ๊ทธ๋ผ?
๊ฐ์ฒด์งํฅ์ ๋ง๋ค์๋ค๊ณ ์๋ํ๋ ๋ค์ด๋ก๋ 10๋ฐ๋ฆฌ๋ณด๋ค ๊ฐ์ฒด์งํฅ ์ข๊น๋ผ๊ณ ํ ๋ค์ด๋ก๋ ๋ฐฑ๋ง๋ฐ๋ฆฌ๊ฐ ์น์๋ค
๊ฐ์ฒด์งํฅ์ ์ฝ๋๋ฅผ ์ธ๊ฐ์นํ์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ๋์จ๊ฑฐ์ง..
๊ฐ์ฒด์งํฅ์ด ๋จ์ํ ๋ฐ์ดํฐ์ ํจ์๋ก ๊ตฌ์ฑ๋ ๊ฒ์ด๋ค๋ ํ๋ฆฐ ์ค๋ช
์ ๋ค์์๊ฐํด๋ณด๋ ํ๋ฆฐ๊ฑด ์๋๋ค์ ใ ใ
์๋ฐ๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋ง๋ ๊ฐ๋ฐ์๋ ๊ฐ์ฒด์งํฅ์ ๋จ ํ๊ฐ๋ ์ฐ์ง ์์๋คํ๋ค
๋ด๊ฐ ๊ฐ์ฒด์งํฅ์ดํํ ๋ฌผ์ด๋ดค๋๋ฐ, ์๋ฌด๋ ด ์๊ด์๋. ๊ทธ๋ฅ ์ฐ๋
์ํํธ์จ์ด ๊ณตํ ์ฑ ๋ดค์ผ๋ฉด ์๊ฒ ์ง๋ง ํด๋์ค ๋ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฑด๋ฐ..
solid๋ ์งํค๋ฉด ์ ์ง๋ณด์ ํ์ฅ์ด ์ฉ์ดํ๋๊น ๊ถ์ฅํ๋๊ฑฐ์ง ํ์๋์๋๊ณ
๋๊ธ ์ ์ฉ๋น
๋ 219 ํธ์ด์ผ