본문 바로가기

코딩 나도 할 수 있다!!

(33)
최종 프로젝트 이메일 인증 기술 설명 UsersControllerUsersController3는 사용자와 관련된 HTTP 요청을 처리하는 REST API 컨트롤러로, 이메일 인증 및 회원가입 프로세스를 관리합니다./create-code (GET)기능: 사용자가 이메일을 입력하면, 이 이메일로 인증 코드를 생성하여 발송합니다. 이 과정에서 Redis에 기존 인증 코드가 저장되어 있다면 이를 삭제하고, 새로 생성된 인증 코드를 저장합니다.사용 이유: 이메일 인증 절차를 시작하기 위해 사용자가 인증 코드를 받을 수 있도록 합니다. 또한, 중복된 인증 코드가 존재하지 않도록 기존 데이터를 삭제함으로써 혼란을 방지합니다. 사용자가 잘못된 인증 코드를 여러 번 요청하더라도, 가장 최신의 인증 코드만 유효하도록 관리합니다./create-code/{ema..
최종 프로젝트 Gmail SMTP SMTP란?SMTP(Simple Mail Transfer Protocol)는 이메일을 전송하고 라우팅하는 데 사용되는 표준 프로토콜입니다.주로 이메일 클라이언트와 이메일 서버 간의 통신에 사용되며, 인터넷에서 이메일을 전송하는 주요 방법 중 하나입니다.SMTP 서버란?SMTP 서버는 이메일 전송을 관리하는 서버로, SMTP를 사용하여 이메일 메시지를 송신하고 수신합니다.이 서버는 안정적이고 효율적인 이메일 통신을 가능하게 하며, 주요 기능으로 이메일 전송, 메일 라우팅, 발신자 인증, 에러 처리, 스팸 필터링 등이 있습니다.작동 원리는 이메일 클라이언트가 SMTP 서버에 연결하여 인증을 받은 후 이메일 메시지를 전송하는 것입니다.사용자가 메시지를 작성하고 전송하면, 클라이언트는 SMTP 서버에 인증을 요..
2024.06.27 (목) 오류 수정 지금 진행 중인 과제에서 사소한 오류?라고 보기는 힘들지만내가 원하는 오류메세지가 표기되지 않아 약간 수정을 했다Swagger에서 테스트할 때닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성되어야 합니다이런 메세지가 출력되어야 한다 @field:Pattern( regexp = "^[a-zA-Z0-9]{3,}$", message = "닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성되어야 합니다")이렇게 해놓으면 오류 메세지가 나오기는 하지만 내가 원하는 건Swagger에서 이 메세지가 나와야 한다그래서 if 문을 사용하였다if (request.name.length > 3) throw IllegalArgume..
2024.06.25 (화) 조회수&좋아요 작업 게시글 조회수 작업과 좋아요 작업을 진행했다먼저 조회수부터 살펴보자컨트롤러 부분에서는 딱히 수정할게 없다Post Entity에 @Column(name = "view_count")var viewCount: Long = 0,이걸 추가하고fun Post.toPostResponse(): PostResponse = PostResponse( id = id!!, title = title, content = content, viewCount = viewCount, createdAt = createdAt,)여기에 viewCount를 추가한다 그리고 Service 쪽에post.viewCount()이것을 추가하고return에 viewCount = post.viewCount,이것을 추가한다그러면@T..
2024.06.24 (월) 페이징 과제에서 페이징을 하라는 조건이 있었다먼저 @GetMappingfun getPostList(): ResponseEntity> { return ResponseEntity.ok(postService.getPostList())}이렇게 전체 포스트를 조회할 수 있는 부분에서 @GetMapping("/search")fun getPostPage( @PageableDefault(size = 10, sort = ["createdAt"]) pageable: Pageable, @RequestParam(value = "title", required = false) title: String): ResponseEntity> { return ResponseEntity.ok(postService.getPost..
2024.06.21 (금) 복습 과제 코드 수정 기본 CRUD에서 살을 붙여보기로 했다  회원가입에 사용되는 request는 이렇다data class SignUpRequest( @field:Pattern( regexp = "^[a-z0-9]{3,9}+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+\$", message = "@ 앞의 문자열이 최소 3자이상, 9자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성된 이메일이어야 합니다." ) val email: String, @field:Pattern( regexp = "^[a-zA-Z0-9]{3,}\$\n", message = "닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성되어야 ..
2024.06.13 (목) 주문 CRUD 어제에 이어서 오늘은 주문에 대한 CRUD 작성을 하였다너무 CRUD만 하는 거 아니냐?라고 의문이 들 수 있지만기본을 탄탄하게 다져놔야 다음 단계를 넘어갈 때 쉽게 넘어갈 수 있다고 생각한다먼저 Controller이다@RestController@RequestMapping("/products/{productId}/orders")class OrderController( private val orderService: OrderService,) { @GetMapping fun getOrderList(): ResponseEntity> { return ResponseEntity.ok(orderService.getOrderList()) } @GetMapping("/{order..
2024.06.12 (수) 다시 CRUD 시작 이번 프로젝트에서 내가 담당한 부분이 쇼핑몰의 상품, 주문의 CRUD 작성이었다일단 상품에 맞는 CRUD 작성을 먼저 하였다 @RestController@RequestMapping("/products")class ProductController( private val productService: ProductService) { @GetMapping fun getProductList( ): ResponseEntity> { return ResponseEntity.ok(productService.getProductList()) } @GetMapping("/{productId}") fun getProduct( @PathVariable productI..