์๋
ํ์ธ์.
์ ๋ ๋ฐฉ์์ฐ์
์ฒด์์ SW ๊ฐ๋ฐ์๋ก ๊ทผ๋ฌดํ๋ฉฐ ๋ฐฉ์ฐ ์ฐ๊ตฌ์์ผ๋ก ์ผํ๊ณ ์๋ ๊ฐ๋ฐ์์
๋๋ค.
๋ํ์์๋ ์ปดํจํฐ๊ณตํ์ ์ ๊ณตํ๊ณ ,
๋ฐฉ์์ฐ์
์ฒด์ ์
์ฌํด ์ค์ ๋ฐฉ์ฐ SW ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์ฐธ์ฌํด ์์ต๋๋ค.
ํ์ฌ๋ ๋ฌด๊ธฐ์ฒด๊ณ ๋ฐ ๋ฐฉ์ฐ ์์คํ
๊ณผ ์ฐ๊ณ๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉฐ,
C++, Java ๊ธฐ๋ฐ์ ์์คํ
๊ฐ๋ฐ์ ์ํํ๊ณ ์์ต๋๋ค.
Courses
Reviews
ktkookdh5256
ยท
A Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 MinutesA Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 Minutesamuguna
ยท
A Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 MinutesA Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 Minutessiroimono
ยท
A Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 MinutesA Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 Minuteshaeun9912221395
ยท
A Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 MinutesA Practical Guide to Job Preparation for Defense Industry SW Developers (Researchers) in Just 30 Minutes- The Essence of Object-Orientation in 30 Minutes
Posts
Q&A
ํ๋ก์ ํธ ์ง๋ฌธ ๋ฌธ์
์๋ ํ์ธ์.๋ง์ํด์ฃผ์ ๋ด์ฉ๊ด๋ จํ์ฌ ๋ต๋ณ๋๋ฆฝ๋๋ค. "ํผ์ ์งํํ ํ๋ก์ ํธ์ด์ง๋ง, ๊ทธ ๊ณผ์ ์์ ์๊ตฌ์ฌํญ ๋ถ์ โ ๋ชจ๋ ์ค๊ณ โ ๊ตฌํ โ ํ ์คํธ๊น์ง ์ ์ฌ์ดํด์ ์ง์ ๋ด๋นํ์ต๋๋ค. ํนํ [๊ตฌ์ฒด์ ์ธ ์ค๊ณ ๊ฒฐ์ ์: ๋ชจ๋ ๊ฐ ์์กด์ฑ์ ๋ฎ์ถ๊ธฐ ์ํด ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฆฌํ๋ค, ์์ธ ์ํฉ์ ๊ณ ๋ คํด ์๋ฌ ์ฒ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ค ๋ฑ]๋ฅผ ๊ณ ๋ฏผํ๋ฉฐ ์งํํ๊ณ , ํผ์์ด๊ธฐ ๋๋ฌธ์ ์คํ๋ ค ๊ฐ ๊ฒฐ์ ์ ๊ทผ๊ฑฐ๋ฅผ ๋ช ํํ ๋ฌธ์ํํ๋ ์ต๊ด์ ๊ฐ๊ฒ ๋์ต๋๋ค." ์์ ๊ฐ์ ๋ต๋ณ์ ํํ๊ฐ ์ข์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๋๊ด์์ด๋ฉฐ, ๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ๋ง์ด ๋ฃ์ ๋ต๋ณ์ด ์ข์ ๋ต๋ณ์ผ๋ก ๋ณด์ผ ๊ฒ ๊ฐ๋ค์. ์ต๊ทผ ๋ฐฉ์ฐ SW ๊ฐ๋ฐ๋ ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ฐ๊ตฌ๊ณผ์ ๊น์ง ์งํ๋๊ณ ๋ ์์ง๋ง, ์์ง์ ์ํฐํ์ธ ๊ฒฝ์ฐ๊ฐ ๋ค๋ฐ์ฌ์ด๊ธฐ์, ์ด๋ฅผ ๊ณ ๋ คํด์ ์์ ๊ฐ์ ๋ต๋ณ์ผ๋ก ์ ๊ณต๋๋ฆฝ๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)
- Likes
- 0
- Comments
- 1
- Viewcount
- 101
Q&A
๋คํ์ฑ ๊ฐ๋ ๋ฌธ์
์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!๋คํ์ฑ์ ์ค๋ฒ๋ก๋ฉ/์ค๋ฒ๋ผ์ด๋ฉ์ผ๋ก๋ง ์ค๋ช ํ๋ ๊ฒ์ ์ฌ์ค ๋คํ์ฑ์ ์ผ๋ถ๋ง ๋ค๋ฃจ๋ ๊ฒ์ ๋๋ค. Cardelli & Wegner(1985)์ ๋ถ๋ฅ์ ๋ฐ๋ฅด๋ฉด ์ค๋ฒ๋ก๋ฉ์ ์์์ ๋คํ์ฑ(ad-hoc polymorphism) ์ ํ ์ข ๋ฅ์ด๊ณ , ๊ฐ์ฒด์งํฅ ์ค๊ณ์์ ํต์ฌ์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ์ ์๋ธํ์ ๋คํ์ฑ(inclusion polymorphism) ์ ๋๋ค."๋ถ๋ชจ ํ์ ์ผ๋ก ๋ค๋ฃฌ๋ค = ๊ตฌํ์ด ์๋ ์ถ์์ ์์กดํ๋ค"๋ GoF์ "Program to an interface, not an implementation" ์์น๊ณผ ๋์ผํ ๋งฅ๋ฝ์ผ๋ก, ์ฝ๋๊ฐ ๊ตฌ์ฒด์ ์ธ ํด๋์ค๊ฐ ์๋๋ผ ์ธํฐํ์ด์ค/์ถ์ ํ์ ์๋ง ์์กดํ๋ฉด ์๋ก์ด ๊ตฌํ์ฒด๋ฅผ ์ถ๊ฐํด๋ ๊ธฐ์กด ์ฝ๋๋ฅผ ์์ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด OCP๊ฐ ๋คํ์ฑ/์ถ์ํ์ ์ฐ๊ฒฐ๋๋ ์ด์ ์ ๋๋ค. 1. ๋คํ์ฑ(Polymorphism)์ ์ ์ โ ์ค๋ฒ๋ก๋ฉ/์ค๋ฒ๋ผ์ด๋ฉ์ ๋์ด์Luca Cardelli & Peter Wegner (1985), "On Understanding Types, Data Abstraction, and Polymorphism" (ACM Computing Surveys, Vol. 17, No. 4)์ด ๋ ผ๋ฌธ์ ๋คํ์ฑ์ ๋ค์ ๋ค ๊ฐ์ง๋ก ๋ถ๋ฅํ ๊ฐ์ฅ ๊ถ์ ์๋ ์์ ์ ๋๋ค:Parametric polymorphism (์ ๋ค๋ฆญ)Inclusion polymorphism (์๋ธํ์ ๋คํ์ฑ โ ์์/์ธํฐํ์ด์ค)Overloading (์์ ๋คํ์ฑ)Coercion (๊ฐ์ ๋ณํ)์ค๋ฒ๋ก๋ฉ์ ๋คํ์ฑ์ ํ ์ข ๋ฅ์ผ ๋ฟ์ด๋ฉฐ, ๊ฐ์ฒด์งํฅ์์ ํต์ฌ์ผ๋ก ๋ค๋ฃจ๋ ๋คํ์ฑ์ Inclusion polymorphism(์๋ธํ์ ๋คํ์ฑ) ์ ๋๋ค. 2. "๋ถ๋ชจ ํ์ ์ผ๋ก ๋ค๋ฃฌ๋ค" = "๊ตฌํ์ด ์๋ ์ถ์์ ์์กด" โ ์ด๊ฒ ๋ฌด์จ ๋ป์ธ๊ฐ?Barbara Liskov (1987), "Data Abstraction and Hierarchy" (SIGPLAN Notices)๋ฆฌ์ค์ฝํ ์นํ ์์น(LSP)์ ์์ ์ผ๋ก, ํต์ฌ ๊ฐ๋ ์ ์ด๊ฒ์ ๋๋ค:"If S is a subtype of T, then objects of type T may be replaced with objects of type S without altering any of the desirable properties of that program."์ฆ, ์ฝ๋๊ฐ ๊ตฌ์ฒด์ ์ธ ์์ ํด๋์ค(๊ตฌํ)๋ฅผ ๋ชฐ๋ผ๋ ๋ถ๋ชจ ํ์ (์ถ์)๋ง ์๋ฉด ๋์ํด์ผ ํ๋ค๋ ๊ฒ์ด๊ณ , ์ด๊ฒ์ด "๊ตฌํ์ด ์๋ ์ถ์์ ์์กด"์ ์๋ฏธ. 3. OCP์ ๋คํ์ฑ/์ถ์ํ์ ๊ด๊ณRobert C. Martin (1996), "The Open-Closed Principle" (C++ Report)"A module should be open for extension but closed for modification."Martin์ ์ด ์์น์ ๋ฌ์ฑํ๋ ํต์ฌ ์๋จ์ผ๋ก ์ถ์ํ(abstraction) + ๋คํ์ฑ(polymorphism) ์ ๋ช ์ํฉ๋๋ค. ์๋ก์ด ๊ตฌํ์ฒด๋ฅผ ์ถ๊ฐํ ๋ ๊ธฐ์กด ์ฝ๋๋ฅผ ์์ ํ์ง ์์๋ ๋๋ ์ด์ ๊ฐ ๋ฐ๋ก ๋ถ๋ชจ ํ์ (์ธํฐํ์ด์ค/์ถ์ํด๋์ค)์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๋๋ค.GoF (Gang of Four), "Design Patterns" (1994) โ Erich Gamma ์ธ"Program to an interface, not an implementation."์ ๋ฌธ์ฅ์ด "์ถ์์ ์์กด"์ ์ ๋ช ํ ํํ. 4. DIP(์์กด์ฑ ์ญ์ ์์น)์์ ์ฐ๊ฒฐRobert C. Martin, "Agile Software Development" (2002)"High-level modules should not depend on low-level modules. Both should depend on abstractions.""๊ตฌํ์ด ์๋ ์ถ์์ ์์กด"๊ณผ ์ ํํ ๊ฐ์ ๋งฅ๋ฝ. ์ฐธ๊ณ ์๋ฃ:Cardelli & Wegner (1985) โ "On Understanding Types, Data Abstraction, and Polymorphism"Barbara Liskov (1987) โ "Data Abstraction and Hierarchy"Robert C. Martin (1996) โ "The Open-Closed Principle"GoF (1994) โ "Design Patterns: Elements of Reusable Object-Oriented Software"
- Likes
- 1
- Comments
- 3
- Viewcount
- 85
Q&A
์๋ ํ์ธ์. ์์ ์๋ฃ ๋งํฌ ์ ๊ณต์ ์ด๋์ธ๊ฐ์?
https://gitlab.com/kmmom591-group/uml-basics์๊ธฐ URL์ผ๋ก ์ ์ํ์๋ฉด, ์์ ์งํ์ ์ฌ์ฉํ ์๋ฃ ๋ฐ ์ค์ต ์๋ฃ ํ์ธ ๊ฐ๋ฅํ์ญ๋๋ค.๊ฐ์ฌํฉ๋๋ค :)
- Likes
- 0
- Comments
- 1
- Viewcount
- 90
Q&A
์ง๋ก๊ฐ ํฐ ๊ณ ๋ฏผ์ ๋๋ค...
์๋ ํ์ธ์ :) ์๋ฐยท๋ฐฑ์๋ ํฌํธํด๋ฆฌ์ค, ๋ฐฉ์ฐ์์ ๋ถ๋ฆฌํ ๊น?๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ๋ง์ด๋์ค๋ ์๋๋๋ค.๋ค๋ง ์ง๋ฌด์ ๋ฐ๋ผ ํ์ด ๋ค๋ฅผ ๋ฟ์ด์์.๋ฐฉ์ฐ ๊ธฐ์ ์์๋ ํฌ๊ฒ ๋ณด๋ฉด์๋ฒ ๋๋/์ ์ด SW (C/C++)์์คํ ยทํ๋ซํผ SW์ํยท์๋ฎฌ๋ ์ดํฐยท๋๊ตฌ ๊ฐ๋ฐ๋ด๋ถ ์๋ฒยท๋ฐ์ดํฐ ์ฒ๋ฆฌ์ด๋ ๊ฒ ๋๋ฉ๋๋ค.์๋ฐ ๋ฐฑ์๋ ๊ฒฝํ์ ํ์์ ์์ญ์์ ์ถฉ๋ถํ ์๋ฏธ๊ฐ ์๊ณ ,โSW๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ์ค๊ณํ๊ณ , ๋ฌธ์ ๋ฅผ ๋๊น์ง ํด๊ฒฐํด๋ณธ ๊ฒฝํโ์ ์ด๋ค ์ง๋ฌด์์๋ ๊ณตํต์ผ๋ก ๋ด ๋๋ค. ๊ทธ๋ผ C/C++์ ๊ผญ ์๋ก ํ์ผ ํ ๊น?์ง๊ธ๊น์ง ํ ๋ฐฑ์๋๋ฅผ ๋ฒ๋ฆด ํ์๋ ์ ํ ์์ต๋๋ค.๋์ โ์ฃผ๋ ฅ์ ์๋ฐ ๋ฐฑ์๋,๋ฐฉ์ฐ์ ๊ณ ๋ คํด C/C++๊ณผ Linux๋ฅผ ์ดํดํ๋ ์์ค๊น์ง๋ ๊ฐ์ ธ๊ฐ์.โ์ถ์ฒ์C/C++๋ก ์์ ํ๋ก์ ํธ 1~2๊ฐ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ๋น๋ยท์คํ ๊ฒฝํ๋คํธ์ํฌ, ๋ฉ๋ชจ๋ฆฌ, ํ๋ก์ธ์ค ๊ฐ๋ ์ดํด์ด ์ ๋๋ง ์์ด๋ ๋ฉด์ ์์๋โ์ฃผ ์ธ์ด๋ ์๋ฐ์ง๋ง, ๋ฐฉ์ฐ ํ๊ฒฝ์ ๊ณ ๋ คํด C/C++ ๊ธฐ๋ฐ ์์คํ ๋ ํ์ตํ์ต๋๋ค.โ๋ผ๊ณ ์ถฉ๋ถํ ์ค๋๋ ฅ ์๊ฒ ์ค๋ช ํ ์ ์์ต๋๋ค. 3ํ๋ ์ง๊ธ ์์ ์์์ ๋ฐฉํฅ ์ ์์ง๊ธ ํ๋ ์๋ฐ ๋ฐฑ์๋ ํ๋ก์ ํธ๋ ๊ณ์ ์์ฑ๋, ๊ตฌ์กฐ, ์ค๋ช ๋ ฅ์ ๋์ด์ธ์๋์์C/C++ + Linux๋ ๊น์ด๋ณด๋ค โ๊ฒฝํโ ์์ฃผ๋ฐฉ์ฐ SW๊ฐ ๋์๊ฐ๋ ํ๊ฒฝ์ ์ดํดํ๋ ๋ฐ ์ด์ 4ํ๋ ๋ ๋ฐฉ์ฐ / ๋๊ธฐ์ / ๊ธ์ต๊ถ ๋์์ ์ง์ ๊ฐ๋ฅํ ํฌํธํด๋ฆฌ์ค ์์ฑ ๋ฌผ๋ก ์ ๊ฐ ์ ์ํ ๋ฐฉํฅ์ด๋ ์กฐ์ธ์ด 100ํ๋ก ๋ง๋ค๋ ๋ณด์ฅ์ ์์ง๋ง, ๋ฏธ์ฝํ๊ฒ๋๋ง ๋์์ด ๋์๊ธธ ๋ฐ๋ผ๊ฒ ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- Likes
- 0
- Comments
- 1
- Viewcount
- 153






