CS(24)
-
JWT(JSON Web Token)가 토큰의 유효성을 검증하는 방법
최근 NestJS에서 JWT를 사용해서 인증을 구현하는 일감을 받았는데 그전에 어설프게 알고 있던 제 자신을 반성하면서 JWT에 대해 다시 학습하고 정리하는 글을 작성해보려고 합니다. 다만, 해당 포스팅에서는 JWT에 대한 기본적인 개념에 대해서 전부 정리하는 것보다는 인증 서버(JWT를 발행한 서버)에서 토큰의 유효성을 어떻게 검증하지에 초점을 맞췄습니다. JWT(JSON Web Token) 가 토큰의 유효성을 검증하는 방법JWT는 Header, Payload, Signature 3가지 구성요소로 이루어져 있으며 각 부분을.(dot)으로 구분하고 있습니다. 주의할 부분은 Payload는 Base64 URL 인코딩 방식으로 변환된 값입니다. 즉, 암호화되지 않은 인코딩 값이기 때문에 쉽게 디코딩해서 내용..
2025.02.07 -
LAG 함수 사용과 쿼리 실행 계획 및 성능 검증
최근 몇 달 동안 사내에서 통계 프로젝트를 진행하면서 경험했던 문제와 해결 과정에 대해 기록하기 위한 포스팅을 작성해보려고 합니다. 이번 포스팅의 메인 주제는 DBMS의 윈도 함수(Window Function) 중 LAG 함수를 사용하게 된 이유와 효과입니다. 재밌게 읽어주세요! 프로젝트(통계 개편) 요구사항 소개프로젝트에서 담당했던 기능은 판매처별 매출 통계 구현이었습니다. 해당 기능에 대해 간단히 설명하자면 다음과 같습니다. 1. 온라인(판매처), 오프라인(매장) 통합 매출 통계를 구현한다. (매출외에 판매수량, 취소수량등과 같은 다른 값도 구현에 포함되었습니다.)2. 일간, 주간, 월간 매출 통계를 집계한다.3. 매출에 대한 전일, 전주, 전월에 대한 증감률을 구한다. (핵심) 기능 요구사항에 대한..
2024.11.17 -
인덱스로 성능 개선하기 (feat. B-Tree 인덱스)
이번 포스팅은 금주에 겪었던 서비스 속도 이슈의 원인을 분석하고 그 과정을 어떻게 해결했는지에 대한 내용을 기록해보려고 합니다. 문제 발생 현재 재직 중인 회사에서는 특정 판매처(ex. 카페 24)와 서비스 간의 재고연동 기능을 지원하고 있습니다. 기능에 대한 설명을 간단히 하자면, 판매처의 재고 수량과 자사 서비스의 재고 수량을 동기화시키는 과정을 의미합니다. 해당 기능은 과거에도 지원하고 있었으며 최근에 레거시(classic asp)를 Laravel Framework로 이전하는 과정에서 속도 이슈가 발생했습니다. 기존의 코드도 재고연동 속도는 느렸지만, 현재는 그걸 감안하지 못할 정도의 수준이 되었다는 것입니다. (상품 1000건 기준 대기 시간 15분 이상) 원인을 파악하는 과정에서 알게 된 ..
2024.08.11 -
프로시저(Procedure) 동작 방식과 동시성 문제
현 직장에서 가장 많이 만나는 문제 중 하나는 동시성 문제입니다. 동시성이 발생하는 이유도 가지 각색인데웹서버의 병목현상으로 인해 요청이 한 번에 처리되는 경우동시에 여러 사용자가 동일한 작업을 수행하는 경우 사용자의 작업과 스케줄러의 작업이 겹치는 경우 등등 여러 가지 이유로 인해 동시성 문제가 발생하게 되면 그때부터는 왜 그런 상황이 발생했는지 찾는 탐정놀이가 시작됩니다.최근에 발생한 동시성 문제는 좀 특이해서 다음에 비슷한 문제가 발생했을 경우를 대비해 기록하려고 합니다. 문제 발생이번에 발생한 동시성 문제의 원인은 정확히 결론 내릴 수 없었지만, 다른 가능성을 소거해 가면서 원인을 파악한 결과, 웹 서버의 병목현상으로 인해 처리 대기 중이던 요청이 한 번에 처리되어 발생한 것으로 결론 내렸습니다..
2024.07.08 -
[Network] 프로토콜 계층(2)
프로토콜 계층이란? 이 글을 읽기 전에 알아두면 이해에 도움이 되는 내용을 따로 정리해 두었습니다. 해당 글을 먼저 읽고 오시는 걸 추천드릴게요! (이해가 되지 않거나 앞으로의 설명에 꼭 필요한 부분이 빠졌다고 생각되시는 내용은 댓글을 통해 알려주시면 수정하겠습니다) [Network] 프로토콜 계층(1) 이번글은 네트워크 구조에 대해 정리해 보려고 합니다. 웹에 대해 공부를 하다보면 TCP/IP 라는 용어가 자주 등장해 그 용어 대해 이해하려고 하면 선수 지식들이 많다 보니 이번 글을 통해 초석 jminc00.tistory.com 호스트의 수가 늘어나면 그에 따라 네트워크도 매우 복잡해 질 수밖에 없습니다. 즉, 다양한 애플리케이션과 프로토콜, 여러 가지 종단 시스템과 종단 시스템 간의 연결, 라우터, ..
2022.10.09 -
[Network] 프로토콜 계층(1)
이번 글은 네트워크 구조에 대해 정리해 보려고 합니다. 웹에 대해 공부를 하다 보면 TCP/IP라는 용어가 자주 등장해 그 용어 대해 이해하려고 하면 선수 지식들이 많다 보니 이번 글을 통해 초석을 다지려고 합니다. 글을 읽다가 이해가 되지 않는다거나 틀린 부분이 있다면 댓글로 알려 주시면 감사하겠습니다. (이 글은 컴퓨터 네트워크 하향식 접근방법 제8판을 참고하여 작성하였습니다.) 프로토콜이란? 네트워크는 프로토콜이 매우 중요합니다. 프로토콜이 무엇인지에 대해 이해를 돕기 위해 아래의 이미지를 보겠습니다. 왼쪽의 이미지는 두 사람이 대화를 나누고 있습니다. 대화의 내용은 다음과 같습니다. 여자 : Hi 남자 : Hi 여자 : Got the time? 남자 : 2:00! 매우 익숙한 대화의 내용에서는 우..
2022.10.02