JWT 인증방식은 공격자가 Access Token을 탈취하는 순간 모든 정보를 다 가져갈수있기 때문에 위험요소가 있다. 그래서 위험요소를 줄이기 위해서 토큰 만료 기간을 짧게 한다. 하지만 자주 로그인을 하는 것은 매우 사용성이 떨어진다. 그래서 나온 것이다.
NoSQL이란?Not Only SQL비관계형 데이터 베이스RDBMS vs NoSQLSQL과 NoSQL 용어 비교NoSQL 종류Key-Value: 가장 유연한 유형이다. App이 값 필드에 저장된 모든 데이터를 제약없이 완벽하게 제어할수 있음. ex) Redis, Mem
Redis란빠른 오픈 소스 In-memory Key-Value 저장방식NoSQL중의 Key-Value 저장방식중 하나캐싱, 세션관리, pub/sub, 속도제한, 대기열 및 순위표 등에 사용AWS ElasticCache장점빠른 응답성 (In-memory)별도 Redis
공부하는 이유웹 서비스 환경에서 시스템 성능 향상을 기대하고자함.Redis를 사용하는데 어떻게 해야 잘쓰는지 고민하는 시간을 갖게 됨RAM의 용량은 한정되있기 때문에 데이터를 어느 종류, 얼마나, 얼마동안 데이터를 캐시에 저장하는지에 대한 전략을 숙지할 필요가 있다.c
저장 방식자주 사용되면서 자주 변경되지 않는 데이터 (Cache Hit Rating)주로 In-memory 방식휘발성을 기본으로 함데이터 유실, 정합성이 보장되지 않아 민감정보는 저장하지 않는 것이 좋다.장애 발생시 적절한 대응방안 필요 → Time Out, DB 조회
DDD를 공부하면서 도메인 모델 패턴에 대해서 알게 되었다. 그래서 JPA로 기본적인 Aggregate를 구현하고자 한다.
기존에 작성했었던 인증관련 로직을 사용했을때 중복되는 부분이 많았다. 대표적으로 컨트롤러에서 토큰값으로 사용자의 식별자 값을 추출하는 부분이다. 이 부분은 항상 고민이 많았다. 사실 2줄정도 추가만하면 되지만 뭔가 이런 Copy & Paste의 반복은 계속 보고 싶지
Spring framwork단위에서 인스턴스를 관리하기 위해서 Configuration과 Component는 항상 사용한다. 외부 라이브러리 설정들을 메소드 단위로 `@Bean`을 등록할 때는 클래스에 `@Configuration`을 넣어주고 Service, Cont
웹 서비스 중에서 전형적인 기능 중에 채팅 모듈을 만들어 보고자 공부해 정리해 보았습니다. 서버는 Spring Boot, Client는 React 로 구현하였다. 기본적으로 API는 클린 아키텍처로 구성했기 때문에 유의 해야 합니다.
기존에서 사용했던 방법은 모든 채팅방, 채팅 메시지목록을 조회하는 로직으로 구현했었다. 하지만 데이터가 많을수록 리소스 낭비가 심할 것으로 예상된다. 그래서 페이지네이션을 적용하고자한다.
MSA를 공부하는 중이었다. 그래서 채팅서비스를 구현하고 scaleout을 구성해보면서 관련 기술을 공부한것에 대해 정리하고자 작성해 보았다.
알림 서비스과 같이 서버에서 클라이언트에게 데이터를 전송하는 방법들중에 Polling, WebSocket 방식을 사용해 본적이 있습니다. 또 하나의 방법인 Server Sent Events 에 대해 간단하게 구현해보고 다른 방식들과 장단점도 정리해 보았습니다.