비동기 프로그래밍에서 await 키워드를 통해 비동기 작업이 완료될 때까지 현재 함수 실행이 일시 중지되고 그 사이 다른 비동기 작업들이 실행된다고 하는데, 이 부분에서 동기 프로그래밍과의 차이가 조금 헷갈려 정리하게 되었습니다 🤓 동기 프로그래밍 동기 프로그래밍에서는 한 번에 하나의 작업만 처리됩니다. 코드가 위에서 아래로 …
메시지 분산 처리 시스템은 여러 개의 프로세스나 애플리케이션이 메시지(데이터)를 주고받을 수 있도록 설계된 시스템으로 메시지를 분산 처리하고 비동기적으로 처리할 수 있습니다. 이 시스템은 대규모 애플리케이션에서 데이터 처리량을 효율적으로 분산시키고 시스템의 안정성과 확장성을 높이는 데 주로 사용됩니다. 🚀 메시지 시스템을 이해하는데 필수적인 …
토이 프로젝트를 하면서 인증과 관련하려 JWT를 사용하여 구현을 하려는데 편하게 구현할 수 있는 라이브러리가 몇 가지 있어 찾아보던 중 정리를 해보고 싶어 포스팅 합니다. Simple JWT (djangorestframework-simplejwt) JWT를 사용한 토큰 기반 인증을 쉽게 구현할 수 있으며, 액세스 토큰과 리프레시 토큰을 기본적으…
🚀 DRF에서는 CBV를 사용한 예제가 많아 새로운 방식도 배워보고자 CBV를 공부해보려고 합니다. 비슷하면서도 차이점이 명확해보여 잊기 전에 정리해보면서 공부한 내용입니다! 공식 문서 APIView…
Binary Search Tree Binary Tree 이진 트리는 하위 노드를 최대 2 개를 가지고 있는 트리를 말합니다. Binary Seach Tree 이진 탐색 트리는 이진 트리에 몇 가지 조건이 추가 된 트리입니다. 노드의 왼쪽 하위 트리에는 자신보다 값이 작은 노드만 존재합니다. 노드의 오른쪽 하위 트리에는 자신보다 …
프로젝트를 진행하며 시간과 관련된 내용을 개발하다 보면 자주 등장하지만 헷갈려 실수하기 쉬운 것들이 있습니다. 날짜를 저장하고 보여줄 때 내가 예상한 것과는 다르게 저장되고 보이는 경우가 있는데 사소하지만, 꼭 기억해야 할 내용이라 포스팅하려고 합니다. 우리가 개발하는 이곳은 한국이고 서버는 미국에 있다면 클라이언트는 한국 시간대을 기준으로, 서버는…
render render(request, template_name, context=None, content_type=None, status=None, using=None) render()는 주어진 템플릿을 context와 결합하여 렌더링 된 HttpResponse 객체를 반환합니다. ```rend…
Docker 도커는 어플리케이션을 구동하는 데 필요한 다양한 환경을 쉽게 구성해주는 오픈 소스 프로그램입니다. 새로운 PC에 처음 개발 환경 세팅을 해야 할 때면 어플리케이션을 위한 가상 환경, Python, 데이터베이스 등을 일일이 설치하는 귀찮은 작업을 해야 했습니다. 그 과정에서 필요한 소프트웨어를 다른 버전으로 설치하여 다른 PC에서는…
Iterator Iterable 객체 iterable 객체는 값을 순차적으로 꺼내올 수 있는 객체를 말합니다. iterator를 생성하는 기능을 가지고 있습니다. 리스트, 딕셔너리와 같이 for 루프를 돌릴 수 있다면 iterable 객체입니다. __iter__()함수가 있다면 iterable 객체라고 할 수 있…
인코딩 Encoding 파일에 저장된 정보의 형태를 다른 것으로 변경하는 것을 말합니다. 사람이 인지하는 형태의 데이터를 컴퓨터가 이해할 수 있는 0과 1로 변환하는 과정을 통틀어서 말하고 표준화, 처리 속도 향상, 저장 공간 절약을 위해서 인코딩을 합니다. Text Encoding …
인가 Authorization request를 실행할 수 있는 권한이 있는 유저인지 확인하는 절차 HTTP는 stateless protocol에 속합니다. 프로토콜이 상태 정보를 저장할 경우 매우 복잡해지고 overhead가 발생할 수 있어 stateless protocol에서 …
인증 Authentication 유저의 identification 을 확인하는 절차 회원가입과 로그인 절차에서 유저의 비밀번호를 데이터베이스에 저장하고 이를 확인하는 인증의 과정이 필요합니다. 이때 유저의 비밀번호를 그대로 데이터베이스에 저장할 경우, 해킹 시 비밀번호가 그대로 노출되며 내…