Spring Boot9 PUT vs PATCH 차이점 개념 PUTPATCH의미전체 수정부분 수정리소스 변경 방식기존 데이터를 완전히 덮어씀일부 필드만 수정 가능보내는 데이터 형태전체 객체를 포함변경할 필드만 보냄RESTful 원칙멱등성(같은 요청을 여러 번 보내도 결과 동일)보장 X (서버 구현 방식에 따라 다름) 예시@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private Long id; private String name; private String email; private String address;} PUT 사용/요청 예시@PutMapping("/users/{id}")public ResponseEntity updateUser(@PathVariable Long.. 2025. 2. 27. Spring 예외 처리 GlobalExceptionHandler 사용 이유 스프링으로 CRUD를 만들 때 GlobalExceptionHandler를 만든 이유 컨트롤러 안에서 예외를 직접 처리하지 않고 전역적으로 관리하기 위함. @ControllerAdvice 없이 컨트롤러에서 예외를 처리하면 모든 메서드마다 try-catch가 들어가서 코드가 길어진다.@RestController@RequestMapping("/users")public class UserController { @PostMapping public ResponseEntity createUser(@RequestBody UserRequest request) { try { User user = userService.createUser(request); .. 2025. 2. 27. RequestDto, ResponseDto 사용하는 이유 1. 명확한 역할 분리RequestDto : 클라이언트가 서버로 보낼 데이터(요청)ResponseDto : 서버가 클라이언트에게 돌려줄 데이터(응답)입출력 구조 명확하게 분리 가능 2. 보안성 강화엔티티를 그대로 요청/응답에 사용하면 민감한 데이터가 노출될 가능성이 있다.예를 들면, password같은 정보를 그대로 응답해주면 보안 사고로 이어질 수 있다.그래서 ResponseDto를 따로 만들어서 필요한 데이터만 담아 보내면 막을 수 있다. 3. 엔티티 보호 (유지보수성 향상)엔티티 구조는 서비스의 비즈니스 로직에 따라 변할 가능성이 크다.엔티티를 그대로 사용하면 API 스펙이 바뀌면서 클라리언트와 충돌이 발생할 수 있다.Dto를 사용하면 엔티티 구조가 바뀌어도 API의 응답 형식을 일정하게 유지할 수.. 2025. 2. 20. private final vs autowired 차이점 private final한 번 값이 설정되면 바꿀 수 없다.목적 : 객체가 생성될 때 초기값이 정해지고 이후 변경되지 않도록 보장.public class UserService { private final UserRepository userRepository public UserService(UserRepository userRepository) { // 생성자를 통해 값 설정 this.userRepository = userRepository; }}private final 덕분에 userRepository는 처음 할당된 이후 변경할 수 없음. @AutowiredSpring이 자동으로 객체(빈, bean)를 넣어주는 기능.목적 : 직접 객체를 만들지 않고, Spring이 관리.. 2025. 2. 14. RequestParam vs PathValue 차이 @RequestParam쿼리 스트링 또는 폼 데이터에서 값을 가져옴URL에서 ?key=value 형식으로 전달되는 값.값이 없어도 되는 선택적이며, 기본값 설정 가능.@GetMapping("/dogs")public String getDogInfo(@ReqeustParam String name) { return "반려견 이름: " + name;} 요청 예시:Get /dogs?name=몰리 결과:반려견 이름: 몰리 @PathVariableURL 경로의 일부를 변수로 사용/{value} 형태로 값을 전달@GetMapping("/dogs/{name}")public String getDogInfo(@PathVariable String name) { return "반려견 이름: " + name;} 요청 예시:GE.. 2025. 2. 13. [Spring Boot] HTTP 상태 코드 (HTTP Status Code) HTTP 상태 코드서버에게 클라이언트가 보낸 request에 대한 서버의 response.응답은 첫 번째의 숫자에 따라 5개 그룹으로 나눈다. Informational responses (정보 제공)100Continue요청의 일부를 수신했으며 계속 진행해도 좋음.101Switching Protocol프로토콜 변경 요청이 수락되었음을 나타냄. Successful Responses (성공)200Ok요청이 성공적으로 처리되었음. 주로 GET/POST 요청의 성공 응답으로 사용.201Created요청이 성공적으로 처리되었으며, 새로운 리소스가 생성되었음.204No Content요청이 성공적으로 처리되었지만, 응답 본문에 데이터가 없음 Redirection messages (리다이렉션)301Moved Perman.. 2024. 12. 19. 이전 1 2 다음