본문 바로가기

분류 전체보기

(63)
최종 프로젝트 이메일 인증 기술 설명 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.20 (목) 복습 과제 오늘은 복습 과제를 했다인증/인가, CRUD를 작업하였다 처음에는 기본 CRUD로 시작하였다시작은 순조로웠다 잘하고 싶은 마음에 저번 팀 프로젝트에서 코드를 가져와 그대로 썼다@Transactional fun createComment(postId: Long, request: CommentRequest): CommentResponse { val member = memberService.getMember() if (!commentRepository.existsByPostIdAndMemberId(postId, member.id)) throw IllegalArgumentException("Post with id $postId does not exist") ..
2024.06.18 (화) 프로젝트 회고 오늘 한 주 동안 달렸던 프로젝트가 끝이 났다나의 노력이 부족한지 나의 이해력이 부족한지 아직 할 수 있는 것들이 많이 없다기본 CRUD는 이제 어느 정도 할 수 있다고 생각한다그다음이 문제다할 수 있는 게 없었다아직 시큐리티 부분은 다 이해가 되지 않았고어느 순간 뭘 하는지도 모를 상황이 왔다 심각했다앞으로의 미래가 좀 걱정이 된다남은 기간 동안 하나를 알더라도 깊게 알아가는 나 자신이 돼야겠다그리고 하나만 할 수 있다면 그걸 눈 감고도 할 수 있도록 더 노력해야겠다