λΆλ₯ μ 체보기
-
[Java] μλ° μ°λ λ κ΅μ°©μν(deadlock)Android/Java 2021. 2. 7. 17:01
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" λ΄μ©μ κ°μ§κ³ 곡λΆνμ¬ μμ±ν κΈμ λλ€. Thread DeadLock μ΄λ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°νλ₯Ό ν΅ν΄ λ½μ νλνμ¬ λμΌν μμμ μ¬λ¬ κ³³μμ ν¨λΆλ‘ μ¬μ©νμ§ λͺ»νλλ‘ νμμ΅λλ€. νμ§λ§ λ κ°μ μ°λ λμμ μλ‘κ° κ°μ§κ³ μλ λ½μ΄ ν΄μ λκΈ°λ₯Ό κΈ°λ€λ¦¬λ μνκ° μκΈΈ μ μμΌλ©° μ΄λ¬ν μνλ₯Ό κ΅μ°©μν(deadlock) μ΄λΌκ³ ν©λλ€. κ΅μ°©μνκ° λλ©΄ μ΄λ€ μμ λ μ€νλμ§ λͺ»νκ³ μλ‘ μλλ°©μ μμ μ΄ λλκΈ°λ§ λ°λΌλ 무νμ λκΈ° μνμ λλ€. DeakLock λ°μ 쑰건 μνΈ λ°°μ (Mutual Exclusion) : ν μμμ λν΄ μ¬λ¬ μ°λ λ λμ μ κ·Ό λΆκ° μ μ μ λκΈ° (Hold and Wait) : μμμ κ°μ§κ³ μλ μνμμ λ€λ₯Έ μ°λ λκ° μ¬μ©νκ³ μλ μ..
-
[Java] μλ° μ°λ λμ λκΈ°νAndroid 2021. 2. 7. 16:57
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆνμ¬ μμ±ν κΈμ λλ€. μ°λ λ λκΈ°νλ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°ν μμ μ΄ νμμ λλ€. μ°λ λ λκΈ°νλ μ¬λ¬ μ°λ λκ° λμΌν 리μμ€λ₯Ό 곡μ νμ¬ μ¬μ©νκ² λλ©΄ μλ‘μ κ²°κ³Όμ μν₯μ μ£ΌκΈ° λλ¬Έμ λ°©μ§νλ κΈ°λ²μ λλ€. μ°λ λ λκΈ°νλ₯Ό νκΈ° μν΄μλ μκ³μμ(critical section)κ³Ό λ½(lock)μ μ¬μ©ν©λλ€. μκ³μμμΌλ‘ μ€μ ν ꡬμμ λμμ 리μμ€λ₯Ό μ¬μ©ν μ μλ ꡬμμ΄κ³ , λ½μ νλν μ°λ λμ λν΄μλ§ λ¦¬μμ€λ₯Ό μ¬μ©νλλ‘ νλ λ°©μμ λλ€. synchronizedλ₯Ό μ΄μ©ν λκΈ°ν μλ°μμλ synchronized ν€μλλ₯Ό μ¬μ©νμ¬ μκ³μμμ μ§μ νμ¬ λμμ 곡μ μμμ μ°¨μ§νμ§ μλλ‘ κ°μ ν©λλ€. synchronizedλ₯Ό μ¬μ©νλ λ°©λ²μ λ©μλ μ체μ μ μ©..
-
[Java] μλ° μ°λ λ μν, μ°μ μμ(State, Priority)Android/Java 2021. 2. 5. 02:19
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" μ μ°Έμ¬νμ¬ κ³΅λΆν κΈμ λλ€. λ©ν° μ°λ λ λ©ν° μ°λ λ νλ‘κ·Έλλ°μ΄λ νλμ μμ©νλ‘κ·Έλ¨μμ λμμ μ¬λ¬ μ²λ¦¬λ₯Ό νκΈ° μν΄ μ°λ λλ₯Ό μμ±νμ¬ μ΄μνλ νλ‘κ·Έλλ°μ λ§ν©λλ€. λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νΉμ§μ λμμ±κ³Ό λ³λ ¬μ±μ΄ μ‘΄μ¬ν©λλ€. νλμ μ½μ΄μμ μ¬λ¬ κ°μ μ°λ λλ₯Ό μ΄μνλ κ²μ λμμ±μΌλ‘ λΉ λ₯Έ μλλ‘ μ°λ λλ₯Ό λ²κ°μ κ°λ©΄μ μ€ννλ κ²μ λλ€. λ³λ ¬μ±μ λ€μμ μ½μ΄μμ κ° μ½μ΄μ μ°λ λλ₯Ό μμ±νμ¬ μ€νμν€λ κ²μ λλ€. μλ° μ°λ λ μν (Thread State) μλ° λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νλ©΄ λκΈ°ν/λΉλκΈ°ν λΏλ§ μλλΌ μ°λ λ μνλ₯Ό μ§μ μ μ΄ν κ²½μ°λ μκΉλλ€. μ°λ λ μ μ΄νκΈ° μ μ μ°λ λμ μνλ‘ μμμΌ νλλ° getState() λ©μλλ₯Ό ν΅ν΄ μ μ μμ΅λ..
-
[Git] Git Submodule(μλΈλͺ¨λ) μ΄λ?Git 2021. 2. 3. 17:33
μ΄ κΈμ 곡μλ¬Έμλ₯Ό μ°Έκ³ νμ¬ μμ±ν κΈμ λλ€. Submodule Gitμ μλΈλͺ¨λμ Git μ μ₯μμ λ€λ₯Έ μ¬λμ Git μ μ₯μλ₯Ό νλμ λλ ν 리μ cloneνλ κ²μ΄ μλΈλͺ¨λμ λλ€. μλΈλͺ¨λμ ν¬ν¨λ λ°μ΄ν°λ λ΄ Git μ μ₯μμ λλ ν 리λ₯Ό μμ±νμ¬ λ£κΈ° λλ¬Έμ λ 립μ μΌλ‘ 컀λ°μ κ΄λ¦¬ν μ μμ΅λλ€. Submodule μ¬μ©νκΈ° JNI μ€μ΅ μ½λλ₯Ό λ΄ μ격 μ μ₯μ(Github)μ μ¬λ Έμ΅λλ€. μ΄ μ격 μ μ₯μμ μλ‘μ΄ Git μ μ₯μλ₯Ό μλΈλͺ¨λμ μ¬μ©νμ¬ λλ ν 리μ λ£λλ‘ νκ² μ΅λλ€. λ¨Όμ μλΈλͺ¨λμ μΆκ°νλ λͺ λ ΉμΌλ‘ git submodule add μ λλ€. λͺ λ Ήμ΄λ₯Ό μ λ ₯ν κ²°κ³Ό .gitmodulesμ μλΈλͺ¨λμΈ Design-Pattern-to-Java κ° μΆκ°λ κ²μ λ³Ό μ μμ΅λλ€. μ΄ .gitmodules..
-
[Java] μλ° μ°λ λ μμ±(Thread, Runnable)Android/Java 2021. 2. 2. 14:52
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆν λ΄μ©μ μ 리νμ¬ μ΄ κΈμ λλ€. Process vs Thread μλ°μ μ°λ λλ₯Ό μ€λͺ νκΈ° μ΄μ μ νλ‘μΈμ€μ μ°λ λμ μ°¨μ΄μ λν΄ κ°λ΅νκ²λλ§ μ νμκ° μμ΅λλ€. Process νλ‘μΈμ€μ μ¬μ μ μ μλ‘λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λ»νκ² λ©λλ€. μλμ°μμ μ μ₯μ₯μΉμ μ μ₯λ μνλ₯Ό νλ‘κ·Έλ¨μ΄λΌκ³ νκ³ λλΈν΄λ¦μ ν΅ν΄ νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬ 곡κ°μ μ¬λΌμ μ€νμ€μΈ νλ‘κ·Έλ¨ μΈμ€ν΄μ€λ₯Ό νλ‘μΈμ€λΌκ³ ν©λλ€. Thread ν νλ‘μΈμ€ λ΄μμ λμλλ μ€νλ¨μλ₯Ό λ»νκ² λ©λλ€. ν¬λ‘¬ λΈλΌμ°μ λΌλ νλ‘μΈμ€μμ μ νλΈμ μ μνμ¬ λμμμ μμ²ν λ μ νλΈ λ°μ΄ν°λ₯Ό λ€μ΄λ‘λ λ°μΌλ©΄μ λμμμ΄ μ€νλλ μμ μ΄ λμμ μ΄λ£¨μ΄μ§λ κ²λ μ°λ λλ₯Ό ν΅ν΄ κ°λ₯νκ² λ©λλ€. Thread μμ± μλ°μμ T..
-
[Java] μλ° μμΈμ²λ¦¬Android/Java 2021. 2. 1. 23:01
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆνμ¬ μμ±ν κΈμ λλ€. Error(μλ¬) vs Exception(μμΈ) μ°Έμ‘°(https://coding-factory.tistory.com/280) μλ°μ μμΈμ²λ¦¬λ₯Ό μ€λͺ νκΈ° μ΄μ μ μλ¬μ μμΈλ₯Ό ꡬλ³ν νμ μ€λͺ νλλ‘ νκ² μ΅λλ€. μ λν μλ¬λ μμΈλ₯Ό ꡬλ³νμ§ μκ³ λκ°λ€λΌλ μκ°μ νμλλ° μ΄λ² μ€ν°λλ₯Ό ν΅ν΄ μκ² λμμ΅λλ€. Error(μλ¬) μλ¬λ μ»΄ν¨ν° νλμ¨μ΄ μ€λμ λλ κ³ μ₯μΌλ‘ μΈν΄μ μμ©νλ‘κ·Έλ¨μ μ€λ₯κ° λ°μνκ±°λ, JVM μ€νμ λ¬Έμ κ° μκ²Όμ κ²½μ°μ λ°μν©λλ€. λ°νμ μ λ°μλλ©° μ λΆ μμΈ‘ λΆκ°λ₯ν UnChecked Error μ λλ€. κ·Έλμ κ°λ°μκ° λμ²νλ λ°©λ²μλ μ νμ μΌ μλ°μ μμ΅λλ€. Exception(μμΈ) λ¨μν κ°λ°μμ μλͺ»λ μ½λ©..
-
[Java] μλ° μΈν°νμ΄μ€(Interface) μ¬μ©Android/Java 2021. 1. 24. 02:47
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" λ΄μ©μ 곡λΆνμ¬ μμ±νμμ΅λλ€. μΈν°νμ΄μ€(Interface)λ? νμ μμ μμ€μ½λ μμ± μ ν΄λμ€λ₯Ό μ²μλΆν° ꡬννκ² λλ€λ©΄ μ½λμ κ°λ μ±λ λ¨μ΄μ§κ³ μκ°λ μ€λ걸릴 κ²μ λλ€. λν νλ³λ‘ κ°κ° λ€λ₯Έ λͺ¨λμ λ§λ€ μ νλ§λ€ λ°©λ²μ΄ λ€λ₯΄κΈ° λλ¬Έμ μλ‘ νΈνμ±μ΄ μκ³ μΌκ΄μ±μ΄ λ¨μ΄μ§κ² λ©λλ€. μΈν°νμ΄μ€λ₯Ό ν΅ν΄ κΈ°λ³Έμ μΌλ‘ ꡬνν΄μΌ ν λ©μλμ λν κ·κ²©λ€μ μλ €μ€λ€λ©΄ ν¨μ¬ ν¨μ¨μ μΌ κ²μ λλ€. μ¦, μΈν°νμ΄μ€λ νΉμ κΈ°λ₯μ κ°λ°νλλ° μμ΄ κ³΅ν΅μ μΈ κΈ°λ₯μ λͺ μνκ³ κ°μ μ μΌλ‘ ꡬννκ²λ νλ μν μ λλ€. μΈν°νμ΄μ€λ₯Ό μ¬μ©νκ² λλ€λ©΄ μλ°μ λ€νμ±μ μ΄μ©ν μ μκ³ μ΄λ₯Ό ν΅ν΄ μ μ§λ³΄μμ±μ λμΌ μ μμ΅λλ€. μΈν°νμ΄μ€ μ μ public interface Phone { int ve..
-
[Java] μλ° ν¨ν€μ§λ?Android/Java 2021. 1. 19. 23:48
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ λ΄μ©"μ 곡λΆνμ¬ μμ±νμμ΅λλ€. ν¨ν€μ§λ? μλ°μμμ ν¨ν€μ§λ ν΄λμ€λ μΈν°νμ΄μ€λ€μ ν κ³³μ λͺ¨μλλ κ³³μ μλ―Έν©λλ€. ν¨ν€μ§ λ³λ‘ μνλ κΈ°λ₯μ ꡬνν ν΄λμ€λ μΈν°νμ΄μ€λ₯Ό λͺ¨μλκΈ° λλ¬Έμ νμΌμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€. λν, ν΄λμ€ μ΄λ¦μ΄ κ°λλΌλ λ€λ₯Έ ν¨ν€μ§μ ν΄λμ€λΌλ©΄ λ¬Έμ κ° λ°μνμ§ μμ΅λλ€. ν¨ν€μ§ λ΄λΆμλ μλΈ ν¨ν€μ§λ μμ μ μμ΄μ μ (.)μ ν΅ν΄μ ꡬλΆν©λλ€. ex) java.lang.String : java.lang ν¨ν€μ§ λ΄λΆμ String ν΄λμ€ package Human; public class Student { String name; int age; }package ν¨ν€μ§λͺ μ μ λ ₯νμ¬ μ μΈν μ μμ΅λλ€. import μμ€μ½λ μμ± μ ..