λͺ©λ‘π» Java Study/Java μ΄λ‘ μ 리 (27)
Coding Planet
"Daemon" μ΄λΌλ λ¨μ΄λ μλ κ·Έλ¦¬μ€ μ νμ 보νΈμ λλ μ μ μ§λ°°λ₯Ό λ°λ μνΌμ μλ―Ένλ λ¨μ΄μμ μ λλ¬μΌλ, μ»΄ν¨ν λΆμΌμμ λ°±κ·ΈλΌμ΄λμμ μ€νλλ νλ‘μΈμ€λ μλΉμ€λ₯Ό μλ―Ένλ€. λ³΄ν΅ μ¬μ©μμ μ§μ μ μΈ κ°μ μμ΄ λ 립μ μΌλ‘ μ€νλλ©° μμ€ν κ΄λ¦¬, μμ κ΄λ¦¬, νμΌ μ μ‘, λ€νΈμν¬ μλΉμ€ μ 곡 λ±μ μμ μ μννλ νλ‘κ·Έλ¨μ κ°λ¦¬ν¨λ€. μ΄μ체μ λ μλ²μμλ λ€μν λ°λͺ¬μ΄ μμ€ν μ κΈ°λ³Έμ μΈ κΈ°λ₯μ μ§μνκΈ° μν΄ μ€νλκ³ μλλ° μ΄ ν¬μ€νΈμμλ λ°λͺ¬μ°λ λ(daemeon thread)λ₯Ό μ€μ μ μΌλ‘ μ΄ν΄ λ³΄κ³ μ νλ€. | λ°λͺ¬ μ°λ λ(daemon thread) λ°λͺ¬ μ°λ λλ μΌλ°μ°λ λ(λ°λͺ¬ μ°λ λκ° μλ μ°λ λ)μ μμ μ λλ 보쑰μ μΈ μν μ μννλ μ°λ λμ΄λ€. μ£Ό μ°λ λ(μ ν리μΌμ΄μ μ λ©μΈμ°λ λ)κ° μ’ ..

