1. 코딩 테스트 입문
배열 원소의 길이
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<Integer> solution(String[] strlist) {
List<Integer> answer = new ArrayList<>();
for (String s : strlist) {
int cnt = 1;
for (int j = 1; j <= s.length(); j++) {
if (j < s.length()) {
cnt = cnt + 1;
} else {
answer.add(cnt);
}
}
}
return answer;
}
}
보다 간단한 풀이는 스트림을 활용한 풀이가 있다. 나중에 스트림으로 다시 시도해보자
2. 스프링 심화 강의 + 자바 ORM 표준 JPA 프로그래밍
1) AOP
어제에 이어 오류 해결 :
java.lang.IllegalStateException: Failed to execute ApplicationRunner
Caused by: java.lang.IllegalArgumentException: 저장할 수 있는 상품명이 없습니다.
상품명을 받아오는 데 실패하여 원인을 찾아보니, ProductRequestDto에서 생성자메서드 초기화를 하는 부분에서 itemDto를 참조하지 않고 초기화만 하여 값이 빈 값으로 전달되다 보니 실행이 되지 않았다.
스프링 AOP 어노테이션의 종류
2) Exception
https://ryanclaire.blogspot.com/2020/10/HTTP-Overview.html
주요 응답상태코드 종류
200번대 : 성공
400번대 : 클라이언트 에러, 잘못된 요청
500번대 : 서버 에러, 요청은 정확하지만 서버 에러로 오류 발생
강의 진행 중 만난 오류
object references an unsaved transient instance - save the transient instance before flushing:
@ManyToOne 또는 @OneToMany 매핑을 사용 할때 부모에 추가하는 자식 개체가 아직 영속되지 않아 생긴
영속성 전이(CASCADE) 문제, 참조하는 객체를 저장하지 않아 생기는 문제 ~ 저번에도 만났던 문제
https://cdaosldk.tistory.com/107
기존 해결 : cascade.ALL로 해결할 수 있지만, 다른 부분에도 영향을 쉽게 받을 수 있다고 하여 fetch를 사용한 방법으로 시도 -> 시도했더니 값이 제대로 저장되지 않았다. -> 도움을 받은 끝에 fetch를 사용하고 생성자에 @Builder를 추가하고 post객체에 setter로 comment 주입 후 그 코멘트를 코멘트 리스트에 저장하는 방식 사용 : 해결
다만,
- setter를 사용한 점
- cascade는 되는데 fetch는 왜 영속성 관리에서 안되는지 정확히 이해하지 못하고 고친 점
이 아직 문제로 남아있다.
+ 책을 참조하여 문제 탐색 및 해결 노력
이번 시도 :
1) 연관관계 설정된 컬럼에 @ManyToOne(fetch=fetchType.LAZY) 설정 : 변화 없음
2) 저장이 문제라는 생각이 들어 @OneToMany(cascade = CascadeType.PERSIST) 사용+CascadeType.ALL 도 변화없음
3) 스프링 시큐리티 복습 필요성 :
원인 - ShopController에서 인수로 설정했던 User 타입 객체.. 강의를 따라 내용을 수정하는 과정에서 잘못 수정이 들어갔었다. @AuthenticationPrincipal UserDetailsImpl 타입 객체를 인수로 설정했더니 성공.
+ 예외 로그를 읽는 방법을 복습하고 그에 대한 이해도를 조금 더 높힐 수 있었다.
'내일배움캠프 4기 스프링 > 내배캠 TIL📘' 카테고리의 다른 글
12. 30 코딩 테스트 입문/ 팀 프로젝트 SA/ 개인 과제 수행/ CS 특강 (0) | 2022.12.30 |
---|---|
12. 29 코딩 테스트 입문/ 스프링 심화 강의/ 자바 기초 수업 (0) | 2022.12.29 |
12. 27 코딩 테스트 입문/ 스프링 심화 강의 (0) | 2022.12.27 |
12. 26 스프링 심화 강의/ JAVA 기초/ 코딩 테스트 입문 (0) | 2022.12.27 |
12. 23 개인 과제 수행/ 스프링 심화 강의/ 디자인 패턴/ @Anotation (0) | 2022.12.26 |