이노베이션 캠프

[TIL] 16일차

hjkim0502 2022. 8. 16. 23:57

1. Spring

  • 개인과제에서 전에 하기로 했던 계층 분리와 responseDto 관련 코드를 작성하여 오늘 AWD  RDS와 연결하고, 배포까지 진행했다
    • responseDto는 하나의 클래스 안에 static inner class 세개를 담아서 각각 article list, article, null id 관련 에러 응답을 만들어 프론트에 보내지기 전에 감싸주는 역할을 주었다
    • 이런식으로 중첩 클래스로 처리했을 때 생기는 문제가 있을 지 물어볼 계획이다
    • enum은 처리할 에러 상황이 너무나 적어서 쓰지 않았지만, 공부가 더 필요하긴 할 것이고, 확장성있게 짜는 것이 목표였다면 enum을 적용했어야 할 것 같다
  • 팀과제도 미팅해서 진행했는데, JPA의 필요성을 다시 한번 알게 되었고, DNS 와 통신하는 것의 세부 구조에 대해서도 대략 알 수 있었다
  • 배포 이후에는 학습자료를 다시 세밀하게 복습하면서 예제를 따라가고 있다.
    • 눈으로 따라가도 웬만큼은 얻어갈 수 있지만, 역시 코드는 쳐보고 눈으로 작동하는 것을 확인하는 작업이 있어야 함을 다시 깨달았다
    • 배포할 때 전에 사용했던 ec2에 파일만 바꿔서 진행했는데, 포트포워딩이 제대로 작동하지 않아 알아보니 이전에 flask 프로젝트 할 때 작업했던 포트인 5000이 덮어써지지 않고 그대로 남아있어서 관련 사항을 4번 지움으로써 스프링의 8080포트로 제대로 작동했다
  • 앞으로 공부할 것은 DTO, MVC 패턴, 테스트 코드 연습, JPA 정도가 될 것 같다

2. 멘토님 특강

  • 대부분 아는 내용이었지만, 특강이라는게 지식이나 팁을 얻는 자리이기도 하지만, 동기부여가 되는 좋은 자리인 것 같다
  • 숙련 주차를 앞두고 있는 우리들에게 아래의 조언을 주셨다
    • 1. model, controller, service, repository의 각 역할과 코드 진행에 대해 익숙해져라
    • 2. 자바 언어에 더욱 능숙해져 간결한 코드를 구사할 수 있게 해라
    • 3. 하루 한 문제씩은 코테 연습도 꼭 진행해라
    • 4. 앞으로 JPA의 깊이가 프로젝트나 면접에서 크게 도움이 될 것이다
  • 학습 자료와도 방향이 같은 내용이 있었는데, 일단 작동하는 것을 보고 익숙해지고 내부 동작 원리 등은 이후에 깨우치는 것이 여러모로 좋은 것 같다. 내가 이번 주차에 과제부터 시작한 것 처럼 말이다.
  • 최근 코테문제를 안 풀고 있었는데, 다시 오늘부터 이어서 풀 생각이다

3. Leetcode DFS

 

1379번

* 내 풀이:

class Solution:
    def getTargetCopy(self, original: TreeNode, cloned: TreeNode, target: TreeNode) -> TreeNode:
        ans = TreeNode(None)
        
        def dfs(node):
            if node.val == target.val:
                ans.left = node // 정답 저장
                return
            
            if node.left:
                dfs(node.left)
            if node.right:
                dfs(node.right)
            
        dfs(cloned)
        return ans.left
  • dfs로 이진 트리 탐색하다가 target과 같은 값을 가지는 노드가 나오면 그 노드가 답이 된다