| νλ‘μΈμ€μ μ°λ λ νλ‘μΈμ€(process)λ κ°λ¨ν λ§ν΄μ μ€νμ€μΈ νλ‘κ·Έλ¨μ΄λ€. νλ‘κ·Έλ¨μ μ€ννλ©΄ OSλ‘λΆν° μ€νμ νμν μμ(λ©λͺ¨λ¦¬)λ₯Ό ν λΉλ°μ νλ‘μΈμ€κ° λλ€. νλ‘μΈμ€λ νλ‘κ·Έλ¨μ μννλ λ° νμν λ°μ΄ν°μ λ©λͺ¨λ¦¬ λ±μ μμ κ·Έλ¦¬κ³ μ°λ λλ‘ κ΅¬μ±λμ΄ μλ€. μ΄ λ νλ‘μΈμ€μ μμμ μ΄μ©ν΄μ μ€μ λ‘ μμ μ μννλ κ²μ΄ μ°λ λμ΄λ€. κ·Έλμ λͺ¨λ νλ‘μΈμ€μμλ μ΅μν νλ μ΄μμ μ°λ λκ° μ‘΄μ¬νλ©°, λ μ΄μμ μ°λ λλ₯Ό κ°μ§ νλ‘μΈμ€λ₯Ό λ©ν°μ€λ λ νλ‘μΈμ€λΌκ³ νλ€. νλ‘μΈμ€κ° νλμ 곡μ₯μ΄λΌλ©΄ μ°λ λλ 곡μ₯ λ΄λΆμ λ Έλμμ΄λ€. | λ©ν°νμ€νΉκ³Ό λ©ν°μ°λ λ© νμ¬ μ°λ¦¬κ° μ¬μ©νκ³ μλ μλμ°λ μ λμ€λ₯Ό ν¬ν¨ν λλΆλΆμ OSλ λ©ν°νμ€νΉ(multitasking, λ€μ€μμ )μ μ§μνκΈ° λλ¬Έμ μ¬λ¬ κ°μ..
μλ°μ λλ€μ(Lambda Expressions)μ Java 8λΆν° λμ λ κΈ°λ₯μΌλ‘, κ°κ²°νκ² ν¨μλ₯Ό ννν μ μκ² ν΄μ€λ€. λλ€μμ΄λ λ§κ·Έλλ λ©μλλ₯Ό νλμ μ(expression)μΌλ‘ ννν κ²μ΄λ€. λλ€μμΌλ‘ νννλ©΄ λ©μλμ μ΄λ¦κ³Ό λ°νκ°μ΄ μμ΄μ§λ―λ‘ λλ€μμ μ΅λͺ ν¨μλΌκ³ λ νλ€. | 기본ꡬ쑰 νλΌλ―Έν° : λ©μλμ νλΌλ―Έν°μ λμΌνλ©° κ΄νΈ '()'μμ μ μΈνλ€. νλΌλ―Έν°μ νμ μ λͺ μν μλ μκ³ μλ΅ν μλ μλ€. νμ΄ν : νλΌλ―Έν°μ λ³Έλ¬Έμ ꡬλΆνλ μν μ νλ€. expression_body : ν΄λΉ ν¨μκ° μνν λ‘μ§μ λ΄κ³ μλ€. λ©μλμμ μ΄λ¦κ³Ό λ°ννμ μ μ κ±°νκ³ λ§€κ°λ³μ μ μΈλΆμ λͺΈν΅ μ¬μ΄μ ->λ₯Ό μΆκ°ν κ²μ΄λ€. (parameters) -> expression_body | λλ€μ..
κΈ°μ΄ μ€μ κΈ°μ΄μΈλ° μ΅κ·Ό νλ‘κ·Έλλ¨Έμ€ νλ©΄μ μ¬μ ν μ΄κ²λλ¬Έμ μ»΄νμΌ μ€λ₯κ° λ°μνλ€;; λ€μ μ 리νλ€... 1. length (νλ‘νΌν°) lengthλ λ°°μ΄μ κΈΈμ΄(ν¬κΈ°)λ₯Ό λνλ΄λ νλ‘νΌν° λͺ¨λ λ°°μ΄μ λν΄ μ¬μ© κ°λ₯νλ©°, λ°°μ΄μ ν¬κΈ°λ₯Ό λ°ννλ€. int[] arr = {1, 2, 3, 4, 5}; int size = arr.length; // sizeλ 5 2. length() (λ©μλ) length()λ String ν΄λμ€μ λ©μλλ‘, λ¬Έμμ΄μ κΈΈμ΄λ₯Ό λ°ν λ¬Έμμ΄μ κΈΈμ΄λ ν΄λΉ λ¬Έμμ΄μ ν¬ν¨λ λ¬Έμμ μλ₯Ό μλ―Ένλ€. String str = "hello"; int len = str.length(); // lenλ 5
`String`, `StringBuffer`, `StringBuilder`λ λͺ¨λ Javaμμ λ¬Έμμ΄μ μ²λ¦¬νκΈ° μν ν΄λμ€μ΄λ€. κ° ν΄λμ€μ νΉμ§κ³Ό μ°¨μ΄μ μ λν΄ κ³΅λΆνλ€. | String λΆλ³μ± (Immutability): String ν΄λμ€μ κ°μ₯ ν° νΉμ§μ ν λ² μμ±λ String κ°μ²΄λ λΆλ³μ΄λ€. μ¦, Stringμ μ΄λ€ λ³νλ₯Ό μ£Όλ €κ³ μλ‘μ΄ String κ°μ²΄κ° μμ±λλ€. μ΄λ¬ν λΆλ³μ±μ νΉμ μν©μμλ μμ μ±μ μ 곡νμ§λ§, λ¬Έμμ΄ μ‘°μ μμ μ΄ λΉλ²νκ² μΌμ΄λ λλ μ±λ₯ λ¬Έμ κ° λ°μν μ μλ€. μμ: λ¬Έμμ΄ μ°κ²° (+ μ°μ°μ μ¬μ©)μ ν λλ§λ€ μλ‘μ΄ String κ°μ²΄κ° μμ±λλ€. | StringBuffer κ°λ³μ± (Mutability): StringBufferλ λ¬Έμμ΄μ λ³κ²½νκ±°λ μ‘°μν ..

