μ•ˆλ…•ν•˜μ„Έμš”.


μ΄λ²ˆμ— κ½€ λ§Žμ€ 일을 μ§„ν–‰ν–ˆλŠ”λ°μš”...


μ—­μ‹œ μ½”λ“œ μž‘μ—…μ΄ 열에 8할이닀 λ³΄λ‹ˆ λ³΄μ—¬λ“œλ¦΄ 게 없을 것 κ°™μ•˜μ§€λ§Œ...

μ΄λ²ˆμ— 이벀트 λ³€μˆ˜μ™€ κ΄€λ ¨λœ λͺ¨λ“  κΈ°λŠ₯이 μ™„μ„±λœ 덕에 κ·Έλ‚˜λ§ˆ λ³΄μ—¬λ“œλ¦΄ 수 μžˆλŠ” 것이 μƒκ²ΌμŠ΅λ‹ˆλ‹€!

λ“œλ””μ–΄ 핡심적인 뢀뢄이 μ™„μ„±λκ±°λ“ μš”!


-----


이벀트 λ³€μˆ˜μ™€ κ΄€λ ¨λœ λͺ¨λ“  것


μ €λ²ˆ κΈ€μ—μ„œ μ–ΈκΈ‰ν–ˆλ˜ λŒ€λ‘œ, 이벀트 λ³€μˆ˜* 에 κ°’ μ§€μ •λ§Œ λ§Œλ“€λ©΄ 캐릭터 μ• λ‹ˆλ©”μ΄μ…˜ μž‘μ—…μ„ μ§„ν–‰ν•œλ‹€κ³  ν–ˆμ—ˆμ£ ?

* 이벀트 λ³€μˆ˜ : 이 κ²Œμž„μ—μ„œ μ“°μ΄λŠ” λ³€μˆ˜ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.

인 κ²Œμž„ 컷씬, μƒν˜Έμž‘μš© λ“±μ˜ 이벀트λ₯Ό ν†΅μ œν•  수 있고, κ²Œμž„μ˜ μƒνƒœλ₯Ό λͺ¨λ‘ μ €μž₯ν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨μž…λ‹ˆλ‹€.


κ·Έλž˜μ„œ 이벀트 λ³€μˆ˜μ˜ 값을 μ§€μ •ν•˜λŠ” 뢀뢄을 λ§Œλ“€κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.


그전에 쑰건뢄기 이벀트λ₯Ό λΉ„λ‘―ν•΄, ν”Œλž˜κ·Έ ν¬μΈνŠΈμ™€ 같은 게 κ΅¬λΆ„ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” 것을 κΉ¨λ‹«κ³  κ°„λ‹¨ν•œ μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.



ν”Œλž˜κ·Έ ν¬μΈνŠΈμ— μž„μ‹œλ‘œ DrawRectλ₯Ό μ‚¬μš©ν•΄λ΄€λŠ”λ°, κ΅¬λΆ„ν•˜κΈ°κ°€ μ‰¬μ›Œμ‘Œλ‹€λŠ” κ±Έ 느꼈죠.

색은 μœ μ—°ν•˜κ²Œ 이벀트 νŠΉμ„± λ³„λ‘œ μ§€μ •ν•  수 있기 λ•Œλ¬Έμ— 일단은 λ³€μˆ˜μ— 값을 μ§€μ •ν•˜λŠ” 것 λΆ€ν„° κ΅¬ν˜„ν•˜κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.



μ—°μ‚°μžλŠ” 크게 6κ°€μ§€λ‘œ, λŒ€μž…[=], λ”ν•˜κΈ°[+], λΉΌκΈ°[-], κ³±ν•˜κΈ°[*], λ‚˜λˆ„κΈ°[/], λ‚˜λ¨Έμ§€[%]λ₯Ό μ‚¬μš©ν•˜κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.

이정도면 μΆ©λΆ„ν•˜κ² μ£ ?


그런데 λ§Œλ“€λ˜ 도쀑, μ•—μ°¨ ν•˜λ˜ 것이 λ– μ˜¬λžμŠ΅λ‹ˆλ‹€.

