์ ์ฒด ๊ธ
OOP์ 3์์๋ ์บก์ํ, ์์, ๋คํ์ฑ์ด๋ค.
OOP์ 3์์๋ ์บก์ํ, ์์, ๋คํ์ฑ์ด๋ค. ์บก์ํ๋ ํด๋์ค ๋ด๋ถ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ ๊ฒ์ ํ์ฉํ์ง ์๊ณ ๋ฉ์๋๋ฅผ ํตํด์๋ง ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ธ๋ถ์๋ ๋ถํ์ํ๊ฑฐ๋ ๋ด๋ถ์ ์ผ๋ก๋ง ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ๊ฐ์ถ๊ธฐ ์ํด ํน์ ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ์๋ํํ ๊ฒ์ด๋ค. ํ๋์ ๋ฉ์๋๋ฅผ ์บก์ํํ์ฌ ๋ณดํธํ๋ ์ด์ ๋ ์ธ๋ถ์ ์๋ชป๋ ์ฌ์ฉ์ผ๋ก ์ธํ ๊ฐ์ฒด์ ์์์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด๋ค. ์ ๊ทผ ์์ค ๋ช ์๊ฐ๋ฅ : ์ ๊ทผ์ ์ด์[private/public/protected]๋ฅผ ํตํด์ ์บก์ํ๋ ๋ฉค๋ฒ๋ฅผ ๋ ธ์ถํ ์ง ์จ๊ธธ์ง ๊ฒฐ์ ํ ์ ์๋ค. ์บก์ํ์ ์ฅ์ : ๊ฐ์ฒด ์ ๊ณต์์ ์ด์ฉ์๋ฅผ ์ ํํ๊ฒ ๋๋์ด ์ ๋ณด ์ํ, ๋ณด์ ๋ฑ์์ ์ฅ์ ์ ๊ฐ์ง๋ค. ๊ฐ์ฒด ๋ด์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ด๋ ๋ค๋ฅธ ๊ฐ์ฒด์๋ ์ํฅ์ ์ฃผ์ง์๊ณ ..
OOP์์์ ์ถ์ํด๋์ค VS ์ธํฐํ์ด์ค (C#์์ฃผ์ด์ง๋ง C++ ๊ฐ๋ ํ์คํผ ์์ธ ๊ธ)
*ํ์ต์ ์ํด ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ํ๋ฆฐ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ง์ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค! [ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด ] ์ถ์ํด๋์ค๋ IS - A "~์ด๋ค". ์ธํฐํ์ด์ค๋ HAS - A "~์ ํ ์ ์๋". ์ถ์ ํด๋์ค VS ์ธํฐํ์ด์ค ์ถ์ ํด๋์ค๋ ์ด๋ฅผ ์์ํ ๊ฐ ๊ฐ์ฒด๋ค์ ๊ณตํต์ ์ ์ฐพ์ ์ถ์ํ์์ผ ๋์ ๊ฒ์ผ๋ก, ์์ ๊ด๊ณ๋ฅผ ํ๊ณ ์ฌ๋ผ๊ฐ์ ๋ ๊ฐ์ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์์ํ๋ฉฐ ๋ถ๋ชจ ํด๋์ค๊ฐ ๊ฐ์ง ๊ธฐ๋ฅ๋ค์ ๊ตฌํํด์ผํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. ์ธํฐํ์ด์ค๋ ์์ ๊ด๊ณ๋ฅผ ํ๊ณ ์ฌ๋ผ๊ฐ์ ๋ ๋ค๋ฅธ ์กฐ์ ํด๋์ค๋ฅผ ์์ํ๋๋ผ๋, ๊ฐ์ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. ํด๋์ค์ ๋ณ๋๋ก ๊ตฌํ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๋์์ ํ๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ถ์ํด๋์ค(abstract) ์ธํฐํ์ด์ค ๋จ์ผ ์์๋ง์ด ๊ฐ๋ฅํ๋ค ๋ค์ค ์์์ด ๊ฐ๋ฅํ๋ค ๋ชจ๋ ์ ..
Unity Application Block
Working with the Unity Application Block | InfoWorld Working with the Unity Application Block Unity Application Block, a lightweight dependency injection container, can build loosely coupled applications that are extensible and easier to test and maintain www.infoworld.com Unity Application Block์ ์ ์ง๋ณด์์ ํ์ฅ์ ์์ด์ ๋ ๊ณ ๋ธ๋ญ์ ์๋ก ๋ผ์ฐ๊ณ ์ถ๊ฐํ๋ฏ์ด ํ์ํ ๋ธ๋ญ์ ๋ผ์์ ์ฌ์ฉํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ ํ๋ ์์ํฌ ๊ฐ๋ฐ ํ๋ ์์ํฌ๊ฐ ํ๋ ์ญํ ๋ถ๋ฆฌ๋ฅผ ํตํ ๋ชจ๋์ ์ค๊ณ..
[STL] deque
ํค๋ํ์ผ์ ์ถ๊ฐ deque์ vector์ ๋จ์ ์ ๋ณด์ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. vector๋ ์คํ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ push_back(), pop_push(์๋ฌด๊ฐ)๊ณผ ๊ฐ์ด ๋ง์ง๋ง ์์๋ฅผ ๋ฃ๊ฑฐ๋ ๋นผ๋ ๊ฒ ๋ฐ์ ๋ชปํ์ง๋ง deque์ front_back(), front_push(์๋ฌด๊ฐ)๊ณผ ๊ฐ์ด ์์ชฝ์์๋ ์์๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ ์ ์๋ค! ์์ฑ์ deque dq; dq[idx]; idx ๋ฒ์งธ ์์ ์ฐธ์กฐ dq.front(); ์ฒซ ๋ฒ์งธ ์์ ์ฐธ์กฐ dq.back(); ๋ง์ง๋ง ์์ ์ฐธ์กฐ dq.clear(); ๋ชจ๋ ์์ ์ ๊ฑฐ dq.push_front(3); ์ฒซ ์์๋ก 3push dq.pop_front(); ์ฒซ ์์ ์ ๊ฑฐ dq.push_back(5); ์ฒซ ์์๋ก 5 push dq.pop_back(); ๋ง์ง๋ง ์์ ์ ๊ฑฐ dq.beg..
[STL] ์ฐ์ ์์ ํ priority_queue
์ฐ์ ์์ ํ priority_queue๋ ํ์ ์๋ ๋ชจ๋ ์์ ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ด Top์ ์ ์งํ๋๋ก, ์ฐ์ ์์๊ฐ ์ค์ ๋์ด ์๋ค. ์ฐ์ ์์ ํ๋ ์๋ฃ๊ตฌ์กฐ Heap์ผ๋ก ๊ตฌํ๋์ด ์์ด pop๊ณผ push๋ฅผ ํ ๋ ๋ง๋ค ์ ๋ ฌ๋๋ค. priority_queue pq; ์ด๋ ๊ฒ ์ฐ๋ฉด ๋ด๋ฆผ์ฐจ์์ผ๋ก queue์ push๋๊ณ priority_queue pq; ์ด๋ ๊ฒ ์ฐ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก queue์ push๋๋ค. push() pop() top์ ์์ ์ ๊ฑฐ top() ์ฐ์ ์์ ํ์์ top์ ์๋ ์์ ์ฆ ์ฐ์ ์์๊ฐ ๋์ ์์๋ฅผ ๋ฐํ empty() ๋น์ด์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ size() ์์์ ์๋ฅผ ๋ฐํ ๋ด๋ฆผ์ฐจ์์ผ๋ก queue์ push #include #include using namesp..
[STL] set
Set์ ํน์ง - ์์๊ฐ ์ฝ์ ๋๋ฉด ์๋์ผ๋ก ์ ๋ ฌ sets; // ์ค๋ฆ์ฐจ์ sets; // ๋ด๋ฆผ์ฐจ์ - ์ค๋ณต๊ฐ์ ํ์ฉํ์ง ์๋๋ค. set์ ์์๊ฐ ๋ค์ด๊ฐ๋ฉด ๊ทธ ์์์ ๊ฐ์ ํค(key)๋ผ๊ณ ํ๋ฉฐ ์ค๋ณต์์๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ ํค๋ ์ ๋ถ ๊ณ ์ ํ๋ค. Set์ ์ฌ์ฉํ๊ธฐ ์ข์ ๊ฒฝ์ฐ 1. ์ฝ์ ๊ณผ ๋์์ ์ ๋ ฌ์ด ํ์ํ ๋ 2. ์ค๋ณต์ ์ ๊ฑฐํ ์์์ ์งํฉ์ด ํ์ํ ๋ 3. ์๋ก ์ฝ์ ํ๋ ค๋ ์์๊ฐ ์ค๋ณต์ธ์ง ํ์ธํ ๋ sets; std::pair ret; ret = s.insert("a"); // s={a} cout
[Git] branch ๋ฐ๊ธฐ
git branch ์์ฑ ๋ฐ ํธ์ : ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ (naver.com) git branch ์์ฑ ๋ฐ ํธ์ ์ ๋ฌด๋ฅผ ํ๋ฉด์ ๊น ๊ณ์ ์ด ๊ผฌ์ด๋ ๋ฐ๋์ ๊ตฌ๊ธ๋ง๋ ์ฐธ ๋ง์ด ํ๊ณ ์ปดํจํฐ ํฌ๋งท๋ ํ๋ค. ์ธ๊ณ ์ ๊ณผ์ ์ ๊ฑฐ์ณ์... blog.naver.com Github - Branch ๊ด๋ฆฌ (Branch ์์ฑ, ์ด๋, ๋ณํฉ ์ญ์ ) (tistory.com) Github - Branch ๊ด๋ฆฌ (Branch ์์ฑ, ์ด๋, ๋ณํฉ ์ญ์ ) Github์์ ๋์ repo์ branch๋ฅผ ์์ฑํ๋ฉด ๋ง์น ์๋ณธ ํ์ผ์ 2๊ฐ๋ก ๋ณต์ฌํด๋๋ ํจ๊ณผ์ ๋๋ค. Repository A์ ์๋ ๊ธฐ๋ณธ branch์ธ master branch๊ฐ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ์ถ๊ฐ๋ก test branch๋ฅผ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค... cosmosproject.tistor..