| Wrapper ν΄λμ€λ? Javaμμλ κΈ°λ³Έ λ°μ΄ν° νμ (primitive data types)κ³Ό κ·Έμ ν΄λΉνλ λνΌ(Wrapper) ν΄λμ€λ₯Ό μ 곡νλ€. λνΌ ν΄λμ€λ κΈ°λ³Έ λ°μ΄ν° νμ μ κ°μ κ°μ²΄λ‘ κ°μΈλ μν μ νλ€. μ΄λ₯Ό ν΅ν΄ κΈ°λ³Έ λ°μ΄ν° νμ κ°μ λν κ°μ²΄ μ°μ°μ μνν μ μλ€. λν μ λλ¦κ³Ό κ°μ κΈ°λ₯μμ κΈ°λ³Έ λ°μ΄ν° νμ μ μ§μ μ¬μ©ν μ μμ λ λνΌ ν΄λμ€λ₯Ό μ¬μ©νμ¬ ν΄κ²°ν μ μλ€. | μ£Όμ λνΌ ν΄λμ€μ ν΄λΉ κΈ°λ³Έ λ°μ΄ν° νμ | λνΌ ν΄λμ€μ μ£Όμ κΈ°λ₯κ³Ό μμ 1. κ° λ³ν λ¬Έμμ΄μ ν΄λΉ λνΌ ν΄λμ€μ νμ μΌλ‘ λ³ννκ±°λ, ν΄λΉ νμ μ κ°μ λ€λ₯Έ νμμΌλ‘ λ³νν μ μλ€. int i = Integer.parseInt("123"); String s = Integer.toStrin..

