Spring Boot Admin Server, Client config 설정하기

이미지
 Spring Boot로 많은 프로젝트를 진행하게 됩니다. 많은 모니터링 도구가 있지만, Spring Boot 어플리케이션을 쉽게 모니터링 할 수 있는 방법을 소개하려고 합니다.   코드 중심으로 살펴보겠습니다. 1. 어드민 서버 구축 1-1. 디펜던시 추가 dependencies { // https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server implementation 'de.codecentric:spring-boot-admin-starter-server:2.5.4' } 1-2. 어드민 서버 설정 활성화 @SpringBootApplication @EnableAdminServer public class ServerApplication { public static void main (String[] args) { SpringApplication. run (ServerApplication. class, args) ; } } EnableAdminServer를 하면 됩니다. 2. 클라이언트 서버 설정  예제는 book-client, member-client 2가지 클라이언트, member-client가 2개의 인스턴스 실행으로 작성했습니다.  2-1 디펜던시 추가 dependencies { // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web implementation 'org.springframework.boot:spring-boot-starter-web:2.5.4' // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator implementation 'org.spring...

자바 URL 인코딩 디코딩

URL을 변수로 할당하여 개발할 때가 많이 있습니다. 예를 들어 소셜 로그인 후에 redirect_uri를 query string으로 전달 되는 것을 보실 수 있습니다. 이때 query string에  URL이 전달 되는경우에 인코딩을 해야 기대하는 결과를 받아 볼 수 있습니다.

http://localhost?redirect_uri=https://www.youtube.com/watch?v=9PPaSkVIu98&list=all
위와 같이 전달하게 되면 

  • redirect_uri  = https://www.youtube.com/watch?v=9PPaSkVIu98
  • list = all
원하지 않는 결과를 만나게 됩니다.
이외에 공백이라든지 특수문자를 사용하는 경우에도 인코딩해야합니다.


자바에서 인코딩, 디코딩 하는 방법을 살펴보겠습니다.

@Test
public void test() throws UnsupportedEncodingException {
String url = "https://www.youtube.com/watch?v=9PPaSkVIu98";
log.debug("url === {}", url);

String encodedUrl = URLEncoder.encode(url, "UTF-8");
log.debug("encodedUrl === {}", encodedUrl);

String decodedUrl = URLDecoder.decode(encodedUrl, "UTF-8");
log.debug("decodedUrl === {}", decodedUrl);
}
실행 결과 
url === https://www.youtube.com/watch?v=9PPaSkVIu98&list=all
encodedUrl === https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D9PPaSkVIu98%26list%3Dall
decodedUrl === https://www.youtube.com/watch?v=9PPaSkVIu98&list=all
Encode Decode chart


자바스크립트도 같이 살펴볼게요.

const url = 'https://www.youtube.com/watch?v=9PPaSkVIu98&list=all';
const encodedUrl = encodeURIComponent(url);
const decodedUrl = decodeURIComponent(encodedUrl);
console.log(url, encodedUrl, decodedUrl);

실행 결과 

https://www.youtube.com/watch?v=9PPaSkVIu98&list=all
https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D9PPaSkVIu98%26list%3Dall
https://www.youtube.com/watch?v=9PPaSkVIu98&list=all

사용할때는 디코딩 해주는것 꼭 기억해주세요.



댓글

이 블로그의 인기 게시물

Spring boot redis cache config

Spring boot redis RedisTemplate

MySQL PK 중복 (duplicate key ) 해결 방법