WEB(31)
-
이메일 인증을 처리하는 방식: @GetMapping 대신 @PostMapping 사용 이유
이메일 인증을 구현하면서, /email/verify 엔드포인트가 @GetMapping이 아닌 @PostMapping이어야 하는 이유를 알게 되었습니다. 처음에는 @GetMapping이 적합할 것이라고 생각했지만, 여러 이유로 @PostMapping을 사용하는 것이 더 적합함을 깨달았습니다. 이번 블로그에서는 그 이유를 정리해 보겠습니다.1. 데이터 변경과 상태 변화@GetMapping은 보통 서버의 상태를 변경하지 않고 데이터를 조회하는 요청에 사용됩니다. 하지만 이메일 인증은 사용자가 입력한 인증번호를 서버에서 검증하고, 그 결과에 따라 인증 상태를 변경하는 상태 변화가 발생하는 작업입니다.예를 들어, 인증이 성공하면 사용자의 계정 상태를 활성화해야 할 수도 있습니다. 이런 이유로 인증 처리 작업은 서..
2025.02.19 -
@PutMapping, @PatchMapping, @GetMapping, @PostMapping 에 관하여...
📌 주제: "온라인 쇼핑몰 (E-commerce)"상품을 조회 (@GetMapping)새로운 상품을 추가 (@PostMapping)상품 정보를 수정 (전체 변경) (@PutMapping)상품 정보를 수정 (부분 변경) (@PatchMapping)✅ 1. @GetMapping (조회)👉 사용자가 특정 상품 정보를 조회할 때@GetMapping("/products/{id}")public ResponseEntity getProduct(@PathVariable Long id) { ProductResponseDto product = productService.getProductById(id); return ResponseEntity.ok(product);}✨ 설명GET /products/1 같은 요..
2025.02.15 -
DTO를 Request, Response로 나누는 이유
DTO(Data Transfer Object)를 request와 response로 나누는 이유는 입력과 출력의 역할이 다르기 때문.📌 주제: "도서 관리 시스템" (Library Management System)사용자가 책을 추가할 때 Request DTO사용자가 책 정보를 조회할 때 Response DTO✅ 1. Request DTO (입력)클라이언트 → 서버로 데이터를 보낼 때 사용주로 POST, PUT, PATCH 요청에서 사용됨유효성 검사(ex: @Valid, @NotNull)를 적용할 수 있음데이터베이스 엔티티와 1:1 매핑되지 않아도 됨 (클라이언트가 필요한 데이터 구조를 따름)package com.example.library.dto.request;import lombok.Getter;imp..
2025.02.15 -
Spring 자동 재시작
spring을 사용하면서 재시작 버튼을 누르는게 너무 귀찮다... 그래서 찾아봤더니 Spring 재시작 버튼을 안눌러도 자동으로 재시작 해주는 기능을 찾았다. 일단 첫번째로 지금 쓰고 있는 프로젝트에 build.gralde - dependencies에 아래 코드를 추가해준다developmentOnly 'org.springframework.boot:spring-boot-devtools' 두번째로는 Build, Exeution, Deployment > Compiler > Build project autiomaically 체크 세번째로는 Advanced Settings > Allowauto-make to start even if developed application is currently running ..
2024.07.25 -
Spring #5 MVC와 템플릿 엔진
이번에는 MVC 패턴에 대해서 알아보겠습니다 MVC : Model, View, Controller 로써, 앞 글자를 따와서 MVC라는 단어가 생성이 되었습니다Spring에서는 관심사를 분리하기 위해서 MVC패턴을 사용합니다. 그럼 코드를 직접 짜보겠습니다! package helloo.helloo_spring.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;@Controller..
2024.07.16 -
Spring #4 정적 컨텐츠
Spirng 에서 정적 컨텐츠는 Controller에서 따로 Mapping 해주는것이 아니라 사용자가 직접 링크를 입력해서 들어가는 페이지를 정적 컨탠츠라고 한다. 그럼 직접 한번 만들어보겠습니다. resources/static/hello-spring.html 생성hello-spring page (정적 컨텐츠) 이후 Spring을 다시 실행한후 자신의 로컬 주소를 입력한 후 뒤에 /hello-spring.html을 입력해주면 이런 페이지가 나오는걸 볼 수 있다. Spring Boot에서 resources/static 디렉토리에 정적 파일을 생성하면 Spring에서 자동으로 매핑되어서 URL을 통해 접근이 가능하다.위에서 hello-spring.html 파일을 생성했으므로, http://localhos..
2024.07.16