1. Spring
- 코드를 개선하고 재배포할때 계속 8080포트가 이미 사용중이라는 에러가 떠서 git bash에서 제거해준 뒤 다시 배포하는데 성공했다
- 맨위 id에 해당하는 프로세스 종료했다
ps -ef | grep java
kill -9 [process_id]
- 스프링 MVC의 내부 동작에 대해 좀 더 깊게 알게 되었고, 이는 17일차 TIL에 한꺼번에 작성해놓았다
- 테스트코드도 연습삼아 짜봤는데, 스프링 데이터 JPA를 사용하면서 단위테스트는 잘 되지 않아서 일단 통합 테스트로 진행해보았다.
- 서비스 계층의 게시글 등록에 대한 테스트 딱 한개만 진행했고, 단위 테스트로도 할 수 있는지 좀 더 공부해야 할 것 같다
- 17일차 TIL에 설명했던 것 중 Enum 사용과 ExceptionDto 요소 확장은 오늘 진행했는데, Enum 객체에 @JSONFormat을 사용하여 편하게 두 작업을 진행할 수 있었다.
- 아래의 ErrorCode에 내가 넣고 싶은 예외 상황에 맞는 메세지를 넣으면 원하는 곳에서 throw exception 하여 에러메세지를 부를 수 있어 확장성이 좋아졌다고 생각한다
@JsonFormat(shape = OBJECT) // Response에서 Enum 객체 전체 반환
@AllArgsConstructor
@Getter
public enum ErrorCode {
//비밀번호 불일치
WRONG_PASSWORD("WRONG_PASSWORD", "Wrong Password"),
//NULL_ID
NULL_ID("NULL_ID", "Id Doesn't Exist");
private final String code;
private final String message;
- 마지막으로는 계속 걸렸었던 컨트롤러에 남아있던 비밀번호 확인 로직을 서비스 계층에 옮기면서 더 적절하게 배치된 것 같고 코드도 더 깔끔해진 것 같다
2. Leetcode DFS
938번
* 내 풀이:
class Solution:
ans = 0
def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:
def dfs(node):
if low <= node.val <= high:
self.ans += node.val
if node.left:
dfs(node.left)
if node.right:
dfs(node.right)
dfs(root)
return self.ans
- ans를 rangeSumBST 안에 넣으니 선언하지 않은 것으로 인식해서 클래스 멤버변수로 지정했다
다른 풀이:
class Solution:
ans = 0
def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:
if low <= root.val <= high:
self.ans += root.val
if root.left:
self.rangeSumBST(root.left, low, high)
if root.right:
self.rangeSumBST(root.right, low, high)
return self.ans
- 솔루션 메소드 자체를 재귀로 돌려도 같은 흐름인데, 대신 low와 high를 계속 인자로 넣어줘야 한다
'이노베이션 캠프' 카테고리의 다른 글
[TIL] 25일차 (0) | 2022.08.26 |
---|---|
[TIL] 24일차 (0) | 2022.08.24 |
[TIL] 17일차 (0) | 2022.08.18 |
[TIL] 16일차 (0) | 2022.08.16 |
[WIL] 2주차 (0) | 2022.08.14 |