λͺ©λ‘μ 체 κΈ (1103)
KoreanFoodie's Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dEl2Bp/btrSQThHp2U/cLjDteoVy7NXpxVkY2b1u1/img.jpg)
UUserWidget μ Native ν¨μ //native SObjectWidget methods (see the corresponding BlueprintImplementableEvent declarations above for more info on each) friend class SObjectWidget; virtual void NativeOnInitialized(); virtual void NativePreConstruct(); virtual void NativeConstruct(); virtual void NativeDestruct(); virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime); UserWidget μλ μ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2xJub/btrSCrqTanu/aSmuRUH890lreEkR08Yaz0/img.jpg)
λν° νλκ·Έ ν¨ν΄μ΄λ? λν° νλκ·Έ ν¨ν΄μ λν΄μλ, μ΄μ λΈλ‘κ·Έ κΈμμ κ°λ¨νκ² μΈκΈν λ° μλ€. λν° νλκ·Έ ν¨ν΄μ μΌλ°μ μΌλ‘ λ λλ§ κ³Όμ μμ, κ³μΈ΅ κ΅¬μ‘°κ° μ‘΄μ¬ν κ²½μ°, νμν λ / νμν νμ΄λ°μ νλ©΄μ κ°±μ νλ λΆλΆμμ μμ£Ό μ°μΈλ€. λν λν° νλκ·Έλ₯Ό 체ν¬ν΄ UI λ₯Ό κ°±μ νκ² λλ©΄, Tick λ§λ€ UI μ λ°μ΄νΈκ° μ€λ³΅ν΄μ μΌμ΄λλ κ²μ λ§μ μ μλ€. κ·Έλ λ€λ©΄ μ΄ ν¨ν΄μ μΈλ¦¬μΌμμλ μ΄λ€ λ°©μμΌλ‘ μ μ©ν΄ λ³Ό μ μμκΉ? μλ₯Ό λ€μ΄, μ°λ¦¬κ° μ΄λ€ UI λ₯Ό κ°±μ νλλ°,Dirty Flag λ₯Ό λμ΄ ν΄λΉ λν° νλκ·Έκ° μΌμ Έ μμ λλ§ UI λ₯Ό κ°±μ νλ€κ³ κ°μ ν΄ λ³΄μ. μΌλ¨, μ€μ λ‘ UI ν΄λμ€λ₯Ό λ§λ€κΈ° μ μ, λν° νλκ·Έ ν¨ν΄μ μ¬μ©ν μμ ―λ€μ΄ 곡ν΅μ μΌλ‘ μ¬μ©ν μΈν°νμ΄μ€λ₯Ό λ€μκ³Ό κ°μ΄ μ μν μ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DhTwJ/btrRppNTz6d/1r4h1GNnIzPtoytM8RrS1K/img.jpg)
μμ ― 리νλ ν° μΈλ¦¬μΌμ μμ ― 리νλ ν° κΈ°λ₯μ μ΄μ©νλ©΄, νμ¬ νλ μ΄νκ³ μλ μ°½μμ μ΄λ€ μμ ―μ΄ μ΄λ€ λΈλ£¨νλ¦°νΈλ₯Ό μ¬μ©νκ³ μλμ§, visibility μνλ μ΄λ νμ§ λ±μ νλμ νμ ν μ μλ€(μμ ― 리νλ ν° : μ°½ > κ°λ°μ ν΄ > μμ ― 리νλ ν°). λ μμΈν μ¬νμ μ΄λμ°λ λΈλ‘κ·Έμ μλν° νμ₯ κΈ°μ΄ κΈμ μ°Έκ³ νμ. μμ ννΈ ν μ€νΈ κ°λ₯ μμ ―μ λλ₯΄λ©΄, λ€μκ³Ό κ°μ΄ νλ μ΄ νλ©΄κ³Ό μμ ― 리νλ ν° μ°½μ΄ λ°λλ κ²μ νμΈν μ μλ€(μ΄λ―Έμ§λ 곡μ λ¬Έμμμ κ°μ Έμ΄) ν΄λΉ μμ ―μ κ³μΈ΅ ꡬ쑰λ₯Ό νμ ν μ μμΌλ©°, μ€μκ°μΌλ‘ μμ ―μ λκ³ ν¬ μλ μμ΄ μμ ― κ΄λ ¨ λλ²κΉ μ λ§€μ° μ μ©ν κΈ°λ₯μ΄λ€!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QHTg6/btrP7MEffXr/9AskiEpxkm6kwIwuZ8bItK/img.png)
Asio λ Asynchronous IO μ μ½μμ΄λ€. Asio λ₯Ό μ΄ν΄νκΈ° μν΄μλ, λ€μκ³Ό κ°μ μ©μ΄λ€μ μκ³ μμ΄μΌ νλ€. IO Service ν΄λμ€ : 컀λμμ λ°μν μ μΆλ ₯ μ΄λ²€νΈλ₯Ό λμ€ν¨μΉ ν΄μ£Όλ κΈ°λ₯μ μν. λμ€ν¨μΉλ, μ°μ μμκ° λμ μμ μ΄ μ°μ μ μΌλ‘ μνλ μ μλλ‘ μμ€ν μμμ ν λΉνλ κ²μ μλ―Ένλ€. IO Service ν΄λμ€λ 컀λμμ λ°μν λ€νΈμν¬μμ μ μ λ° λ°μ΄ν° μ²λ¦¬ μ΄λ²€νΈλ₯Ό μ²λ¦¬νλ€. μ’ λ¨μ (Endpoint) : λ€νΈμν¬ μμ νΉμ μ»΄ν¨ν°μμ μ€νλκ³ μλ νλμ νλ‘κ·Έλ¨. ꡬ체μ μΌλ‘ IP μ£Όμμ ν¬νΈ λ²νΈμ ν μμ μ’ λ¨μ μ΄λΌκ³ ν¨. DNS(Domain Name Server) : Boost Asio μμλ λλ©μΈ μ£Όμλ₯Ό μ΄μ©, IP μ£Όμλ₯Ό μμλ΄μ΄ μ’ λ¨μ μ ꡬνλ€. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ryvPh/btrP6iwBWy7/tsCJYQQ5el5t6cVtk8COHK/img.png)
IOCPλ CPU κ°μλ§νΌλ§ μ°λ λλ₯Ό μ°λ μλ²μ΄λ€. IOCP λ₯Ό μ¬μ©ν λͺ¨λ Send/Recv λ Overlapped I/O λ‘ λμνλ€. λ©ν°μ°λ λμμ λμνλ©°, μ½λ°±ν¨μλ€μ λμμ λμν΄μ μ±λ₯μ λμΈλ€. IOCPκ° μ¬μ©νλ IOCP κ°μ²΄λ 컀λ μμμ κ΄λ¦¬λλ€. 컀λ λ΄μλ DEVICE LIST λΌλ μλ£κ΅¬μ‘°κ° μ‘΄μ¬νλλ°, μμΌμ IOCP μ λ±λ‘νλ©΄ IOCP κ°μ²΄λ DEVICE_LIST μ μμΌλ€μ λ±λ‘ν΄μ μ²λ¦¬νλ€. νλ‘κ·Έλλ¨Έλ DEVICE_LIST λ₯Ό μ§μ 보거λ μ μ΄ν μ μλ€. νλ¦μ λ€μκ³Ό κ°μ΄ μμ½ν΄ λ³Ό μ μμ κ² κ°λ€ : I/O λλ°μ΄μ€(μμΌ, FD) IOCP μ λ±λ‘ : CreateIoCompletionPrt ν¨μλ₯Ό ν΅ν΄ λλ°μ΄μ€μ CompletionPort(μ΄ν CP) λ₯Ό λ°μΈ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ylokv/btrPQLZKR2j/zv4I7E2orbMMkwIu7K60pK/img.jpg)
μ΄λμ°λμ 'μ΄λμ°μ κ²μμν' μ± μ 보며 μ’μ λ΄μ©μ μ 리νκ³ μμ΅λλ€. λ μμΈν λ΄μ©μ΄ κΆκΈνμλ€λ©΄, μ± μ κ΅¬λ§€ν΄ μ§μ μ½μ΄λ³΄μκΈ°λ₯Ό μΆμ²λ립λλ€! λ³ν νλ ¬μ μνλ ¬ λ€μν λ³ν νλ ¬λ€μ μνλ ¬μ μμ보μ. ν¬κΈ° λ³ννλ ¬ κ° κΈ°μ 벑ν°μ ν¬κΈ°λ₯Ό κ°κ° a, b λ§νΌ ν€μ°λ ν¬κΈ° λ³ννλ ¬μ μνλ ¬μ λ€μκ³Ό κ°λ€. μ λ¨ λ³ννλ ¬ ννμ¬λ³ν μ²λΌ λ―Έλλ¬μ§κ² μκΈ΄ μ λ¨ λ³ννλ ¬μ μνλ ¬μ λ€μκ³Ό κ°λ€. νμ λ³ννλ ¬ νμ λ³ννλ ¬μ μνλ ¬μ λ€μκ³Ό κ°λ€. θ λ§νΌ λ°μκ³ λ°©ν₯μΌλ‘ νμ μν€λ νλ ¬μ μνλ ¬μ ꡬνκΈ° μν΄μλ, -θ λ§νΌ λ°μκ³ λ°©ν₯μΌλ‘ νμ μν€λ νλ ¬μ μκ°ν΄λ³΄λ©΄ λλ€! μΌκ°ν¨μμ μ±μ§μ μ΄μ©νλ©΄ κ°λ¨ν ꡬν μ μλ€.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dPCpXw/btrPB2GQLK8/Rk08GeN6IRjRPB0lKsCwRk/img.png)
μ½ λ λ¬κ° μ½μΌλ©° μ 리νκ³ μμ½ν Effective C++ μ Effective Modern C++ κ²μκΈλ€μ λν 리μ€νΈ μμ½κΈμ λλ€. κ°λ°νμ€λ μ°Έκ³ νμκΈΈ λ°λΌλ©°, μ§μ μ¬μ μ½μ΄λ³΄μκΈΈ κ°μΆλ립λλ€! 1μ₯ νμ μ°μ νλͺ© 1: ν νλ¦Ώ νμ μ°μ κ·μΉμ μμ§νλΌ νλͺ© 2: autoμ νμ μ°μ κ·μΉμ μμ§νλΌ νλͺ© 3: decltypeμ μλ λ°©μμ μμ§νλΌ νλͺ© 4: μ°μλ νμμ νμ νλ λ°©λ²μ μμλλΌ 2μ₯ auto νλͺ© 5: λͺ μμ νμ μ μΈλ³΄λ€λ autoλ₯Ό μ νΈνλΌ νλͺ© 6: autoκ° μμΉ μμ νμμΌλ‘ μ°μλ λμλ λͺ μμ νμμ μ΄κΈ°μΉλ₯Ό μ¬μ©νλΌ 3μ₯ νλμ C++μ μ μνκΈ° νλͺ© 7: κ°μ²΄ μμ± μ κ΄νΈ(())μ μ€κ΄νΈ({})λ₯Ό ꡬλΆνλΌ νλͺ© 8: 0κ³Ό NULLλ³΄λ€ nullptrλ₯Ό μ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bD35cX/btrPyHjLIJj/tHKMZmjQw8PyOUEu1NKa70/img.jpg)
μ½ λ λ¬κ° μ½μΌλ©° μ 리νκ³ μμ½ν Effective C++ μ Effective Modern C++ κ²μκΈλ€μ λν 리μ€νΈ μμ½κΈμ λλ€. κ°λ°νμ€λ μ°Έκ³ νμκΈΈ λ°λΌλ©°, μ§μ μ¬μ μ½μ΄λ³΄μκΈΈ κ°μΆλ립λλ€! Chapter 1 C++μ μμΌλ©΄ C++μ λ²μ λ°λ¦ μλ€ νλͺ© 1: C++λ₯Ό μΈμ΄λ€μ μ°ν©μ²΄λ‘ λ°λΌλ³΄λ μλͺ©μ νμ νλͺ© 2: #defineμ μ°λ €κ±°λ const, enum, inlineμ λ μ¬λ¦¬μ νλͺ© 3: λμλ§ λ³΄μ΄λ©΄ constλ₯Ό λ€μ΄λ 보μ! νλͺ© 4: κ°μ²΄λ₯Ό μ¬μ©νκΈ° μ μ λ°λμ κ·Έ κ°μ²΄λ₯Ό μ΄κΈ°ννμ Chapter 2 μμ±μ, μλ©Έμ λ° λμ μ°μ°μ νλͺ© 5: C++κ° μκ·Όμ¬μ© λ§λ€μ΄ νΈμΆν΄ λ²λ¦¬λ ν¨μλ€μ μ΄κ°μ μΈμ°μ νλͺ© 6: μ»΄νμΌλ¬κ° λ§λ€μ΄λΈ ν¨μκ° νμ μμΌλ©΄ νμ€ν μ΄λ€μ μ¬μ©μ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qZX3r/btrPAqVCjt2/WXLAWWRMZQJr2sEyEnzWg0/img.png)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 42 : μ½μ λμ μμ± μ½μ μ κ³ λ €νλΌ ν΅μ¬ : 1. μ΄λ‘ μ μΌλ‘, μμ± μ½μ ν¨μλ€μ μ’ μ’ ν΄λΉ μ½μ λ²μ λ³΄λ€ λ ν¨μ¨μ μ΄μ΄μΌ νλ©°, λ ν¨μ¨μ μΈ κ²½μ°λ μ λλ‘ μμ΄μΌ νλ€. 2. μ€μ§μ μΌλ‘, (1) μΆκ°ν κ°μ΄ 컨ν μ΄λμ λ°°μ λλ κ²μ΄ 컨ν μ΄λμ λ°°μ λλ κ²μ΄ μλλΌ μ»¨ν μ΄λ μμμ μμ±λκ³ , (2) μΈμ νμ(λ€)μ΄ μ»¨ν μ΄λκ° λ΄λ νμκ³Ό λ€λ₯΄κ³ , (3) κ·Έ κ°μ΄ μ€λ³΅λ κ°μ΄μ΄λ 컨ν μ΄λκ° κ±°λΆνμ§ μλλ€λ©΄, μμ± μ½μ ν¨μκ° μ½μ ν¨μλ³΄λ€ λΉ λ₯Ό κ°λ₯μ±μ΄ μμ£Ό ν¬λ€. 3. μμ± μ½μ ν¨μλ μ½μ ν¨μλΌλ©΄ κ±°λΆλΉνμ νμ λ³νλ€μ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cXe7os/btrPyHD6H4C/XkzKPhABPqP6KRvUKD6wa0/img.png)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 41 : μ΄λμ΄ μ λ ΄νκ³ νμ 볡μ¬λλ λ³΅μ¬ κ°λ₯ 맀κ°λ³μμ λν΄μλ κ° μ λ¬μ κ³ λ €νλΌ ν΅μ¬ : 1. μ΄λμ΄ μ λ ΄νκ³ νμ 볡μ¬λλ λ³΅μ¬ κ°λ₯ 맀κ°λ³μμ λν΄μλ κ° μ λ¬μ΄ μ°Έμ‘° μ λ¬λ§νΌμ΄λ ν¨μ¨μ μ΄κ³ , ꡬννκΈ°κ° λ μ½κ³ , μ°μΆλλ λͺ©μ μ½λμ ν¬κΈ°λ λ μλ€. 2. μΌκ° μΈμμ κ²½μ° κ° μ λ¬(μ¦, λ³΅μ¬ μμ±) λ€μμ μ΄λ λ°°μ μ μ°Έμ‘° μ λ¬ λ€μμ λ³΅μ¬ λ°°μ λ³΄λ€ ν¨μ¬ λΉμ κ°λ₯μ±μ΄ μλ€. 3. κ° μ λ¬μμλ μλ¦Ό λ¬Έμ κ° λ°μν μ μμΌλ―λ‘, μΌλ°μ μΌλ‘ κΈ°λ° ν΄λμ€ λ§€κ°λ³μ νμμ λν΄μλ κ° μ λ¬μ΄ μ ν©νμ§ μλ€. Widget ν΄λ..