[Photogram] 회원가입 - 공통 응답 DTO, Script 만들기

2022. 7. 8. 08:24·🚗 Backend Toy Project/Photogram
  • 이전시간까지 우리는 Validation 체크를 통해 유효성 검사에 실패할 경우 사용자에게 아래와 같은 페이지가 보여지도록 구현하였습니다.

  • 허나 유효성 검사에 실패하였다고 해서 페이지가 강제 이동되며 위와 같은 메시지가 보여진다면 그렇게 좋은 사용자 경험은 아닐 것입니다. 따라서 오늘은 이 부분을 조금 수정해보려고 합니다.

📝 1. 공통 응답 DTO

  • 첫 번째 방법으로 공통 응답 DTO를 생성하여 해당 DTO를 통해 사용자에게 오류 메시지를 전달하는 방식입니다.
package com.cos.photogram.web.dto.auth;

...

@Data
@NoArgsConstructor
@AllArgsConstructor
public class CMRespDto<T> {
 
	private int code;	//1: 성공, -1: 실패
	private String message;
	private T data;
}
  • 해당 방법을 사용할 경우 아래와 같은 결과가 나타납니다.

  • 하지만 이 역시도 우리가 처음에 생각했던 문제점을 보완하는 해결책은 아닐 것입니다.
  • 해당 방식은 이후 AJAX 통신과 함께 사용할 것으로 남겨두도록 하겠습니다.

📝 2. 공통 응답 Script

  • 두 번째 방법으로 공통 응답 Script를 생성하여 클라이언트에서 응답하는 방법입니다.
  • 이 방법을 사용하기 위해 우선 아래와 같이 서버 단에서 StringBuffer를 통해 HTML 코드를 작성해주었습니다.
package com.cos.photogram.util;

public class Script {

	public static String back(String msg) {
		StringBuffer sb = new StringBuffer();
		sb.append("<script>");
		sb.append("alert('" + msg + "');");
		sb.append("history.back();");
		sb.append("</script>");
		
		return sb.toString();
	}
}
  • 이후 ExceptionHandler 또한 조금 수정해주었습니다.
package com.cos.photogram.handler;

...

@RestController
@ControllerAdvice
public class ControllerExceptionHandler {

	@ExceptionHandler(CustomValidationException.class)
	public String validationException(CustomValidationException e) {
		return Script.back(e.getErorrMap().toString());
	}
}
  • 해당 방법을 사용하면 클라이언트가 원하는 방식의 오류 처리를 수행할 수 있으며 그 결과는 아래와 같습니다.

팝업창으로 오류 메시지가 출력되며 이후 다시 회원가입 페이지(back)로 이동합니다


 

GitHub - Daegwon-Kim/SpringBoot-Photogram

Contribute to Daegwon-Kim/SpringBoot-Photogram development by creating an account on GitHub.

github.com

 

저작자표시 (새창열림)

'🚗 Backend Toy Project > Photogram' 카테고리의 다른 글

[Photogram] 회원정보 수정  (0) 2022.07.09
[Photogram] 로그인  (0) 2022.07.08
[Photogram] 회원가입 - Validation  (0) 2022.07.07
[Photogram] 회원가입 - 데이터베이스 저장  (0) 2022.07.07
[Photogram] 회원가입 - Security 설정  (0) 2022.07.05
'🚗 Backend Toy Project/Photogram' 카테고리의 다른 글
  • [Photogram] 회원정보 수정
  • [Photogram] 로그인
  • [Photogram] 회원가입 - Validation
  • [Photogram] 회원가입 - 데이터베이스 저장
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[Photogram] 회원가입 - 공통 응답 DTO, Script 만들기
상단으로

티스토리툴바