> [!Notice]
> μ΄ λ¬Έμλ λ€λ₯Έ λ¬Έμμμ μ©μ΄μ μ μλ λ»μ λ§ν¬νκΈ° μν΄ λ§λ€μ΄μ§ λ¬Έμμ
λλ€. νμν λλ§λ€ μ©μ΄λ₯Ό μΆκ°νκΈ° λλ¬Έμ μ©μ΄μ μμλ μλ―Έκ° μμ΅λλ€.
### `Persistence`
μμμ±. νλ‘κ·Έλ¨μ΄ μ’
λ£λμ΄λ λ°μ΄ν°κ° μ¬λΌμ§μ§ μλ νΉμ±μ λ»νλ€. νμΌμμ€ν
μ΄λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ λ°μ΄ν°κ° μ΄λ° μμμ±μ κ°μ§λ€. μ£Όλ‘ λ°μ΄ν°λ² μ΄μ€ λ°μ΄ν°μ κ΄λ ¨νμ¬ μμμ±μ΄λΌλ λ¨μ΄λ₯Ό μ°κΈ° λλ¬Έμ, `Persistence` λΌλ λ¨μ΄λ₯Ό 'μ ν리μΌμ΄μ
κ³Ό λ°μ΄ν°λ² μ΄μ€ μ¬μ΄μ ν΅μ 'μ λ»νλ μ©λλ‘ μ°κΈ°λ νλ€. μλ₯Ό λ€μ΄ `javax.persistence` ν¨ν€μ§λ μΉ μλ²μ `Persistence Layer` κ° κ·Έλ λ€
### `SQL Mapper`
SQL λ¬Έμ κ°μ²΄μ λ§€ννμ¬ λ°μ΄ν°λ² μ΄μ€ λ°μ΄ν°μ μ κ·Όνλ λ°©λ²μΌλ‘ MyBatisλ JdbcTemplateμμ μ¬μ©λλ€.
### `ORM`
Object-Relational Mapping(κ°μ²΄-κ΄κ³ λ§€ν). κ°μ²΄λ₯Ό ꡬνν λ°μ΄ν°(ν΄λμ€)μ RDBMSμ λ°μ΄ν°(ν
μ΄λΈ)λ₯Ό μλ‘ λ³ννλ νλ‘κ·Έλλ° κΈ°μ μ΄λ€.[^1] κ°μ²΄ κ°μ κ΄κ³λ₯Ό λ°νμΌλ‘ μλμΌλ‘ SQLλ¬Έμ μμ±νκ³ , λ°μ΄ν°λ² μ΄μ€ μλ²μ μλ΅ κ²°κ³Όλ‘ μλμΌλ‘ κ°μ²΄λ₯Ό μμ±νκΈ° λλ¬Έμ SQLλ¬Έ μμ΄ κ°μ μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ‘°μν μ μλ€.
### `ORM` vs `SQL Mapper`
`SQL Mapper`λ μμ±ν SQL λ¬Έμ₯μ μ€ννμ¬ λ°μ΄ν°λ² μ΄μ€ λ°μ΄ν°λ₯Ό λ€λ£¨λ λ°©λ²μΈλ° λ°ν΄, `ORM`μ κ°μ²΄μ (κ΄κ³ν) λ°μ΄ν°λ² μ΄μ€ μ λ°μ΄ν°μ κ°μ²΄λ₯Ό λκΈ°ννλ λ°©λ²μ μ¬μ©νλ€.
### `Repository`
μ¬λ¬ μ ν리μΌμ΄μ
μ΄ κ°μ λ°μ΄ν°λ‘ μμ
ν μ μλλ‘ νλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλ―Ένλ€. λ¨μν λ°μ΄ν° λΏλ§ μλλΌ μ΄λ₯Ό κ΄λ¦¬νλ νλ‘κ·Έλ¨κ³Ό μ μ μΈν°νμ΄μ€κ° κ°μ΄ μ‘΄μ¬νλ€. [^2]
### `OSI`
![[OSI 1.png]]
λ€νΈμν¬ ν΅μ μ΄ μΌμ΄λλ κ³Όμ μ 7κ°μ κ³μΈ΅μΌλ‘ λΆλ¦¬ν κ². ν΅μ κ³Όμ μμ μκΈ΄ λ¬Έμ κ° λ¬Όλ¦¬μ μΈ μ΄μ (물리 κ³μΈ΅, λ°μ΄ν° λ§ν¬ κ³μΈ΅)μΈμ§, μΈν°λ·μ λ¬Έμ μΈμ§(λ€νΈμν¬ κ³μΈ΅, IP), μ μ‘μ λ¬Έμ μΈμ§(μ μ‘ κ³μΈ΅), μ ν리μΌμ΄μ
μ λ¬Έμ μΈμ§(μΈμ
, νν, μμ© κ³μΈ΅) ꡬλΆνκ³ λ¬Έμ μμΈμ ν΄κ²°νκΈ° μν΄ μκ²Όλ€. [^3]
### `MVC ν¨ν΄`
μ ν리μΌμ΄μ
λμμΈ ν¨ν΄ μ€ νλ. λ°μ΄ν°μ μ μμ λΉμ¦λμ€ λ‘μ§μ λ€λ£¨λ Model, λ°μ΄ν°λ₯Ό 보μ¬μ£Όλ λ°©μκ³Ό μ¬μ©μμ μ
λ ₯ λ°©μμ λ€λ£¨λ View, view μ λͺ¨λΈ μ€κ°μμ λμ μ μ΄νλ Controllerλ‘ λλμ΄ μ ν리μΌμ΄μ
μ ꡬννλ λ°©λ²μ΄λ€.[^4] μ²μμλ μλ° μλΈλ κ³Ό JSP, JDBCλ₯Ό μ¬μ©νλ μΌμ’
μ λ
Ένμ°λ‘ μλ €μ‘μΌλ μ΄ν λμμΈ ν¨ν΄μΌλ‘ μ리 μ‘μλ€.
### `EJB`
![[EJB.png]]
Enterprise Java Beans. κΈ°μ
νκ²½μ μμ€ν
μ ꡬννκΈ° μν μλ² μΈ‘ μ»΄ν¬λνΈ λͺ¨λΈ. EJBHome κ³Ό EJBObject, EntityBeanμ μμνμ¬ μ¬μ©ν΄μΌ νλ€λ λ²κ±°λ‘μκ³Ό OOP μμΉ μ€ μμ‘΄κ΄κ³ μμ μμΉμ μ§ν€κΈ° μ΄λ ΅λ€λ μ λλ¬Έμ νμ¬λ μ μ°μ΄μ§ μλλ€.
### `POJO`
Plain Old Java Object, μ€λλ λ°©μμ κ°λ¨ν μλ° κ°μ²΄. νΉμ κΈ°μ μ μ’
μλμ§ μλ μμ μλ° κ°μ²΄λ‘, μ€νλ§μ΄ μ΄ POJO κΈ°λ°μ κ²½λ νλ μμν¬μ΄λ€. κ³Όκ±° λ§μ΄ μ°μλ [[IT μ©μ΄ μ 리 π#EJB|EJB]] νλ μμν¬μμλ `javax.ejb `ν¨ν€μ§μμ μΈν°νμ΄μ€λ₯Ό ꡬννκ±°λ νΉμ ν΄λμ€λ₯Ό μμλ°μ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λν΄μΌ νλ€. μ΄λ‘ μΈν΄ κ°λ°μμ μ½λμ νλ μμν¬μ μ½λκ° λ§€μ° κ°νκ² κ²°ν©λμ΄, κ°λ°μμ μ½λκ° νλ μμν¬μ μμ‘΄νλ λ¬Έμ κ° μμλ€. POJOλ μ΄μ λν λμμΌλ‘ μ μλ κ°μ²΄ μ€κ³ λ°©μμΌλ‘ νΉμ νλ μμν¬μ μκ΄ μμ΄ μμν μλ° ν΄λμ€μ²λΌ ꡬνλλ€.
### `AJAX`
![[Pasted image 20231107105849.png]]
AsynchronousΒ JavaScript and XML, λΉλκΈ° μλ°μ€ν¬λ¦½νΈμ XML. νμν λ°μ΄ν°λ§ μλ²μ μμ²νκ³ μλ΅ λ°μ λ°μ΄ν°λ‘ HTMLμ΄λ CSSλ₯Ό μμ νλ μΉ κ°λ° κΈ°λ².
### `Connection pool`
μ νμ μΈ λ°μ΄ν°λ² μ΄μ€ μ°κ²° λ°©μμ λλΌμ΄λ²λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°λλ Connection κ°μ²΄λ₯Ό μμ±νλ λ°©μμ΄λ€. μ΄λ° λ°©μμ μκ·λͺ¨ μ ν리μΌμ΄μ
μμλ λ¬Έμ κ° μμ§λ§, μ ν리μΌμ΄μ
κ·λͺ¨κ° μ»€μ§ μλ‘ λλΌμ΄λ²λ₯Ό λ‘λνκ³ Connection κ°μ²΄λ₯Ό μμ±νλλ° λΆνμν μκ°μ΄ μ°μ΄κ² λλ€. μ΄λ₯Ό ν΄κ²°νλ λ°©λ² μ€ νλκ° `Connection pool`μ΄λ€. `Connection pool`λ μΉ μ»¨ν
μ΄λκ° μ€νλ λ Connection κ°μ²΄λ₯Ό 미리 poolμ λ§μ΄ μμ±ν΄λκ³ μ΄λ₯Ό μ¬μ©ν μΌμ΄ μκΈ°λ©΄ μ κΉ λμ¬νλ λ°©μμΌλ‘ λ°μ΄ν°λ² μ΄μ€ μλ²μ λΆνλ₯Ό μ€μ΄κ³ μ€ν μκ°μ κ°μ νλ€. λμ poolμ ν¬κΈ°κ° μ»€μ§ μλ‘ λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ¬μ©νκΈ° λλ¬Έμ μ μ ν μ¬μ΄μ¦ μ‘°μ μ΄ νμνλ€.
### `SPA`
Single Page Applicaition, λ¨μΌ νμ΄μ§ μ ν리μΌμ΄μ
. M(Mutil)PAμ λ°λλλ λ°©μμ μ ν리μΌμ΄μ
μ€κ³ λ°©μμ΄λ€.
### `Mounting`
μ»΄ν¬λνΈ ν¨μκ° μ€νλκ³ μμ±λ Element λ€μ΄ [[3. Virtual DOM|Virtual DOM]]μ μ½μ
λκ³ μ€μ DOMμ μ
λ°μ΄νΈλκΈ° μ κΉμ§μ κ³Όμ .
### `API`
Appilcation programming interface, 볡μμ λ
립λ νλ‘κ·Έλ¨λ€μ΄ μλ‘ μν΅ν μ μλ μΈν°νμ΄μ€.
### `μ€μΌμΌμμ`
μμ€ν
μ μμ μ±μ λ리기 μν΄ λ‘λ λ°Έλ°μμ μ°κ²°λ WAS μΈμ€ν΄μ€ μ«μλ₯Ό λλ € μ 체 μ²λ¦¬λμ λ리λ κ².
### `λ¨μΌ μ₯μ μ§μ `
μμ€ν
κ΅¬μ± μμ μ€μμ, λμνμ§ μμΌλ©΄ μ 체 μμ€ν
μ΄ μ€λ¨λλ μμ. μ΄λ° λ¬Έμ λ₯Ό μΌμΌν¬ μ μλ μ€μν μ»΄ν¬λνΈλ 볡μλ‘ λ§λ€μ΄ λ¬Έμ λ°μμ λ€λ₯Έ μ»΄ν¬λνΈκ° λμ ν μ μλλ‘ μ€κ³ν΄μΌ νλ€. μ΄λ κ² λ¨μΌ μ₯μ μ§μ λ¬Έμ λ₯Ό μΌμΌν€μ§ μλ μμ€ν
μ κ²°ν¨ νμ© μμ€ν
μ΄λΌκ³ νλ€.
### `μ§λ ¬ν`
λ€νΈμν¬ ν΅μ μΌλ‘ λ°μ΄ν°λ₯Ό μ λ¬νκΈ° μν΄ λ°μ΄ν°λ₯Ό μμ λ°μ΄νΈ ννλ‘ λ³ννλ κ². λλ μ’ λ μΆμνλ κ°λ
μΌλ‘ μ΄λ€ μμ€ν
μμ μ°λ λ°μ΄ν°λ₯Ό ν΅μ μ μ ν©ν λ°μ΄ν° ννλ‘ λ³ννλ κ².
### `μλ° λΉ`
μλ° λΉμ λ€μ 쑰건μ λ§μ‘±νλ μλ° ν΄λμ€μ΄λ€.
1. κΈ°λ³Έ μμ±μ μ‘΄μ¬
2. getter/setter λ©μλ μ‘΄μ¬
3. `java.io.Serializable` ꡬν
## Reference
[^1]:https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping
[^2]:https://en.wikipedia.org/wiki/Content_repository
[^3]:https://shlee0882.tistory.com/110
[^4]:https://developer.mozilla.org/ko/docs/Glossary/MVC