ν‚€μ›Œλ“œ κ΄€λ ¨ μž‘μ„± - μ •ν•˜μ˜

entity
  • rdbνŒ¨λŸ¬λ‹€μž„(ν…Œμ΄λΈ”κΈ°λ°˜, 연관관계λ₯Ό fk둜 μ—°κ²°)
    • 객체지ν–₯ νŒ¨λŸ¬λ‹€μž„μ΄ λ‹€λ¦„μœΌλ‘œ 인해 객체지ν–₯적으둜
      κ°œλ°œμ„ ν•  수 μ—†μ—ˆλ˜ 문제λ₯Ό jpa같은 orm κΈ°μˆ μ„ μ‚¬μš©ν•˜λ©΄μ„œ
      μ‚¬μš©
Value object
  • ormκΈ°μˆ μ„ μ‚¬μš©ν•΄μ„œ μ„€κ³„ν• λ•Œ ν•˜λ‚˜λ‘œ μΊ‘μŠν™” ν•˜λŠ”κ²Œ 쒋은 κ°œλ…λ“€μ„
    • κ΅¬ν˜„ν•  λ•Œ μ‚¬μš©
      address클래슀λ₯Ό λ§Œλ“€μ–΄μ„œ μ£Όμ†Œ 값을 ν•„λ“œλ‘œ κ°€μ§€κ³  이λ₯Ό
      μ—”ν‹°ν‹°μ˜ ν•„λ“œλ‘œ κ°€μ§€λŠ”μ‹μœΌλ‘œ ν•˜κ±°λ‚˜ ν•˜λŠ” λ“±λ“±μœΌλ‘œ μ‚¬μš©
       
Dependency injection
  • 객체지ν–₯μ„€κ³„μ—μ„œλŠ” 객체 κ°„μ˜ ν–‰μœ„μ™€ μ±…μž„μ„ λΆ„λ¦¬ν•˜κ³  객체듀끼리
    • μ„œλ‘œ 의쑴 ν•˜λ„λ‘ μ„€κ³„ν•˜λŠ” 것이 μ€‘μš”ν•œλ° μ΄λ•Œ
      μ΄λ•Œ a -> bλ₯Ό μ‚¬μš©ν•˜λŠ” 관계라고 ν•  λ–„ aμ—μ„œ bλ₯Ό 직접 μƒμ„±ν•˜λŠ” 식
      μ‚¬μš©ν•˜λŠ” ν΄λž˜μŠ€κ°€ 직접 μ‚¬μš©ν•  클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ–΄μ„œ μ‚¬μš©ν•˜λŠ”μ‹μœΌλ‘œν•˜λ©΄
      Dip, ocpλ₯Ό μ§€ν‚€μ§€ λͺ»ν•˜κ²Œ λ˜κΈ°λ•Œλ¬Έμ— 객체지ν–₯적으둜 섀계할 수 μ—†μŒ
      κ·Έλž˜μ„œ μ™ΈλΆ€μ—μ„œ μ˜μ‘΄μ£Όμž…μ„ 받도둝 ν•΄μ„œ 객체지ν–₯ 섀계 원칙을
      μ§€ν‚€λŠ”κ²ƒ
Ioc
  • μ œμ–΄μ˜ μ—­μ „
    • λ‚΄κ°€ μ‚¬μš©ν•˜λŠ” 클래슀λ₯Ό 직접 μƒμ„±ν•˜κ³  μ„€μ •ν•˜λŠ”κ²Œ μ•„λ‹ˆλΌ
      μ™ΈλΆ€μ—μ„œ μ΄λŸ°κ²ƒλ“€μ„ μ œμ–΄ν•˜λŠ”μ‹μœΌλ‘œ μ§„ν–‰λ˜λŠ”κ²ƒ
Application context
* μŠ€ν”„λ§μ΄ μ œκ³΅ν•˜λŠ” iocμ»¨ν…Œμ΄λ„ˆ μΈν„°νŽ˜μ΄μŠ€
 
Componenet scan
μŠ€ν”„λ§μ΄ λΉˆμ„ μ „λΆ€ μ°Ύμ•„μ„œ λΉˆμ„ 생성 관리, μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— 빈으둜 등둝
 
