TIL 22.12.23

쓰옹·2022년 12월 23일
0

개발자를 향해~~TIL✍

목록 보기
47/87

TODAY


  • 알고리즘 문제 풀이
  • blog과제 댓글 수정, 삭제까지
    • 에러 해결
  • 스프링 심화강의 - Spring Security 학습
  • 어노테이션 특강
  • cs기초(디자인패턴) 특강

프로그래머스 알고리즘


깃허브링크

생각을 정리해가며 풀었다. 역시 적으면서 푸니까 식 정리가 더 잘 되는 것 같다.

charAt() : String으로 저장된 문자열 중에서 한 글자만 선택해서 char타입으로 변환해주는 녀석

  • String answer = "";
    for(int i = my_string.length() -1; i >= 0; i--) {
          answer = answer + my_string.charAt(i);
    }
    문자열의 배열에서 뒤집힌 문자열로 만들어주는 식이다.
    "asdf" -> "fdsa"

length() : 문자열의 길이를 알려준당

 for (int i = 0; i < strlist.length; i++) {
       answer[i] = strlist[i].length();
 }
  • 문자열의 길이를 저장하는 배열이당


Infinite recursion


무한재귀,, 순환참조....

댓글 수정기능을 만들고 포스트맨으로 확인을 하면서 게시글 조회 기능을 확인하는ㄷ데,..!! 두둥

ERROR 20564 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError)] with root cause

java.lang.StackOverflowError: null
at java.base/java.math.BigDecimal.add(BigDecimal.java:4994) ~[na:na]
...
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer.serialize(LocalDateTimeSerializer.java:37) ~[jackson-datatype-jsr310-2.14.1.jar:2.14.1]
...

  • 원래코드
	@Getter
	public class BlogResponseDto {
	    ...	
       private List<Comment> comments; 
   
	   public BlogResponseDto(Blog blog) {
	        ...
	        this.comments = blog.getComments();
	    }
	}

기껏 dto를 만들었는데 Comment객체를 다시 고대로 들고 와서
getComments의 댓글리스트에서 Comment 클래스에 blog에 Getter가 붙어있어
jackcon형님이 데이터를 json형식으로 변환해주려고 하는데 getter가 있어서 comment -> blog -> comment -> blog 반복
해서 생기는 오류이다.

dto를 만들어주면 해결됨!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
List<CommentResponseDto> list = new ArrayList<>();
        for (Comment comment : blog.getComments()) {
            list.add(new CommentResponseDto(comment));
        }
        this.comments = list;

언제나 객체 고대로 들고 올 생각은 하지도 말자. dto dto dto 생각생각생각

profile
기록하자기록해!

0개의 댓글