본문 바로가기

Programming14

JWT 인증의 구조와, 내가 빠졌던 함정 JWT 인증의 구조와, 내가 빠졌던 함정을 실제 "멀쩡히 쓰다 갑자기 로그아웃되는" 버그를 겪으며 이해한 대로 정리한 글입니다. JWT는 어떻게 로그인을 기억하는가 전통적인 세션 방식은 서버가 "누가 로그인했는지"를 직접 기억합니다. 로그인하면 서버 메모리나 저장소에 세션을 남기고, 브라우저에는 그 세션을 가리키는 열쇠만 쥐여 주죠. 반면 JWT는 접근을 뒤집습니다. 서버가 아무것도 기억하지 않는 대신, "이 사람은 누구이고 무엇을 할 수 있다"는 정보를 토큰 자체에 적어 클라이언트에게 통째로 건네줍니다. 요청이 올 때마다 서버는 그 토큰이 위조되지 않았는지만 검증하면 되죠. 이 토큰은 점 두 개로 나뉜 세 조각으로 되어 있습니다.헤더(header) — 어떤 알고리즘으로 서명했는지 같은 메타 정보가 들어.. 2026. 7. 4.
[프로그래머스] <기능개발> 99클럽 스터디-14 + 작업량 문제 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자연수입.. 2024. 4. 11.
[웹/인터넷] 서버에서 URL을 호출하면 에러 페이지(error page)가 나올 때 내 웹 서비스 페이지가 에러나는 경우(X) 웹 서비스에서 외부 URL을 호출할 때 에러나는 경우(O) 처리 방법 웹 서비스를 개발하다가 외부 URL(기사, 블로그 등)을 입력해 활용하는 기능을 추가하려는데, 페이지를 직접 접속하면 잘 열리지만, 서비스에 URL을 넣고 호출하면 error code가 나오면서 의도한 기능이 수행되지 않는 경우가 생긴다. 이 때는 직접 에러 페이지(403, 404, 500, 503 등)을 접속해서 확인할 수가 없으니, 해당 페이지의 예외처리를 따로 해줄 필요가 있다. 다만, 이 예시에서는 실제로 접속해서 에러를 확인할 수 있는 페이지를 다뤄보도록 한다. 이렇게 에러 페이지가 나오는 경우, html코드로 판단해 처리할 수 있다. F12를 눌러 개발자 도구를 열면, > 에 "40.. 2023. 8. 30.
파이썬 알고리즘 - 근삿값, 재귀, 병합정렬, 퀵 정렬 제로베이스 데이터 취업 스쿨 과정 학습 내용을 정리한 포스팅입니다. 📍 근삿값 특정 값과 가장 근사한 값을 배열에서 찾기 inputNum = 17 minNum = 30 num = [25, 15, 20, 10, 30] for n in nums: absNum = abs(n-inputNum) if absNum 0: return num * f.. 2023. 6. 1.
파이썬 알고리즘 - 이진탐색, 버블정렬, 삽입정렬, 선택정렬 제로베이스 데이터 취업 스쿨 과정 학습 내용을 정리한 포스팅입니다. 📍 이진탐색 정렬되어 있는 자료구조에서 중앙값과의 크고 작음을 이용해서 데이터를 검색한다. nums = [4, 10, 22, 5, 0, 17, 7, 11, 9, 61, 88] nums.sort() searchData = 17 result_idx = -1 start_idx = 0 end_idx = len(nums) - 1 mid_idx = (start_idx + end_idx) // 2 mid_value = nums[mid_idx] while True: if searchData == nums[len(nums) -1]: result_idx = len(nums) - 1 break if searchData > mid_value: start_id.. 2023. 5. 29.
파이썬 자료구조 - 딕셔너리(dictionary) 제로베이스 데이터 취업 스쿨 과정 학습 내용을 정리한 포스팅입니다. 📍 딕셔너리(dictionary) 키(key)와 값(value)을 짝지어 자료를 관리 삭제, 수정 등은 리스트와 같이 활용 가능 students = {'s1':'홍길동', 's2':'강호동', 's3':'이수근', 's4':'김영철'} students = {'s1':'홍길동', 's2':'강호동', 's3':'이수근', 's4':'김영철'} students['s2'] # 강호동 students.get('s2') # 강호동 - dict[key] 로 값(value)를 조회할 수 있다. 다만, 해당 키값이 없을 경우 에러가 발생 - dict.get(key)로 값을 조회하면 키 값이 없어도 에러가 나지 않고 None을 반환한다. students.. 2023. 5. 25.