2022.12.21.WED

ronglong·2022년 12월 21일
0

코드스테이츠 Day45

  1. 오전 데일리 코딩
  • 레퍼런스 코드 보니까 피보나치 수열의 재귀함수 방식이었다.
    아무래도 이전 값(num-1)의 경우의 수와 그 이전 값(num-2)의 경우의 수의 누적이 현재 값(num)의 경우가 되는 걸로 보아, DP 원리를 이용해서 푸는 문제다.
  • 하지만 나는 문제를 보고, 밑에 코드에서 한글 주석으로 쓴 딱 2줄의 원리만 파악했으며, 그 이후에 어떻게 문제를 풀어야할 지는 감을 잡지 못 했고..(DP일거라고 생각 못 함)
  • 이렇게 나는 이번에도 재귀함수 문제 못 풀었음.. 재귀함수만 나오면 문제 못 푸네;;
    돌겠다 진짜.
public class Solution { 
	public int tiling(int num) {
		// 앞에서 가로 뽑으면, 뒤에도 가로 뽑아야함. 가로는 2세트씩 묶임. 
		// 앞에서 세로 뽑으면, 뒤에는 가로/세로 둘 다 가능
    
    ArrayList<Integer> list = new ArrayList<>();
    list.add(0);
    list.add(1);
    list.add(2);

		return aux(num, list);
	}

  public int aux(int num, ArrayList<Integer> list){
    if(num < list.size()) return list.get(num);

    list.add(aux(num-1, list)+aux(num-2, list));
    return list.get(num);
  }
}
  1. 비즈니스적인 예외 던지기(throw) 및 예외 처리
  • 체크 예외(Checked Exception)
    • 예외 발생시 무조건 해결해야하는 예외.
    • 개발자 실수로 발생하는 경우가 많으며, 주로 컴파일 타임에서 발생
  • 언체크 예외(Unchecked Exception)
    • 예외 발생시 처리할 필요가 없는 예외.
    • 클라이언트의 잘못된 요청 등으로 발생하는 경우가 많으며, 주로 런타임에 발생
    • 클라이언트의 편의를 위해 개발자가 인위적으로 예외를 던져 클라이언트에게 에러 정보를 알림.
  • 체크 예외와 언체크 예외 비교
    https://www.geeksforgeeks.org/checked-vs-unchecked-exceptions-in-java/
  • 서비스 계층에서 발생한 예외는 메서드가 호출된 곳(Controller)으로 던져짐.
    -> Controller의 예외는 @RestControllerAdvice에서 총괄
    -> @ExceptionHandler, @ResponseStatus 붙여서 처리 메서드 구현
  • 사용자 정의 예외의 경우, Enum을 통해 클라이언트에게 제공할 정보(상태 및 메세지 등)설정 가능
  • Enum 사용법 https://bcp0109.tistory.com/334
  • RuntimeException을 상속하는 BusinessLogicException(사용자 정의 예외) 클래스를 생성하여, 서비스 계층에서 사용.
  1. 애플리케이션 예외 처리 실습
  • 포스트맨을 통해 확인 결과, ErrorResponse 클래스의 생성자 파라미터가 JSON 응답 메세지의 property였음.
  • 처음에 윗 부분을 눈치 못 채고, businessLogicException 클래스 만들고 그 안에 status와 message를 넣어서 구현했더니 businessLogicError 가 property로 나타나고, value는 그 안에 괄호로 묶여서 status, message가 나타남
  • @ResponseStatus 따로 설정 안 해주면, 200 OK로 응답함(예외 잘 던졌으니까).
    -> @ResponseStatus 따로 설정 필요
  • private 생성자
    • 외부에서 해당 클래스 객체 생성 불가
    • of() 메서드내부에서 객체 생성. return new 생성자;

<느낀 점>
오늘 페어 과제는 초반에 감 못 잡다가, 나중에 감 잡았더니 뒷 문제들은 연달아 풀리는 구조였다.
내일부터 데이터 엑세스 계층 들어가서 어려워진다는데, 조금 걱정이다.

하지만 일단 지금 나에게 가장 스트레스를 주는 것은 재귀함수와 자료구조임..⭐️
주말에 알고리즘 공부를 좀 해야하나...

0개의 댓글