전체 글(74)
-
Spring 그리고 Spring Boot
자바로 API 만드실 때 스프링/스프링 부트를 많이 쓰실 텐데요! 다들 스프링과 스프링 부트의 차이! 알고 계신가요? 오늘은 스프링과 스프링 부트의 차이점에 대하여 알아보겠습니다🔥 # Spring(Spring Framework) 자바 언어로 개발된 애플리케이션을 구축하기 위한 오픈 소스 프레임워크 경량 컨테이너, 의존성 주입, 관점 지향 프로그래밍, 웹 개발 등의 기능을 제공하여 효율적으로 애플리케이션 개발 가능 경량 컨테이너 : 객체의 생성과 생명주기를 관리하는데 도움을 주는 프레임워크 의존성 주입(Dependency Injection) : 객체가 필요로 하는 의존성을 외부에서 주입하여 결합도를 낮추는 디자인 패턴 관점 지향 프로그래밍(AOP) : 비즈니스 로직을 모듈화하여 코드 중복을 줄이는 프로그래..
2024.01.30 -
멀티모듈 적용하기
프로젝트에서 모든 서비스를 특성에 따라 분리하지 않는다면, 추후 이슈 발생 시 코드 복잡성으로 인한 유지 보수가 어려워집니다. 이런 상황을 방지하기 위해 우리가 사용할 수 있는 해결책은 멀티모듈, 즉 모듈화입니다. 멀티모듈을 도입하면 각 모듈은 특정 기능을 수행하며 독립적으로 빌드, 테스트, 배포할 수 있어 코드의 복잡성을 낮추고 유지 보수성도 향상됩니다. 수정사항을 배포할 때 모든 서비스를 전체적으로 배포할 필요 없이 필요한 모듈만 업데이트할 수 있어 효율적인 개발 및 배포가 가능하다죠? 그래서 오늘은 멀티모듈의 개념과 적용 방법에 대하여 알아보도록 하겠습니다😎 # Module(모듈) 프로그램을 구성하는 요소로 관련된 데이터나 함수를 하나로 묶은 단위 Ex. 함수, 클래스, 패키지, 라이브러리, 프레임..
2024.01.18 -
Spring boot Exception Handling
예외 처리는 안전한 프로그램을 만들기 위한 필수 항목.. 아닐까요?! 스프링 부트에서는 @ControllerAdvice로 전역에서 발생하는 모든 컨트롤러에 대한 예외를 효과적으로 관리하고, @ExceptionHandler를 활용하여 각 컨트롤러 내부에서 발생하는 예외처리를 세부적으로 다룰 수 있습니다. 이 두 가지 방식을 조합하여 사용하면 코드 일관성과 예외 처리 효율을 동시에 유지할 수 있습니다. 그럼 이제 스프링 부트 에서의 예외 처리에 대하여 알아보도록 하겠습니다 😀 1️⃣ 스프링에서의 예외 처리를 위한 어노테이션 # @ControllerAdvice, @ExceptionHandler Spring에서는 예외를 핸들링하기 위해서 @ControllerAdvice, @ExceptionHandler 어노테이..
2024.01.17 -
Spring Validation(유효성 검사)에 대하여 알아보기
데이터를 전달받을 때 가장 중요한 것은 바로 올바른 형식의 데이터가 들어왔는지를 확인하는 것이라고 생각합니다. 이번 게시글에서는 Spring boot에서 유효성 검사를 하는 방법(데이터 검증 or Validation)에 대하여 작성해보려고 합니다. # 유효성 검사(데이터 검증, Validation) 클라이언트에서 서버로 전달(@RequestBody, @RequestParam, @PathVariable)되어 들어오는 데이터에 대해 개발자가 의도한 형식의 값이 제대로 들어오는지 체크하는 과정을 뜻한다. 데이터 검증은 여러 계층(Controller, Service...)에서 발생하게 되는데 유효하지 않은 데이터가 들어오게 된다면 MethodArgumentNotValidException 이 발생된다. # sta..
2024.01.15 -
롬복 @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor 어노테이션 알아보기
스프링으로 개발을 하다 보면 생성자를 자동으로 생성해 주는 @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor 어노테이션을 자주 쓰게 되는데 이번 게시글에서는 이것들이 어떤 기능을 가지고 있는지 알아보려고 합니다. 👀 간단하게 표로 확인해 보자 어노테이션 기능 @AllArgsConstructor 내부에 선언된 모든 필드 값을 파라미터로 받는 생성자를 생성 @NoArgsConstructor 파라미터가 없는 생성자를 생성한다 @RequiredArgsConstructor final이나 @NotNull로 선언된 필드만을 파라미터로 받는 생성자를 생성한다 # @AllArgsConstructor 클래스의 모든 필드 값을 파라미터로 받는 생성자를 자동..
2024.01.15 -
SOLID 원칙
이전에 디자인 패턴과 SOLID 원칙에 대하여 게시글을 작성했는데, 이번에는 SOLID 원칙별 예시 코드와 함께 정리해보려고 한다. # SOLID 원칙이란? SOLID 원칙은 객체 지향 프로그래밍의 다섯 가지 기본 원리로 SRP, OCP, LSP, ISP, DIP 총 5가지로 구성되어 있으며 이를 준수하여 코드를 작성하면 유연하고 확장 가능한 아키텍처를 구축할 수 있다. SOLID 원칙은 개발자들에게 일관된 설계 구조를 제공하여 효율적이고 유지보수 가능한 코드를 작성하는 데 도움을 준다. # SOLID 원칙 1. 단일 책임 원칙 - Single Responsibility Principle / SRP : 하나의 클래스는 하나의 책임(기능)만을 가져야 하고, 클래스를 변경해야 하는 이유는 단 하나여야 한다...
2024.01.10