1. 리프레시토큰
2. 트렌젝션
리프레시 토큰에 대해서 배워봤다. 리프레쉬 토큰이 필요한 이유나, 배경에 대해서는 이해했으나, 실제 구현해 보는 과정의 흐름이 아직 잘 숙달됐다고 생각이 들지 않았다. 더 반복만이 답이라는 생각이 든다.
mongoose에서 물론 findOneAndUpdate와 같은 메소드들이 있어, 한번에 한두가지의 데이터베이스 요청을 동시에 처리하는 방법들이 있었지만, 여전히 여러가지 과정을 한번에 묶어서 처리할 수는 없었는데, 트렌젝션을 보고 이런 문제들을 해결할 수 있겠다 라고 생각했으나, 데이터베이스 락의 범위들을 보다 섬세하고 꼼꼼하게 살피지 않고 사용하게 될 경우 큰 문제들이 발생할 수 있기 때문에 전체 구조와 동작에 대한 이해를 확실히 하고 사용해야겠다고 생각했다.
토큰 방식의 로그인 구현에서 내가 생각하는 것보다 보안의 구멍이 더 크게 있는 편이라는 것을 알게 되었다. 그리고, 토큰의 탈취를 막기 위해서 세션을 선택하는 것도 좋지만 토큰 방식 안에서 해결할만한 방법이 없을까? 고민했었고, 지금은 블록체인, NFT나 아니면 web3.0들에 대한 지식이 있다면 고려해볼만 하지 않을까라는 생각까지 정도에만 닿아있는 상태이고 내일 더 알아보도록 할 예정이다.
트랜젝션과 데이터베이스 락을 보면서 이거 머리 아파질 상황이 많을 수도 있겠는데 라는 생각이 들면서도, 내가 하나의 데이터 베이스만 사용한다는 생각에 더 복잡하게 생각하게 되는 것 같았다. 용도와 상황에 따라 적절히 데이터베이스를 여러개로 분리하고 그안에서 해당하는 영역만 관장하게 한다면, 트렉젝션과 데이터 베이스 락에 의한 문제를 줄이고, 복잡도를 낮출 수 있을 것 같다는 생각을 했다.