Web

redis 연결 시 await 설정

필립 2024. 6. 20. 01:06

1. 개요

이메일 검증과 사용자의 리프레쉬 토큰 저장을 위하여 Redis를 사용해보기로 결정하였습니다.

Redis 서버와의 연결 과정에서 발생했던 문제점에 대해 다뤄보겠습니다.

2. 트러블슈팅

2.1 배경

 

2.2 발단

 

Redis 서버와의 연결 작업 중 문제가 발생하였습니다.

Redis에서 제공하는 클라이언트 연결 코드를 사용하여 연결을 시도했을때 서버와 연결이 되지 않는다는

에러가 발생했습니다.

 

2.3 전개

터미널로 확인해보니 redis는 promise를 반환하고 있었습니다.

 

2.4 위기

문제를 해결하기 위해 함수로 한번 더 감싸 async await 키워드를 넣어주었지만 해결되지 않았습니다.

 

2.5 절정

 

async를 지워보고 await만을 사용했을 때 서버와 정상적으로 연결이 이어졌습니다.

 

2.6 결말

튜터님께서 알려주신 내용을 통해 Top-level await라는 내용을 알게 되었습니다.

Top-level await를 사용한 모듈이 하나의 거대한 async 함수처럼 동작하게 됩니다. 따라서 B 모듈에서는 todoList로 바로 접근을 해도, 비동기 처리가 완료됐다는 것을 보장하기 때문에 원하던 결과를 얻을 수 있게 됩니다.

3. 마무리

이번 트러블 슈팅을 요약하면 다음과 같습니다.

(1) redis 서버와의 연결 에러 발생

(2) reids는 promise를 반환, async await를 사용했을 때 동작하지 않는다는 에러문구

(3) async를 지웠을 때 await가 동작

(4) Top-level await

'Web' 카테고리의 다른 글

HTTP 메서드가 가지는 의미는 ?  (0) 2024.06.21
웹소켓이란  (0) 2024.06.21
Redis란 ?  (0) 2024.06.19
웹소켓이란?  (0) 2024.06.17
TDD 테스트 주도 개발  (0) 2024.06.15