μŠ€ν”„λ§

1. 도메인 ERD λ‹€μ΄μ–΄κ·Έλž¨ 그리기 2. μžλ°” 클래슀둜 도메인 ν‘œν˜„ ERD πŸ€” Entity Relationship Diagram 개체-관계 λͺ¨λΈ ν…Œμ΄λΈ”κ°„μ˜ 관계λ₯Ό μ„€λͺ…ν•΄μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨μ΄λΌκ³  λ³Ό 수 있으며, 이λ₯Ό 톡해 ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©λ˜λŠ” DB의 ꡬ쑰λ₯Ό ν•œ λˆˆμ— νŒŒμ•… κ°€λŠ₯ 즉, APIλ₯Ό 효율적으둜 뽑아내기 μœ„ν•œ λͺ¨λΈ ꡬ쑰도라고 μƒκ°ν•˜λ©΄ 됨
API μ„€κ³„λŠ” ꡬ글 λ¬Έμ„œλ₯Ό μ΄μš©ν•΄ μž‘μ„± 뷰와 API에 μ–΄λ–€ λ°©μ‹μœΌλ‘œ url 이름을 지정할 것인지, method 방식은 μ–΄λ–»κ²Œ ν•  것인지, ν•΄λ‹Ή url의 μ„€λͺ…κ³Ό ν•¨κ»˜ μž‘μ„± URL은 λ‹€λ₯Έ ν˜‘μ—… κ°œλ°œμžκ°€ 봀을 λ•Œλ„ μ§κ΄€μ μœΌλ‘œ μ–΄λ–€ ν•­λͺ©μ— κ΄€λ ¨λœ URL인지 νŒŒμ•…ν•  수 있게 μž‘μ„±ν•˜λŠ” 것이 μ€‘μš” πŸ™‹‍♀️ ν•©μ˜λ₯Ό 톡해 지정해야함 μ—¬κΈ°μ„œλŠ” κ²½λ‘œμ™€ HTTP λ©”μ†Œλ“œλ§Œ μž‘μ„±ν•œ 것인데, μ—¬κΈ°μ„œ API의 spec을 μž‘μ„± API에 μ •ν™•νžˆ μ–΄λ–€ 데이터듀을 μ£Όκ³ λ°›λŠ”μ§€λ₯Ό 생각해볼 수 있음
유즈 μΌ€μ΄μŠ€ πŸ€” μœ μ¦ˆμΌ€μ΄μŠ€λŠ” μ‹œμŠ€ν…œμ˜ λ™μž‘μ„ μ‚¬μš©μžμ˜ μž…μž₯μ—μ„œ ν‘œν˜„ν•œ μ‹œλ‚˜λ¦¬μ˜€μ΄λ©°, μ‹œμŠ€ν…œμ— κ΄€λ ¨ν•œ μš”κ΅¬μ‚¬ν•­μ„ μ•Œμ•„λ‚΄λŠ” κ³Όμ • μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€ 쀑 κ°œλ°œμ„ μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄μ˜ κΈ°λŠ₯을 개랡적으둜 μ„€λͺ…이 κ°€λŠ₯ν•œ 방법이기도 함 μœ μ¦ˆμΌ€μ΄μŠ€λŠ” μ‹œμŠ€ν…œμ„ λΆ„μ„ν•˜λŠ” μ‚¬λžŒκ³Ό μ‚¬μš©ν•  μ‚¬λžŒμ΄ ν•¨κ»˜ μ‹œμŠ€ν…œμ˜ μ‚¬μš© 방법을 κ²°μ •ν•˜λŠ”λ°μ— 도움을 쀌 μœ μ¦ˆμΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점은 μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜λŠ” μ‚¬λžŒλ³΄λ‹€λŠ” μ‚¬μš©μžμ˜ μž…μž₯μ—μ„œ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ 쉽고 κ°„λ‹¨ν•˜κ²Œ μž‘μ„±λ˜μ–΄μ•Ό 함 https://www.diagrams.net μ‚¬μš©
ν•„μš”ν•œ μ„ΈλΆ€ 기술 λͺ©λ‘μ„ λ½‘λŠ” 방법 πŸ€” 미리 μ‚¬μš© κΈ°μˆ μ„ λͺ¨λ‘ νŒŒμ•…ν•œ ν›„ μ²˜μŒλΆ€ν„° ν”„λ‘œμ νŠΈμ— λ„£λŠ” 방법 κΈ°λŠ₯ ν•˜λ‚˜λ₯Ό λ§Œλ“€ λ•Œλ§ˆλ‹€ ν•„μš”ν•œ κΈ°μˆ μ„ μΆ”κ°€ν•΄ λ‚˜κ°€λŠ” 방법 → μš°λ¦¬κ°€ μ‚¬μš©ν•  방법 μ˜ˆμƒν•˜λŠ” μ„ΈλΆ€ κΈ°λŠ₯λ“€ κ²Œμ‹œνŒ, λŒ“κΈ€ λ„λ©”μΈμ˜ 섀계 도메인 데이터λ₯Ό DB에 μ €μž₯ JSON API 둜 데이터 제곡 μ‚¬μš©μžμ—κ²Œ μ›Ή ν™”λ©΄μœΌλ‘œ μ„œλΉ„μŠ€ 제곡 + λ””μžμΈ μš”μ†Œ κ²Œμ‹œνŒ νŽ˜μ΄μ§€ κ²Œμ‹œκΈ€ νŽ˜μ΄μ§€ 둜그인 νŽ˜μ΄μ§€ μ μ ˆν•œ μž…μΆœλ ₯ λ°μ΄ν„°μ˜ 검증 인증 κΈ°λŠ₯ 생산성에 도움이 λ˜λŠ” 도ꡬ듀 선택 μ„ΈλΆ€ κΈ°λŠ₯μœΌλ‘œλΆ€ν„° 선택을 μ˜ˆμƒν•˜λŠ” κΈ°μˆ λ“€ Java + Spring Boot κΈ°λ°˜μ—μ„œ 선택 μ›Ή μ„œλΉ„μŠ€ 제곡 → Spring Web λ„λ©”μΈμ˜ 섀계와 DB μ €μž₯ → Spring Data JPA, H2 Database, MySQL Driver JSON A..
개발 ν™˜κ²½ 개발 도ꡬ : Intellij IDEA Ultimate 2022.2.4 μ†ŒμŠ€μ½”λ“œ 관리 : Git Git ν˜ΈμŠ€νŒ… : GitHub Git GUI : GitKraken Clien Ver.9.0.0 ν”„λ‘œμ νŠΈ λͺ©ν‘œ λˆ„κ΅¬λ‚˜ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ μ†Œμž¬λ‘œ λͺ…ν™•ν•œ κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­μ„ λ§Œλ“ λ‹€ μš”κ΅¬μ‚¬ν•­μ„ κ΅¬ν˜„ν•˜λŠ”λ° 도움이 λ˜λŠ” 각쒅 λ¬Έμ„œ μž‘μ—…μ„ κ²½ν—˜ν•œλ‹€ μžλ°” + μŠ€ν”„λ§ λΆ€νŠΈλ‘œ ν”„λ‘œμ νŠΈ μš”κ΅¬μ‚¬ν•­μ„ μ‹€μ œλ‘œ κ΅¬ν˜„ν•˜λŠ” 기술적인 방법을 μ΅νžŒλ‹€ μ΅œμ‹  λ²„μ „μ˜ κΈ°μˆ μ„ μ‚¬μš©ν•΄ λ³΄λ©΄μ„œ 기술 동ν–₯을 νŒŒμ•…ν•˜κ³ , μƒˆλ‘œμš΄ λ¬Έμ œμ™€ ν•΄κ²° 방법을 ν™•μΈν•œλ‹€ 기획과 λ¬Έμ„œ μž‘μ„±λΆ€ν„° 개발, ν˜•μƒκ΄€λ¦¬, ν…ŒμŠ€νŠΈ, λ°°ν¬κΉŒμ§€ 개발 ν”„λ‘œμ„ΈμŠ€ μ „λ°˜μ„ κ²½ν—˜ν•œλ‹€ λ¬Έμ„œ μž‘μ—… - μ›ν• ν•œ ν˜‘μ—…μ˜ μ΄ˆμ„ λ¬Έμ„œλ₯Ό 톡해 κ°œλ°œν•  ν”„λ‘œμ νŠΈμ˜ λͺ©μ , λ‚΄μš©, 진행상황을 곡유 μ™œ ν•˜λŠ”μ§€κ°€ 특히 ..
μƒν’ˆ 등둝 ν›„, insert into item 쿼리문이 싀행됨 μ—¬κΈ°μ„œ item_idλŠ” 1! 이 μƒν’ˆ μ•„μ΄λ””λ‘œ μˆ˜μ • νŽ˜μ΄μ§€μ— μ§„μž… μƒν’ˆ 쑰회 μƒν’ˆμ„ μˆ˜μ •ν•˜λ €λ©΄ ν•΄λ‹Ή μƒν’ˆμ„ λΆˆλŸ¬μ™€μ•Ό 함 λ”°λΌμ„œ, ItemService에 μƒν’ˆ 쑰회 λ©”μ„œλ“œ μΆ”κ°€ (쑰회 κΈ°λŠ₯이라 읽기 μ „μš©) item 엔티티와 image 정보 μ—”ν‹°ν‹°λ₯Ό itemFormDto 객체둜 λ³€ν™˜ ν›„ λ°˜ν™˜ν•˜λŠ” 쑰회 κΈ°λŠ₯ @Transactional(readOnly = true) public ItemFormDto getItemDtl(Long itemId) { List itemImageList = itemImageRepository.findByItemIdOrderByIdAsc(itemId); List itemImageDtos = new ArrayList(); for..
Auditing μ—”ν‹°ν‹°μ˜ 곡톡 멀버 λ³€μˆ˜λ“€μ„ 좔상 클래슀둜 λ§Œλ“€κ³ , ν•΄λ‹Ή 좔상 클래슀λ₯Ό 상속받아 엔티티에 곡톡적인 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λ„λ‘ ν•˜λ©° μ—”ν‹°ν‹°μ˜ 생성과 μˆ˜μ •μ„ κ°μ‹œν•˜λŠ” 기법 AuditorAware μΈν„°νŽ˜μ΄μŠ€ ν˜„μž¬ λ‘œκ·ΈμΈν•œ μ‚¬μš©μžμ˜ 정보λ₯Ό λ“±λ‘μžμ™€ μˆ˜μ •μžλ‘œ μ§€μ •ν•˜κΈ° μœ„ν•΄μ„œ AuditorAware μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ 클래슀 생성 public class AuditorAwareImpl implements AuditorAware { @Override public Optional getCurrentAuditor() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String userId = ""; if..
μ¦‰μ‹œ λ‘œλ”© → μ—”ν‹°ν‹°λ₯Ό μ‘°νšŒν•  λ•Œ μ—°κ΄€λœ μ—”ν‹°ν‹°λ₯Ό ν•¨κ»˜ 쑰회 μ¦‰μ‹œ λ‘œλ”© ν…ŒμŠ€νŠΈ @SpringBootTest @TestPropertySource(locations = "classpath:application-test.properties") @Transactional class OrderTest { /* μ½”λ“œ μƒλž΅ */ @Autowired OrderItemRepository orderItemRepository; @Test void μ¦‰μ‹œ_λ‘œλ”©_ν…ŒμŠ€νŠΈ() { Order order = this.createOrder(); Long orderItemId = order.getOrderItems().get(0).getId(); entityManager.flush(); entityManager.clear(); OrderI..
KIMHYEYUN
'μŠ€ν”„λ§' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (2 Page)