1. 코딩 테스트 입문
개미 군단
직각삼각형 출력하기
세균 증식 :
비트 연산자? ~ a << b의 경우, 연산 결과는 a에 2^b만큼 곱한 것과 결과가 같다
(b가 음수이거나 b의 범위가 a보다 큰 경우 제외)
모음 제거
collect(Collectors.toList())와 toList()와 차이??
프로그래머스 코딩테스트에서 toList()를 사용했을 시 : 타입 Stream<String>
myStringList = myStringList.stream().filter(s -> s.matches("[^aeiou]$")).toList();
^
symbol: method toList()
location: interface Stream<String>
1 error
시작 시간이 지원하기 시작한 JDK 버전을 의미!
스트림을 활용해본 풀이 : 스트림 경험치 + 1
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public String solution(String my_string) {
List<String> myStringList = new ArrayList<>();
int array = my_string.length();
for (int i = 0; i < array; i++) {
myStringList.add(i, String.valueOf(my_string.charAt(i)));
}
myStringList = myStringList.stream().filter(s -> s.matches("[^aeiou]$")).collect(Collectors.toList()); //.toList()와 차이??
return String.join("", myStringList);
}
}
2. SQL 강의
강의 : JOIN, 엑셀보다 쉬운 SQL
cf) 조회 쿼리 작성할 때
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 조건을 걸 필드를 찾기 5) select * from 테이블명 where 조건 이렇게 쿼리 완성!
조건문 범위 : between
조건문 같지않음 : !=
조건문 포함 : in
how to use like in sql
like ->
- where email like 'a%': email 필드값이 a로 시작하는 모든 데이터
- where email like '%a' email 필드값이 a로 끝나는 모든 데이터
- where email like '%co%' email 필드값에 co를 포함하는 모든 데이터
- where email like 'a%o' email 필드값이 a로 시작하고 o로 끝나는 모든 데이터
3. 선발대 강의 - 스프링의 기본적인 예외처리 방법
- e.getMessage() : 에러의 원인을 간단하게 출력
- e.toString() : 에러의 Exception 내용과 원인을 출력
- e.printStackTrace() : 에러의 발생근원지를 찾아서 단계별로 에러를 출력
Checked Exception vs Unchecked Exception의 가장 명확한 구분 기준은 '꼭 처리를 해야 하는지'
-> Checked Exception이 발생할 우려가 있는 메소드라면 반드시 로직을 try/catch로 감싸거나 throw로 던져서 처리해야한다.
예외처리 방법
1. 예외복구 : 예외가 발생해도 대기 후 재시도, 최대 재시도 횟수를 넘겼을때 예외가 발생되는 방법
2. 예외처리 회피 : 처리를 하지 않고 호출한 쪽으로 던져버리는 방법
3. 예외전환 : 예외를 잡아서 보다 구체적인 다른 예외를 던지는 방법
스프링의 예외처리
별도의 설정이 없다면, BasicErrorController로 에러처리 요청을 전달한다.
(cf : 스프링 부트의 WebMvcAutoConfiguration을 통해 자동 설정되는 WAS 설정이다)
일반적인 에러처리 요청의 흐름 : WAS(톰캣) - 필터 - 서블릿(디스패처 서블릿) - 인터셉터 - 컨트롤러
예외 발생 시, 별도의 예외처리를 하지 않으면 WAS까지 예외가 전달된다. WAS는 어플리케이션에서 처리할 수 없는 예외라고 판단하고 스프링 부트가 등록한 에러 설정에 맞게 요청을 전달한다,
~ 에러 컨트롤러를 한 번 더 호출하게 된다 ~ 필터나 인터셉터 또한 다시 호출될 수 있다. 이를 제어하기 위해선 별도의 설정이 필요하다. -> 필터 : 스프링 시큐리티, 인터셉터(리졸버) : @AuthenticaionPrincipal
서블릿 : https://coding-factory.tistory.com/742
에러의 dispatchType은 Error, 필터는 서블릿 기술이므로 필터 등록 시 호출될 dispatcherType을 설정할 수 있고, 별도 설정이 없다면 Request(일반적인 요청)만 필터 호출. 인터셉터는 스프링 기술이어서 dispatcherType을 설정할 수 없어 URI 패턴으로 처리해야 한다.
+(스프링 부트) WAS를 직접 제어하며 WAS 에러설정도 가능하게 되었다. 1번의 요청이 2번 전달되는 방식으로 설정됨 ~ 클라이언트는 이 과정을 알 수 없다.
BasicErrorController의 동작 및 에러 속성
accept 헤더(https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept)에 따라 에러 페이지, 에러 메세지를 반환. 기본 경로는 /error로, properties에서 server.error.path로 변경할 수 있다.
'내일배움캠프 4기 스프링 > 내배캠 TIL📘' 카테고리의 다른 글
01. 13 TIL (0) | 2023.01.13 |
---|---|
01. 12 TIL (0) | 2023.01.12 |
01. 10 TIL (0) | 2023.01.10 |
01. 09 코딩 테스트 입문/ SQL 강의/ 개인 과제 수행/ 자바 기초 수업 (0) | 2023.01.09 |
01. 06 코딩 테스트 입문/ 팀 프로젝트 발표 및 회고/ CS 특강/ 개인 과제 수행/ 독서 - 하루 한장 (0) | 2023.01.06 |