본문 바로가기

Spring Boot

(55)
[Spring Boot] Validation 유효성 검사 유효성 검증의 필요성클라이언트가 회원가입 요청을 보낼 때, 서버는 사용자의 이름, 나이, 이메일, 아이디, 비밀번호, 생일, 가입 날짜 등이 올바른 형식인지 확인해야 합니다. 예를 들어:이름을 입력하지 않았을 때는?나이가 -10살이나 200살일 때는?비밀번호가 "123"처럼 보안에 취약할 때는?이러한 검증을 if 문을 통해 하나하나 확인할 수 있지만, 검증할 항목이 많아질수록 코드의 길이는 길어질 수밖에 없습니다. 각 항목에 대해 개별적으로 검증하면 코드가 길어지고 중요한 서비스 로직이 누락될 수 있습니다.Spring Boot에서 유효성 검증이러한 문제를 쉽게 해결하기 위해 Spring Boot에서는 spring-boot-starter-validation 의존성을 사용할 수 있습니다. Validation..
[Spring Boot] Web에서 응답 만드는 방법 - Response Entity Spring Boot에서 응답을 만드는 방법Spring Boot에서 응답을 생성하는 방법에는 4가지가 있습니다.String일반 Text Type 응답Object자동으로 JSON 변환되어 응답 상태값은 항상 상태 코드 200(OK)ResponseEntityBody의 내용을 Object로 설정하고 상황에 따라서 HTTP 상태 코드를 설정@ResponseBodyRestController가 아닌 Controller에서 JSON 응답을 내릴 때 사용 ResponseEntity 반환ResponseEntity는 Object 타입으로 반환할 때보다 조금 더 상세하게 반환하고 싶을 때 사용하는 방식입니다.알아두어야 할 것@RestController는 기본적으로 JSON을 반환하는 라우터입니다. String 타입으로 반환..
[Spring Boot] Rest API Put 메서드 + boolean is 변수명의 문제점 Method의미CRUD멱등성안전성Path VariableQuery ParameterDataBodyGET리소스 취득R (Read)OOOOXPOST리소스 생성, 추가C (Create)XXO△OPUT리소스 갱신, 생성U / CUpdate, CreateOXO△O PUT 메서드PUT 메서드는 기본적으로 데이터를 갱신하며, 갱신할 데이터가 없을 시에는 새로운 데이터를 생성하는 역할을 합니다.특징:Path Variable: 가질 수 있습니다.Query Parameter: 사용할 수는 있지만 데이터를 필터링하는 역할로 사용하기에는 적합하지 않습니다.DataBody: 가질 수 있습니다.멱등성과 안전성PUT 메서드는 멱등성을 가집니다. 즉, 같은 요청을 여러 번 보내더라도 결과가 항상 동일하게 유지됩니다. 하지만 데이터가..
[Spring Boot] Rest API Post 메서드 Method의미CRUD멱등성안전성Path VariableQuery ParameterDataBodyGET리소스 취득R (Read)OOOOXPOST리소스 생성, 추가C (Create)XXO△O POST 메서드POST 메서드는 리소스를 생성하거나 추가하는 역할을 합니다. 이는 CRUD에서 Create를 담당합니다.특징Path Variable: 가질 수 있습니다.Query Parameter: 사용할 수 있지만, 주로 사용하지 않습니다.DataBody: 가질 수 있습니다.Query Parameter 사용의 문제점Query Parameter는 웹 애플리케이션에서 특정 데이터나 리소스를 필터링하거나 검색하는 데 사용됩니다. 하지만 다음과 같은 문제점이 있습니다:주소 노출: Query Parameter는 URL에 포함..
[Spring Boot] Rest API GET 메소드(2) GET 메소드 간단한 응답 코드 구현클래스 경로 라우터 지정하기@RequestMapping("/경로")는 클래스에 사용되어 해당 경로로 오는 요청을 해당 클래스에서 처리할 수 있게 합니다.이를 사용하면 코드의 가독성과 유지보가 쉬워집니다.예시 코드: import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api") // 클래스에 @RequestMapping("/경로")를 지정한다p..
[Spring Boot] Rest API GET 메소드(1) REST API에서 GET이란 URI 주소를 통해 접속을 했을 때 서버에 데이터를 요청하는 메소드입니다 Method의미CRUD멱등성안전성Path VariableQuery ParameterDataBodyGET리소스 취득R (Read)OOOOX 멱등성멱등성은 요청의 효과라는 의미로, 같은 행위를 여러 번 반복하더라도 같은 효과를 가져야 함을 의미합니다.예를 들어, A라는 행동을 여러 번 시도했을 때 결과가 항상 A인 것을 의미합니다. 안전성안전성은 서버 측의 상태 정보를 변경하지 않는 메소드를 가리킵니다.예를 들어, 구글에 접속을 100번 하더라도 서버 데이터는 변경되지 않습니다. Path VariableURI 주소에 변수를 포함하여 가변적인 주소를 설정할 수 있습니다. 이를 통해 특정 리소스를 지칭할 수 ..
자바 백엔드 개발자가 알아야 할 지식 클라이언트와 서버 클라이언트란?클라이언트는 서버에 요청을 보내는 모든 프로그램을 일컫는 말입니다. 대표적으로 웹 브라우저가 클라이언트 중 하나입니다.웹 브라우저에서 주소를 입력하고 화면을 확인할 때, 주소를 입력한 뒤 Enter를 눌러 정보를 요청하는 행위를 서버에 요청한다고 합니다. 그러면 서버는 그 주소에 맞는 화면을 응답합니다. 예시로 네이버 주소를 검색하면, 당신은 네이버 서버로 요청을 보낸 것입니다.서버란?서버는 클라이언트의 요청을 처리하는 주체입니다. 클라이언트가 데이터를 요청했다면 데이터를 제공하고, 서버 내에서 처리만 해달라고 요청하면 해당 요청만 처리할 수 있습니다. 흔히 우리가 웹 브라우저에 주소를 입력하는 것은 새로운 화면을 그리기 위한 데이터를 달라는 요청에 해당합니다.  정확한 예..