Spring Framework/Spring boot

Spring Framework/Spring boot

[Springboot] Java Optional의 orElseThrow(), orElseGet() 사용법 - orElseThrow로 예외 처리 및 코드 가독성 높이기

Optional 클래스란 Optional 클래스는 null을 처리하는 방법을 개선하기 위해 도입된 클래스로, 값이 있을 수도 있고 없을 수도 있는 상황을 처리하는 데 사용됩니다. Optional 객체는 값을 감싸는 래퍼(wrapper) 역할을 하며, 값이 존재하지 않는 경우에 대한 처리를 표현적으로 표현하는데 유용합니다. orElseThrow() orElseThrow() 메서드는 자바 8부터 도입된 Optional 클래스의 메서드 중 하나입니다. 스프링 애플리케이션에서 자주 사용되는 메서드 중 하나입니다. orElseThrow() 메서드는 Optional 객체에서 값을 꺼내오는 메서드로, 값이 존재하는 경우에는 해당 값을 반환하고, 값이 없는 경우에는 지정된 예외를 발생시킵니다. 이를 통해 Optiona..

Spring Framework/Spring boot

Spring security 기본 설정, SecurityConfig 설정, 회원가입 구현 - authorizeHttpRequests(), anyRequest() 설정 값 이해하기

Spring Security란 무엇인가?: 스프링 프레임워크 기반의 보안(인증과 권한 부여)을 다루기 위한 보안 프레임워크입니다.스프링 시큐리티는 웹 애플리케이션, Restful 서비스, 메서드 수준의 보안까지 다양한 보안 요구사항을 지원하며, 많은 기능과 확장성을 제공하여 안전하고 효과적인 애플리케이션 보안을 구현하는 데 사용합니다. Spring Security의 주요 기능과 개념 1. 인증(Authentication): 사용자의 신원을 확인하는 과정으로, 스프링 시큐리티는 다양한 인증 방식을 지원합니다. 기본적으로 form 기반의 로그인, HTTP 기본 인증, Remember Me 인증, OAuth, LDAP 등 다양한 인증 프로토콜을 지원합니다. 2. 권한 부여(Authorization): 인증된 ..

Spring Framework/Spring boot

[JSON] JSON이란 빠른 데이터 교환 형식, Springboot Jackson 라이브러리를 이용해 JSON - Object 변환하기

JSON이란 무엇인가? : JSON은 JavaScript Object Notation 철자로, 데이터 교환 형식을 의미합니다. 사람이 읽고 쓰기에 용이하며, 기계가 파싱하고 생성하기도 간단한 형식입니다. 주로 웹 애플리케이션에서 데이터를 교환하고 전송하는 데 사용됩니다. JSON은 자바스크립트의 객체 표기법을 기반으로 하며, 다양한 프로그래밍 언어에서 지원됩니다. JSON을 통해 우리는 서로 다른 프로그래밍 언어로 개발하고 있어도 빠르고 간편하게 데이터를 주고받을 수 있습니다. JSON의 특징: 1. 간결하고 가독성이 좋음: JSON은 텍스트 기반 형식이므로 사람이 읽고 쓰기가 쉽습니다. 중첩된 데이터 구조를 사용하여 복잡한 데이터를 표현할 수 있으며, 인덴팅을 사용하여 계층 구조를 시각적으로 파악할 수..

Spring Framework/Spring boot

[Gradle] 빌드 도구 Gradle이란, Gradle 자동화 방식 파악하기

Gradle이란 무엇인가? : Gradle은 Maven과 Ant의 장점을 결합한 형태로 개발된 현대적인 빌드 자동화 도구입니다. Java, Kotlin, Groovy 등 다양한 프로그래밍 언어를 지원해 줍니다. 저는 SpringBoot 프로젝트를 생성할 때 Gradle을 통해 프로젝트 및 의존성을 설정을 하는데 이용해 봤습니다. 빌드 자동화(CI)란? : CI는 개발자들이 코드 변경 사항을 빈번하게 통합하고 테스트하는 방식으로 작업을 진행하는 소프트웨어 개발 방법론입니다. 이를 통해 개발자들은 작은 코드 변경 사항들을 자주 반영하고, 통합 오류를 최소화하여 더욱 안정적인 소프트웨어를 공할 수 있습니다. Gradle을 사용하는 주목적은 프로젝트의 의존성 관리, 빌드 설정, 테스트, 배포 등을 효율적으로 처..