πΎ [CS] λΌμ΄λΈλ¬λ¦¬(Library)μ νλ μμν¬(Framework)μ μ°¨μ΄μ .
λΌμ΄λΈλ¬λ¦¬(Library) μ νλ μμν¬(Framework) λ μννΈμ¨μ΄ κ°λ°μμ μ½λλ₯Ό μ¬μ¬μ©νκΈ° μν λꡬμ΄μ§λ§, λ μ¬μ΄μλ μ€μν μ°¨μ΄μ μ΄ μμ΅λλ€.
μ΄ μ°¨μ΄μ μ μ μ΄ νλ¦κ³Ό μ¬μ© λ°©μμμ μ£Όλ‘ λνλ©λλ€.
1οΈβ£ λΌμ΄λΈλ¬λ¦¬(Library)
λΌμ΄λΈλ¬λ¦¬(Library) λ νΉμ κΈ°λ₯μ μννλ λͺ¨λ λλ ν¨μλ€μ λͺ¨μμΌλ‘, κ°λ°μκ° νμν λ μ νμ μΌλ‘ νΈμΆνμ¬ μ¬μ©νλ λꡬμ λλ€.
λΌμ΄λΈλ¬λ¦¬λ κ°λ°μκ° μμ±νλ μ½λμμ νμν λΆλΆλ§ κ°μ Έλ€ μ¬μ©ν μ μμΌλ©°, μ μ΄κΆμ κ°λ°μμκ² μμ΅λλ€.
-
μ μ΄ νλ¦
- λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν λλ κ°λ°μκ° μνλ λ°©μμΌλ‘ λΌμ΄λΈλ¬λ¦¬μ ν¨μλ₯Ό νΈμΆν©λλ€.
- μ¦, κ°λ°μκ° μ£Όλμ μΌλ‘ μ½λλ₯Ό μμ±νλ©° νμν κΈ°λ₯λ§ κ°μ Έλ€ μλλ€.
-
μ μ°μ±
- λΌμ΄λΈλ¬λ¦¬λ λ¨μν λκ΅¬λ‘ νΉμ κΈ°λ₯μ μ 곡νλ©°, κ°λ°μλ μμ λ‘κ² μ€κ³μ ꡬ쑰λ₯Ό κ²°μ ν μ μμ΅λλ€.
μμ: Javaμ Controller
λΌμ΄λΈλ¬λ¦¬
import java.util.Collections;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> list = List.of("Apple", "Banana", "Orange");
Collections.sort(list);
}
}
- μ μ½λμμ
Collections.sort()
λ λΌμ΄λΈλ¬λ¦¬ ν¨μλ‘, κ°λ°μκ° νμν λ νΈμΆνμ¬ μ λ ¬ κΈ°λ₯μ μ¬μ©ν©λλ€.
μ£Όμ νΉμ§.
- κ°λ°μκ° λΌμ΄λΈλ¬λ¦¬μ νΉμ κΈ°λ₯μ μ νν΄μ νΈμΆ.
- μ½λμ μ μ΄ νλ¦μ κ°λ°μκ° κ΄λ¦¬.
- μ μ°νκ³ μ νμ΄ μ μ.
- νΉμ κΈ°λ₯μ ꡬννλ μμ λ¨μμ μ½λ μ§ν©.
2οΈβ£ νλ μμν¬(Framework)
νλ μμν¬λ μ ν리μΌμ΄μ μ ꡬ쑰μ μ μ΄ νλ¦μ 미리 μ ν΄ λμ μΌμ’ μ λΌλ λλ νμ λλ€.
κ°λ°μλ νλ μμν¬μμ μ 곡νλ ꡬ쑰μ λ§μΆ° μ½λλ₯Ό μμ±νλ©°, μ μ΄ νλ¦μ νλ μμν¬μ μν΄ κ΄λ¦¬λ©λλ€.
μ¦, νλ μμν¬κ° κ°λ°μμ μ½λλ₯Ό νΈμΆνλ λ°©μμΌλ‘ λμν©λλ€.
-
μ μ΄ μμ (Inversion of Control, IoC)
- νλ μμν¬λ μ½λμ νλ¦μ μ€μ€λ‘ μ μ΄νλ©°, κ°λ°μκ° μμ±ν μ½λλ νμν μμ μ νλ μμν¬μ μν΄ νΈμΆλ©λλ€.
- μ΄λ₯Ό μ μ΄μ μμ μ΄λΌκ³ λΆλ¦ λλ€.
- νλ μμν¬λ μ½λμ νλ¦μ μ€μ€λ‘ μ μ΄νλ©°, κ°λ°μκ° μμ±ν μ½λλ νμν μμ μ νλ μμν¬μ μν΄ νΈμΆλ©λλ€.
-
μ€κ³ ν¨ν΄ μ 곡
- νλ μμν¬λ μ ν리μΌμ΄μ
κ°λ°μ μν ꡬ쑰μ μ€κ³ ν¨ν΄μ μ 곡ν©λλ€.
- κ°λ°μλ κ·Έ ꡬ쑰μ λ§μΆ° μ½λλ₯Ό μμ±νλ©΄ λ©λλ€.
- νλ μμν¬λ μ ν리μΌμ΄μ
κ°λ°μ μν ꡬ쑰μ μ€κ³ ν¨ν΄μ μ 곡ν©λλ€.
μμ: Spring νλ μμν¬.
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
- μ μ½λλ Spring νλ μμν¬λ₯Ό μ¬μ©ν μμμ
λλ€.
- μ¬κΈ°μ
@RestController
μ@GetMapping
κ°μ μλν μ΄μ μ ν΅ν΄ HTTP μμ²μ΄ νλ μμν¬μ μν΄ μλμΌλ‘ μ²λ¦¬λλ©°, μ μ΄ νλ¦μ Spring νλ μμν¬κ° λ΄λΉν©λλ€.
- μ¬κΈ°μ
μ£Όμ νΉμ§.
- νλ μμν¬κ° μ μ΄ νλ¦μ κ΄λ¦¬νκ³ , κ°λ°μμ μ½λλ₯Ό νΈμΆ.
- μΌμ ν ꡬ쑰μ μ€κ³ ν¨ν΄μ μ 곡νμ¬ ν΅μΌλ λ°©μμΌλ‘ κ°λ°μ μ§ν.
- μ μ΄ μμ (Inversion of Control, IoC)μ ν΅ν΄ νλ μμν¬κ° μ ν리μΌμ΄μ μ μ€νμ μ£Όλ.
- λ ν° κ΅¬μ‘°μ νμ μ 곡νλ©°, λΌμ΄λΈλ¬λ¦¬λ³΄λ€ λ κ°λ ₯ν μ μ½κ³Ό κ·μΉμ΄ μ μ©λ¨.
3οΈβ£ λΌμ΄λΈλ¬λ¦¬μ νλ μμν¬μ μ°¨μ΄μ μμ½.
κ΅¬λΆ | λΌμ΄λΈλ¬λ¦¬(Library) | νλ μμν¬(Framework) |
---|---|---|
μ μ΄ νλ¦ | κ°λ°μκ° μ½λμ νλ¦μ μ μ΄ | νλ μμν¬κ° μ½λμ νλ¦μ μ μ΄(μ μ΄ μμ , IoC) |
μ¬μ© λ°©μ | νμμ λ°λΌ μ νμ μΌλ‘ νΈμΆ | νλ μμν¬κ° μ 곡νλ ꡬ쑰μ λ°λΌ κ°λ° |
μ μ°μ± | κ°λ°μκ° μ€κ³μ ꡬ쑰λ₯Ό μμ λ‘κ² μ ν | νλ μμν¬κ° μ€κ³μ ꡬ쑰λ₯Ό 미리 μ μ |
μ± μ λΆλ°° | νΉμ κΈ°λ₯λ§ μ 곡 | μ 체 μ ν리μΌμ΄μ ꡬ쑰λ₯Ό μ μ |
κ·λͺ¨ | μμ λͺ¨λμ΄λ ν¨μλ€μ μ§ν© | μ ν리μΌμ΄μ κ°λ°μ μν ν° νμ μ 곡 |
μμ | Javaμ Collection
|
Spring |
4οΈβ£ μ μ΄μ μμ (Inversion of Control, IoC).
μ μ΄μ μμ μ νλ μμν¬μ μ€μν νΉμ§ μ€ νλμ
λλ€.
μ μ΄μ μμ μ΄λ, νλ‘κ·Έλ¨μ νλ¦μ κ°λ°μκ° μ§μ μ μ΄νλ κ²μ΄ μλλΌ, νλ μμν¬κ° μ μ΄λ₯Ό λ΄λΉνλ€λ κ°λ
μ
λλ€.
κ°λ°μλ νλ μμν¬κ° μμ²ν λ μ€νλ μ½λλ₯Ό μμ±ν λΏ, μ 체μ μΈ νλ‘κ·Έλ¨μ νλ¦μ νλ μμν¬κ° λ΄λΉν©λλ€.
μ μ΄ μμ μ μμ
-
λΌμ΄λΈλ¬λ¦¬(Library)
- κ°λ°μκ° μ§μ λΌμ΄λΈλ¬λ¦¬μ ν¨μλ₯Ό νΈμΆνκ³ , κ·Έ κ²°κ³Όλ₯Ό μ²λ¦¬ν©λλ€.
-
νλ μμν¬(Framework)
- νλ μμν¬κ° μ ν리μΌμ΄μ
μ νλ¦μ μ μ΄νκ³ , νμν μμ μ κ°λ°μκ° μμ±ν μ½λλ₯Ό νΈμΆν©λλ€.
- μλ₯Ό λ€μ΄, μ¬μ©μμ μμ²μ΄ λ€μ΄μ€λ©΄ νλ μμν¬κ° ν΄λΉ μμ²μ μ μ ν 컨νΈλ‘€λ¬μ μ λ¬ν©λλ€.
- νλ μμν¬κ° μ ν리μΌμ΄μ
μ νλ¦μ μ μ΄νκ³ , νμν μμ μ κ°λ°μκ° μμ±ν μ½λλ₯Ό νΈμΆν©λλ€.
5οΈβ£ κ²°λ‘ .
-
λΌμ΄λΈλ¬λ¦¬λ νΉμ κΈ°λ₯μ μ 곡νλ λꡬλ‘μ, κ°λ°μκ° νμν λ νΈμΆνμ¬ μ¬μ©νλ λ°λ©΄, νλ μμν¬λ μ ν리μΌμ΄μ μ ꡬ쑰μ μ μ΄ νλ¦μ κ΄λ¦¬νλ©°, κ°λ°μκ° μμ±ν μ½λλ₯Ό νλ μμν¬κ° μ μ ν μμ μ νΈμΆν©λλ€.
-
λΌμ΄λΈλ¬λ¦¬λλ λ μ μ°νκ³ , νΉμ κΈ°λ₯μ μ§μ€λ λκ΅¬μΈ λ°λ©΄, νλ μμν¬λ μ μ΄μ μμ μ ν΅ν΄ μ ν리μΌμ΄μ μ λ°μ ꡬ쑰λ₯Ό μ μνλ©°, λ ν° νμμ μ ν리μΌμ΄μ μ κ΄λ¦¬νκ³ κ°λ°νλ λ° λμμ μ€λλ€.