이것도 λ³€μˆ˜λ₯Ό μ„ νƒν•˜λŠ” κ±Έ λ§Œλ“€μ–΄μ•Ό ν•˜μž–μ•„!


κ·Έλž˜μ„œ 쑰건 λΆ„κΈ° μ΄λ²€νŠΈμ—μ„œ λ³€μˆ˜ ν•„λ“œλ₯Ό λ§Œλ“€μ–΄μ£ΌλŠ” λ©”μ„œλ“œλ₯Ό κΊΌλ‚΄μ™€μ„œ μ•„μ˜ˆ λ…λ¦½μ‹œμΌ°μŠ΅λ‹ˆλ‹€.




'λ³€μˆ˜ λ³€κ²½' λ²„νŠΌμ΄ μžˆλŠ” 쀄과 'λ³€μˆ˜ μ‚¬μš©' μ²΄ν¬λ°•μŠ€κ°€ μžˆλŠ” 쀄이 λ”°λ‘œ λ…λ¦½μ‹œν‚¨ 이벀트 λ³€μˆ˜ ν•„λ“œ λ§Œλ“œλŠ” λ©”μ„œλ“œμž…λ‹ˆλ‹€.

μ’€ 더 κΉ”λ”ν•΄μ Έμ„œ μ’‹λ„€μš”!



κ·Έλž˜μ„œ λ³€μˆ˜ μ„€μ •μ—λŠ” 이벀트 λ³€μˆ˜λ§Œ 선택할 수 μžˆλŠ” ν•„λ“œμ™€ λ³€μˆ˜μ™€ μƒμˆ˜λ₯Ό μ§€μ •ν•  수 μžˆλŠ” ν•„λ“œλ₯Ό λ‘¬μ„œ λ³€μˆ˜κ°€ 값이 λ°”λ€” 수 μžˆλ„λ‘ λ ˆμ΄μ•„μ›ƒμ„ μ€€λΉ„ν–ˆμŠ΅λ‹ˆλ‹€.




그리고 이벀트λ₯Ό λ„ˆλ¬΄ 많이 μ“°μ§€ μ•Šκ²Œ ν•˜κΈ° μœ„ν•΄μ„œ ν•œ 이벀트 μ•ˆμ—μ„œ λ³€μˆ˜λ₯Ό μ—¬λŸ¬λ²ˆ μ§€μ •ν•  수 있게 μ€‘μ²©λ˜κ²Œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

이제 λ ˆμ΄μ•„μ›ƒμ΄ λͺ¨λ‘ μ€€λΉ„κ°€ λμœΌλ‹ˆ, μ‹€μ œλ‘œ μž‘λ™ν•˜λŠ” μ½”λ“œλ₯Ό λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.


μ΄λ²ˆμ—λ„ μ—­μ‹œ 쑰건 λΆ„κΈ° μ΄λ²€νŠΈμ—μ„œλ§Œ μ“°μ˜€λ˜ 이벀트 λ³€μˆ˜λ₯Ό λΉ„κ΅ν•˜κΈ° μœ„ν•œ ꡬ쑰체λ₯Ό 꺼내와 곡용으둜 μ“Έ 수 있게 λ…λ¦½ν•˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

μ €λ²ˆ κΈ€μ—μ„œ 쑰건 λΆ„κΈ°λ‘œ λΉ„κ΅ν•˜κΈ° μœ„ν•΄ μ—°μ‚°μžλ₯Ό μ˜€λ²„λ‘œλ”©μ„ ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.

그런데 μ΄λ²ˆμ— λΉ„κ΅ν•˜λŠ” κ³Όμ •μ—μ„œ μ„±λŠ₯ μ΅œμ ν™”λ₯Ό ν•  수 μžˆλŠ” 방법을 μ°Ύμ•˜λŠ”λ°, λ– μ˜€λ₯΄λŠ” μˆœκ°„, μ €λ²ˆμ— λ°”λ³΄κ°™λ‹€λŠ” 생각을 ν•œ 것이 틀리지 μ•Šμ•˜λ‹€λŠ” κ±Έ 느꼈죠. (...)


