이름이 같은 Supabase Realtime 채널이 서로를 잡아먹은 이야기
온라인 바둑 로비 화면에는 "N명 접속 중"이라는 작은 표시가 있다. Supabase Realtime의 Presence 기능으로 지금 로비에 접속해 있는 인원 수를 세어 보여주는 용도다. 그런데 배포하고 나서 닉네임을 입력하고…
온라인 바둑 로비 화면에는 "N명 접속 중"이라는 작은 표시가 있다. Supabase Realtime의 Presence 기능으로 지금 로비에 접속해 있는 인원 수를 세어 보여주는 용도다. 그런데 배포하고 나서 닉네임을 입력하고…
서버 하나에 사이트 두 개를 같은 도메인으로 욱여넣는 작업을 하다가, 멀쩡하던 블로그 글이 전부 404가 뜨는 걸 발견했다. "방금 건드린 것 때문이겠지" 하고 덤볐다가 한참을 헛다리 짚었다. 결론부터 말하면 배포랑은 아무 상관…
레드티밍 대회에서 만난 14개 문제를 복기한다. 역할 위임, 점진적 구체화, 빈칸 채우기 — 통했던 프레이밍과 막혔던 이유.
WHS 과정에서 푼 CTF 문제 두 개 복기. 리다이렉트 필터 우회와 한글 초성·중성·종성 회전 암호 브루트포스.
업로드된 오디오 파일을 디스크에 저장하지 않고 io.BytesIO로 메모리에서 바로 처리하도록 바꾼 기록.
Lazy Loading은 관련된 엔티티를 실제로 필요할 때까지 로딩하지 않는 방식입니다. 특징 연관된 엔티티가 실제로 접근될 때까지 데이터베이스에서 조회되지 않습니다. 프록시 객체를 사용하여 연관된 엔티티를 참조합니다. 장점 초기…
프로젝트를 진행하다가 오류를 어떻게 처리할지에 대해 이야기가 나왔었는데 전에 있던 프로젝트에선 그냥 기본적으로 제공해주는 오류 처리 형식을 썼었다. 하지만 이렇게 할 경우에 오류가 발생할 경우 { "status" : 500,…
SCPC 2015 1차 예선 일직선 상에 돌들이 놓여있고, 개구리가 처음에는 '좌표 0'에 위치한 돌 위에 앉아 있다. '좌표 0'에는 돌이 항상 놓여 있고, 모든 돌들은 정수 좌표에 놓여 있다. (그림 1) 개구리는 점프를 통해서…
새로운 프로젝트에 참여하려고 보니 깃허브에서 다음과 같은 메세지를 띄워준다... 찾아보니 이메일로 사유를 보내준다는데 아무런 이메일도 와있지 않고 인텔리제이에서 연동하려고 하니 "You are marked as spam, and…
Q : Write a query to print all prime numbers less than or equal to 1000 . Print your result on a single line, and use the…
Convex Hull 알고리즘은 2차원 평면에 여러 개의 점이 주어졌을 때 모든 점을 포함하는 볼록 껍질을 이루는 점들을 구하는 알고리즘입니다. 이 알고리즘의 구현에는 CCW 알고리즘이 사용됩니다. 이 알고리즘의 구현 방법은…
슬라이딩 윈도우(Sliding Window) 알고리즘은 투 포인터(Two Pointers) 알고리즘과 유사하게 동작하지만, 두 개의 포인터 사이의 길이가 고정되어 있다는 차이점이 존재합니다. 위의 그림과 같이 모든 영역을 고정된…
유량 그래프란 간선의 가중치가 정점에서 정점으로 보낼 수 있는 최대 유량을 의미하는 그래프입니다. 최대 유량이란 해당 간선을 통해 동시에 흘려보낼 수 있는 물의 최대치입니다. 이러한 유량 그래프에서 Source로 정의된 정점에서…
KPT 초반 회의 때 원활한 소통과 적극적인 자세로 다른 팀들보다 빠른 역할 분담, 와이어프레임이나 erd 작성이 순조로웠던 점이 좋았습니다. Github를 통한 협업 및 버전관리를 수행했다는 점이 만족스러웠습니다. 보안에 관한…
투 포인터(Two Pointers) 알고리즘은 주로 순차적 접근이 요구되는 조건 등의 특수한 경우에 사용되는 알고리즘입니다. 예를 들면, 정렬된 두 배열이 주어질 때 두 배열을 하나의 정렬된 배열로 합치는 경우, 어떤 배열의 연속…
경우의 수란 '일어날 수 있는 사건의 가짓수'입니다. 예를 들어 정육면체 주사위를 던져서 나올 수 있는 경우의 수는 {1, 2, 3, 4, 5, 6}의 6가지가 있습니다. 이때 '정육면체 주사위를 던지는 사건'은 6개의 경우의 수를…
플레인 스위핑(Plane sweeping)은 직각 도형의 넓이를 구할 때 주로 쓰이는 알고리즘입니다. 작은 범위는 flood-fill 을 사용하여 배열을 원하는 격자만큼 그린 후, 도형의 넓이를 직접 배열에 칠해가며 해결할 수…
CCW 알고리즘은 한 선과 한 점의 위치 관계를 구할 때 사용하는 알고리즘입니다. 한 선분 AB와 점 C가 일직선 상에 있는지, 반시계 방향에 있는지, 시계방향에 있는지를 알려줍니다. 이 알고리즘은 기하 문제를 푸는데 사용이 되며…
두 그룹으로 구분된 정점과, 서로 다른 그룹의 정점을 연결하는 간선들로 이루어진 그래프를 이분 그래프(Bipartite Graph)라고 합니다. 그룹 A에 속하는 정점 Ai와 그룹 B에 속하는 정점 Bj를 연결하는 간선 (Ai,…
KMP 알고리즘은 문자열 탐색 알고리즘입니다. KMP는 Knuth–Morris–Pratt의 줄임말로 KMP 알고리즘을 제안한 Donald Knuth, Vaughan Pratt 그리고 James H. Morris의 이름을 따서 이름…