λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸŒ»μŠ€ν„°λ”” 관리/πŸ™‰μ„œλ²„ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈ μ±Œλ¦°μ§€

[ μ„œλ²„ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈ μ±Œλ¦°μ§€ ] 23.04.08 -week6

by MuGeon Kim 2023. 4. 9.
λ°˜μ‘ν˜•

 

1. 이번 μ£Ό μŠ€ν„°λ””μ—μ„œ ν•™μŠ΅ν•œ λ‚΄μš©

  • μ½”λ“œλ¦¬λ·°(ERD, API λͺ…μ„Έμ„œ, 도메인 μ½”λ“œ μ„€λͺ…)
  • JPA 정리
  • 각 νŒ€ ν† μ˜μ‹œκ°„
  • 과제

 

2. λ°œν‘œ

  • 이번 주에 ν”„λ‘œμ νŠΈμ— λŒ€ν•œ ν”Όλ“œλ°±μ„ λ°›λŠ” μ‹œκ°„μ„ κ°€μ§€κ²Œ λ˜μ—ˆλ‹€. μ €λ²ˆμ£Όμ— λ§Œλ“  μ½”λ“œμ™€ ERD에 λŒ€ν•œ ν”Όλ“œλ°±μ„ λ°›μ•˜λ‹€. 아직 ν”„λ‘œμ νŠΈ μ²˜μŒμ΄μ—¬μ„œ ERD ν”Όλ“œλ°±κ³Ό μ½”λ“œμ— λŒ€ν•œ 뢀뢄은 λ”°λ‘œ ν”Όλ“œλ°±μ„ λ‚΄κ°€ μž‘μ„±ν•œ λΆ€λΆ„μ—μ„œλŠ” μ—†μ—ˆκ³  쿠폰에 λŒ€ν•œ λΆ€λΆ„μ—μ„œ 섀계 λΆ€λΆ„μ—μ„œ 도움을 얻을 수 μžˆμ—ˆλ‹€.

  • QueryDSL둜 νŽ˜μ΄μ§•μ„ ν•˜λŠ” 과제λ₯Ό λ°›μ•„ κ΅¬ν˜„μ„ ν•˜μ˜€κ³  κ·Έ μ½”λ“œλ₯Ό Countλ₯Ό μ΅œμ ν™” ν•˜λŠ” μ½”λ“œλ‘œ μž‘μ„±μ„ ν•˜μ˜€λ‹€.

 

3. JPA λ°œν‘œ

JPAλ₯Ό 처음 ν•™μŠ΅ν•˜λŠ” 뢄듀이 λ§Žμ•„ JPA에 λŒ€ν•΄ μŠ€ν„°λ”” μž₯이 λ°œν‘œν•˜λŠ” μ‹œκ°„μ„ κ°€μ§€κ²Œ λ˜μ—ˆλ‹€. 기본적으둜 JPAμ—μ„œ 제일 μ€‘μš”ν•œ 뢀뢄을 μ„€λͺ…을 ν•˜μ˜€κ³  μ •λ¦¬ν•œ λ‚΄μš©μ„ ν¬μŠ€νŒ… ν•˜μ˜€λ‹€.

 

JPA μ˜μ†μ„± μ»¨ν…μŠ€νŠΈ

EntityManager Factory EMFλŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›μœΌλ©΄ Entity Managerλ₯Ό 생성을 ν•΄μ£ΌλŠ” 역할을 ν•œλ‹€. 이후 EM이 컀λ„₯μ…˜ν’€μ„ μ΄μš©ν•˜μ—¬ DB와 데이터λ₯Ό μ£Όκ³  λ°›λŠ”λ‹€. μ˜μ†μ„± μ»¨ν…μŠ€νŠΈ( μ—”ν‹°ν‹°λ₯Ό 영ꡬ μ €μž₯ν•˜

pos04167.tistory.com

 

 

[ Data JPA ] N+1 문제 & ν•΄κ²°

또 λ‹€μ‹œ N+1을 μ •λ¦¬ν•˜λŠ” 이유 기쑴에 N+1에 λŒ€ν•΄μ„œ μ •λ¦¬ν•œ μžλ£Œκ°€ μžˆμ§€λ§Œ λ˜λ‹€μ‹œ μ •λ¦¬ν•˜λŠ” μ΄μœ λŠ” Data JPAλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ λ‹€λ₯Έ ν•΄κ²° 방식이 있고 직접 μ½”λ“œλ₯Ό κ΅¬ν˜„μ„ ν•˜μ˜€μ„ λ•Œ μ™„λ²½ν•˜κ²Œ ν•™μŠ΅μ΄ μ•ˆ

pos04167.tistory.com

 

 

[ QueryDSL ] DTO쑰회 Projections , @QueryProjection

QeuryDSL을 ν•™μŠ΅ν•˜λ©΄μ„œ DTO에 λŒ€ν•œ μ‘°νšŒμ— λŒ€ν•΄ ν•™μŠ΅μ„ ν•˜μ˜€λ‹€. μ΄λ•Œ 2가지 방법이 μžˆλŠ”λ° 각 λ°©μ‹μ˜ 차이에 λŒ€ν•΄ μ •λ¦¬ν•˜λŠ” μ‹œκ°„μ΄ 있으면 μ’‹λ‹€κ³  μƒκ°ν•˜μ—¬ μ •λ¦¬ν•˜κ²Œ λ˜μ—ˆλ‹€. 1. Projections을 μ΄μš©ν•œ DT

pos04167.tistory.com

 

4. 과제

- νŽ˜μ΄μ§• ResponseDto둜 page, size, totalCount, prev, next κ°’ λ°˜ν™˜μΌ€ 함,
  * prev, nextλŠ” νŽ˜μ΄μ§• λ‚΄ "<<" ">>" λ₯Ό 말함.
- Security, JWT 쑰사
- JWT둜 νšŒμ›κ°€μž…, 둜그인 처리
- ADMIN, USER Role κΆŒν•œμ— 따라, api κΈ°λŠ₯ μ ‘κ·Όμ œν•œ
- chellange❗Oauth2 인증 처리 μΆ”κ°€ν•˜κΈ°

 

 

GitHub - Side-Challenge-Study-Time/StudyTime_BE: μŠ€ν„°λ”” νƒ€μž„ ν”„λ‘œμ νŠΈ(Back_End)

μŠ€ν„°λ”” νƒ€μž„ ν”„λ‘œμ νŠΈ(Back_End). Contribute to Side-Challenge-Study-Time/StudyTime_BE development by creating an account on GitHub.

github.com

 

λ°˜μ‘ν˜•