overview 아무 생각없이 ip 를 가져와 보고 싶었다. 클라이언트 ip 를 가져오게 되면 좀 괞찬은 프로젝트를 할 것 같아서 .. 필터 구축 필터 등록 문서 https://khrdev.tistory.com/entry/Java%EB%A1%9C-Client-IP-%EC%B0%BE%EB%8A%94-%EB%B0%A9%EB%B2%95 Java로 Client IP 찾는 방법 Java로 개발을 하다 보면 로그인 이력을 남기거나 하는 상황에 Client IP를 데이터베이스에 Insert 하는 로직을 만들어야 하는 경우가 생길 수 있다.. 크게 2가지의 방법이 존재하는데 하나하나 설명 khrdev.tistory.com https://developer.mozilla.org/ko/docs/Web/HTTP/Headers..
SpringBoot
Overview Stomp 메시지에 대해서 간!단!히! 해보자 저번에 했던것들을 보면서 아 잘못적은것도 많고 아직 안되는 부분도 많지만 딱 핵심적인 부분만 보자 코드위주로 보게 될것이다. config handler controller service JDK : 17 Springboot : 3.2.~ // websocket implementation 'org.springframework.boot:spring-boot-starter-websocket' 1. Config 첫번째 설정파일이다. 따로 이야기를 할 것은 WebSocketMessageBrokerConfigurer 을 상속받아 사용한다. 1. registerStompEndpoints 는 엔드포인트를 지정한다. 한마디로 http://localhost:포트..
문서 참조 https://wildeveloperetrain.tistory.com/144#google_vignette @RequestBody @ResponseBody 어노테이션 이해하고 사용하기 클라이언트와 서버의 통신(HTTP) @RequestBody, @ResponseBody Annotation을 이해하기에 앞서, 클라이언트와 서버 간 통신에 대해서 먼저 간단하게만 살펴보겠습니다. HTTP(HyperText Transfer Protocol) 통신이란, 브 wildeveloperetrain.tistory.com HTTP 클라이언트와 서버의 통신(HTTP) @RequestBody, @ResponseBody Annotation을 이해하기에 앞서, 클라이언트와 서버 간 통신에 대해서 먼저 간단하게만 살펴보겠습..
Overview RestTemplate에 대해 이해해보자 RestTemplate HttpHeaders MultiValueMap HttpEntity URI , UriComponentsBuilder 모든 과정을 요약 1. RestTemplate 이란? RestTemplate은 스프링 프레임워크에서 제공하는 HTTP 클라이언트 라이브러리이며, RESTful 웹 서비스를 호출하고 그 결과를 받아오는 기능을 제공한다. 참조문서 https://adjh54.tistory.com/234 [Java] Spring Boot Web 활용 : RestTemplate 이해하기 해당 글에서는 RestTemplate에 대해 이해하고 활용 방법에 대해 확인해 봅니다. 1) RestTemplate 💡 RestTemplate - HTT..
@JsonNaming, @JsonProperty의 사용법을 소개하기에 앞서 사용할 코드를 작성하도록 하자. json으로 넘어오는 값이 아래와 같다고 가정하자(post든 put이든 ..) { "my_name": "kevin", "my_age": 20, "my_country": "korea" } 자바 Entity는 다음과 같다고 가정하자. @Data public class Student { private String myName; private String myAge; private String myCountry; } 컨트롤러는 다음과 같다. @RestController @RequestMapping("/api") public class StudentController { public void post(@Re..
0. OAuth 2.0 인증 방식에 이해 사용자가 자신의 계정 정보를 직접 공유하지 않아도 서드 파티 애플리케이션들이 제한된 접근을 할 수 있게 해줍니다. 구분 설명 인증(Authentication) ID와 비밀번호로 사용자 신원을 확인 각 서비스에 사용자가 카카오계정으로 로그인할 수 있는 기능 지원서비스에서 각 사용자를 식별할 수 있는 고유한 회원번호 제공참고: https://developers.kakao.com/docs/latest/ko/kakaologin/common#oidc 지원, 로그인 세션 대신 사용 가능한 ID 토큰 제공 가능 인가(Authorization) 사용자 개인정보와 같은 자원(Resource)에 대한 접근 권한 획득https://developers.kakao.com/docs/lat..
참조 문서 https://velog.io/@tjddus0302/Spring-Boot-%EB%A9%94%EC%9D%BC-%EB%B0%9C%EC%86%A1-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-Gmail velog velog.io 목적 및 개요 프로젝트를 진행하던 중에 회원에게 메일을 발송하는 기능을 구현해야겠다는 생각이 들었다. 회원가입 시 이메일 인증을 하고, 비밀번호를 분실했을 때 임시 비밀번호를 발송하는 기능을 구현하였다. 메일을 발송하는 방법은 여러가지가 있지만 Gmail의 SMTP 서버를 활용하여 이메일을 발송하는 방법을 이용하여 기능을 구현해보았다. 개발 환경 Spring Boot 3.1.8 Java 17 eclipse 구글 계정 설..
Server to Server 💡 1. RestTemplate 사용 이유 RestTemplate은 Spring Framework에서 제공하는 HTTP 통신을 간편하게 처리할 수 있는 클래스입니다. org.springframework.web.client.RestTemplate 패키지에 존재 합니다. RESTful 웹 서비스와의 통신을 위해 주로 사용되고 기본적으로 동기 방식으로 처리되며, 비동기 방식으로 처리하고 싶을 경우 AsyncRestTemplate를 사용하면 됩니다. https://jsonplaceholder.typicode.com/ RestTemplate 대표적인 메서드 RestTemplate Method HTTP Method 설명 getForEntity GET get 요청을 보내고 Respons..
implements HandlerInterceptor? 밑과 같이 preHandle , postHandle , afterCompletion 중 선택해서 할 수 있다. 메서드 의미 preHandler Controller 로 들어가기 전에 동작 postHandle 뷰가 렌더링 되기 전에 호출되는 메서드 afterCompletion 요청 처리가 완료 된 후, 뷰 렌더링이 완료된 후 호출된다. /* * Copyright 2002-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with t..
1. @ModelAttribute와 @RequestBody @ModelAttribute와 @RequestBody는 Spring MVC에서 요청을 처리하는 데 사용되는 두 가지 다른 어노테이션입니다. @ModelAttribute: @ModelAttribute 어노테이션은 주로 HTML 폼 데이터를 컨트롤러 메소드의 매개변수로 바인딩하는 데 사용됩니다. 클라이언트에서 전송된 폼 데이터를 자동으로 객체로 변환하고, 이를 컨트롤러 메소드의 매개변수로 전달합니다. 이 어노테이션을 사용하면 스프링은 매개변수로 선언된 객체를 자동으로 생성하고 해당 객체의 필드를 클라이언트에서 전송된 폼 데이터와 매핑합니다. 주로 HTML 폼으로부터 데이터를 수집하고 이를 객체로 변환하는 경우에 사용됩니다 @RequestBody: @..
1. GET, POST, PUT, DELTE 2. Path Valiable vs Query Parameter 💡 쿼리 스트링(Query String)과 경로 매개변수(Path parameter)는 모두 HTTP 요청에서 파라미터를 전달하는 방식입니다. 그러나 다음과 같은 차이점이 있습니다. 쿼리 스트링(Query String) - URL 뒤에 '?'를 붙이고 파라미터를 key-value 쌍으로 전달합니다. - 파라미터는 '&'로 구분되며, '='로 key와 value를 구분합니다. - 브라우저의 캐시와 검색 엔진에서 높은 가중치를 부여합니다. - 파라미터를 전달할 때 key와 value를 쌍으로 전달하기 때문에, 파라미터를 생략하거나 순서를 변경해도 문제가 없습니다. - 예시 : **`http://exa..
Overview session , JSPL c 라이브러리 사용 Controller jsp 1. Controller /** * 로그인 요청 처리 * @param SignInFormDto */ @PostMapping("/sign-in") public String signInProc(SignInFormDto dto) { httpSession.setAttribute("principal", user); return "redirect:/..."; } //로그아웃 기능 @GetMapping("/logout") public String logout() { httpSession.invalidate(); // 세션 삭제 return "redirect:/..."; } 2. JSP - session 사용 JSPL C 라이브러..