프로젝트 환경최종적으로 서비스 이용자는 서비스를 이용한 후 후불 결제를 진행하며, 이를 위해 결제 시스템을 도입해야 했습니다. 실제로 PG(Payment Gateway)를 연동하려면 사업자 등록과 보안 인증 등 여러 제약 사항이 있기 때문에, 보다 간편한 토스 페이먼츠를 도입하기로 결정했습니다. 위와 같은 흐름으로 요청/응답이 이루어지게 됩니다. 토스 페이먼츠에서 제공하는 결제창은 웹 브라우저 환경에서 JavaScript SDK를 통해 렌더링되어야 합니다. 따라서 [결제 하기] 웹 페이지를 간단하게 만들었습니다. 문제 상황토스 페이먼츠에서 제공하는 결제창을 띄우고 결제를 하고나서 최종적으로 승인 API를 토스 페이먼츠에게 요청을 하게 됩니다. 위와 같이 결제 요청을 한다면 결제 알람이 오고, [동의하..
Trouble Shooting
문제 상황 문제 코드 @PostMapping public GlobalResponse uploadMultimedia( @RequestParam("file") MultipartFile file, @ModelAttribute MultimediaDto.Request requestDto ){ MultimediaDto.Response responseDto = multimediaService.uploadMultimedia(file,requestDto); return ApiUtils.success(ResponseMessage.MULTIMEDIA_UPLOAD_SUCCESS.getMessage(),responseDto); } API 요청..
문제 상황게시판의 좋아요 기능 구현을 하고 있었습니다. 게시판 좋아요 기능의 로직은 다음과 같습니다.@Transactional public LikeResponseDto toggleLike(UUID postId, Long userId) { Post post = postService.getPostById(postId); Like like = likeRepository.findFirstByPostAndUserId(post, userId) .orElse(new Like(post, userId)); // 좋아요 상태 토글 like.toggleLikeStatus(); likeRepository.save(like); ..
문제 상황@Entity@Table(name = "p_posts")@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Post extends BaseEntity { public void incrementViews(){ this.views++; }} @Transactional public PostResponseDto getPost(UUID postId) { Post post = postRepository.findByPostId(postId) .orElseThrow(() -> new GlowGlowException(GlowGlowError.POST_NO_EXIST)); ..