백엔드/Spring Boot(27)
-
Java 애플리케이션 SIGSEGV (Segmentation Fault) 오류 해결하기
⚠️ 어느 날 회사에서 코드를 작성하다가 빌드를 돌린 순간..! jdk가 빌드 되는 과정에서 오류가 발생했습니다. 에러 메시지를 보면 Java Virtual Machine (JVM) 외부(native code)에서 문제가 발생했고, JVM이 예상하지 못한 동작을 수행하면서 SIGSEGV (Segmentation Fault) 가 발생, 결국 프로세스가 강제 종료되었다는 내용입니다. 오늘은 이 오류의 원인과 해결 방법에 대해서 작성해 보겠습니다! ## A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0x00000000000207d6, pid=1, tid=7## JRE version: OpenJDK ..
2025.02.23 -
Spring boot API 프로젝트에 FCM 적용하기
대부분의 프로젝트에서 푸시 알림 기능은 필수 요소로 자리잡고 있으며, 많은 개발자들이 이를 구현하는 경험을 갖게 됩니다. 특히 모바일 앱이나 웹 애플리케이션에서는 Firebase Cloud Messaging(FCM)을 활용해 사용자에게 실시간으로 메시지를 이용하여 정보를 전달하는 것이 보편적입니다.이번 글에서는 Spring Boot API 프로젝트에 FCM Admin SDK 을 적용해 푸시 알림 기능을 구현하는 과정을 자세히 알아보도록 하겠습니다. API를 적용하는 가장 첫번째 방법은 바로 문서 확인이죠?! 문서를 먼저 확인해보고 옵시다!! 앱 서버 전송 요청 작성 | Firebase Cloud Messaging4월 9~11일, Cloud Next에서 Firebase가 돌아옵니다. 지금 등록하기 의견..
2025.02.15 -
Spring boot에 Swagger 적용하기
이번 게시글에서는 SpringDoc과 Swaager를 이용하여 API 문서를 생성하는 방법에 대하여 알아보려고 합니다. 저는 Spring security가 적용되어있는 환경을 기준으로 적용하였습니다. # build.gradle 의존성 추가하기 dependencies { implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' } # Open API Bean으로 등록하기 @Configuration public class SwaggerConfig { @Bean public OpenAPI api() { OpenAPI openAPI = new OpenAPI() // 보안 관련 .addSecurityItem(new SecurityRequir..
2024.02.23 -
Spring 그리고 Spring Boot
자바로 API 만드실 때 스프링/스프링 부트를 많이 쓰실 텐데요! 다들 스프링과 스프링 부트의 차이! 알고 계신가요? 오늘은 스프링과 스프링 부트의 차이점에 대하여 알아보겠습니다🔥 # Spring(Spring Framework) 자바 언어로 개발된 애플리케이션을 구축하기 위한 오픈 소스 프레임워크 경량 컨테이너, 의존성 주입, 관점 지향 프로그래밍, 웹 개발 등의 기능을 제공하여 효율적으로 애플리케이션 개발 가능 경량 컨테이너 : 객체의 생성과 생명주기를 관리하는데 도움을 주는 프레임워크 의존성 주입(Dependency Injection) : 객체가 필요로 하는 의존성을 외부에서 주입하여 결합도를 낮추는 디자인 패턴 관점 지향 프로그래밍(AOP) : 비즈니스 로직을 모듈화하여 코드 중복을 줄이는 프로그래..
2024.01.30 -
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