μ€λ²λ‘λ© / μ€λ²λΌμ΄λ© μ°¨μ΄
- μ€λ²λ‘λ©(Overloading)μ κ°μ μ΄λ¦μ λ©μλλ₯Ό λ§€κ°λ³μμ κ°μ λλ νμ μ λ°λΌ λ€λ₯΄κ² μ μνλ κ².
- μ€λ²λΌμ΄λ©(Overriding)μ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€μμ μ¬μ μνλ κ².
κ°μ²΄μ§ν₯ μΈμ΄μ νΉμ§
- μμ (Inheritance): ν΄λμ€λ€ κ°μ μμ κ΄κ³λ₯Ό νμ±νμ¬ μ½λμ μ¬μ¬μ©μ±μ λμ λλ€.
- μΊ‘μν (Encapsulation): λ°μ΄ν°μ ν΄λΉ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ©μλλ₯Ό νλλ‘ λ¬Άμ΄ μΈλΆμμμ μ§μ μ μΈ μ κ·Όμ μ νν©λλ€.
- λ€νμ± (Polymorphism): κ°μ μ΄λ¦μ λ©μλλ₯Ό λ€μν λ°©μμΌλ‘ νΈμΆνκ±°λ κ°μ²΄λ₯Ό λ€μν νμ μΌλ‘ λ€λ£° μ μμ΅λλ€.
- μΆμν (Abstraction): 곡ν΅μ μμ±κ³Ό λμμ μΆμΆνμ¬ ν΄λμ€λ‘ μ μν©λλ€.
μμκ³Ό ꡬνμ μ°¨μ΄μ κ³Ό νΉμ§ λ° μ₯λ¨μ
- μμ: ν΄λμ€ κ°μ μμ κ΄κ³λ₯Ό νμ±νμ¬ λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό μμ ν΄λμ€κ° λ¬Όλ €λ°λ κ²μ μλ―Έν©λλ€. μμμ extends ν€μλλ₯Ό μ¬μ©νμ¬ κ΅¬νν©λλ€. μμμ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ , λ€νμ±μ ꡬννλ λ°μ νμ©λ©λλ€.
- ꡬν: μΈν°νμ΄μ€λ₯Ό μ μνκ³ ν΄λΉ μΈν°νμ΄μ€λ₯Ό ν΄λμ€κ° ꡬννλ κ²μ μλ―Έν©λλ€. μΈν°νμ΄μ€λ ν΄λμ€κ° κ°μ ΈμΌ ν λ©μλμ λͺ μΈλ₯Ό μ μνλ©°, ν΄λμ€λ μΈν°νμ΄μ€μ μ μλ λͺ¨λ λ©μλλ₯Ό ꡬνν΄μΌ ν©λλ€. ꡬνμ ν΄λμ€μ νΉμ λμμ 보μ₯νκ³ , λ€μ€ μμμ μ§μνμ§ μλ μΈμ΄μμ λ€μ€ ꡬνμ κ°λ₯νκ² ν©λλ€.
μ‘°μΈμ μ’ λ₯μ μ€λͺ - Outer Joinκ³Ό Inner Join μ€λͺ νκ³ μ¬μ©λλ μλ₯Ό λ€μ΄λ³΄μΈμ
- Outer Join : μ‘°μΈ μ‘°κ±΄μ λ§μ§ μλ νλ κ²°κ³Όμ ν¬ν¨μν€λ κ²
- ex) μΌμͺ½ ν μ΄λΈμ μ£Όλ¬Έ μ 보λ₯Ό λ΄κ³ μκ³ μ€λ₯Έμͺ½ ν μ΄λΈμ λ°°μ‘ μ 보λ₯Ό λ΄κ³ μλ€λ©΄, μΌμͺ½ ν μ΄λΈμ λͺ¨λ μ£Όλ¬Έκ³Ό μΌμΉνλ λ°°μ‘ μ 보λ₯Ό κ°μ Έμ΅λλ€.
- Inner Join : μ‘°μΈ μ‘°κ±΄μ λ§λ νλ§ κ²°κ³Όμ ν¬ν¨μν€λ κ²
- ex) μ£Όλ¬Έ ν μ΄λΈκ³Ό μν ν μ΄λΈμ Inner Joinνμ¬ μ£Όλ¬Έν μνμ μ 보λ₯Ό κ°μ Έμ¬ μ μμ΅λλ€.
μλ°λ 무μμΈκ° - μλ°μ ꡬλμ리 (μ»΄νμΌ μμ κ°μ ?) - JVMμ νΉμ§
- μλ° (Java): μλ°λ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° μΈμ΄λ‘, 1995λ Sun Microsystems(νμ¬ Oracle)μμ κ°λ°ν μΈμ΄μ λλ€. μλ°λ μ΄μ체μ μ λ 립μ μ΄λ©°, νλ«νΌ λ 립μ±μ κ°μ§κ³ μμ΅λλ€. μλ°λ κ°μ λ¨Έμ μΈ JVM(Java Virtual Machine) μμμ μ€νλλ©°, κ°λ°λ μ ν리μΌμ΄μ μ λ€μν νλ«νΌμμ λμν μ μμ΅λλ€.
- μλ°μ ꡬλμ리: μλ° μμ€ μ½λ(.java νμΌ)λ₯Ό μ»΄νμΌλ¬(javac)λ‘ μ»΄νμΌνλ©΄ λ°μ΄νΈ μ½λ(.class νμΌ)κ° μμ±λ©λλ€. μ΄ν JVMμ λ°μ΄νΈ μ½λλ₯Ό ν΄μνμ¬ ν΄λΉ νλ«νΌμ λ§λ κΈ°κ³μ΄λ‘ λ³ννμ¬ μ€νν©λλ€. μ΄λ¬ν ꡬλ μλ¦¬λ‘ μΈν΄ μλ° μ ν리μΌμ΄μ μ νλ«νΌμ μ’ μλμ§ μκ³ λ€μν νκ²½μμ μ€νλ μ μμ΅λλ€.
- JVMμ νΉμ§: JVMμ μλ° μ ν리μΌμ΄μ
μ μ€ννκΈ° μν κ°μ λ¨Έμ μ
λλ€. JVMμ μ£Όμ νΉμ§μ λ€μκ³Ό κ°μ΅λλ€
- νλ«νΌ λ 립μ±: JVM μμμ μ€νλκΈ° λλ¬Έμ μ΄μ체μ λ νλμ¨μ΄μ μ’ μλμ§ μκ³ λ€μν νλ«νΌμμ λμν μ μμ΅λλ€.
- λ©λͺ¨λ¦¬ κ΄λ¦¬: JVMμ κ°λΉμ§ 컬λ μ (Garbage Collection)μ ν΅ν΄ λ©λͺ¨λ¦¬λ₯Ό μλμΌλ‘ κ΄λ¦¬ν©λλ€. κ°λ°μκ° λͺ μμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ±°λ ν΄μ ν νμκ° μμ΅λλ€.
- 보μ κ΄λ¦¬: JVMμ μ ν리μΌμ΄μ μ 보μμ κ΄λ¦¬ν©λλ€.
κΈ°λ³Έν λ³μμ μ°Έμ‘°ν λ³μκ° λκ°μλκ°?
- κΈ°λ³Έν λ³μλ μ€μ κ°μ μ μ₯νκ³ , μ°Έμ‘°ν λ³μλ κ°μ²΄μ μ£Όμλ₯Ό μ μ₯ν©λλ€.
staticμ λν΄ μ€λͺ ν΄λ΄λΌ
- staticμ ν΄λμ€ μμ€μ λ³μ λλ λ©μλλ‘, μΈμ€ν΄μ€ μμ± μμ΄ λ°λ‘ μ¬μ©ν μ μμ΅λλ€.
- μ μ λ³μλ ν΄λμ€ λ³μ(static variables)λ‘ λΆλ¦¬λ©°, μΈμ€ν΄μ€ μμ±κ³Ό κ΄κ³μμ΄ μ κ·Όν μ μκ³ κ³΅μ λ©λλ€. μ μ λ©μλλ ν΄λμ€ μμ€μμ νΈμΆν μ μλ λ©μλλ‘, μΈμ€ν΄μ€ μμ± μμ΄ μ§μ ν΄λμ€ μ΄λ¦μ ν΅ν΄ νΈμΆν μ μμ΅λλ€. μ μ λ©€λ²λ μ£Όλ‘ κ³΅ν΅μ μΈ λ°μ΄ν°λ λμμ νννλ λ° μ¬μ©λλ©°, μ νΈλ¦¬ν° ν΄λμ€λ μμ μ μμ μμ£Ό νμ©λ©λλ€.
μ΅λͺ ν΄λμ€μ μ΅λͺ κ°μ²΄λ₯Ό μλκ°?
- μ΅λͺ ν΄λμ€: μ΅λͺ ν΄λμ€λ μ΄λ¦μ΄ μλ ν΄λμ€λ‘, μΌνμ±μΌλ‘ μ¬μ©λλ ν΄λμ€λ₯Ό κ°λ¨νκ² κ΅¬νν λ μ£Όλ‘ μ¬μ©λ©λλ€. μ΅λͺ ν΄λμ€λ ν΄λμ€ μ μμ λμμ μΈμ€ν΄μ€λ₯Ό μμ±νλ©°, μ£Όλ‘ μΈν°νμ΄μ€λ μΆμ ν΄λμ€λ₯Ό ꡬνν ꡬν체λ₯Ό μμ±ν λ νμ©λ©λλ€.
- μ΅λͺ κ°μ²΄: μ΅λͺ κ°μ²΄λ μ΄λ¦μ΄ μλ κ°μ²΄λ‘, μ΅λͺ ν΄λμ€λ‘ μμ±λ κ°μ²΄λ₯Ό μλ―Έν©λλ€. μ΅λͺ κ°μ²΄λ μ£Όλ‘ λ©μλμ μΈμλ‘ μ λ¬λκ±°λ λ©μλ λ΄μμ μμ±λμ΄ μ¬μ©λ©λλ€. μ΅λͺ κ°μ²΄λ ν΄λΉ νμ μ μΈν°νμ΄μ€λ μΆμ ν΄λμ€λ₯Ό ꡬνν κ°μ²΄μ λλ€.
μ°λ λλ μΈμ μ°κ³ μ°λ λκ° λ¬΄μμΈκ° ? νλ‘μΈμμ μ°λ λμ μ°¨μ΄
- μ°λ λλ λμμ μ€νλλ μμ μ λ¨μμ΄λ©°, νλ‘μΈμλ μ°λ λλ₯Ό μ€ννλ μ€ν λ¨μμ λλ€.
- μ°λ λ μ¬μ© μκΈ°: μ°λ λλ₯Ό μ¬μ©νλ κ°μ₯ μΌλ°μ μΈ κ²½μ°λ λμμ±μ΄ νμν μν©μ λλ€. μ¦, μ¬λ¬ μμ μ λμμ μνν΄μΌ νκ±°λ, ν μμ μ΄ μκ°μ΄ μ€λ 걸릴 κ²½μ°μ μ°λ λλ₯Ό μ¬μ©νμ¬ μμ μ λΆν νκ³ λμμ μ€νν μ μμ΅λλ€. μλ₯Ό λ€μ΄, GUI μ ν리μΌμ΄μ μμλ UI μλ΅μ±μ μ μ§νκΈ° μν΄ μ°λ λλ₯Ό μ¬μ©νμ¬ λ³λμ μμ μ μ²λ¦¬νλ κ²μ΄ μΌλ°μ μ λλ€.
- νλ‘μΈμμ μ°λ λμ μ°¨μ΄: νλ‘μΈμλ μ»΄ν¨ν°μμ μ€ν μ€μΈ νλ‘κ·Έλ¨μ μ²λ¦¬νλ λ° μ¬μ©λλ νλμ¨μ΄μ λλ€. μ°λ λλ νλ‘μΈμμμ μ€νλλ μ€ν λ¨μλ‘, μ¬λ¬ μ°λ λκ° νλμ νλ‘μΈμμμ λμμ μ€νλ μ μμ΅λλ€. μ°λ λλ νλ‘μΈμμ μμμ 곡μ νλ©°, κ°κ° λ 립μ μΈ μ€ν νλ¦μ κ°μ§κ³ μμ΅λλ€.
μ λ€λ¦μ΄λ 무μμΈκ°?
- μ λ€λ¦μ λ€μν νμ μ κ°μ²΄λ₯Ό λ€λ£¨λ λ©μλλ ν΄λμ€μ νμ μ μ μνμ¬ νμ μ μμ μ±μ μ 곡νλ κΈ°λ₯μ λλ€.
- μ λ€λ¦μ ν΄λμ€λ λ©μλλ₯Ό μ μΈν λ νμ λ§€κ°λ³μλ₯Ό μ¬μ©νμ¬ μΌλ°νλ νμ μ μ²λ¦¬ν μ μλλ‘ ν©λλ€.
// μ λ€λ¦μ μ¬μ©νμ§ μμ κ²½μ°
List list = new ArrayList();
list.add("Hello");
String str = (String) list.get(0);
// μ λ€λ¦μ μ¬μ©ν κ²½μ°
List<String> list = new ArrayList<>();
list.add("Hello");
String str = list.get(0);
httpνλ‘ν μ½μ λν΄μ μλκ°?
- HTTP νλ‘ν μ½μ μΉ μμμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ ν΅μ μ μν κ·μ½μ
λλ€.
- μνλ₯Ό μ μ§νμ§ μλ νλ‘ν μ½: HTTPλ μνλ₯Ό μ μ§νμ§ μλ νλ‘ν μ½λ‘, κ°κ°μ μμ²μ λ 립μ μΌλ‘ μ²λ¦¬λ©λλ€.
- κΈ°λ³Έμ μΌλ‘ νλ¬Έ(Plain Text)μΌλ‘ ν΅μ : HTTPλ κΈ°λ³Έμ μΌλ‘ νλ¬ΈμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘νλ―λ‘, 보μμ΄ νμν κ²½μ° HTTPSμ κ°μ 보μ νλ‘ν μ½μ μ¬μ©ν΄μΌ ν©λλ€.
- μμ²-μλ΅ λ°©μ: ν΄λΌμ΄μΈνΈκ° μλ²λ‘ μμ²μ 보λ΄λ©΄, μλ²λ μμ²μ λν μλ΅μ λ°νν©λλ€.
- 무μν(Stateless): κ°κ°μ μμ²μ λ 립μ μ΄λ©°, μ΄μ μμ²μ λν μ 보λ₯Ό μλ²κ° μ μ§νμ§ μμ΅λλ€.
μ€νλ§(Spring)μ΄ λ¬΄μμΈκ°?
μ€νλ§μ μλ° κΈ°λ°μ μ€ν μμ€ νλ μμν¬λ‘, μ ν리μΌμ΄μ κ°λ°μ μν ν μ€ν μ루μ μ μ 곡ν©λλ€.
μ€νλ§μ μμ‘΄μ± μ£Όμ (Dependency Injection), μ μ΄ μμ (Inversion of Control), κ΄μ μ§ν₯ νλ‘κ·Έλλ°(Aspect-Oriented Programming) λ±μ κ°λ μ κΈ°λ°μΌλ‘ νλ€. μ€νλ§μ κ²½λ 컨ν μ΄λλ‘μ κ°μ²΄μ μλͺ μ£ΌκΈ°μ μμ‘΄ κ΄κ³λ₯Ό κ΄λ¦¬νλ©°,
λ€μν λͺ¨λμ μ 곡νμ¬ κ°λ° ν¨μ¨μ±μ λμ΄κ³ μ μ§ λ³΄μλ₯Ό μ©μ΄νκ² ν©λλ€.
μΈμ κ³Ό μΏ ν€μ μ°¨μ΄ ?
- μΈμ (Session): μΈμ μ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μνλ₯Ό μ μ§νκΈ° μν λ©μ»€λμ¦μ λλ€. μΈμ μ ν΄λΌμ΄μΈνΈμ κ³ μ ν μλ³μλ₯Ό λΆμ¬νκ³ , μλ²μμλ ν΄λΉ μλ³μλ₯Ό μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈμ μνλ₯Ό μ μ§ν©λλ€. μΈμ μ μλ² μΈ‘μμ λ°μ΄ν°λ₯Ό μ μ₯νλ―λ‘ λΉκ΅μ μμ ν λ°©λ²μ λλ€. μΈμ μ μΌμ μκ° λμ μ μ§λλ©°, λΈλΌμ°μ κ° μ’ λ£λκ±°λ μΈμ λ§λ£ μκ°μ΄ μ§λλ©΄ μ’ λ£λ©λλ€.
- μΏ ν€ (Cookie): μΏ ν€λ ν΄λΌμ΄μΈνΈ μΈ‘μ μ μ₯λλ μμ λ°μ΄ν° μ‘°κ°μ λλ€. μΏ ν€λ μλ²μμ ν΄λΌμ΄μΈνΈλ‘ μ μ‘λμ΄ ν΄λΌμ΄μΈνΈμ μ μ₯λκ³ , ν΄λΌμ΄μΈνΈκ° λμΌν μλ²μ μ¬μμ²μ ν λλ§λ€ μλ²λ‘ μ μ‘λ©λλ€. μΏ ν€λ ν΄λΌμ΄μΈνΈ μΈ‘μμ κ΄λ¦¬λλ―λ‘ μλμ μΌλ‘ 보μμ μ·¨μ½ν μ μμ΅λλ€. μΏ ν€λ λΈλΌμ°μ λ₯Ό μ’ λ£ν΄λ μ μ§λ μ μμΌλ©°, μ€μ λ μ ν¨ κΈ°κ°μ λ°λΌ μ μ§λκ±°λ μμ λ©λλ€.
- μ°¨μ΄μ : μΈμ μ μλ² μΈ‘μμ κ΄λ¦¬λκ³ λ°μ΄ν°κ° μλ²μ μ μ₯λλ©°, μΏ ν€λ ν΄λΌμ΄μΈνΈ μΈ‘μμ κ΄λ¦¬λκ³ λ°μ΄ν°κ° ν΄λΌμ΄μΈνΈμ μ μ₯λ©λλ€. μΈμ μ 보μμ μλμ μΌλ‘ μμ νκ³ , μΏ ν€λ 보μμ μ·¨μ½ν μ μμ΅λλ€. μΈμ μ μΌμ μκ° λμ μ μ§λμ§λ§, μΏ ν€λ μ€μ λ μ ν¨ κΈ°κ°μ λ°λΌ μ μ§λκ±°λ μμ λ©λλ€.
μλ°μ€ν¬λ¦½νΈκ° 무μμΈκ°? μ€ν¬λ¦½νΈμΈμ΄κ° λμ€μλκ°?
- μλ°μ€ν¬λ¦½νΈ (JavaScript): μλ°μ€ν¬λ¦½νΈλ μΉ νμ΄μ§μ λμ μΈ κΈ°λ₯μ ꡬννκΈ° μν΄ μ¬μ©λλ μ€ν¬λ¦½νΈ μΈμ΄μ λλ€. μλ°μ€ν¬λ¦½νΈλ HTML λ¬Έμ μμμ μ¬μ©λλ©°, μΉ λΈλΌμ°μ μμ μ€νλ©λλ€. μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ©΄ μ¬μ©μμ μνΈ μμ©μ λ°λΌ μΉ νμ΄μ§μ λ΄μ©μ΄ λ³κ²½λκ±°λ λμ μΈ ν¨κ³Όλ₯Ό μ μ©ν μ μμ΅λλ€.
- μ€ν¬λ¦½νΈ μΈμ΄: μ€ν¬λ¦½νΈ μΈμ΄λ μ»΄νμΌ κ³Όμ μμ΄ μΈν°ν리ν°μ μν΄ λ°λ‘ μ€νλλ μΈμ΄μ λλ€. μλ°μ€ν¬λ¦½νΈλ ν΄λΌμ΄μΈνΈ μΈ‘μμ μ€νλλ©°, μΉ λΈλΌμ°μ μ λ΄μ₯λ μλ°μ€ν¬λ¦½νΈ μΈν°ν리ν°κ° μ½λλ₯Ό μ€νν©λλ€.
μ μ΄μΏΌλ¦¬κ° 무μμΈκ°? μ μ΄μΏΌλ¦¬μ νΉμ§, μ μ΄μΏΌλ¦¬ μ λ ν°
- μ μ΄μΏΌλ¦¬ (jQuery): μ μ΄μΏΌλ¦¬λ μλ°μ€ν¬λ¦½νΈ κΈ°λ°μ μ€ν μμ€ λΌμ΄λΈλ¬λ¦¬λ‘, HTML λ¬Έμλ₯Ό μ‘°μνκ³ μ΄λ²€νΈλ₯Ό μ²λ¦¬νκΈ° μν κ°νΈν APIλ₯Ό μ 곡ν©λλ€. μ μ΄μΏΌλ¦¬λ ν¬λ‘μ€ λΈλΌμ°μ§ μ΄μλ₯Ό ν΄κ²°νκ³ , DOM μ‘°μ, μ΄λ²€νΈ μ²λ¦¬, μ λλ©μ΄μ ν¨κ³Ό λ±μ μ½κ² ꡬνν μ μλλ‘ λμμ€λλ€. μ μ΄μΏΌλ¦¬λ μ§§κ³ κ°κ²°ν μ½λλ‘ μμ±ν μ μμ΄ κ°λ° ν¨μ¨μ±μ λμ΄κ³ μ μ§ λ³΄μλ₯Ό μ©μ΄νκ² ν©λλ€.
- μ μ΄μΏΌλ¦¬ μ λ ν°: μ μ΄μΏΌλ¦¬λ CSS μ νμλ₯Ό μ¬μ©νμ¬ HTML μμλ₯Ό μ ννκ³ μ‘°μνλ κΈ°λ₯μ μ 곡ν©λλ€. μ μ΄μΏΌλ¦¬ μ λ ν°λ₯Ό μ¬μ©νλ©΄ νΉμ HTML μμλ₯Ό μ½κ² μ ννμ¬ μ€νμΌ λ³κ²½, μ΄λ²€νΈ μ²λ¦¬ λ±μ μνν μ μμ΅λλ€. μ μ΄μΏΌλ¦¬ μ λ ν°λ CSS μ νμλ₯Ό νμ©νμ¬ μμλ₯Ό μ ννλ λ°©μμ μ±ννκ³ μμ΅λλ€.
Ajaxκ° λμ§ μ€λͺ ν΄λ΄λΌ
Ajax (Asynchronous JavaScript and XML): Ajaxλ μΉ νμ΄μ§μμ λΉλκΈ°μ μΌλ‘ μλ²μ λ°μ΄ν°λ₯Ό κ΅ννκΈ° μν΄ μ¬μ©λλ κΈ°μ μ λλ€. Ajaxλ₯Ό μ¬μ©νλ©΄ μΉ νμ΄μ§μ μΌλΆλΆμ μ λ°μ΄νΈνκ±°λ μΆκ° μμ² μμ΄ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ μ μμ΅λλ€. Ajaxλ μλ°μ€ν¬λ¦½νΈ, XML λλ JSON, HTML λ±μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ΅ννλ©°, νμ΄μ§ μ 체λ₯Ό μλ‘ κ³ μΉμ§ μκ³ λ λμ μΈ κΈ°λ₯μ ꡬνν μ μμ΅λλ€.
JSPκ° λμ€μλκ°?
JSP (JavaServer Pages): JSPλ μλ² μΈ‘μμ λμ μΈ μΉ νμ΄μ§λ₯Ό μμ±νκΈ° μν΄ μ¬μ©λλ μΉ νλ‘κ·Έλλ° μΈμ΄μ λλ€. JSPλ HTML λ΄μ μλ° μ½λλ₯Ό μ½μ νμ¬ μ¬μ©νλ©°, JSP νμΌμ μλΈλ¦ΏμΌλ‘ λ³νλμ΄ μ€νλ©λλ€. JSPλ₯Ό μ¬μ©νλ©΄ HTMLκ³Ό μλ° μ½λλ₯Ό κ²°ν©νμ¬ λμ μΈ μΉ νμ΄μ§λ₯Ό μμ±ν μ μμ΅λλ€. JSPλ μλ² μΈ‘μμ λ°μ΄ν°λ² μ΄μ€ μ°λ, λ‘μ§ μ²λ¦¬, λμ μΈ μ½ν μΈ μμ± λ±μ μννλ λ° μ¬μ©λ©λλ€.
νμκ΄λ¦¬ ν΄λ΄€λμ§? SVN, GIT?
- SVN (Subversion): SVNμ μ€μ μ§μ€μ νμ κ΄λ¦¬ μμ€ν μΌλ‘, νμΌμ λ²μ μ μ€μ μλ²μ μ μ₯νκ³ κ΄λ¦¬ν©λλ€. λ€μμ κ°λ°μκ° λμμ μμ ν μ μμΌλ©°, λ³κ²½ μ¬νμ μΆ©λ μμ΄ ν΅ν©ν μ μλλ‘ λμμ€λλ€.
- Git: Gitμ λΆμ°ν νμ κ΄λ¦¬ μμ€ν μΌλ‘, κ° κ°λ°μκ° λ‘컬 μ μ₯μλ₯Ό κ°μ§κ³ λ 립μ μΌλ‘ μμ ν μ μμ΅λλ€. Gitμ λ³κ²½ μ¬νμ μ»€λ° λ¨μλ‘ κ΄λ¦¬νλ©°, λΈλμΉ, λ³ν©, λ¦¬λ² μ΄μ€ λ±μ κΈ°λ₯μ μ 곡νμ¬ ν¨κ³Όμ μΈ νμ μ μ§μν©λλ€. Gitμ λλΆλΆμ μ€ν μμ€ νλ‘μ νΈμμ λ리 μ¬μ©λκ³ μμ΅λλ€.
μΆμν΄λμ€μ μΈν°νμ΄μ€ μ°¨μ΄
- μΆμ ν΄λμ€ (Abstract Class): μΆμ ν΄λμ€λ νλ μ΄μμ μΆμ λ©μλλ₯Ό ν¬ν¨ν ν΄λμ€μ λλ€. μΆμ ν΄λμ€λ μΈμ€ν΄μ€λ₯Ό μ§μ μμ±ν μ μμΌλ©°, μλΈ ν΄λμ€μμ μΆμ λ©μλλ₯Ό ꡬνν΄μΌ ν©λλ€. μΆμ ν΄λμ€λ 곡ν΅λ κΈ°λ₯μ κ°μ§ ν΄λμ€μ κ³΅ν΅ λΆλΆμ ꡬνν μ μμΌλ©°, μμμ ν΅ν΄ νμ₯λμ΄ μ¬μ©λ©λλ€.
- μΈν°νμ΄μ€ (Interface): μΈν°νμ΄μ€λ μΆμ λ©μλμ μμλ§μ κ°μ§ ν΄λμ€μ μ μ¬ν κ°λ μ λλ€. μΈν°νμ΄μ€λ ν΄λμ€μμ ꡬνν΄μΌ νλ λ©μλμ λͺ μΈλ₯Ό μ μνλ μν μ ν©λλ€. ν΄λμ€λ μ¬λ¬ κ°μ μΈν°νμ΄μ€λ₯Ό ꡬνν μ μμΌλ©°, μΈν°νμ΄μ€λ λ€μ€ μμμ΄ κ°λ₯ν©λλ€.
- μ°¨μ΄μ :
- ꡬ쑰: μΆμ ν΄λμ€λ ν΄λμ€μ΄λ―λ‘ λ©€λ² λ³μλ₯Ό κ°μ§ μ μκ³ , λ©μλμ μΌλ° ꡬνμ ν¬ν¨ν μ μμ΅λλ€. μΈν°νμ΄μ€λ μμμ μΆμ λ©μλλ§μ κ°μ§ μ μμ΅λλ€.
- μΈμ€ν΄μ€ν: μΆμ ν΄λμ€λ μΈμ€ν΄μ€λ₯Ό μ§μ μμ±ν μ μμ΅λλ€. μΈν°νμ΄μ€λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ΅λλ€.
- μμ: μΆμ ν΄λμ€λ λ¨μΌ μμλ§μ μ§μνλ©°, μΈν°νμ΄μ€λ λ€μ€ μμμ΄ κ°λ₯ν©λλ€.
- λͺ©μ : μΆμ ν΄λμ€λ ν΄λμ€μ μΌλ°νλ₯Ό μν΄ μ¬μ©λλ©°, μΈν°νμ΄μ€λ ν΄λμ€ κ°μ μνΈ μμ©μ μν λͺ μΈλ₯Ό μ 곡νκΈ° μν΄ μ¬μ©λ©λλ€.
ArrayListμ Vector μ°¨μ΄
- 곡ν΅μ : ArrayListμ Vectorλ λμ λ°°μ΄ μλ£ κ΅¬μ‘°λ₯Ό μ 곡νλ ν΄λμ€λ‘, μμλ€μ μΈλ±μ€λ‘ μ κ·Όν μ μμ΅λλ€.
- μ°¨μ΄μ : Vectorλ μ€λ λ μμ (thread-safe)νκ² λμνκΈ° μν΄ λͺ¨λ λ©μλμ λν λκΈ°νλ₯Ό μ 곡ν©λλ€. ArrayListλ λκΈ°νλ₯Ό μ 곡νμ§ μμ΅λλ€. λ°λΌμ Vectorλ λ©ν°μ€λ λ νκ²½μμ μμ νκ² μ¬μ©ν μ μμ§λ§, ArrayListλ λκΈ°ν μ²λ¦¬λ₯Ό μν΄ λ³λμ μμ μ΄ νμν©λλ€.
- μ±λ₯: λκΈ°ν μ²λ¦¬λ‘ μΈν΄ Vectorλ ArrayListλ³΄λ€ λ릴 μ μμ΅λλ€. λκΈ°νκ° νμνμ§ μμ κ²½μ°μλ ArrayListκ° μ±λ₯λ©΄μμ μ°μν©λλ€.
- μ©λ μ¦κ°: Vectorλ μμμ κ°μκ° μ©λμ μ΄κ³Όν κ²½μ° μλμΌλ‘ μ©λμ μ¦κ°μν΅λλ€. μ©λμ΄ λΆμ‘±ν κ²½μ° μλμΌλ‘ λ ν° λ°°μ΄μ μμ±νμ¬ μμλ₯Ό 볡μ¬ν©λλ€. ArrayListλ μ©λμ΄ λΆμ‘±ν κ²½μ° μΌμ λμ© μ©λμ μ¦κ°μν€λ λ°©μμΌλ‘ μ²λ¦¬ν©λλ€.
- μ°λ λ μμ μ±: Vectorλ λκΈ°νλ₯Ό μ 곡νκΈ° λλ¬Έμ λ©ν°μ€λ λ νκ²½μμ μμ νκ² μ¬μ©ν μ μμ΅λλ€. ArrayListλ λκΈ°νλ₯Ό μ 곡νμ§ μμΌλ―λ‘ λ©ν°μ€λ λ νκ²½μμ μμ νμ§ μμ μ μμ΅λλ€.
JUnit μ¬μ©λ²
- JUnitμ μλ°μμ λ¨μ ν
μ€νΈλ₯Ό μμ±νκΈ° μν νλ μμν¬μ
λλ€. JUnitμ μ¬μ©νλ©΄ ν
μ€νΈ μΌμ΄μ€λ₯Ό μμ±νκ³ μ€ννμ¬ μ½λμ μ νμ±μ κ²μ¦ν μ μμ΅λλ€. JUnitμ μ¬μ©νκΈ° μν΄μλ λ€μκ³Ό κ°μ λ¨κ³λ₯Ό λ°λ¦
λλ€:
- JUnit μμ‘΄μ± μΆκ°: νλ‘μ νΈμ μμ‘΄μ± κ΄λ¦¬ νμΌ(μ: Mavenμ pom.xml)μ JUnit μμ‘΄μ±μ μΆκ°ν©λλ€.
- ν μ€νΈ ν΄λμ€ μμ±: JUnitμΌλ‘ ν μ€νΈν μ½λμ ν μ€νΈ μΌμ΄μ€λ₯Ό μμ±ν©λλ€. ν μ€νΈ λ©μλλ @Test μ΄λ Έν μ΄μ μΌλ‘ νμνκ³ , κ° ν μ€νΈ μΌμ΄μ€λ§λ€ μμλλ κ²°κ³Όλ₯Ό κ²μ¦νλ μ½λλ₯Ό μμ±ν©λλ€.
- ν μ€νΈ μ€ν: JUnitμ μ€ννμ¬ ν μ€νΈλ₯Ό μνν©λλ€. μ£Όλ‘ IDEμ ν μ€νΈ μ€ν κΈ°λ₯μ μ¬μ©νκ±°λ, λΉλ λꡬμ ν μ€νΈ μ€ν λͺ λ Ήμ μ¬μ©ν©λλ€.
- κ²°κ³Ό νμΈ: ν μ€νΈ κ²°κ³Όλ₯Ό νμΈνμ¬ ν μ€νΈκ° μ±κ³΅νλμ§ λλ μ€ν¨νλμ§ νμΈν©λλ€. JUnitμ κ° ν μ€νΈμ μ±κ³΅, μ€ν¨, μλ¬ λ±μ λν κ²°κ³Όλ₯Ό μ 곡ν©λλ€.
μλΈν΄λμ€μμ μ€λ²λΌμ΄λ©μ λͺ»νκ² νλ €λ©΄ μ΄λ‘ν΄μΌνλκ°?
- μλΈν΄λμ€μμ μ€λ²λΌμ΄λ©μ κΈμ§νλ €λ©΄ λ©μλμ final ν€μλλ₯Ό μ¬μ©νλ©΄ λ©λλ€. final ν€μλλ₯Ό λ©μλ μμ λΆμ΄λ©΄ ν΄λΉ λ©μλλ μ€λ²λΌμ΄λ©μ΄ λΆκ°λ₯νκ² λ©λλ€. λ°λΌμ μλΈν΄λμ€μμλ ν΄λΉ λ©μλλ₯Ό μμλ°μ μ€λ²λΌμ΄λ©ν μ μμ΅λλ€. final ν€μλλ₯Ό μ¬μ©νμ¬ ν΄λμ€λ₯Ό μ μΈνλ©΄ ν΄λΉ ν΄λμ€λ₯Ό μμλ°μ μ μμ΅λλ€.
λ°μν μΉ μ¬μ©ν΄ λ΄€λκ°? BootStrapμ κ°λ°κ²½νμ΄ μλμ§?
- λ°μν μΉ(RWD, Responsive Web Design)μ λ€μν λλ°μ΄μ€μ νλ©΄ ν¬κΈ°μ λμνμ¬ μΉ νμ΄μ§λ₯Ό μλμΌλ‘ μ΅μ ννλ κΈ°μ μ λλ€. λ°μν μΉμ ꡬννκΈ° μν΄μλ HTML, CSS, JavaScript λ±μ μ¬μ©νμ¬ λ―Έλμ΄ μΏΌλ¦¬(Media Query)μ μ μ°ν λ μ΄μμ(Flexible Layout) λ±μ μ μ©ν©λλ€.
- Bootstrapμ HTML, CSS, JavaScript κΈ°λ°μ νλ‘ νΈμλ κ°λ° νλ μμν¬λ‘, λ°μν μΉμ ꡬμΆνλ λ° λμμ μ£Όλ λ§μ κΈ°λ₯κ³Ό μ»΄ν¬λνΈλ₯Ό μ 곡ν©λλ€. Bootstrapμ μ¬μ©νλ©΄ 그리λ μμ€ν , νμ νμμ€, λ²νΌ, μμ, λͺ¨λ¬ μ°½ λ± λ€μν UI μ»΄ν¬λνΈλ₯Ό μ½κ² ꡬνν μ μμ΅λλ€. Bootstrapμ λ°μν μΉ λμμΈμ νΉν μ μ©νλ©°, μΉ νμ΄μ§μ λͺ¨μκ³Ό λ μ΄μμμ λ€μν λλ°μ΄μ€μ λ§κ² μ‘°μ ν μ μμ΅λλ€.
Stringμ ν΄λμ€μΈκ°?
- Stringμ μλ°μμ λ¬Έμμ΄μ μ²λ¦¬νκΈ° μν ν΄λμ€μ λλ€.
- String ν΄λμ€λ μλ°μμ κΈ°λ³Έμ μΌλ‘ μ 곡λλ ν΄λμ€μ΄λ©°, java.lang ν¨ν€μ§μ ν¬ν¨λμ΄ μμ΅λλ€.
- String ν΄λμ€λ λ¬Έμμ΄μ νννκ³ λ€λ£¨κΈ° μν λ€μν λ©μλμ κΈ°λ₯μ μ 곡ν©λλ€.
- λ°λΌμ, Stringμ μλ°μμ ν΄λμ€λ‘ μ¬μ©λλ©° λ¬Έμμ΄μ νννκΈ° μν κ°μ²΄μ λλ€.