μ• μ΄ˆμ— 이 이벀트 λ³€μˆ˜ κ΅¬μ‘°μ²΄μ—λŠ” λ³€μˆ˜ νƒ€μž…μ„ λ³΄κ΄€ν•˜κ³  μžˆμ—ˆκ±°λ“ μš”!

λΆˆν•„μš”ν•˜κ²Œ IsAssignableFrom을 μ‚¬μš© ν•  ν•„μš”κ°€ μ—†μ—ˆλ˜ 것이죠.

λ³€μˆ˜μ˜ νƒ€μž… 값은 enum을 μ‚¬μš©ν•˜κ³  있기 λ•Œλ¬Έμ— IsAssignableFrom보닀 λΉ„μš©μ΄ 많이 λ“€μ–΄κ°€μ§€ μ•Šμ„κ²λ‹ˆλ‹€.



κ·Έλ ‡κ²Œ 이제 이 κ΅¬μ‘°μ²΄μ—λŠ” λ³€μˆ˜ 비ꡐ 외에도 λ³€μˆ˜μ— 값을 μ μš©ν•  수 μžˆλŠ” κΈ°λŠ₯을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.



μ½”λ“œκ°€ κΈ΄ μ΄μœ λŠ”, μ €λ²ˆμ˜ 비ꡐ μ—°μ‚°μžμ™€ 같이 4κ°€μ§€ νƒ€μž…μ„ κ°€μ§€λŠ” 이벀트 λ³€μˆ˜κ°€ λ‹€λ₯Έ 이벀트 λ³€μˆ˜μ˜ νƒ€μž…μ„ λŒ€μ‘ν•  수 있게 λ§Œλ“€μ–΄μ•Ό ν–ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

그쀑 λ¬Έμžμ—΄μ€ λŒ€μž…, λ”ν•˜κΈ° μ™Έμ—λŠ” μ“°λŠ” 게 λΆˆκ°€λŠ₯ν•œ λ“±μ˜ 쑰치λ₯Ό ν•΄λ†“μ•˜μŠ΅λ‹ˆλ‹€.


μ•„λ¬΄νŠΌ κ·Έλž˜μ„œ 이벀트 λ³€μˆ˜λ₯Ό μ§€μ •ν•˜λŠ” μ΄λ²€νŠΈμ—λŠ” 이걸 μ΄μš©ν•΄ ꡉμž₯히 짧게 λ§Œλ“€ 수 있게 λμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ...



이벀트 λ³€μˆ˜μ— 값을 κ³„μ‚°ν•˜κ³  λŒ€μž…ν•˜λŠ” μ—­ν•  밖에 μ—†μ—ˆκΈ° λ•Œλ¬Έμ—, μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” μ½”λ“œλ„ ꡉμž₯히 λ‹¨μˆœν•˜κ²Œ λ§Œλ“€ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.



자, 이제 μ€€λΉ„κ°€ λͺ¨λ‘ λλ‚¬κ΅°μš”.

이제 이벀트 λ³€μˆ˜λ“€μ΄ λ°”λ€ŒλŠ” κ±Έ 디버그 ν•˜κΈ° μœ„ν•΄ 디버그 도ꡬλ₯Ό λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.



본래 κΈ°νšν–ˆλ˜ 이벀트 λ³€μˆ˜ λ””λ²„κ·Έμ˜ κΈ°νšμ€ κ²Œμž„ λ‚΄μ—μ„œ μ‘°μ •ν•  수 μžˆλ„λ‘ κΈ°νšν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.

그런데... μ§€κΈˆ μ™€μ„œ μƒκ°ν•΄λ³΄λ‹ˆ, λ³€μˆ˜ 메타데이터 νŽΈμ§‘κΈ°μ—μ„œ κ°€λŠ₯성을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ λ³€μˆ˜ 메타데이터 νŽΈμ§‘κΈ°μ— 쑰금 더 μΆ”κ°€ μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.


μ•„λž˜μ˜ μ˜μƒμ—μ„œ 이벀트 λ³€μˆ˜κ°€ λ°”λ€ŒλŠ” 것을 직접 λ³Ό 수 있게 λ§Œλ“  것을 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

