본문 바로가기

일기

2023-01-06

좀 이상한 형태이지만, 우선은 Redis 를 구현해서 넣고 가져오는 것에는 문제 없게 작동하게 해결을 했다.

다만, 이 과정에서 시간을 효율적으로 사용하지 못 했다고 생각하는지라 그 부분이 좀 아쉽다.

로컬 Redis 에서의 테스트는 이제 끝내고 EC2 에다가 로컬에서 했던것과 마찬가지로 Redis 를 설치해서 테스트를 해야 하는데, 이 부분에서 생각보다 시간을 잡아먹어 버렸다.

 

이것에 대해서 검색하니 계속해서 AWS 에서 지원해주는 엘라스틱 캐시 라는것이 계속 엮어서 나오는 바람에 이것을 써야하는거라고 오해하고 접근하는 바람에 시간을 헛되이 낭비해버렸다...

 

조금만 더 자세히 검색하거나 엘라스틱 캐시의 구축을 먼저 생각하지 말고 좀 더 이해를 하고 시작했으면 이럴일이 없었을텐데...

 

 

 

 

 

엘라스틱 캐시

클라우드에서 인 메모리 데이터 스토어 또는 캐시를 손쉽게 배포, 운영 및 확장할 수 있게 해주는 웹 서비스
두 가지 오픈 소스 인 메모리 엔진을 지원한다. Redis, Memcached

내가 이해하기론 Redis 와 Memcached 를 이용해서 좀 더 확장적으로 기능을 지원해주는 역할인 듯 하다.
따라서 현재 진행중인 프로젝트에는 굳이 필요하지 않기에(심지어 프리티어도 없어서 무조건 유료) 사용하지 않기로 결정했다.

 

Redis 와 Memcached 의 차이

 

 

이제 비회원이 접속할시 발급받는 정보를 어디로 전달해서 모든 페이지에서 계속 사용할까 고민을 하다가,  JWT 토큰이 쿠키에 들어가 있듯이 비회원도 동일하게 쿠키에 넣어서 전달하기로 방향을 잡고 코드를 작성했다.

 

그런데 이를 쿠키나 requestHeader 에 한글이 넣는것이 안되기에 왜 그런지 알아보니...

 

쿠키는 콤마, 세미콜론, 공백문자 를 제외한 ASCII 코드로 구성되기 때문에 값을 저장할 때 한글이 사용이 불가능하다.
만약 한글을 쿠키값으로 생성후 저장하려고 하면 톰캣의 경우 IllegalArgumentException 예외가 발생한다.
또한 쿠키 생성시에는 오류가 발생하지 않으나 response 를 했을 경우에도 문제가 발생한다고 한다.

 

그래서 이를 해결하기 위해서...

 

UTF-8 형식으로 인코딩
UTF-8 형식으로 디코딩

 

위 처럼 해주어야만 정상적으로 작동이 가능했다.

Header 에 만약 값을 집어넣는다고 하면 이 때도 마찬가지로 위 처럼 변형을 해주어야 정상적으로 사용이 가능했다.

 

 

 

 

 

참고한 블로그 링크

 

Redis 레디스 특징, 장단점, Memcached와 redis 비교

Redis 레디스 특징, 장단점, Memcached와 redis 비교 Redis(Remote Dictionary Storage, 레디스)는 모든 데이터를 메모리에 저장하고 조회하는 인메모리 데이터베이스, 메모리 기반의 key-value 구조의 데이터 관리

sudo-minz.tistory.com

 

 

[서블릿/JSP] 쿠키(Cookie)에 한글 데이터 저장하고 가져오기

참고글 [서블릿/JSP] Servlet/JSP 환경에서 쿠키(Cookie) 사용 방법 [Java] URLEncoder URLDecoder 클래스 [서블릿/JSP] 톰캣 쿠키(Cookie)에 한글 저장시 Control character in cookie value or attribute 오류 쿠키(Cookie)에 한글

dololak.tistory.com

'일기' 카테고리의 다른 글

2023-01-09  (0) 2023.01.10
2023-01-07  (0) 2023.01.07
2023-01-05  (0) 2023.01.05
2023-01-04  (0) 2023.01.04
2023-01-03  (0) 2023.01.03