본문 바로가기
728x90

전체 글158

Java의 Exception에 대해서 이번 글에서는 Java에서 예외 처리 방식을 어떻게 가져가는지에 대한 내용을 다루어 보려고 합니다. 요즈음 개발을 하면서 예외 처리 방식에 대해 공부의 필요성을 느껴 간단히 정리했던 부분이기도 하고, 김영한 님 강의에서는 한 파트를 따로 빼서 설명을 해주셔서 내용을 취합해서 정리해보려 합니다. 글에서 등장하는 개념은 주로 김영한님의 Spring DB 1편 강의를 참고했습니다. Exception 계층 구조 우선 자바의 예외 계층은 다음 구조도와 같이 구분됩니다. 예외 관련 객체들 역시 최상위 객체인 Object 객체를 상속받고 있으며, 그 아래에 Throwable 객체가 있음을 확인할 수 있습니다. Throwable class는 모든 예외들의 조상으로 getMessage, printStackTrace 등 .. 2023. 7. 5.
ApplicationRunner interface에 대한 정리 들어가며... 이번 글은 기존에 schema.sql 파일에 저장되어 있는 기본 데이터 import 부분을 ApplicationRunner라는 일종의 spring boot 프로젝트 실행 시점에 실행되는 initializer를 이용해 개발하는 업무를 담당하게 되어, ApplicationRunner라는 것이 도대체 무엇인지를 먼저 파악하기 위해 작성한다. ApplicationRunner interface는 일종의 initializer ApplicationRunner는 'org.springframework.boot' package에 포함되며, Spring Boot application이 시작되는 시점에 몇 가지 특정 작업을 수행하기 위해서 사용할 수 있다고 한다. 즉, 애플리케이션의 시작 단계에 코드를 실행하기.. 2023. 6. 8.
Spring-Boot multi-module setting MSA는 여러 개의 모듈이 협력해 하나의 큰 기능을 수행하는 형태 MSA(Micro-Service Architecture)는 다른 것이 아니라 독립적으로 배포 가능한 여러 개의 모듈이 복합적으로 동작해서 하나의 큰 기능을 수행하는 서비스 형태를 의미한다고 이해했다. (명확한 사회적 합의에 따른 정의가 별도로 존재하지 않는다) MSA와 대비되는 개념으로는 Monolithic Architecture(모놀리식 아키텍쳐)가 존재하는데, 이 개념은 면접 질문으로도 나왔던 개념으로 소프트웨어의 모든 구성 요소가 하나의 프로젝트로 통합된 형태를 의미한다. 두 아키텍쳐 각각의 장단점이 있지만, 이 글에서는 SpringBoot로 빌드하는 프로젝트에서 MSA와 같이 multi-module project 구조를 만드는 과정.. 2023. 5. 23.
[Spring MVC] 기본 기능 Logging 이제 System.out.println() method 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 로거를 사용하자. SLF4J SLF4J Simple Logging Facade for Java (SLF4J) The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framewor www.slf4j.org Logback Logback Home Logback Proj.. 2023. 5. 20.
Builder Pattern (빌더 패턴) Builder Pattern 빌더 패턴은 creational design pattern의 일종으로 복잡한 객체를 유연하게 생성할 수 있는 방법을 제공한다. 먼저 빌더 패턴을 적용한 객체의 생성을 코드로 정리한다. public class Car { private String brand; private String model; private int year; // 생성자의 접근 권한을 private으로 제한하여, Builder에서만 접근할 수 있도록 한다. private Car(Builder builder){ this.brand = builder.brand; this.model = builder.model; this.year = builder.year; } // Builder class를 static nes.. 2023. 5. 18.
[Spring MVC] 구조 이해 이전 글에서 작성했던, 직접 스프링 MVC 프레임워크를 구현하는 과정과 비교하며 이번에는 실제 스프링 MVC 프레임워크의 구조를 이해하는 과정을 정리하는 강의이다. 스프링 MVC 전체 구조 직접 만들었던 MVC 프레임워크의 구조 Spring MVC 구조 각 요소들이 이름에 차이는 있지만, 똑같은 형태로 구성되어 있음을 확인할 수 있다. 차이점 FrontController -> DispatcherServlet handlerMappingMap -> HandlerMapping (interface, 더 확장성이 있음) MyHandlerAdapter -> HandlerAdpater ModelView -> ModelAndView viewResolver -> ViewResolver (interface, 더 확장성이 .. 2023. 5. 15.
728x90