▶ Back-End/Java55 SNS 간편로그인 - 카카오 로그인 API 호출 및 사용자 정보 받기 Spring Boot에서 RestTemplate을 통해 카카오 Open API를 호출하여 사용자 정보 받기 *SNS 간편로그인 - 카카오 API 사용 등록 방법 완료 후 진행(관련 글 참고) *프로세스는 아래 카카오 공식 문서 참고(구글과 네이버 모두 동일)*Swagger3 관련 소스 포함*자세한 설명 생략 ▷ application.properties 설정#KAKAOkakao.client.id="KAKAO에서 제공한 Client ID"kakao.redirect.uri="KAKAO에 설정한 Redirect URI" ▷ kakao.html*로그인 화면(간단히 버튼만 생성) 카카오 로그인 테스트 ▷ CmmUtil.java*공통 유틸리티/.. 2024. 7. 11. RestTemplate Post 요청 보내기 RestTemplate로 Post 요청을 보내고, 응답 코드를 확인하는 메서드*Header 값(Authorization)만 추가하고, Body는 빈 값으로 요청*자세한 설명 생략 /** * POST 요청 */public static boolean sendPost(String jwt) { boolean result = false; try { // RestTemplate 객체 생성 RestTemplate restTemplate = new RestTemplate(); // 요청 URL String url = "http://요청IP:요청PORT/요청주소/go.do"; // HTTP 헤더 설정 HttpHeaders head.. 2024. 7. 4. LocalDate Jackson Data Format 변경 Java8 Jackson ObjectMapper 직렬화 시LocalDate 타입을 timestamps Format에서 dates Format으로 변경하는 방법*자세한 설명 생략 *직렬화(Serialization) : Java Object → JSON String*역직렬화(Deserialization) : JSON String → Java Object ▷ 변경 전*timestamps Format(Jackson 기본 형식){ "visitDates": { "year": 2023, "month": "NOVEMBER", "monthValue": 11, "dayOfMonth": 23, "leapYear": false, "dayOfWeek": "THURSDAY", "dayOfYear": 327, "e.. 2023. 11. 23. @RestControllerAdvice - 전역 예외 처리 @RestControllerAdvice를 사용해 모든 Controller에 대한 예외 처리를 한 곳에서 관리 및 처리*공통 에러 메시지 및 이외 예외들을 공통 처리 하는 예제*자세한 설명 생략 ▷ @RestControllerAdvice란? - Application 전역 예외 처리 Annotation - Project 하나의 @ControllerAdvice만 관리하는 것을 권장 - @Controller Annotation이 붙은 Controller에서 발생하는 예외를 처리 - @ResponseBody가 있어 JSON 응답 *@ControllerAdvice 차이 - @ExceptionHandler를 통해 처리 *Method 범위 E.. 2023. 11. 17. Swagger UI Hangs on Big Json Respones 해결 방법 Swagger UI에서 많은 양의 응답 값을 받게 되면 버벅 거리는 문제 발생*자세한 설명 생략 ▷ 요약 문제 : Swagger UI syntaxHighlight로 인한 Big Json Response 처리 시간문제 해결 : application.properties에 springdoc.swagger-ui.syntaxHighlight.activated= false 추가 ▷ 해결 방법*application.properties에서 Swagger UI SyntaxHighlight 기능off # Swagger# Swagger UI syntaxHighlight Settingspringdoc.swagger-ui.syntaxHighlight.activated= false ▷ 결과 화면*SyntaxHighlight.. 2023. 10. 18. Swagger3 JWT 인증 설정 Swagger UI에서 API 테스트 시 JWT 인증을 위한 추가 설정*이전 글에 이어서 작업(관련 글 참고)*자세한 설명 생략 ▷ Swagger-ui 추가 설정 *@SecurityScheme 사용 속성태그속성설명@SecurityScheme 인증 스키마 정보를 설정type인증타입 (APIKEY, HTTP, OPENIDCONNECT, OAUTH2)in인증키 입력 위치(HEADER, QUERY, COOKIE)name인증 스키마 명description인증 스키마 설명 *@OpenAPIDefinition 사용 속성태그속성설명@SecurityRequirementnameSwagger-ui에서 사용할 인증 스키마 /** * Swagger3 * */@OpenAPIDefinition( info = @Inf.. 2023. 10. 18. Swagger 연동 및 설정 방법 Spring Boot + Swagger 연동 방법과 간단한 설정 방법*maven project에서 springdoc(swagger3)으로 진행*자세한 설명 생략 ▷ Swagger3 연동*dependency 이후 바로 사용 가능 ① pom.xml springdoc dependency org.springdoc springdoc-openapi-ui 1.7.0 ▷ Swagger3 명세서 작성 방법 *Swagger3 주요 Annotation태그속성설명@Tag Controller 명세nameAPI 그룹 명descriptionAPI 그룹 설명@Operation API 명세summaryAPI 설명descriptionAPI 상세 설명@Schema Model 명세descriptionModel 설명def.. 2023. 10. 18. 로그파일 생성과 관리(logback-spring.xml) 로그파일을 생성하고 관리를 위한 반복 정책을 설정하는 방법*자세한 설명 생략 ▷ logback-spring.xml *Cassandra 관련 부분은 무시(다양한 로그를 한 파일에 담을 수 있다.) ${LOG_MSG_PATTERN} %green(%d{yyyy-MM-dd HH:mm:ss} [%-5level] : %msg %n) ${LOG_FILE_MSG_PATTERN} .. 2023. 10. 17. 요청 필드 값 공통 체크 API 별 다른 요청 필드 값을 체크하는 메서드*상황에 따라 변경해서 사용*자세한 설명 생략 /** * 요청 필드 값 공통 체크 * * [체크 리스트] * 1. JWT VERIFY * 2. 요청 필드 값 체크 * * * @param req * @param reqVO * @param resVO * @return CmmResVO */public CmmResVO fieldsCheck(HttpServletRequest req, Object reqVO, CmmResVO resVO) { try { /** JWT 체크 */ if (!"0000".equals(JWTVerify(req, resVO).getResultCode())) { return resVO; .. 2023. 10. 12. 이전 1 2 3 4 5 ··· 7 다음 728x90 728x90