본문 바로가기

프로젝트5

submodule 메인에 반영하기 config 폴더에서 최신 머지된 해쉬값이 c58d3478f7599f4482c8066233ebd9f09ba27360이고, 메인에서는 현재이 해쉬값을 참조하고 있다.  내가 원하는 건, main에서 config 해쉬값을 가르키도록 하는 것이다.  config 이전 폴더에서 update --remote 명령어를 수행하면 해쉬값이 정상적으로 변하는것을 확인할 수 있다.   diff --submodule 명령어를 통해서 달라진 부분을 확인할 수 있다.  resources 폴더에서 추가하고 커밋해주면 끝! 2024. 6. 21.
Object references an unsaved transient instance - save the transient instance before flushing 트러블슈팅Object references an unsaved transient instance - save the transient instance before flushing 원인해당 객체의 FK로 사용되는 컬럼값이 없는 상태에서 데이터를 넣으려고 할 때 발생 public class TemplateTag { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "tag_id") private Tag tag;...} 템플릿을 저장할 때, TemplateTag도 같이 저장하는데 이 때 tag_id가 없기 때문에 발생했다.cascade 옵션을 줘서 영속성 전이를 해주었더니 해결했다. 2024. 6. 6.
질문 API를 수정하면서 겪었던 문제 현재 진행중인 프로젝트에서 질문 생성 API를 날릴 때 이런식으로 보내준다.{ "title": "질문을 뭐라고 적지?", "type": "DATE", "selectQuestions": [ { "title": "original" }, { "title": "original2" } ], "storedName": null} Question과 SelectQuestion의 관계는 OneToMany로, 부모 -> 자식 관계에 있다. CascadeType.ALL을 통해서 질문이 삭제될 때 같이 삭제되도록 설정했다.@OneToM.. 2024. 6. 5.
JWT토큰과 RefreshToken 프로젝트에 JWT 토큰을 도입하기로 결정하면서, 먼저 구조에 대해서 알아보겠습니다. 구조 JWT 토큰은 헤더, payload, signature 세 부분으로 나뉘어져 있습니다. Header 헤더 값에는 JWT에서 사용할 해시 알고리즘에 대한 정보가 담겨있습니다. return Jwts.builder() .setClaims(claims) .setIssuedAt(now) .setExpiration(expireDate) .signWith(SignatureAlgorithm.HS512, secretKey) .compact(); 코드에서 HS512 알고리즘을 이용했기 때문에, 헤더값에서 해당 정보를 확인할 수 있었습니다. Payload 서버에서 사용자에 대한 데이터를 저장하는 부분입니다. 저는 사용자의 이메일과 id.. 2024. 4. 19.