오시영 튜터님 깃 라이브 세션 강의 수강
라이브 세션 후 깃 이슈 발행 및 백로그 관리
기능 개발
깃에 프로젝트를 올리면 read me를 잘 설명해야 된다.
개발자들은 프로젝트를 git readme에 설명을 한다.
깃 리드미 예시
https://github.com/siyoungoh/readme-template/tree/master/korean
노션 링크를 참조해도 된다.
예제에서 트러블 슈팅을 추가하는 것이 좋다.
깃에 버그나 오류를 해결할때 깃에 이슈를 사용해서 나타내기
깃헙에 spring-project/spring-framework참조하기
이슈 pr(pull request)
깃 백로그 다루는 법 배우기
설계 배포 테스트 구현이 하나의 사이클
readme.md는 중간중간 작성하는 것이 좋다.
깃 플로우와 깃헙 플로우는 다른것이다.
깃 프로젝트는 내것이 절대 아니다 우리것이다.
프런트 백앤드 이슈 및 백로그를 남겨서 히스토리를 남기기
최초 문제 발생
A.클라이언트 상태
B. 서버상태
c. 어플리케이션 정보
다른 기능은 정상적으로 작동함. auction테이블에 있는 다중 이미지 리스틀 삭제 할때만 오류가 발생함.
해당 코드
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
private List<MultiImage> multiImages = new ArrayList<MultiImage>();
오류 원인
Auction 엔티티에서 관리하는 MultiImage 컬렉션에 참조 인스턴스가 변경되면서 orphanRemoval = true 옵션 동작에 문제가 생긴 것이다.
하이버네이트에서 컬렉션 타입은 영속화 될 때 org.hibernate.collection.internal.PersistentBag 타입으로 래핑된다고 하는데
이 PersistentBag를 인스턴스를 이용하여 영속성 전이와 고아객체 추적하는데, multiImages가 먼저 삭제되고 그다음 Auction 테이블의 private List<MultiImage'> multiImages 참조를 하니 PersistentBag 인스턴스가 엔티티와의 참조가 끊어져 버려 문제가 발생하게 된 것인것 같다.
즉 없는 고아객체를 찾으라고 하니 오류가 발생한것이다.
해결
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL )
private List<MultiImage> multiImages = new ArrayList<MultiImage>();
orphanRemoval = true 이코드를 삭제한 후 서버 실행
정상적으로 작동함.
아침 전체회의후 깃 라이브 세션, 노션 오늘의 할일 작성, 깃 이슈 발행및 백로그 작성 등등
개발에 집중하는 것 보다 그 외적인 깃, 노션관리에 집중을 더하는 것 같은데, 나는 개발자이다. 당연히 깃도 중요하고 노션관리도 중요하지만 이런 이유로 개발을 소홀히 하지 말자.
경매 종료
내가 참여한, 관심있어하는, 올린 경매 기능 개발하기.
Spring JPA insertable, updatable