μλμ° νλ‘κ·Έλλ° μ λ¬Έ| C κΈ°λ° μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ° κ°μ΄λ | C, .NET, GUI κ°λ°, μλμ° μ ν리μΌμ΄μ
μλμ° μ΄μ체μ μμ ꡬλλλ λ°μ€ν¬ν± μ ν리μΌμ΄μ μ μ§μ κ°λ°νκ³ μΆμκ°μ? μ΄ κΈμμλ C μΈμ΄λ₯Ό κΈ°λ°μΌλ‘ μλμ° μ ν리μΌμ΄μ κ°λ°μ κΈ°μ΄λ₯Ό λ€λ£¨κ³ , .NET νλ μμν¬λ₯Ό μ΄μ©νμ¬ GUI (Graphical User Interface) λμμΈμ λ°°μ°λ©° μ€μ μλμ° μ ν리μΌμ΄μ μ λ§λ€μ΄ 보λ κ²½νμ μ 곡ν©λλ€.
λ³Έ κ°μ΄λλ μλμ° νλ‘κ·Έλλ° μ λ¬Έμλ₯Ό μν΄ μλμ° API, λ©μμ§ λ£¨ν, μλμ° μ»¨νΈλ‘€ λ± κΈ°λ³Έ κ°λ λΆν° μμνμ¬, MFC (Microsoft Foundation Classes) μ κ°μ μλμ° νλ‘κ·Έλλ°μ μν νλ μμν¬λ₯Ό μκ°ν©λλ€.
μ΄ κΈμ ν΅ν΄ μλμ° μ ν리μΌμ΄μ κ°λ°μ κΈ°λ³Έ μ리λ₯Ό μ΄ν΄νκ³ , μ§μ κ°λ¨ν νλ‘κ·Έλ¨μ λ§λ€μ΄ 보면μ C μΈμ΄μ μλμ° νκ²½μ λν μ΄ν΄λλ₯Ό λμΌ μ μμ΅λλ€. μλμ° νλ‘κ·Έλλ°μ λν ν₯λ―Έλ₯Ό λλΌκ³ , λ λμκ° μ λ¬Έμ μΈ κ°λ°μλ‘ μ±μ₯ν μ μλ λ°νμ λ§λ ¨ν΄λ³΄μΈμ.
β μ½λ© κ²½νμ΄ μ ν μμ΄λ μλμ° μ± κ°λ°λ‘ λΆμ μ μμν μ μλ€κ³ μ? μ§κΈ λ°λ‘ νμΈν΄λ³΄μΈμ!
Cλ‘ μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ λ§λ€κΈ°| 첫걸μλΆν° μμ
μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ ν₯λ―Έλ‘κ³ λμ μ μΈ λΆμΌμ λλ€. μ΄ κ°μ΄λλ C νλ‘κ·Έλλ° μΈμ΄λ₯Ό κΈ°λ°μΌλ‘ μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ κΈ°μ΄λ₯Ό λ€λ£¨λ©°, μ΄λ³΄ κ°λ°μλΆν° μμνμ¬ μλμ° μ ν리μΌμ΄μ κ°λ°μ μΈκ³λ‘ λ°μ λ€μ¬λκ³ μΆμ λͺ¨λ μ¬λμ μν κ²μ λλ€.
Cλ μμ€ν νλ‘κ·Έλλ°μ μ ν©ν κ°λ ₯ν μΈμ΄μ΄λ©°, μλμ° μ ν리μΌμ΄μ κ°λ°μλ λ리 μ¬μ©λ©λλ€. μλμ° APIλ₯Ό ν΅ν΄ Cλ‘ λ€μν κΈ°λ₯μ ꡬνν μ μμΌλ©°, μ±λ₯ λ° ν¨μ¨μ±μ λμΌ μ μμ΅λλ€.
μ΄ κ°μ΄λμμλ μλμ° APIμ κΈ°λ³Έ κ°λ λΆν° μμνμ¬ GUI λμμΈ, μ΄λ²€νΈ μ²λ¦¬, λ°μ΄ν°λ² μ΄μ€ μ°λ, λ©ν° μ€λ λ© λ± μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ νμν νμμ μΈ μ£Όμ λ₯Ό λ€λ£° κ²μ λλ€.
C νλ‘κ·Έλλ°μ λν κΈ°λ³Έμ μΈ μ§μμ κ°μ§κ³ μλ€λ©΄, μ΄ κ°μ΄λλ₯Ό ν΅ν΄ μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ μμν μ μμ΅λλ€. μλμ° κ°λ° νκ²½ μ€μ , C μ»΄νμΌλ¬ μ¬μ©, μλμ° API νΈμΆ, GUI λμμΈ λ±μ μ£Όμ λ₯Ό μ€μ μ½λ μμ μ ν¨κ» λ€λ£° κ²μ λλ€.
μ΄ κ°μ΄λλ μ€λ¬΄μ λ°λ‘ μ μ© κ°λ₯ν μ€μ§μ μΈ μ§μκ³Ό κΈ°μ μ μ 곡νμ¬, μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ λν μ΄ν΄λ₯Ό λμ΄κ³ μ€μ νλ‘μ νΈλ₯Ό μ§ννλ λ° λμμ μ€ κ²μ λλ€.
μ΄ κ°μ΄λλ₯Ό ν΅ν΄, μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ° μ κΈ°μ΄λ₯Ό μκ³ , μμ λ§μ μλμ° μ ν리μΌμ΄μ μ κ°λ°νλ μ¦κ±°μμ κ²½νν μ μκΈ°λ₯Ό λ°λλλ€.
- μλμ° APIμ κΈ°λ³Έ κ°λ λ° μ¬μ©λ²
- GUI λμμΈ λ° μ΄λ²€νΈ μ²λ¦¬
- λ°μ΄ν°λ² μ΄μ€ μ°λ λ° νμΌ μ μΆλ ₯
- λ©ν° μ€λ λ© λ° νλ‘μΈμ€ κ΄λ¦¬
- μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ° μ€λ¬΄
μ΄ κ°μ΄λμ λ΄μ©μ μμ§νκ³ μ€μ΅μ ν΅ν΄ κ²½νμ μμΌλ©΄ μ€μ νλ‘μ νΈμ μ°Έμ¬ν μ μλ κΈ°λ°μ λ§λ ¨ν μ μμ΅λλ€.
μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ μΈκ³μ 첫 λ°μ λ΄λλ λΉμ μ νμν©λλ€!
β C κΈ°λ° μλμ° νλ‘κ·Έλλ°μ μΈκ³λ‘ λ°μ λ€μ¬λκ³ μΆλμ? μλμ° μ ν리μΌμ΄μ κ°λ°μ ν΅μ¬ κΈ°μ μ λ°°μ°κ³ , νμ€ μΈκ³μ μ μ©ν΄ 보μΈμ!
.NETκ³Ό Cλ₯Ό μ¬μ©νμ¬ μ¬μ©μ μΈν°νμ΄μ€ λμμΈνκΈ°
μλμ° νλ‘κ·Έλλ°μ μμ΄ μ¬μ©μ μΈν°νμ΄μ€(UI) λμμΈμ μ¬μ©μ κ²½νμ μ’μ°νλ μ€μν μμμ λλ€. μ΄ κΈμμλ .NET νλ μμν¬μ C μΈμ΄λ₯Ό μ¬μ©νμ¬ λ§€λ ₯μ μΈ UIλ₯Ό λ§λλ λ°©λ²μ μ΄ν΄λ΄ λλ€. .NETμ κ°λ ₯ν UI λꡬμ μ»΄ν¬λνΈλ₯Ό μ 곡νλ©°, Cμ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄λ‘ UI κ°λ°μ μ ν©ν©λλ€.
κ΅¬μ± μμ | κΈ°λ₯ | μ€λͺ | μμ |
---|---|---|---|
Windows Forms | GUI κ°λ° | Windows Formsλ .NETμ κΈ°λ³Έ UI νλ μμν¬λ‘, λ²νΌ, ν μ€νΈ μμ, λͺ©λ‘ μμ λ± λ€μν 컨νΈλ‘€μ μ 곡ν©λλ€. | λ‘κ·ΈμΈ νΌ, μ¬μ©μ νλ‘ν μ€μ μ°½ λ± |
WPF (Windows Presentation Foundation) | κ³ κΈ GUI κ°λ° | WPFλ Windows Formsλ³΄λ€ λ°μ΄λ κ·Έλν½ λ λλ§ κΈ°λ₯κ³Ό μ λλ©μ΄μ ν¨κ³Όλ₯Ό μ 곡νμ¬ νλ €ν UIλ₯Ό ꡬνν μ μμ΅λλ€. | 3D κ·Έλν½, λ©ν°λ―Έλμ΄ μ ν리μΌμ΄μ |
XAML (Extensible Application Markup Language) | UI μ μ | XAMLμ UI μμλ₯Ό XML νμμΌλ‘ μ μνλ μΈμ΄μ λλ€. C μ½λμ λΆλ¦¬νμ¬ UIλ₯Ό μ€κ³νκ³ κ΄λ¦¬ν μ μμ΅λλ€. | WPF μ ν리μΌμ΄μ μ UI μ μ |
컨νΈλ‘€ | UI μμ | λ²νΌ, ν μ€νΈ μμ, λͺ©λ‘ μμ, 콀보 λ°μ€, 그리λ λ± λ€μν 컨νΈλ‘€μ μ¬μ©νμ¬ UIλ₯Ό ꡬμ±ν©λλ€. | μ¬μ©μ μ λ ₯, λ°μ΄ν° νμ, κΈ°λ₯ μ€ν |
λ μ΄μμ | UI λ°°μΉ | Grid, StackPanel, Canvas λ± λ μ΄μμ 컨ν μ΄λλ₯Ό μ¬μ©νμ¬ UI μμλ₯Ό λ°°μΉνκ³ μ λ ¬ν©λλ€. | μ°½μ ꡬ쑰, 컨νΈλ‘€μ μμΉ λ° ν¬κΈ° μ‘°μ |
.NETκ³Ό Cμ μ¬μ©νλ©΄ μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ μ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό ν¨μ¨μ μΌλ‘ λμμΈνκ³ κ°λ°ν μ μμ΅λλ€. λ€μν 컨νΈλ‘€κ³Ό λ μ΄μμ κΈ°λ₯μ νμ©νμ¬ μ¬μ©μ μΉνμ μΈ UIλ₯Ό ꡬμΆνκ³ , νλΆν κΈ°λ₯μ μ 곡νλ μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€.
β λ¨μν μλμ° μ ν리μΌμ΄μ μ λμ΄ μ»΄ν¨ν° κ·Έλν½μ€λ₯Ό νμ©ν΄ μ°½μμ μΈ ννμ νꡬνκ³ μΆλμ? μλμ° νλ‘κ·Έλλ°μ 무κΆλ¬΄μ§ν κ°λ₯μ±μ μ΄μ΄λ³΄μΈμ!
μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ μ΄ν΄νκΈ°
μλμ° νλ‘κ·Έλλ°μ κ°μ
"λͺ¨λ νλ₯ν μννΈμ¨μ΄λ μ¬μ©μ μΈν°νμ΄μ€κ° μ€μνλ€. κ·Έκ²μ μννΈμ¨μ΄μ μΌκ΅΄μ΄κΈ° λλ¬Έμ΄λ€." - μ€ν°λΈ μ‘μ€
- GUI (Graphical User Interface)
- μλμ° API (Application Programming Interface)
- μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ°
μλμ° νλ‘κ·Έλλ°μ μλμ° μ΄μ 체μ μμ μ€νλλ λ°μ€ν¬ν± μ ν리μΌμ΄μ μ κ°λ°νλ κ²μ μλ―Έν©λλ€. μ¬μ©μλ λ§μ°μ€μ ν€λ³΄λλ₯Ό ν΅ν΄ GUI(Graphical User Interface)λ₯Ό μ‘°μνκ³ μ ν리μΌμ΄μ κ³Ό μνΈ μμ©ν©λλ€. μλμ° νλ‘κ·Έλλ°μ μλμ° μ΄μ 체μ κ° μ 곡νλ API(Application Programming Interface)λ₯Ό μ¬μ©νμ¬ μ ν리μΌμ΄μ μ ꡬμΆνλ©°, μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ° λͺ¨λΈμ ν΅ν΄ μ¬μ©μμ μ λ ₯μ λ°μν©λλ€.
μλμ° νλ‘κ·Έλλ° μΈμ΄
"νλ‘κ·Έλ¨μ μΈμ΄λ₯Ό ν΅ν΄ μκ°νλ€." - μλκ±° λ€μ΄ν¬μ€νΈλΌ
- C/C++
- .NET Framework
- Python
μλμ° νλ‘κ·Έλλ° μΈμ΄λ λ€μνμ§λ§, κ°μ₯ μΌλ°μ μΌλ‘ μ¬μ©λλ μΈμ΄λ C/C++, .NET Framework λ° Pythonμ λλ€. C/C++λ μ±λ₯μ μ€μνλ μ ν리μΌμ΄μ κ°λ°μ μ ν©νλ©°, .NET Frameworkλ νλΆν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡νμ¬ μμ°μ±μ λμ¬μ€λλ€. Pythonμ μ¬μ΄ νμ΅ κ³‘μ κ³Ό νμ©μ±μ΄ κ°μ μ λλ€.
μλμ° API (Application Programming Interface)
"APIλ μννΈμ¨μ΄ μΈκ³μ μΈμ΄μ λλ€. μννΈμ¨μ΄ κ΅¬μ± μμκ° μλ‘ μ΄λ»κ² λννλμ§ μ€λͺ ν©λλ€." - λ ν¬λ
- μλμ° ν¨μ
- μλμ° ν΄λμ€
- λ©μμ§ λ£¨ν
μλμ° APIλ μλμ° μ΄μ 체μ κ° μ 곡νλ ν¨μ, ν΄λμ€ λ° κ΅¬μ‘°μ²΄ μ§ν©μΌλ‘, μ ν리μΌμ΄μ μ΄ μλμ° μ΄μ 체μ μ μνΈ μμ©ν μ μλλ‘ ν©λλ€. μλμ° ν¨μλ μλμ°λ₯Ό μμ±, μμ , μ΄λ, ν¬κΈ° μ‘°μ , 그리기 λ± λ€μν μμ μ μννλ λ° μ¬μ©λ©λλ€. μλμ° ν΄λμ€λ μλμ°μ κΈ°λ³Έμ μΈ μμ±μ μ μνλ©°, λ©μμ§ λ£¨νλ μ¬μ©μμ μ λ ₯μ μ²λ¦¬νκΈ° μν΄ μλμ° APIλ₯Ό μ£ΌκΈ°μ μΌλ‘ κ²μ¬ν©λλ€.
GUI (Graphical User Interface) λμμΈ
"νλ₯ν λμμΈμ λ¨μ§ 보μ΄λ κ² μ΄μμ λλ€. κ·Έκ²μ μ¬μ©μλ₯Ό μν΄ μλν©λλ€." - μ€ν°λΈ μ‘μ€
- μλμ°, λ²νΌ, ν μ€νΈ μμ
- λ μ΄μμ κ΄λ¦¬
- κ·Έλν½ λμμΈ
GUI λμμΈμ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό κ°λ°νλ κ³Όμ μΌλ‘, μλμ°, λ²νΌ, ν μ€νΈ μμ λ± λ€μν GUI μμλ₯Ό μ¬μ©νμ¬ μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ₯Ό ꡬμΆν©λλ€. λ μ΄μμ κ΄λ¦¬λ GUI μμλ₯Ό λ°°μΉνκ³ μ λ ¬νλ λ° μ€μν μν μ νλ©°, κ·Έλν½ λμμΈμ GUIμ μκ°μ 맀λ ₯λλ₯Ό ν₯μμν΅λλ€.
μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ°
"μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ°μ λͺ¨λ κ²μ΄ μ΄λ²€νΈμ μν΄ νΈλ¦¬κ±°λλ νλ‘κ·Έλ¨ μ€κ³ ν¨λ¬λ€μμ λλ€." - μ§ νΈκ±΄
- μ΄λ²€νΈ μ²λ¦¬
- μ¬μ©μ μ λ ₯ μ΄λ²€νΈ
- νμ΄λ¨Έ μ΄λ²€νΈ
μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ°μ μ¬μ©μμ μ λ ₯μ΄λ μμ€ν μ λ³νμ κ°μ μ΄λ²€νΈλ₯Ό μ²λ¦¬νλ νλ‘κ·Έλλ° λͺ¨λΈμ λλ€. μ¬μ©μκ° λ²νΌμ ν΄λ¦νλ κ², ν μ€νΈ μμμ κΈμλ₯Ό μ λ ₯νλ κ²κ³Ό κ°μ μ¬μ©μ μ λ ₯ μ΄λ²€νΈλ₯Ό μ²λ¦¬ν μ μμΌλ©°, νΉμ μκ° κ°κ²©λ§λ€ λ°μνλ νμ΄λ¨Έ μ΄λ²€νΈλ₯Ό μ²λ¦¬ν μλ μμ΅λλ€.
β μλμ° νλ‘κ·Έλλ°μ μ²μ μμνλ λΉμ μ μν μΉμ ν μλ΄! C κΈ°λ° μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ°μ κΈ°μ΄λΆν° μ¬νκΉμ§, μ§κΈ λ°λ‘ μμν΄λ³΄μΈμ.
μ€μ μμ λ₯Ό ν΅ν΄ μλμ° μ ν리μΌμ΄μ κ°λ° κ²½ν μκΈ°
1, κΈ°λ³Έ μλμ° μ ν리μΌμ΄μ
ꡬμΆ
- μλμ° μ ν리μΌμ΄μ κ°λ°μ 첫걸μμ κΈ°λ³Έ μλμ°λ₯Ό μμ±νκ³ , μ¬μ©μμ μνΈμμ©ν μ μλ κ°λ¨ν μΈν°νμ΄μ€λ₯Ό λ§λλ κ²μ λλ€.
- C μΈμ΄μ Win32 APIλ₯Ό νμ©νμ¬ μλμ°λ₯Ό μμ±νκ³ , λ²νΌ, ν μ€νΈ μμμ κ°μ κΈ°λ³Έμ μΈ UI μμλ₯Ό μΆκ°ν©λλ€.
- μ¬μ©μμ μ λ ₯μ λ°κ³ , μ΄λ²€νΈ μ²λ¦¬λ₯Ό ν΅ν΄ λμ μΌλ‘ μλ΅νλ κΈ°λ³Έμ μΈ μλμ° μ ν리μΌμ΄μ μ λ§λ€μ΄ μλμ° νλ‘κ·Έλλ°μ κΈ°μ΄λ₯Ό λ€μ§ μ μμ΅λλ€.
κΈ°λ³Έ μλμ° μμ±
μλμ°λ₯Ό μμ±νκΈ° μν΄μλ Win32 APIμ CreateWindowEx ν¨μλ₯Ό μ¬μ©ν©λλ€. μ΄ ν¨μλ μλμ° ν΄λμ€, μλμ° μ€νμΌ, μλμ° ν¬κΈ°, μμΉ, μλμ° μ λͺ© λ± λ€μν 맀κ°λ³μλ₯Ό λ°μ μλμ°λ₯Ό μμ±ν©λλ€.
μμ±λ μλμ°λ ShowWindow ν¨μλ₯Ό ν΅ν΄ νλ©΄μ νμν©λλ€. λν, UpdateWindow ν¨μλ₯Ό μ¬μ©νμ¬ μλμ°μ λ΄μ©μ μ λ°μ΄νΈνκ³ λ€μ 그릴 μ μμ΅λλ€.
λ©μμ§ λ£¨ν
μλμ° μ ν리μΌμ΄μ μ λ©μμ§ λ£¨νλ₯Ό ν΅ν΄ μ¬μ©μμ μ λ ₯μ΄λ μμ€ν μ΄λ²€νΈλ₯Ό μ²λ¦¬ν©λλ€. GetMessage ν¨μλ₯Ό μ¬μ©νμ¬ λ©μμ§λ₯Ό κ°μ Έμ€κ³ , TranslateMessage, DispatchMessage ν¨μλ₯Ό ν΅ν΄ λ©μμ§λ₯Ό μ²λ¦¬ν©λλ€.
λ©μμ§ λ£¨νλ μλμ° μ ν리μΌμ΄μ μ΄ μ€νλλ λμ κ³μμ μΌλ‘ μλνλ©°, μ¬μ©μμ μ λ ₯μ΄λ μμ€ν μ΄λ²€νΈλ₯Ό κ°μ§νκ³ μ μ ν μ²λ¦¬λ₯Ό μνν©λλ€.
2, .NET Frameworkλ₯Ό μ΄μ©ν μλμ° μ ν리μΌμ΄μ
κ°λ°
- .NET Frameworkλ μλμ° μ ν리μΌμ΄μ κ°λ°μ μν κ°λ ₯ν λꡬλ₯Ό μ 곡νλ©°, Cκ³Ό κ°μ κ°μ²΄ μ§ν₯ μΈμ΄λ₯Ό μ¬μ©νμ¬ κ°λ°μ κ°μνν©λλ€.
- Windows Forms, WPFμ κ°μ .NET Frameworkμ GUI νλ μμν¬λ₯Ό νμ©νμ¬ μλμ° μ ν리μΌμ΄μ μ κ°λ°ν μ μμ΅λλ€.
- Drag-and-Drop λ°©μμ ν΅ν΄ μ½κ² UIλ₯Ό λμμΈνκ³ , λ€μν 컨νΈλ‘€μ μ¬μ©νμ¬ νλΆν κΈ°λ₯μ ꡬνν μ μμ΄ κ°λ° μκ°μ λ¨μΆν μ μμ΅λλ€.
Windows Forms
Windows Formsλ .NET Frameworkμ κ°μ₯ κΈ°λ³Έμ μΈ GUI νλ μμν¬μ λλ€. λ€μν 컨νΈλ‘€μ μ 곡νλ©°, μ½λλ₯Ό ν΅ν΄ UIλ₯Ό μ μ΄νκ³ μ΄λ²€νΈλ₯Ό μ²λ¦¬ν©λλ€.
Windows Formsλ μ§κ΄μ μΈ κ°λ° νκ²½κ³Ό νλΆν 컨νΈλ‘€, μ¬μ΄ μ¬μ©λ²μ μ₯μ μΌλ‘ κ°μ§κ³ μμΌλ©°, κΈ°μ‘΄ Win32 APIλ₯Ό κΈ°λ°μΌλ‘ ꡬνλμ΄ λμ νΈνμ±μ μ 곡ν©λλ€.
WPF (Windows Presentation Foundation)
WPFλ Windows Formsλ³΄λ€ λ κ°λ ₯ν κΈ°λ₯μ μ 곡νλ GUI νλ μμν¬μ λλ€. λ²‘ν° κΈ°λ° κ·Έλν½, μ€νμΌ, μ λλ©μ΄μ , λ°μ΄ν° λ°μΈλ© λ±μ μ§μνμ¬ νλΆνκ³ μκ°μ μΌλ‘ 맀λ ₯μ μΈ μλμ° μ ν리μΌμ΄μ μ κ°λ°ν μ μμ΅λλ€.
WPFλ XML κΈ°λ°μ XAMLμ μ¬μ©νμ¬ UIλ₯Ό μ μνκ³ , μ½λμ UIλ₯Ό λΆλ¦¬νμ¬ κ°λ° μμ°μ±μ ν₯μμν΅λλ€. λν, 3D κ·Έλν½ λ° λ―Έλμ΄ κΈ°λ₯μ μ 곡νμ¬ λ€μν λ©ν°λ―Έλμ΄ μ ν리μΌμ΄μ μ κ°λ°νλλ° μ μ©ν©λλ€.
3, μ€μ μμ λ₯Ό ν΅ν μ΄ν΄
- κ°λ¨ν κ³μ°κΈ°, λ©λͺ¨μ₯κ³Ό κ°μ κΈ°λ³Έμ μΈ μλμ° μ ν리μΌμ΄μ μ μ§μ ꡬνν΄λ³΄λ©΄μ μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ κ³Ό μ리λ₯Ό μ΅ν μ μμ΅λλ€.
- λ€μν 컨νΈλ‘€μ μ¬μ©λ², μ΄λ²€νΈ μ²λ¦¬, λ°μ΄ν° μ²λ¦¬ λ±μ μ€μ μμ λ₯Ό ν΅ν΄ λ°°μ°λ©΄μ μ€λ¬΄μ νμν λ₯λ ₯μ ν₯μμν¬ μ μμ΅λλ€.
- μμ μ½λλ₯Ό λΆμνκ³ μμ νλ©΄μ μλμ° μ ν리μΌμ΄μ κ°λ°μ ν΅μ¬ μ리λ₯Ό μ΄ν΄νκ³ , μμ λ§μ μλμ° μ ν리μΌμ΄μ μ κ°λ°ν μ μλ λ₯λ ₯μ ν€μΈ μ μμ΅λλ€.
κ³μ°κΈ° μ ν리μΌμ΄μ
κ³μ°κΈ° μ ν리μΌμ΄μ μ μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ μ μ΄ν΄νλ λ° λ§€μ° μ μ©ν μμ μ λλ€. μ«μ λ²νΌ, μ°μ°μ λ²νΌ, κ²°κ³Ό νμ μμ λ±μ 컨νΈλ‘€λ‘ μ¬μ©νμ¬ μ¬μ©μμ μ λ ₯μ λ°κ³ μ°μ°μ μνν©λλ€.
κ³μ°κΈ° μ ν리μΌμ΄μ μ κ°λ°νλ©΄μ 컨νΈλ‘€μ μ¬μ©, μ΄λ²€νΈ μ²λ¦¬, λ°μ΄ν° μ²λ¦¬ λ± κΈ°λ³Έμ μΈ νλ‘κ·Έλλ° κΈ°λ²μ μ΅ν μ μμ΅λλ€.
λ©λͺ¨μ₯ μ ν리μΌμ΄μ
λ©λͺ¨μ₯ μ ν리μΌμ΄μ μ ν μ€νΈ νΈμ§ κΈ°λ₯μ ꡬννλ κ°λ¨ν μμ μ λλ€. ν μ€νΈ λ°μ€, λ©λ΄, λꡬ λͺ¨μ λ±μ μ¬μ©νμ¬ ν μ€νΈ μ λ ₯, μ μ₯, λΆλ¬μ€κΈ° κΈ°λ₯μ ꡬνν μ μμ΅λλ€.
λ©λͺ¨μ₯ μ ν리μΌμ΄μ μ κ°λ°νλ©΄μ νμΌ μ μΆλ ₯, ν μ€νΈ μ²λ¦¬, μλμ° λ©λ΄μ λꡬ λͺ¨μμ μ¬μ©λ² λ±μ λ°°μΈ μ μμ΅λλ€.
β μλμ° 10 μ μ±μ½λ μ κ±°λΆν° 보μ κ°νκΉμ§, μμ ν PC νκ²½μ μν μλ²½ κ°μ΄λλ₯Ό νμΈνμΈμ!
C κΈ°λ° μλμ° κ°λ°, μ¬μ΄ νμ΅κ³Ό λΉ λ₯Έ μ±μ₯μ μν κ°μ΄λ
Cλ‘ μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ λ§λ€κΈ°| 첫걸μλΆν° μμ
Cλ κ°λ ₯ν νλ‘κ·Έλλ° μΈμ΄λ‘, μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ
κ°λ°μ λ리 μ¬μ©λ©λλ€. μ΄ μΉμ
μμλ Cλ₯Ό μ¬μ©νμ¬ μλμ° μ ν리μΌμ΄μ
μ λ§λλ κΈ°μ΄λ₯Ό λ€λ£Ήλλ€. μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ
κ³Ό Cμ ν΅μ¬ κΈ°λ₯λ€μ νμ΅νμ¬ κ°λ¨ν λ°μ€ν¬ν± μ ν리μΌμ΄μ
μ κ°λ°νλ λ°©λ²μ λ°°μ°κ² λ©λλ€. C μΈμ΄ νΉμ§κ³Ό λ¬Έλ²μ μ΅νκ³ μλμ° APIλ₯Ό νμ©νμ¬ μ°½, λ²νΌ, ν
μ€νΈ λ°μ€μ κ°μ κΈ°λ³Έ UI μμλ₯Ό μμ±νκ³ μ μ΄νλ λ°©λ²μ μ€μ΅ν©λλ€.
λν, μλμ° λ©μμ§ λ£¨ν, μ΄λ²€νΈ μ²λ¦¬, λ©ν° μ€λ λ©κ³Ό κ°μ ν΅μ¬ μ£Όμ λ€μ νꡬνμ¬ μ’ λ 볡μ‘ν μλμ° μ ν리μΌμ΄μ
μ κ°λ°ν μ μλ ν λλ₯Ό λ§λ ¨ν©λλ€.
"μλμ° νλ‘κ·Έλλ°μ μΈκ³μμ Cλ νΌνΌν κΈ°λ°μ μ 곡νλ©°, μ μ°μ±κ³Ό μ±λ₯μ κ²ΈλΉνμ¬ κ°λ°μμκ² λ€μν κ°λ₯μ±μ μ΄μ΄μ€λλ€. μ΄ μΉμ μ λ°λ‘ κ·Έ κΈ°λ°μ μλ 첫걸μμ λλ€."
.NETκ³Ό Cλ₯Ό μ¬μ©νμ¬ μ¬μ©μ μΈν°νμ΄μ€ λμμΈνκΈ°
.NET Frameworkλ μλμ° μ ν리μΌμ΄μ
κ°λ°μ μν κ°λ ₯ν νλ«νΌμ΄λ©°, Cλ .NETμμ μμ£Ό μ¬μ©λλ μΈμ΄ μ€ νλμ
λλ€. μ΄ μΉμ
μμλ .NETκ³Ό Cλ₯Ό μ¬μ©νμ¬ μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ₯Ό λμμΈνλ λ°©λ²μ μ΄ν΄λ΄
λλ€.
WPF(Windows Presentation Foundation)μ κ°μ .NET λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ λ€μν UI μμ, κ·Έλν½, μ λλ©μ΄μ
μ ꡬννκ³ νλμ μΈ λμμΈμ μλμ° μ νμΌμ΄μ
μ κ°λ°νλ λ°©λ²μ λ¨κ³λ³λ‘ λ°°μ°κ² λ©λλ€. λν, λ°μ΄ν° λ°μΈλ©, μ€λ λ©, μ΄λ²€νΈ μ²λ¦¬μ κ°μ .NETμ ν΅μ¬ κΈ°λ₯λ€μ μ΅ν ν¨μ¨μ μ΄κ³ ν¨κ³Όμ μΈ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό ꡬννλ κΈ°μ μ μ΅λν©λλ€.
"μ¬μ©μ μΈν°νμ΄μ€ λμμΈμ μ΅κ³ μ μ¬μ©μ κ²½νμ μ 곡νκΈ° μν ν΅μ¬ μμμ λλ€. .NETκ³Ό Cλ₯Ό νμ©νλ©΄ μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ₯Ό ꡬννλ κ³Όμ μ΄ ν¨μ¬ μ©μ΄ν΄μ§λλ€."
μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ μ΄ν΄νκΈ°
μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ
μ κ°λ°νλ €λ©΄ μλμ° νλ‘κ·Έλλ°μ ν΅μ¬ κ°λ
μ μ΄ν΄ν΄μΌ ν©λλ€. μ΄ μΉμ
μμλ μλμ° μ ν리μΌμ΄μ
μ ꡬ쑰, λ©μμ§ λ£¨ν, μ΄λ²€νΈ μ²λ¦¬, λ©ν° μ€λ λ©κ³Ό κ°μ ν΅μ¬ κ°λ
μ μμΈν μμλ΄
λλ€.
μλμ° λ©μμ§ λ£¨νμ μ΄λ²€νΈ μ²λ¦¬ μμ€ν
μ μλ λ°©μμ μ΄ν΄νκ³ , μλμ° μ ν리μΌμ΄μ
μμ λ°μνλ λ€μν μ΄λ²€νΈλ€μ ν¨κ³Όμ μΌλ‘ μ²λ¦¬νλ λ°©λ²μ λ°°μ°κ² λ©λλ€. λν, λ©ν° μ€λ λ©μ νμ©νμ¬ μ±λ₯μ ν₯μμν€κ³ μλ΅μ±μ΄ λ°μ΄λ μ ν리μΌμ΄μ
μ κ°λ°νλ λ°©λ²μ νμν©λλ€.
"μλμ° νλ‘κ·Έλλ°μ λ©μμ§ μ²λ¦¬μ μ΄λ²€νΈ μ²λ¦¬λΌλ ν΅μ¬ μ리λ₯Ό κΈ°λ°μΌλ‘ ν©λλ€. μ΄λ¬ν κ°λ λ€μ μ ννκ² μ΄ν΄νλ κ²μ μ±κ³΅μ μΈ μλμ° μ ν리μΌμ΄μ κ°λ°μ κΈ°μ΄μ λλ€."
μ€μ μμ λ₯Ό ν΅ν΄ μλμ° μ ν리μΌμ΄μ κ°λ° κ²½ν μκΈ°
μ΄λ‘ μ μΈ μ§μμ λ°νμΌλ‘ μ€μ μλμ° μ ν리μΌμ΄μ
μ κ°λ°νλ©° κ²½νμ μλ κ²μ λ§€μ° μ€μν©λλ€. λ³Έ μΉμ
μμλ κ°λ¨ν λ°μ€ν¬ν± μ ν리μΌμ΄μ
λΆν° μ’ λ 볡μ‘ν νλ‘κ·Έλ¨κΉμ§ λ€μν μμ λ€μ ν΅ν΄ μλμ° μ ν리μΌμ΄μ
κ°λ° μ€λ ₯μ ν₯μμν¬ μ μλλ‘ λμ΅λλ€.
κ° μμ λ ꡬ체μ μΈ μ½λμ ν¨κ» μ€λͺ
λμ΄ μμ΄, μ€μ λ‘ μ½λλ₯Ό μμ±νκ³ μ€ννλ©° μλμ° νλ‘κ·Έλλ°μ κ°λ
κ³Ό κΈ°μ μ μ§μ 체νν μ μμ΅λλ€. λν, μμ λ€μ ν΅ν΄ μλμ° νλ‘κ·Έλλ°μ λ€μν μΈ‘λ©΄λ€μ μ΄ν΄λ³΄κ³ , μ’ λ 볡μ‘ν μ ν리μΌμ΄μ
μ κ°λ°νλ λ° νμν ν΅μ¬ κΈ°μ λ€μ μ΅λν μ μμ΅λλ€.
"μ€μ νλ‘μ νΈλ₯Ό ν΅ν΄ μ΅λν μ§μκ³Ό κ²½νμ μ€λ ₯ ν₯μμ ν° λμμ΄ λ©λλ€. μ΄ μΉμ μ λ€μν μμ λ€μ ν΅ν΄ μλμ° νλ‘κ·Έλλ°μ μΈκ³μ λΉ λ₯΄κ² μ μν μ μμ κ²μ λλ€."
C κΈ°λ° μλμ° κ°λ°, μ¬μ΄ νμ΅κ³Ό λΉ λ₯Έ μ±μ₯μ μν κ°μ΄λ
μ΄ κ°μ΄λλ Cλ₯Ό κΈ°λ°μΌλ‘ μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ
μ κ°λ°νκ³ μ νλ μ΄λ³΄ κ°λ°μλ€μ μν΄ λ§λ€μ΄μ‘μ΅λλ€. Cμ κΈ°λ³Έ λ¬Έλ²λΆν° μλμ° νλ‘κ·Έλλ°μ ν΅μ¬ κ°λ
, μ€μ μμ κΉμ§, 체κ³μ μΈ νμ΅ κ³Όμ μ μ 곡ν©λλ€. μ΄ κ°μ΄λλ₯Ό λ°λΌ μ°¨κ·Όμ°¨κ·Ό νμ΅νλ©΄ 짧μ μκ° μμ μλμ° μ ν리μΌμ΄μ
κ°λ°μ νμν ν΅μ¬ μ§μκ³Ό κΈ°μ μ μ΅λνκ³ , λΉ λ₯Έ μ±μ₯μ μ΄λ£° μ μμ΅λλ€.
μλμ° νλ‘κ·Έλλ°μ κΈ°λ³ΈλΆν° μμ©κΉμ§, μ΄ κ°μ΄λλ μμ νκ³ ν¨μ¨μ μΈ μλμ° μ ν리μΌμ΄μ
κ°λ°μ μν μλ²½ν λλ°μκ° λ κ²μ
λλ€.
"C μΈμ΄μ κ°λ ₯ν κΈ°λ₯κ³Ό μλμ° νλ‘κ·Έλλ°μ κΉμ΄ μλ λ΄μ©μ κΌΌκΌΌνκ² λ€λ£¬ μ΄ κ°μ΄λλ μλμ° κ°λ°μ λ¬Έμ νμ§ μ¬λ μ΄μ κ° λ κ²μ λλ€."
β μλμ° μ ν리μΌμ΄μ μ μκ°μ μΈν°νμ΄μ€λ₯Ό λμμΈνκ³ μΆμΌμ κ°μ? μ΄ λ²νΌμ ν΄λ¦νμ¬ GUI κ°λ°μ κΈ°μ΄λ₯Ό λ°°μ°κ³ λ©μ§ μλμ° μ ν리μΌμ΄μ μ λ§λ€μ΄ 보μΈμ!
μλμ° νλ‘κ·Έλλ° μ λ¬Έ| C κΈ°λ° μλμ° λ°μ€ν¬ν± μ ν리μΌμ΄μ κ°λ° κ°μ΄λ | C, .NET, GUI κ°λ°, μλμ° μ ν리μΌμ΄μ μ λν΄ μμ£Ό 묻λ μ§λ¬Έ TOP 5
μ§λ¬Έ. μλμ° νλ‘κ·Έλλ°μ μ²μ μμνλλ°, μ΄λ€ νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ¬μ©ν΄μΌ ν κΉμ?
λ΅λ³. μλμ° νλ‘κ·Έλλ° μ λ¬Έ λ¨κ³μμλ C μΈμ΄λ₯Ό μΆμ²ν©λλ€. C μΈμ΄λ μλμ° μ΄μ체μ μ κΈ°λ° μΈμ΄μ΄λ©°, μμ€ν λ 벨 νλ‘κ·Έλλ°μ λν μ΄ν΄λ₯Ό λμ΄λ λ° λμμ΄ λ©λλ€. λν, C μΈμ΄λ λ©λͺ¨λ¦¬ κ΄λ¦¬, ν¬μΈν°, ꡬ쑰체 λ±μ κ°λ μ μ΅νκΈ°μ μ ν©νμ¬ ν₯ν λ€λ₯Έ νλ‘κ·Έλλ° μΈμ΄λ₯Ό νμ΅νλ λ°μλ λμμ΄ λ©λλ€. Cκ³Ό κ°μ΄ .NET νλ μμν¬λ₯Ό κΈ°λ°μΌλ‘ νλ μΈμ΄λ μλμ° μ ν리μΌμ΄μ κ°λ°μ μ ν©νμ§λ§, C μΈμ΄λ₯Ό λ¨Όμ νμ΅νλ κ²μ΄ νλ‘κ·Έλλ° κΈ°μ΄λ₯Ό ννν λ€μ§λ λ° λμμ΄ λ κ²μ λλ€.
μ§λ¬Έ. μλμ° νλ‘κ·Έλλ°μ μν΄ μ΄λ€ κ°λ° νκ²½μ μ¬μ©ν΄μΌ ν κΉμ?
λ΅λ³. μλμ° νλ‘κ·Έλλ°μ μν κ°λ° νκ²½μ μ¬λ¬ κ°μ§κ° μμ΅λλ€. C μΈμ΄λ₯Ό μ¬μ©νλ€λ©΄ Visual Studio Codeμ κ°μ ν μ€νΈ μλν°μ GCC μ»΄νμΌλ¬λ₯Ό μ¬μ©ν μ μμ΅λλ€. Visual Studio Codeλ 무λ£μ΄λ©° μ¬μ©μ μ§μ μ΄ κ°λ₯ν ν μ€νΈ μλν°λ‘, λ€μν νλ«νΌμμ μ¬μ©ν μ μμ΅λλ€. GCCλ C μΈμ΄ μ½λλ₯Ό μ»΄νμΌνμ¬ μ€ν κ°λ₯ν νμΌλ‘ λ³ννλ μ»΄νμΌλ¬μ λλ€. C μΈμ΄λ₯Ό μ¬μ©νλ€λ©΄ Microsoftμμ μ 곡νλ Visual Studioλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. Visual Studioλ C μΈμ΄λ₯Ό ν¬ν¨ν λ€μν νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ§μνλ©°, μλμ° μ ν리μΌμ΄μ κ°λ°μ νμν λ€μν λꡬμ κΈ°λ₯μ μ 곡ν©λλ€.
μ§λ¬Έ. GUI κ°λ°μ μν΄ μ΄λ€ λꡬλ₯Ό μ¬μ©ν΄μΌ νλμ?
λ΅λ³. μλμ° νλ‘κ·Έλλ°μμ GUI κ°λ°μ μν΄ λ€μν λꡬλ₯Ό μ¬μ©ν μ μμ΅λλ€. C μΈμ΄λ₯Ό μ¬μ©νλ€λ©΄ Win32 APIλ₯Ό μ§μ μ¬μ©νμ¬ GUIλ₯Ό κ°λ°νλ λ°©λ²μ΄ μμ΅λλ€. Win32 APIλ μλμ° μ΄μ체μ κ° μ 곡νλ APIλ‘, μλμ° μ°½, λ²νΌ, ν μ€νΈ λ°μ€ λ± GUI μμλ₯Ό μ§μ μ μ΄ν μ μμ΅λλ€. C μΈμ΄λ₯Ό μ¬μ©νλ€λ©΄ .NET Frameworkμ WPF(Windows Presentation Foundation) λλ WinForms(Windows Forms)λ₯Ό μ¬μ©ν μ μμ΅λλ€. WPFλ λ²‘ν° κ·Έλν½, μ λλ©μ΄μ , ν¨κ³Ό λ±μ κΈ°λ₯μ μ§μνλ κ³ κΈ GUI κ°λ° λꡬμ λλ€. WinFormsλ WPFλ³΄λ€ κ°λ¨νκ³ μ§κ΄μ μΈ GUI κ°λ° λꡬλ‘, κΈ°λ³Έμ μΈ GUI μ ν리μΌμ΄μ κ°λ°μ μ ν©ν©λλ€.
μ§λ¬Έ. μλμ° μ ν리μΌμ΄μ κ°λ°μ λ°°μ°λ €λ©΄ μ΄λμλΆν° μμν΄μΌ ν κΉμ?
λ΅λ³. μλμ° μ ν리μΌμ΄μ κ°λ°μ λ°°μ°λ €λ©΄ λ¨Όμ C μΈμ΄ λλ C μΈμ΄μ κ°μ νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ΅νμΌ ν©λλ€. C μΈμ΄λ μλμ° μ΄μ체μ μ κΈ°λ° μΈμ΄μ΄λ©°, μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ μ μ΄ν΄νλ λ° λμμ΄ λ©λλ€. C μΈμ΄λ .NET Frameworkλ₯Ό κΈ°λ°μΌλ‘ νλ μΈμ΄λ‘, GUI κ°λ°κ³Ό κ΄λ ¨λ λ€μν κΈ°λ₯μ μ 곡ν©λλ€. νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ΅ν νμλ μλμ° API λλ .NET Frameworkλ₯Ό μ¬μ©νλ GUI κ°λ° λ°©λ²μ νμ΅ν΄μΌ ν©λλ€.
μ§λ¬Έ. μλμ° νλ‘κ·Έλλ°μ λ°°μ°λ λ° λμμ΄ λλ μλ£κ° μμκΉμ?
λ΅λ³. μλμ° νλ‘κ·Έλλ°μ λ°°μ°λ λ° λμμ΄ λλ μλ£λ μΈν°λ·, μμ , μ¨λΌμΈ κ°μ λ± λ€μνκ² μμ΅λλ€. μΈν°λ·μλ μλμ° νλ‘κ·Έλλ° κ΄λ ¨ μΉμ¬μ΄νΈ, λΈλ‘κ·Έ, ν¬λΌ, νν λ¦¬μΌ λ±μ΄ λ§μ΄ μμ΅λλ€. μμ μ μλμ° νλ‘κ·Έλλ°μ κΈ°λ³Έ κ°λ λΆν° μ€μ μ ν리μΌμ΄μ κ°λ°κΉμ§ λ€λ£¨λ λ€μν μ± μ΄ μμ΅λλ€. μ¨λΌμΈ κ°μλ μ νλΈ, Udemy, Coursera λ±μμ μ 곡λ©λλ€.