μœ λ‹ˆν‹°μ—μ„œ μ΄λ²€νŠΈμ— κ΄€λ ¨λœ λͺ¨λ“  ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ³Ό 수 있게 λμŠ΅λ‹ˆλ‹€.



이제, μ΄λ ‡κ²Œ 바뀐 값듀은 μ €μž₯ν•˜κ³  뢈러올 수 있게 λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.

이미 이전에 λ³€μˆ˜ 메타데이터λ₯Ό ꡬ상할 λ•Œ μ¦ˆμŒμ— κ΅¬ν˜„ν•΄λ‘μ—ˆκΈ° λ•Œλ¬Έμ—, 금방 λ§Œλ“€ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.


잘 λ˜λŠ”κ΅°μš”.


이둜써, λ“œλ””μ–΄ 이벀트 νŽΈμ§‘κΈ°μ™€ μ„Έμ΄λΈŒ μ‹œμŠ€ν…œ 두가지가 ν•œλ²ˆμ— 제 κΈ°λŠ₯을 ν•  수 μžˆλŠ” 핡심적인 뢀뢄이 μ™„μ„±λμŠ΅λ‹ˆλ‹€!

μ•Όν˜Έ!


κ·ΈλŸ¬λ‹ˆ... 이제 κΈ°νšλŒ€λ‘œ μ• λ‹ˆλ©”μ΄μ…˜ μž‘μ—…μ„ ν•΄μ•Όκ² μ£ ?


-----


μ• λ‹ˆλ©”μ΄μ…˜


κ·Έλž˜μ„œ 이제 포이가 제발 λ’€λ₯Ό λŒμ•„λ³Ό 수 있게 λ°˜λŒ€λ‘œ λ„λŠ” μ• λ‹ˆλ©”μ΄μ…˜μ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.


κ²Œμž„μ˜ νŠΉμ„± 상, 쒌우 λŒ€μΉ­μœΌλ‘œ μ“Έ 수 밖에 μ—†κΈ° λ•Œλ¬Έμ—, μ•½κ°„μ˜ λˆˆμ†μž„μ„ μ΄μš©ν•΄ μžμ—°μŠ€λŸ½κ²Œ λ§Œλ“­λ‹ˆλ‹€.

머리카락은 μ™ μ§€ 흔듀렀야 ν•  것 κ°™μ•„μ„œ 머리카락만 ν•œ ν”„λ ˆμž„μ„ 더 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.


Β  Β  Β 


-----


κ°€μž₯ μ€‘μš”ν–ˆλ˜ 뢀뢄을 μ™„μ„±ν•˜λ‹€



이벀트 νŽΈμ§‘κΈ°μ˜ 가독성도 올리고, μ„Έμ΄λΈŒμ™€ λ‘œλ“œκ°€ κΉ”λ”ν•˜κ²Œ μž‘λ™ν•˜λ©΄μ„œ 이벀트 λ³€μˆ˜λ“€μ„ 자유둭게 μ‘°μ •ν•  수 있게 λ˜λ‹ˆ, ꡉμž₯히 λλ‚΄μ£ΌλŠ” κΈ°λΆ„μ΄λ„€μš”!

μ• λ‹ˆλ©”μ΄μ…˜ μž‘μ—…λ„ μž₯λΉ„λ₯Ό λ°”κΎΈκ³  λ‚˜λ©΄μ„œ μž‘μ—… 속도가 ν™•μ—°νžˆ λΉ¨λΌμ‘ŒμŠ΅λ‹ˆλ‹€.


κ·Έλ‚˜μ €λ‚˜... 이제 가을인데, 아직도 λ‚ μ”¨λŠ” μ—¬λ¦„κ°™λ„€μš”.

가을을 λ³Ό 수 μžˆμ—ˆμœΌλ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€.


μ•„λ§ˆ λ‹€μŒ μ£Ό λΆ€ν„° 계속 μ• λ‹ˆλ©”μ΄μ…˜ μž‘μ—…μ„ ν•˜μ§€ μ•Šμ„κΉŒ μ‹Άλ„€μš”.



그러면 λ‹€μŒ 주에 또 μ˜€κ² μŠ΅λ‹ˆλ‹€.