전체 글
-
Axios Jwt RefreshToken 중복요청프로그래밍/Javascript 2024. 2. 4. 17:23
1. 문제 Client는 모든 Axios 요청에 대해서 Access Token을 Header에 추가하여 요청을 진행합니다. 만약 Access Token이 없거나 만료가 되었을 경우 Cookie에 저장되어 있는 Refresh Token을 이용하여 Access Token을 갱신받아 요청들을 다시 재요청하는 방법으로 구현되어 있습니다. Axios의 비동기 방식의 요청에서 문제가 발생하게 되었습니다. Access Token이 만료된 상태에서 Axios를 이용하여 3개의 요청을 보낼경우 Refresh Token 갱신 요청또한 3번이 발생하는 것입니다. 2. 문제 순서도 실재 동작하는 순서입니다. 우리가 생각한 순서는 1번요청을 하고 1번 요청에서 Access Token이 만료가 된다면 Refresh 토큰을 통해 ..
-
[Web] Web Server 과 Web Application Server기타 2022. 4. 21. 03:48
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 정적 페이지와 동적 페이지 Web Server와 WAS(Web Application Server)가 나누어진 이유는 바로 정적 페이지와 동적 페이지를 담당하도록 역할을 분리하였기 때문입니다. 정적 페이지 정적 페이지는 이름에서 유추할 수 있는 것처럼 변화가 없이 동일한 페이지를 의미합니다. 즉 동일한 URL을 통해 페이지를 요청하면 항상 같은 페이지를 응답하는 페이지를 의미합니다. 대표적인 페이지로는 이미지, Javascript파일, CSS파일 등이 있습니다. 동적 페이지 동적 페이지는 정적 페이지의 반대로 변화하여 서로 다른 페이지를 의미합니다. 즉 동일한 UR..
-
[Slack] SpringBoot Interactivity Message 전송기타 2022. 4. 9. 17:26
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Interactivity Message란 Interactivity Message란 상호 작용이 가능한 Message입니다. 즉 Slack의 메시지에서 Input, TextArea, Button과 같이 메시지를 통해 상호작용이 가능한 Message입니다. 이번 포스팅에서는 이 Interactivity Message를 SpringBoot에서 전송하고 해당 Message에서 입력 값들을 전달받아 활용해보고자 합니다. 2.Webhook URL 이전 포스팅을 통해 Slack의 Webhook URL을 받았습니다. Interactivity Message 또한 이 Webhook..
-
[Slack] SpringBoot Slack Message 전송기타 2022. 4. 7. 01:35
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Slack App 생성 SpringBoot App에서 Slack으로 Message를 전달하기 위해서는 먼저 Slack에 App을 생성해야 됩니다. Slack Api 홈페이지에 접속합니다. 우측 상단의 Your App을 클릭하여 App 화면으로 진입합니다. 이후 화면에서 Create New App을 클릭하여 App생성을 실행합니다. Modal창에서는 From scratch를 클릭하여 App 생성을 진행합니다. 다음 Modal 창에서는 App의 이름과 Slack의 workspace를 선택합니다. 모두 작성이 완료되었다면 우측 하단의 Create App을 클릭합니다. ..
-
[ElasticSearch] Windows 설치 및 실행기타 2022. 4. 7. 00:48
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. ElasticSearch 다운로드 이번 포스팅에서는 Windows 버전을 기준으로 설명을 진행 하도록 하겠습니다. Linux/Unix의 경우는 명령어를 통해서 설치가능 합니다. ElasticSearch 다운로드 주소로 이동합니다. OS에 맞는 ElasticSearch를 선택 합니다. 이후 아래 버튼을 클릭하여 원하는 위치에 압축파일을 다운로드 받습니다. 다운로드가 완료되면 ElasticSearch의 다운로드는 완료 됩니다. 2. ElasticSearch 설치 압축을 풀고 폴더 구성을 확인하면 위 이미지 처럼 폴더가 구성되어 있습니다. bin 폴더로 이동하여 Ela..
-
[Travis] Notification Slack 연동CI-CD 2022. 3. 25. 16:48
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Travis Notification Slack 연동 Travis를 사용중이시라면 아마 기본적으로 Email을 연동하여 사용중 이실거라 생각합니다. Travis의 경우 Email이 아닌 Slack을 이용하여 Notification을 전달 받을 수 있습니다. 이번 포스팅에서는 Travis Notification을 Slack과 연동하는 방법에 대해 알려드리고자 합니다. 이미 Slack을 사용중이시면 Slack에 로그인 후 Slack App Directory에 접속합니다. 만약 Slack을 처음 사용하시는 분은 Slack에 회원가입후 Slack App Directory에..
-
[Redis] Redis란 무엇인가?기타 2022. 3. 21. 23:23
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Redis Redis는 인 메모리 Key, Value 데이터 구조의 스토리지입니다. 디스크나 SSD에 데이터를 저장하는 DB 시스템과 다르게 메모리에 데이터가 상주함으로 디스크 액세스 과정이 없어 데이터에 빠르게 액세스 할 수 있습니다. 2. Redis 특징 Redis는 Single Thread로 구성 Redis는 Single Thread로 구성되어 있어 Race Condition이 발생할 가능성이 낮습니다. 즉 여러 Thread가 데이터에 수정을 위해 경합하여 데이터의 정합성이 깨질 가능성이 낮습니다. Redis는 Atomic을 보장 Redis의 Collecti..
-
[AWS] Amazon Linux2 Redis 설치기타 2022. 3. 15. 18:37
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. Redis 설치 이번 시간에는 AWS의 EC2 인스턴스(Amazon Linux2)에 Redis를 설치하는 과정을 설명하고자 합니다. 가장 먼저 아래 명령어로 yum을 update 시켜 줍니다. (최신 패키지로 업데이트를 위해서) sudo yum update 아래 그림처럼 Complete!가 출력되면 Update가 완료된 것 입니다. (위 내용과 다른 내용이 출력되고 Complete가 출력될 수 있습니다.) 이제 Redis 설치를 위해 사용할 gcc make를 설치하여야 합니다. 아래 명령어로 yum을 통해 gcc make를 설치합니다. sudo yum instal..