배운 점
- JPA에서 데이터 수정할 때 Repository.save() 대신 @Transactional을 써야 한다는 것을 배웠습니다. save() 동작은 기본키가 같을 경우 덮어쓰기 즉 Update 동작을 실행하는데 잘못하면 Update 기능이 아닌 Create 기능을 수행할 수 있고 @Transactional 보다 성능이 떨어지는 것을 알게 되었습니다.
어려웠던 점
- ERD를 수정하면서 Test 테이블이랑 Session 테이블에 넣을 칼럼에 대해서 고민이 많았습니다. 외부업체에서 준 요구사항에는 상위항목과 하위항목을 선택하게 되어있는데 이를 구현하기 위해 Test 테이블에서 칼럼을 두 개를 만들 것인지 새로운 테이블을 만들 것인지 고민이 되었습니다.
다음에는 이렇게 해보자
- @Transactional을 활용해서 직접 Update 기능 만들어보기
느낀점
- 스프링부트 공부할 때는 Update 기능이 따로 없으니까, save()를 쓰면 기본키가 같을 경우 Update가 된다고 배웠었습니다.
그래서 이번 회사 프로젝트에서도 아무 생각 없이 save()를 썼는데, 알고 보니 @Transactional을 사용하는 게 성능 면에서도 더 좋고, 실제로 더 권장된다고 합니다.
이번 경험을 통해, 누가 알려준 걸 그대로 믿기만 하지 말고, 직접 찾아보고 이해하는 게 정말 중요하다는 걸 다시 한번 느꼈습니다.
'실무 경험 > 배운 점 & 회고' 카테고리의 다른 글
[배운점 & 회고] 5월 02일 실무를 마치고 느낀 점 (0) | 2025.05.02 |
---|---|
[배운점 & 회고] 5월 01일 실무를 마치고 느낀 점 (0) | 2025.05.01 |
[배운점 & 회고] 4월 30일 실무를 마치고 느낀 점 (0) | 2025.04.30 |
[배운점 & 회고] 4월 29일 실무를 마치고 느낀 점 (0) | 2025.04.29 |
[배운점 & 회고] 1주차부터 오늘까지 실무를 마치고 느낀 점 (0) | 2025.04.25 |