2023.07.06.목.TIL

heeh·2023년 7월 6일

TIL

목록 보기
37/82
post-thumbnail

2023.07.06.목

팀프로젝트

  • 댓글의 내용을 requestDto에 담아서 전송하고 comment에 담았다 = 댓글 작성
    Comment comment = new Comment(requestDto);
  • 어떤 post에 댓글을 달지? post가 repository에 있는지 확인(findPost에 담아줬죠)
    Post post = findPost(requestDto.getPostId());
    • requestDto.getPostId() 요청한 게시글과 repository에 있는 게시글 찾아
  • comment를 Post((post))에 달 수 있게 설정(setPost)
    comment.setPost(post);
  • try
    • try는 예외 처리를 위한 Java의 키워드

      • 예외가 발생하면 catch로 빠져나감
    • 일반적으로 try 블록은 catch 블록이나 finally 블록과 함께 사용

      try {
          // 예외가 발생할 수 있는 코드
      } catch (ExceptionType1 exception1) {
          // 예외 처리 코드
      } catch (ExceptionType2 exception2) {
          // 예외 처리 코드
      } finally {
          // 항상 실행되는 코드 (선택사항)
      }
  • 외래키
    @OneToMany(mappedBy = "post", cascade = CascadeType.REMOVE)
    private List<Comment> comments;
  • try
    try {
        commentService.updateComment(id, requestDto, userDetails.getUser());
        return "댓글 수정을 성공했습니다.";
    } catch (RejectedExecutionException exception) {
        return "댓글 수정을 실패했습니다.";
    }
    • try 블록 내에서 commentService.updateComment 메서드를 호출
      → 예외가 발생하지 않으면 "댓글 수정을 성공했습니다." 문자열을 반환
      → 예외가 발생하면 catch 블록으로 이동하여 "댓글 수정을 실패했습니다." 문자열을 반환
    • 예외를 처리하여 댓글 수정 작업의 성공 또는 실패를 알려주는 결과를 반환
  • RejectedExecutionException
    • Java의 내장 예외 클래스 중 하나
    • 보통 스레드 풀에서 작업을 처리하려고 할 때 스레드 풀의 용량이 가득 차서 더 이상 작업을 받을 수 없는 상황에서 RejectedExecutionException이 발생
    • 일반적으로 스레드 풀에서 작업을 처리할 수 있는 최대 용량을 초과하거나, 작업이 거부되는 경우에 발생
      • 스레드 풀 : 스레드는 동시에 여러 작업을 수행할 수 있는 실행 단위로, 멀티스레딩 환경에서 병렬 처리를 가능
    • 특정 작업이 실행을 거부된 경우에 발생하는 예외
    • RejectedExecutionException 는 예외를 나타내는 클래스
    • 다른 예외 클래스
      1. NullPointerException (널 포인터 예외): 객체 참조가 null인 상태에서 객체의 멤버나 메서드에 접근하려고 할 때 발생합니다.
      2. IllegalArgumentException (부적절한 인수 예외): 메서드에 전달된 인수가 유효하지 않거나 부적절한 경우 발생합니다.
      3. ArrayIndexOutOfBoundsException (배열 인덱스 범위 초과 예외): 배열의 인덱스 범위를 벗어나는 인덱스에 접근하려고 할 때 발생합니다.
      4. FileNotFoundException (파일을 찾을 수 없음 예외): 파일을 찾을 수 없는 경우 발생합니다.
      5. IOException (입출력 예외): 입출력 작업 중 문제가 발생하는 경우 발생합니다.
      6. NumberFormatException (숫자 형식 예외): 문자열을 숫자로 변환할 때 잘못된 형식의 문자열이 전달되는 경우 발생합니다.
      7. ArithmeticException (산술 예외): 수학적 계산 중에 발생하는 문제로, 예를 들어 0으로 나누는 경우 발생합니다.
      8. ClassCastException (클래스 형변환 예외): 잘못된 형변환이 수행되는 경우 발생합니다.
    • 예외 클래스 : 예외 발생 시 프로그램의 제어를 전달하고 예외 정보를 전달하는 역할
  • ApiResponseDto
    • 클라이언트에게 요청의 성공 여부, 오류 메시지, 상태 코드 등을 응답으로 전달
    • 요청에 대한 응답을 생성하는 데 사용
  • ResponseEntity.badRequest().build()
    • ResponseEntity : pring Framework에서 제공하는 클래스로, HTTP 응답을 나타내는 역할, ResponseEntity를 사용하여 응답의 상태 코드, 헤더, 본문 등을 설정
    • ResponseEntity.badRequest() : ResponseEntity의 정적 메서드로, HTTP 상태 코드 400 Bad Request와 함께 응답을 생성, 클라이언트의 요청이 잘못되었음을 나타내는 응답을 생성하는 데 사용
    • .build() : ResponseEntity 객체를 최종적으로 생성하는 메서드, 이 메서드를 호출하면 이전에 설정한 상태 코드, 헤더, 본문 등이 포함된 ResponseEntity 객체가 반환
    • ResponseEntity.badRequest().build()는 HTTP 상태 코드 400 Bad Request와 함께 응답을 생성하는 메서드이며, 응답의 본문은 비어있는 상태로 반환
    • 클라이언트에게 잘못된 요청을 알리는 응답을 보낼 수 있음
  • 프론트엔드
    • 댓글 수정
      • undefined 뜨는 문제
    • ! 댓글 삭제 후 자동 새로고침으로 삭제한 댓글 없어진 부분 확인하기
      • findAllComment
    • ! 수정 버튼을 눌러야 입력칸이 생기는 기능..?은 프론트쪽!
  • 기억하기!
    • 업데이트, 크리에이트, 딜리트 왔다갔다 하지 말고 하나 구현하고 테스트하고 완성하고 다음꺼 넘어가기!
    • 3 layer - 컨트롤러, 서비스, 레포지토리도 순서를 꼭 지켜야 하나요?!
      → 대부분 그렇지만, 상황에 따라 다릅니다 !
  • ㅇㅇ님 create post
    • 유저-포스트 : 1:N
    • 포스트-플레이리스트 : 1:N 단방향
    • jackson 활용 string → list 바꾸기 위해 jacjson을 활영
    • String pli : 내가 선택한 음악 → List 내가 선택한 음악 모음

팀장님께서 개인 공부에 더 집중할 수 있도록 많이 알려주시고 시간을 주셨습니다...
팀프로젝트에 들어가는 기능들을 구현해보고 사실상 팀프로젝트는 팀장님께서 다 하신...! 8-8

profile
공부하자개발하자으쌰으쌰

0개의 댓글