본문 바로가기
728x90

TIL(Today I Learned)25

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.
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.
[Java] 지난주 공부한 개념들 기록과 용어 정리를 해보자. Java 코드의 컴파일 과정 개발자가 .java 파일을 생성하고, build 한다. .java 파일이 javac(java compiler)를 이용해 컴파일 된다. 컴파일 되면, .class 파일이 생성된다. (byte code라고 부른다.) Class Loader를 통해 JVM 메모리 내에 바이트 코드가 로드된다. JVM에 의해 OS에 맞는 기계어로 번역(interpretation)되고, 실행된다. 따라서 Java code는 시스템 아키텍쳐에 의존하지 않고, 코드 작성이 가능하다는 특성을 갖는 것이다. 여기서 컴파일과 빌드에 대한 용어를 다음과 같이 명확하게 정리하자. 빌드 (build) 개발자가 작성한 소스 코드를 실행 가능한 파일로 변환하는 과정을 의미한다. 컴파일 (compile) 컴파일러를 이용해.. 2023. 3. 13.
JWT를 이용한 인증, 인가 구현 과정 기록 지난 글에서는 jwt를 생성하는 JwtProvider 구현까지 진행했었는데, 이번에는 비밀번호 암호화 + jwt 생성 구현물을 이용해서 SpringSecurity를 이용한 특정 자원에 대한 인증과 인가 조건을 구현해보려 합니다. 사이드 프로젝트 JWT 적용 과정 기록 오늘은 주말을 맞아 jwt를 공부할겸, 여러 기술 블로그와 강의를 참고해서 jwt를 공부하고 사이드 프로젝트에 적용해 봤고, 이 내용을 간단하게 기록해보려 합니다. JWT에 대해 잘 정리된 글들과 kkkdh.tistory.com 토큰 기반 인증 구현 Spring Security를 처음 공부해서 그런지 우선 WebSecurityConfigurer를 상속 받는 설정 파일부터 이해하기가 힘들었습니다. 일단 이것부터 제대로 공부해보니까 WebSec.. 2023. 3. 2.
728x90