์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    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..