Backend

    Custom Exception을 이용한 예외 처리

    Custom Exception을 이용한 예외 처리

    애플리케이션을 사용하는 여러 상황에서 보다 직관적으로 예외 메세지를 확인하기 위해 사용자 정의 예외 클래스를 이용해 예외 처리를 진행했다. CheckedException, UncheckedException 사용자 정의 예외 클래스를 만들어 구현하는 방법 이전에 간단하게 CheckedException과 UnchekcedException에 대해 알아보자. 자바에서는 크게 RuntimeException을 기준으로 CheckedException과 UncheckedException을 구분한다. RuntimeException은 이름에서도 알수 있듯이 실행 시점에 예외를 판단한다. 예를 들어, ArrayIndexOutOfBoundException과 같은 예외는 실행 시점에 배열의 인덱스를 벗어나 참조를 하는 경우 발..

    [백기선님과 함께하는 Live Study] 9주차) 예외 처리

    [백기선님과 함께하는 Live Study] 9주차) 예외 처리

    ✔️ 목표 자바의 예외 처리에 대해 학습하세요. ✔️ 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 💡 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외를 처리하는 가장 기본적인 구조는 try-catch-finally 구조를 가진다. ✏️ try 코드가 실행되는 부분으로, 예외를 잡아내기 위한 부분이다. 예외가 발생한다면, catch 블록으로 예외가 발생하지 않는다면 catch 블록을 실행하지 않고 finally 블록으로 이동해 코드를 실..

    Request 스코프와 Proxy

    Request 스코프와 Proxy

    빈 스코프란 빈이 존재할 수 있는 범위를 말한다. 기본적으로 빈은 싱글톤 스코프로 생성되며 스프링 컨테이너가 시작할 때 부터 종료할 때까지 유지된다. 싱글톤 : 스프링 컨테이너가 시작되고 종료될 때까지 빈을 유지 프로토타입 : 빈 생성 및 의존성 주입까지만 스프링 컨테이너가 관리를 해준다. 웹 관련 스코프 request : 웹 요청을 받는 순간부터 로직을 처리후 응답할때까지 빈을 유지 session : 웹 세션이 생성되고 종료될 때까지 빈을 유지 application : 서블릿 컨텍스트와 같은 범위로 빈을 유지 Request 스코프 request 스코프를 가진 빈은 HTTP 요청이 들어올 때 생성(@PostConstruct 실행) 되며 로직을 처리한 후 HTTP 응답을 줄 때 소멸(@PreDestory)..

    Spring Cloud Bus와 RabbitMQ를 이용해 설정 정보 한번에 최신화하기!

    Spring Cloud Bus와 RabbitMQ를 이용해 설정 정보 한번에 최신화하기!

    기존 Spring Cloud Config Server에서는 설정 정보가 변경될 때 변경된 마이크로 서비스에서 /actuator/refresh 엔드포인트를 호출해 변경했다. 하지만, 매번 설정 정보가 변경될 때마다 엔드포인트를 호출해 변경정보를 반영하는 것은 여간 쉬운 일이 아니다. 이러한 문제를 해결하기 위해 클라이언트에 Spring Cloud Bus와 RabbitMQ를 이용해 설정 정보를 한 번에 변경해보자. RabbitMQ 설치 및 실행 RabbitMQ는 AMQP(Advanced Message Queueing Protocol) 프로토콜을 구현한 메시지 브로커다. 프로젝트를 진행하는 환경에 도커를 이용해 먼저 RabbitMQ를 설치한 후 구동한다. 필자는 오라클 클라우드 인스턴스를 이용해 프로젝트를 진..

    [백기선님과 함께하는 Live Study] 8주차) 인터페이스

    [백기선님과 함께하는 Live Study] 8주차) 인터페이스

    ✔️ 목표 자바의 인터페이스에 대해 학습하세요. ✔️ 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 💡 인터페이스 정의하는 방법 인터페이스(Interface)란 메소드에 대한 선언만 한 상태로 모든 메소드를 추상화로 정의한 상태를 말한다. 인터페이스를 정의하기 위해서는 interface 키워드를 이용하여 선언한다. 인터페이스는 반드시 상수와 추상 메소드만 사용이 가능하다. package com.livestudy.eighth; public interface Phone..