μμ΄ν 7 : λ€ μ΄ κ°μ²΄ μ°Έμ‘°λ₯Ό ν΄μ νλΌ C, C++ μΈμ΄λ λ©λͺ¨λ¦¬λ₯Ό μ§μ κ΄λ¦¬νμ§λ§ μλ°μ κ²½μ° κ°λΉμ§ 컬λ ν°κ° μ΄ μν μ ν΄μ£ΌκΈ° λλ¬Έμ λ€ μ΄ κ°μ²΄λ μμμ νμλλ€. νμ§λ§ μ΄ κ²μ΄ λ©λ‘리 κ΄λ¦¬λ₯Ό μ κ²½μ°μ§ μμλλλ€λ μλ―Έλ μλλ€. 1. λ©λͺ¨λ¦¬ λμκ° μΌμ΄λλ μμΉλ μ΄λμΈκ°? public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(..
μΉ νλ‘κ·Έλλ°μ 곡λΆνλ©΄μ μ§λ¦¬κ² λ£κ² λλ νμΌ νμμ΄λ€. JAR νμΌκ³Ό WAR νμΌμ λ λ€ Java κΈ°λ°μ μ ν리μΌμ΄μ μ ν¨ν€μ§νκΈ° μν νμΌ ν¬λ§·μ΄λ€. 1. Jar(Java ARchive)νμΌ μ μ: JAR νμΌμ μ¬λ¬ κ°μ Java ν΄λμ€ νμΌ, λ©ν λ°μ΄ν°, 리μμ€ νμΌ λ±μ νλμ νμΌλ‘ λ¬Άμ μμΉ΄μ΄λΈ νμΌ λͺ©μ : Java ν΄λμ€μ κ΄λ ¨ 리μμ€λ₯Ό ν¨ν€μ§νμ¬ μ¬μ¬μ© κ°λ₯ν λΌμ΄λΈλ¬λ¦¬λ μ€ν κ°λ₯ν μ ν리μΌμ΄μ μ μμ± μ¬μ©μ²: Java λΌμ΄λΈλ¬λ¦¬, μ€ν λμΌλ‘ Java μ ν리μΌμ΄μ , μμ‘΄μ± ν¨ν€μ§ λ± νμ₯μ: .jar 2. WAR (Web Application aRchive) νμΌ μ μ: WAR νμΌμ μΉ μ ν리μΌμ΄μ μ ν¨ν€μ§νκΈ° μν νμΌ ν¬λ§·μ΄λ€. Java ν΄λμ€, JSP, μλΈλ¦Ώ, XML, ..
μ§μ° μ΄κΈ°ν (Lazy Initialization)λ κ°μ²΄, λ°μ΄ν° λλ κ³μ° λΉμ©μ΄ ν° λ¦¬μμ€μ μ΄κΈ°νλ₯Ό κ·Έκ²μ΄ μ€μ λ‘ νμν λκΉμ§ μ§μ°μν€λ νλ‘κ·Έλλ° κΈ°λ²μ λλ€. μ¦, κ°μ²΄λ λ°μ΄ν°λ₯Ό μμ±νλ μμ μ΄ λ°μνλ μκ°μ΄ μλλΌ, κ·Έκ²μ΄ μ€μ λ‘ μ κ·Όλκ±°λ μ¬μ©λ λκΉμ§ μ΄κΈ°νλ₯Ό μ°κΈ°νλ κ²μ μλ―Έν©λλ€. μ§μ° μ΄κΈ°νμ μ£Όμ λͺ©μ μ±λ₯ μ΅μ ν: μ΄κΈ° λ‘λ© μκ°μ λ¨μΆνκ±°λ, λΆνμν 리μμ€ μμ±μ λ°©μ§νμ¬ μμ€ν μ μ λ°μ μΈ μ±λ₯μ ν₯μμν¨λ€. 리μμ€ μ μ½: μ€μ λ‘ μ¬μ©λμ§ μλ κ°μ²΄λ λ°μ΄ν°λ₯Ό μμ±νμ§ μμ λ©λͺ¨λ¦¬λ κΈ°ν 리μμ€λ₯Ό μ μ½ν μ μλ€. μ§μ° μ΄κΈ°νμλ μ£Όμμ¬ν μ€λ λ μμ μ±: μ¬λ¬ μ€λ λμμ λμμ μ§μ° μ΄κΈ°ν λ‘μ§μ μ κ·Όν κ²½μ° λκΈ°ν λ¬Έμ κ° λ°μν μ μλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄μλ μ μ ν..

μμ΄ν 5: μμμ λͺ μνμ§ λ§κ³ μμ‘΄ κ°μ²΄ μ£Όμ μ μ¬μ©νλΌ μ΄μ μ μ΄ν΄λ³Έ μ μ μ νΈλ¦¬ν° ν΄λμ€λ μ±κΈν΄ λ°©μμ μ¬μ©νλ μμμ λ°λΌ λμμ΄ λ¬λΌμ§λ ν΄λμ€μλ μ ν©νμ§ μλ€. μ μ μ νΈλ¦¬ν° ν΄λμ€λ μνλ₯Ό κ°μ§ μ μλ€. μ¦ μμμ λ°λΌ λμμ λ³κ²½νλ κ²μ΄ μ΄λ ΅λ€. μ±κΈν΄μ μ μ μνλ₯Ό κ°μ§κ² λλ―λ‘ μ¬λ¬ μμμ κ΄λ¦¬νκ±°λ λμμ λμ μΌλ‘ λ³κ²½νκΈ° μ΄λ ΅κ² λ§λ λ€. λν μ μ μ νΈλ¦¬ν° ν΄λμ€λ μ±κΈν΄μ μμμ ν΅ν νμ₯μ΄ μ΄λ ΅κ³ ν μ€νΈλ μ΄λ ΅λ€λ λ¨μ μ΄ μλ€. λ°λΌμ β ν΄λμ€κ° μ¬λ¬ μμ μΈμ€ν΄μ€λ₯Ό μ§μν΄μΌνκ³ , β‘ ν΄λΌμ΄μΈνΈκ° μνλ μμμ μ¬μ©ν΄μΌνλ 쑰건μ λ§μ‘±νλ €λ©΄ μΈμ€ν΄μ€λ₯Ό μμ±ν λ μμ±μμ νμν μμμ λ겨주λ λ°©μμΈ μμ‘΄ κ°μ²΄ μ£Όμ μ΄ μ ν©νλ€. 1. μμ‘΄ κ°μ²΄ μ£Όμ (Dependency I..