Bean life cycle
빈의 생λͺ… μ£ΌκΈ°λ₯Ό λ‚˜νƒ€λƒ„
  • 싱글톀, μ„Έμ…˜, ν”„λ‘œν† νƒ€μž… 등등이 있음
λͺ¨μ˜κ°μ²΄? β†’ ??
κ°€λΉ„μ§€ μ»¬λ ‰μ…˜
더이상 μ°Έμ‘°λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬ μ˜μ—­ -> κ°€λΉ„μ§€
μžλ°”μ—μ„œλŠ” μ΄λŸ¬ν•œ κ°€λΉ„μ§€λ₯Ό gcκ°€ μ²˜λ¦¬ν•΄μ€Œ
μžλ°” 버전 λ§ˆλ‹€ μ•Œκ³ λ¦¬μ¦˜μ΄ λ‹€λ₯΄μ§€λ§Œ
보톡 mark, sweep 과정을 κ±°μ³μ„œ 처리됨
Mark ->. 참쑰되고 μžˆλŠ” λ©”λͺ¨λ¦¬ 곡간을 체크
Sweep -> markλ˜μ§€ μ•ŠλŠ” μ˜μ—­μ„ ν•΄μ œ
 
 

4μ£Όμ°¨ RBF

  • JDBC
    • JAVA β†’ DB μ ‘κ·Ό 기술
  • UUID
    • 거의 μ™„μ „ν•˜κ²Œ μ „μ„Έκ³„μ—μ„œ μœ μΌν•œ 값을 μ‚¬μš©ν•˜κ³  싢을 λ•Œ μ‚¬μš©
  • AOP
    • ν”„λ‘μ‹œνŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ—¬ κ°œλ°œμ—μ„œ κ³΅ν†΅μ²˜λ¦¬κ°€ ν•„μš”ν•œ 뢀뢄을 ν•˜λ‚˜λ‘œ λΉΌμ„œ μ μš©μ‹œν‚¬ 수 있음
    • @Transactional μ–΄λ…Έν…Œμ΄μ…˜λ„ μ–΄λ…Έν…Œμ΄μ…˜ 기반 AOP기술이 적용된 것
  • Transaction
    • ν•˜λ‚˜λ‘œ λ¬Άμ–΄μ„œ μ²˜λ¦¬κ°€ ν•„μš”ν•œ μž‘μ—…λ“€..
    • 논리적 λ‹¨μœ„
    • ex) 은행 μ†‘κΈˆ
  • DataSource
    • νŠΈλžœμž­μ…˜ 풀을 κ΄€λ¦¬ν•˜λŠ” 역할을 함
    • νŠΈλžœμž­μ…˜μ„ 맀번 μš”μ²­μ‹œλ§ˆλ‹€ 생성 β†’ λ§Žμ€ μš”μ²­μ΄ ν•œλ²ˆμ— λ“€μ–΄μ˜€λ©΄?
    • νŠΈλžœμž­μ…˜ 풀을 μ‚¬μš©ν•˜κ²Œ 되면 μ‚¬μš© κ°€λŠ₯ν•œ νŠΈλžœμž­μ…˜ 수λ₯Ό μ •ν• μˆ˜ 있게 λ˜μ–΄ 처리 κ°€λŠ₯ν•œ 수만큼 μš”μ²­μ„ μ²˜λ¦¬ν•  수 있음
    • 그리고 이미 생성해 놓은 νŠΈλžœμž­μ…˜μ„ λ°›μ•„μ„œ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžμ˜ μš”μ²­μ— 더 빨리 응닡 κ°€λŠ₯
    • μ΄λŸ¬ν•œ νŠΈλžœμž­μ…˜ 풀을 관리 ν•˜λŠ” 것 β†’ datasource
  • DBCP
    • Database Connection Pool
    • datasourceκ°€ κ΄€λ¦¬ν•˜λŠ” 컀λ„₯μ…˜ ν’€
    • HikariCPλŠ” JDBC 컀λ„₯μ…˜ ν’€