LOG
- 오늘은 아코, 코난이 과자를 사와서 맛있게 먹었다. 고마워~ 근데 아코가 사온 감자칩? 엄청 맛있었다. 내일은 내가 사가야지
배운 것
targetCompatability
를 17로 설정하면 github action에서 17 JVM에서 호환되는 버전으로 컴파일 해준다.
- 설정 안 하면 가장 최신 LTS 버전으로 컴파일 하는 듯 하다.
data.sql
에 아무런 내용도 없으면 예외가 발생한다. 사용하지 않으면 삭제해두자.
- 브랜치의 merge conflict는 현재 브랜치와 병합하려는 브랜치 모두에서 코드의 동일한 부분이 변경되는 경우, git이 사용할 버전을 결정할 수 없을 때 발생한다.
- github action을 수동으로 동작할 수 있게 하는 코드 (이 코드가 없으면 브랜치마다 github action을 수동으로 동작할 수가 없다.)
- Java의 HashSet은 내부적으로 HashMap을 통해 동작하고, add 할 때의 해시값을 key 로 갖는다. 그런데 영속화 전에 entity가 set에 삽입되면 그 당시의 해시값을 저장하는데, 영속화시에 id가 변경되며, 해시값이 바뀌어서
contains()
메서드가 제대로 작동하지 않는다. 특히 우리 프로젝트에서는 id 기반으로 equals()
, hashcode()
를 적용해두어 더 그랬다... id가 변경되면 해시 값이 변경되기 때문에!
- 이 문제를 해결하기 위해서는 동일성 메서드를 재정의 하지 않거나, 영속화 후에 연관 관계를 맺어야 한다. (아니면 Set을 안 쓰는 방법도..
List
를 쓸 수 있다면)
궁금한 것
느낀 것
- 집중력의 한계가 느껴진다...... 오늘 4시간 회의 했는데 (50분 회의 10분 휴식) 3번째 회의부터는 집중이 잘 안 되는 게 느껴졌다. 휴식을 하려면 좀 길게 해야 할 거 같다. 휴식을 할 때도 어디에 집중하고 있지 말고 잡담을 하거나 가만히 있어보자.