1. Spring
- 스프링 info level log 달기
@Slf4j
log.info("게시물 <{}>이 삭제되었습니다.", post.getTitle());
- 저번주 JPA 연관관계 정리
- @Column에 name 속성을 따로 지정하지 않으면 그 필드명으로 자동 지정
- @JoinColumn
- 외래키 매핑할 때 사용하는 어노테이션
- 1:N 관계인 경우 보통 N쪽에 외래키를 두므로 연관관계의 주인이 되며 해당 어노테이션을 붙힌다
- 연관관계의 주인 = 외래키 관리(등록, 수정, 삭제)
- 양방향인 경우 주인이 아닌 1쪽에 mappedBy를 사용하여 주인이 아님을 알려준다
// 댓글이 연관관계의 주인
// 게시글에서 댓글 객체를 불러와 사용 가능
@OneToMany(mappedBy = "article")
private List<Comment> comments = new ArrayList<Comment>();
- 결국 게시글 엔티티는 응답으로 댓글 목록을 보여주기 위해 @OneToMany로 댓글 정보 끌어오고, 댓글 엔티티는 자신이 속해있는 게시글의 Id를 참조하기 위해 @ManyToOne으로 게시글 정보 끌어오는 것이다
- 개인 과제에서 이렇게 양방향 매핑을 했더니 Json parsing 에러가 떠서 댓글쪽의 게시글 필드에 JsonIgnore을 붙혀 해결했는데, 이것이 근본적인 해결책이 아닐 수 있어 좀 더 알아봐야 할 것 같다
2. Leetcode DFS
897번
* 내 풀이:
class Solution:
prev = cur = TreeNode()
def increasingBST(self, root: TreeNode) -> TreeNode:
def dfs(node):
if node.left:
dfs(node.left)
# 중위 순회
self.cur.right = TreeNode(node.val)
self.cur = self.cur.right
if node.right:
dfs(node.right)
dfs(root)
return self.prev.right
- 입력 트리가 BST이기 떄문에 중위 순회로 하면 되겠다고 생각했고, 기억을 더듬어 구현해냈으며, prev는 가만히 있고 cur.right를 설정해준 후 cur을 하나씩 옮겨가면서 트리를 재귀적으로 구성하도록 했다
'이노베이션 캠프' 카테고리의 다른 글
Spring 심화 주차 개인과제 (1) | 2022.09.01 |
---|---|
[TIL] 31일차 (0) | 2022.09.01 |
[WIL] 4주차 (0) | 2022.08.28 |
[TIL] 27일차 (0) | 2022.08.28 |
[TIL] 26일차 (0) | 2022.08.27 |