π Overview
Β λͺ¨λμ΄λΌ ν¨μ νλμ κΈ°λ₯μ μννλ λ¨μλΌκ³ μκ³ μλ€.
κ·Έλ°λ° 곡λΆνλ©΄ ν μλ‘ 'μ΄κ±΄ λͺ¨λμΈκ°?', 'μ΄κ±Έ μ λͺ¨λνλΌκ³ νμ§?' λ±λ± λͺ¨λμ΄λΌλ λ¨μ΄μ μλ―Έλ₯Ό νμ€ν μ΄ν΄νμ§ λͺ»νκ³ μλ μν©μ΄ λ§μ΄ λ°μνλ€.
Β λͺ¨λ λν CS λ° νλ‘κ·Έλλ°μ μμ΄μ κ΅μ₯ν λ§μ΄ λμ€λ λ¨μ΄μ΄κΈ° λλ¬Έμ, μ΄ κΈ°νμ νμ€νκ² μκ³ κ°λ κ² μ’κ² λ€λ μκ°μ΄ λ€μ΄ μ΄ ν¬μ€νΈλ₯Ό μμ±νκ² λμλ€.
π‘ λͺ¨λ(Module)
- μννΈμ¨μ΄ λλ μμ€ν
μμ νΉμ κΈ°λ₯μ΄λ μμ
μ λ
립μ μΌλ‘ μννλλ‘ μ€κ³λ λ¨μ
- μ¬μ¬μ©μ±, μ μ§λ³΄μμ±, νμ
μ μ©μ΄νκ² ν¨
- 볡μ‘ν μμ€ν
μ μμ κ΅¬μ± μμλ‘ λΆν , λ ν¨μ¨μ μΈ κ°λ°, ν
μ€νΈ λ° λλ²κΉ
μ λμ
- λ€μν λ¬Έλ§₯μμ μ¬μ©λλ©°, μ»΄ν¨ν° κ³Όν μ λ°, νλ‘κ·Έλλ° μΈμ΄, νλ μμν¬ λ° μ΄μ 체μ λ±μμ κ°κΈ° λ€λ₯΄κ² μ μλ¨
1οΈβ£ μ»΄ν¨ν° μ¬μ΄μΈμ€(CS) μμμ λͺ¨λ
- μ»΄ν¨ν° κ³Όνμμ
λͺ¨λ μ μμ€ν
μ€κ³μ κ°λ
μΌλ‘ μ¬μ©λλ©°, μμ€ν
μ κ°λ³ κΈ°λ₯μ λ¨μ
λͺ¨λν λ 볡μ‘ν μμ€ν
μ μ¬λ¬ κ°μ μμ μλΈ λͺ¨λ λ‘ λλλ κ³Όμ
- κ°
λͺ¨λμ λ
립μ μΌλ‘ κ°λ°λκ³ , μμ€ν
μ λλ¨Έμ§ λΆλΆκ³Ό μΈν°νμ΄μ€λ₯Ό ν΅ν΄ ν΅μ
π μ£Όμ νΉμ§
- λ
립μ±
- κ° λͺ¨λμ λ€λ₯Έ λͺ¨λκ³Ό λ
립μ μΌλ‘ μ€κ³λμ΄ λ³κ²½μ μν₯μ μ΅μν
- μ¬μ¬μ©μ±
- ν λ² μ€κ³λ λͺ¨λμ λ€λ₯Έ νλ‘μ νΈλ μμ€ν
μμλ μ¬μ¬μ©μ΄ κ°λ₯
- μΊ‘μν
- λ΄λΆ λμμ μ¨κΈ°κ³ μΈλΆ μΈν°νμ΄μ€λ§ λ
ΈμΆ
βμμ
- μ΄μ 체μ
- νμΌ μμ€ν
λͺ¨λ
- νμΌκ³Ό κ΄λ ¨λ κΈ°λ₯λ§ λͺ¨μ¬ μμ
- λ©λͺ¨λ¦¬ κ΄λ¦¬ λͺ¨λ
- λ©λͺ¨λ¦¬ κ΄λ¦¬μ κ΄λ ¨λ κΈ°λ₯λ§ λͺ¨μ¬ μμ
- λ€νΈμν¬ ν΅μ λͺ¨λ
- λ€νΈμν¬ ν΅μ κ³Ό κ΄λ ¨λ κΈ°λ₯λ§ λͺ¨μ¬ μμ
- μννΈμ¨μ΄ 곡ν
- μ¬μ©μ μΈμ¦ λͺ¨λ
- μ¬μ©μ μΈμ¦μ κ΄ν κΈ°λ₯λ§ λͺ¨μ¬ μμ
- λ°μ΄ν°λ² μ΄μ€ μ κ·Ό λͺ¨λ
- λ°μ΄ν°λ² μ΄μ€μ κ΄ν κΈ°λ₯λ§ λͺ¨μ¬ μμ
- λ³΄κ³ μ μμ± λͺ¨λ
- λ³΄κ³ μλ₯Ό μμ±νλ κ²μ κ΄ν κΈ°λ₯λ§ λͺ¨μ¬ μμ
2οΈβ£ μλ°μμμ λͺ¨λ
- νλ‘κ·Έλ¨μ λμ± μ ꡬ쑰ννκ³ κ΄λ¦¬νκΈ° μν΄ μ¬μ©λ¨
JPMS - Java Platform Module System μΌλ‘ λΆλ¦¬λ μλ° λͺ¨λ μμ€ν
μ μ ν리μΌμ΄μ
μ μμ‘΄μ±κ³Ό μΊ‘μνλ₯Ό κ΄λ¦¬νλ κΈ°λ₯μ μ 곡
- μ΄λ₯Ό ν΅ν΄ λκ·λͺ¨ μμ€ν
μμλ ν¨κ³Όμ μΈ μ½λ κ΄λ¦¬κ° κ°λ₯
π μ£Όμ νΉμ§
- λͺ¨λ μ μ
- λͺ¨λμ
module-info.java λ‘ μ μ
- μΊ‘μν
- λ΄λΆ ν¨ν€μ§λ μ¨κΈ°κ³ , μΈλΆμ νμν ν¨ν€μ§λ§ 곡κ°
- μμ‘΄μ± κ΄λ¦¬
- λͺ¨λ κ°μ μμ‘΄μ±μ λͺ
μμ μΌλ‘ μ μ
β μμ
1) λͺ¨λ μ μ
module com.example.myapp {
requires java.sql;
exports com.example.myapp.services;
}
requires java.sql : μ΄ λͺ¨λμ java.sql λͺ¨λμ μμ‘΄νλ€λ μλ―Έ
exports com.example.myapp.services : com.example.myapp.services ν¨ν€μ§λ§ μΈλΆ λͺ¨λμ 곡κ°νλ€λ μλ―Έ
2) λͺ¨λ κ°μ μμ‘΄μ±
com.example.myapp λͺ¨λμ λ°μ΄ν°λ² μ΄μ€μμ μ°κ²°μ μν΄ java.sql λͺ¨λμ μμ‘΄
- μΈλΆ λͺ¨λμ
com.example.myapp.services ν¨ν€μ§λ§ μ¬μ©ν μ μμ
π μ₯μ
- λΆνμν μμ‘΄μ±μ μ€μ¬μ 보μμ κ°ν
- μ ν리μΌμ΄μ
μ ν¬κΈ°λ₯Ό μ€μ¬μ λ°°ν¬ ν¨μ¨μ± μ¦κ°
3οΈβ£ μ€νλ§μμμ λͺ¨λ
- νλ μμν¬ λ΄μμ νΉμ κΈ°λ₯μ μ 곡νλ λ
립μ μΈ κ΅¬μ± μμ
- μ€νλ§ νλ μμν¬ μμ²΄κ° μ¬λ¬ λͺ¨λλ‘ λλ μ Έ μμ
βΌοΈ μ£Όμ μ€νλ§ λͺ¨λ
1) Spring core
- ν΅μ¬
DI - Dependency Injection μ IoC - Inversion of Control κΈ°λ₯μ μ 곡
2) Spring Web
- μΉ μ ν리μΌμ΄μ
κ°λ°μ μν
MVC ν¨ν΄ μ§μ
3) Spring Data
- λ°μ΄ν°λ² μ΄μ€μμ μνΈμμ©μ λ¨μν
4) Spring Security
- μΈμ¦ λ° κΆν λΆμ¬ κΈ°λ₯ μ 곡
5) Spring Boot
- μ€νλ§ μ ν리μΌμ΄μ
μ λΉ λ₯΄κ² κ°λ°ν μ μλ λꡬ μ 곡
π€ λͺ¨λ κ°μ μνΈμμ©
- μ€νλ§μμλ λͺ¨λ κ°μ μμ‘΄μ±μ λͺ
μμ μΌλ‘ μ μνμ§ μμλ DI 컨ν
μ΄λκ° μλμΌλ‘ κ΄λ¦¬
- μ΄λ‘ μΈν΄ 볡μ‘ν μ ν리μΌμ΄μ
μμλ ν¨μ¨μ μΌλ‘ μμ‘΄μ±μ μ²λ¦¬ κ°λ₯
β μμ
1) μ€νλ§ λͺ¨λ μ¬μ© μ¬λ‘
Spring Data λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€ μ κ·Ό λ μ΄μ΄ ꡬμ±
Spring Web μΌλ‘ REST API μμ±
Spring Security λ‘ μΈμ¦ λ° κΆν λΆμ¬ μΆκ°
2) μμ‘΄μ± κ΄λ¦¬ (Gradle)
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
build.gradle νμΌμ μ΄λ° λ°©μμΌλ‘ νμν λͺ¨λμ μ νμ μΌλ‘ μΆκ°νμ¬ μ¬μ©
4οΈβ£ μ΄μ 체μ μμμ λͺ¨λ
- 컀λμμ λ‘λλλ λ
립μ μΈ κ΅¬μ± μμ
리λ
μ€ μμλ λͺ¨λμ΄ λμ μΌλ‘ λ‘λ λ° μΈλ‘λ λλ 컀λ νμ₯ κΈ°λ₯μ μλ―Έ
βμμ
- νμΌ μμ€ν
λͺ¨λ (ex4, NTFS ...)
- λ€νΈμν¬ νλ‘ν μ½ λͺ¨λ (TCP/IP)
5οΈβ£ νλμ¨μ΄ μ€κ³μμμ λͺ¨λ
- νΉμ κΈ°λ₯μ μννλ λ
립μ μΈ νλμ¨μ΄ λΈλ‘
- μμ)
CPU μ€κ³μμμ ALU - Arithmetic Logic Unit
λ©λͺ¨λ¦¬ 컨νΈλ‘€λ¬
μ°Έκ³ ) OpenAI. (2024).ChatGPT(4o)[Large language model].https://chatgpt.com/